1. Введение
В следующих разделах показаны контакты, параметры и функции, предоставляемые "стандартными устройствами". Все драйверы устройств HAL должны предоставлять одни и те же контакты и параметры и реализовывать одинаковое поведение.
Обратите внимание, что для канонического устройства определены только поля _<io-type>_ и _<specific-name>_. Поля _<device-name>, _<device-num>_, и _<chan-num>_ устанавливаются на основе характеристик реального устройства.
2. Цифровой вход
Стандартный цифровой ввод (поле типа ввода-вывода: digin) довольно прост.
2.1. Контакты
(bit) in:: Состояние аппаратного входа. (bit) in-not:: Инвертированное состояние входа.
2.2. Параметры
Нет
2.3. Функции
(funct) read:: Считайте оборудование и установите контакты HAL in и in-not.
3. Цифровой вывод
Стандартный цифровой выход (поле типа ввода-вывода: digout) также очень прост.
3.1. Контакты
(bit) out:: Значение, которое будет записано (возможно, инвертировано) на аппаратный выход.
3.2. Параметры
(bit) invert:: Если TRUE, out инвертируется перед записью в оборудование.
3.3. Функции
(funct) write:: Считайте out и invert и соответствующим образом настройте аппаратный выход.
4. Аналоговый вход
Стандартный аналоговый вход (тип ввода-вывода: adcin). Ожидается, что это будет использоваться для аналого-цифровых преобразователей, которые преобразуют, например, напряжение в непрерывном диапазоне значений.
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. Аналоговый вывод
Стандартный аналоговый выход (Тип ввода-вывода: adcout). Это предназначено для любого типа оборудования, которое может выводить более или менее непрерывный диапазон значений. Примерами являются цифро-аналоговые преобразователи или генераторы ШИМ.
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.