1. Вступ

У наступних розділах наведено контакти, параметри та функції, що надаються «канонічними пристроями». Усі драйвери пристроїв HAL повинні надавати однакові контакти та параметри і реалізовувати однакову поведінку.

Зверніть увагу, що для канонічного пристрою визначені лише поля _<io-type>_ та _<specific-name>_. Поля _<device-name>, _<device-num>_ та _<chan-num>_ встановлюються на основі характеристик реального пристрою.

2. Цифровий вхід

Канонічний цифровий вхід (поле типу вводу/виводу: digin) досить простий.

2.1. Піни

(біт) in:: Стан апаратного входу. (біт) 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) масштаб:: Вхідна напруга (або струм) буде помножена на масштаб, перш ніж буде виведена у вигляді значення. (float) зміщення:: Це буде віднято від вхідної напруги (або струму) обладнання після застосування множника масштабу. (float) біт_вага:: Значення одного найменш значущого біта (LSB). Це фактично ступінь гранулярності вхідного зчитування. (float) hw_offset:: Значення, що присутнє на вході, коли на вхідний(і) контакт(и) подається 0 вольт.

4.3. Функції

(funct) read:: Зчитувати значення цього аналогового вхідного каналу. Це може бути використано для зчитування окремих каналів або може призвести до зчитування всіх каналів.

5. Аналоговий вихід

Канонічний аналоговий вихід (тип вводу/виводу: adcout). Призначений для будь-якого типу обладнання, яке може видавати більш-менш безперервний діапазон значень. Прикладами є цифро-аналогові перетворювачі або генератори PWM.

5.1. Піни

(float) value:: Значення, яке потрібно записати. Фактичне значення, що виводиться на апаратне забезпечення, залежатиме від параметрів масштабу та зміщення. (bit) увімкнути:: Якщо значення false (хибне), то вивести 0 на обладнання, незалежно від виводу value.

5.2. Параметри

(float) зміщення:: Це буде додано до значення перед оновленням обладнання. (float) масштаб:: Це слід встановити таким чином, щоб вхідний сигнал 1 на виводі value призводив до того, що аналоговий вихідний вивід зчитуватиме 1 вольт. (float) high_limit (необов’язково):: Під час обчислення значення для виведення на обладнання, якщо 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-бітний ADC може потребувати запису 0x1FF (середня шкала) в DAC, щоб отримати 0 вольт з виводу апаратного забезпечення. Якщо enable має значення true, зчитайте scale, offset і value та виведіть на adc (scale * value) + offset. Якщо enable має значення false, виведіть 0.