1. Введение
В следующих разделах показаны контакты, параметры и функции, предоставляемые "стандартными устройствами". Все драйверы устройств HAL должны предоставлять одни и те же контакты и параметры и реализовывать одинаковое поведение.
Обратите внимание, что для канонического устройства определены только поля _<io-type>_ и _<specific-name>_. Поля _<device-name>, _<device-num>_, и _<chan-num>_ устанавливаются на основе характеристик реального устройства.
2. Цифровой вход
The canonical digital input (I/O type field: digin) is quite simple.
2.1. Контакты
(bit) in:: Состояние аппаратного входа. (bit) in-not:: Инвертированное состояние входа.
2.2. Параметры
None
2.3. Функции
(funct) read:: Считайте оборудование и установите контакты HAL in и in-not.
3. Цифровой вывод
The canonical digital output (I/O type field: digout) is also very simple.
3.1. Контакты
(bit) out:: Значение, которое будет записано (возможно, инвертировано) на аппаратный выход.
3.2. Параметры
(bit) invert:: Если TRUE, out инвертируется перед записью в оборудование.
3.3. Функции
(funct) write:: Считайте out и invert и соответствующим образом настройте аппаратный выход.
4. Аналоговый вход
The canonical analog input (I/O type: adcin). This is expected to be used for analog to digital converters, which convert e.g. voltage to a continuous range of values.
4.1. Контакты
(float) value:: Аппаратные показания, масштабированные в соответствии с параметрами scale и offset.
value = ((входное значение, в аппаратно-зависимых единицах) * scale) - offset
4.2. Параметры
(float) scale:: Входное напряжение (или ток) будет умножено на scale перед выводом в value. (float) offset:: Оно будет вычтено из входного напряжения (или тока) оборудования после применения масштабного множителя. (float) bit_weight:: Значение одного младшего бита (LSB). Фактически это степень детализации входных данных. (float) hw_offset:: Значение, присутствующее на входе, когда на входные контакт(ы) подается напряжение 0 В.
4.3. Функции
(funct) read:: Считайте значения этого аналогового входного канала. Это может использоваться для считывания отдельных каналов или может привести к считыванию всех каналов.
5. Аналоговый вывод
The canonical analog output (I/O Type: adcout). This is intended for any kind of hardware that can output a more-or-less continuous range of values. Examples are digital to analog converters or PWM generators.
5.1. Контакты
(float) value:: Значение, которое необходимо записать. Фактическое значение, выводимое на оборудование, будет зависеть от параметров масштаба и смещения. (bit) enable:: Если false, то выводится 0 на оборудование, независимо от вывода value.
5.2. Параметры
(float) offset:: Это будет добавлено к value перед обновлением оборудования. (float) scale:: Это значение должно быть установлено таким образом, чтобы вход 1 на контакте value приводил к тому, что на выводе аналогового контакта появлялся 1 вольт. (float) high_limit (optional):: Если при вычислении значения для вывода на оборудование value + offset больше, чем high_limit, то вместо него будет использоваться high_limit. (float) low_limit (опционально):: Если при вычислении значения для вывода на оборудование value + offset меньше low_limit, то вместо него будет использоваться low_limit. (float) bit_weight (опционально):: Значение одного младшего бита (LSB) в вольтах (или мА для токовых выходов). (float) hw_offset (опционально):: Фактическое напряжение (или ток), которое будет выводиться, если в аппаратуру записано 0.
5.3. Функции
(funct) write:: Это приводит к выводу вычисленного значения на оборудование. Если enable имеет значение false, то на выходе будет 0, независимо от value, scale и offset. Значение "0" зависит от аппаратуры. Например, биполярному 12-битному АЦП может потребоваться записать 0x1FF (средняя шкала) в ЦАП, чтобы получить 0 Вольт на контакте оборудования. Если enable в true, считываются масштаб, смещение и значение и выводит их на АЦП (scale * value) + offset. Если enable в false, тогда выводится 0.