LinuxCNC Documentation

СИНТАКСИС

loadusr hal_input [-KRAL] inputspec …​

ОПИС

hal_input is an interface between HAL and any Linux input device, including USB HID devices. For each device named, hal_input creates pins corresponding to its keys, absolute axes, and LEDs. At a fixed rate of approximately 10 ms, it synchronizes the device and the HAL pins.

ВХІДНІ СПЕЦИФІКАЦІЇ

inputspec може мати одну з кількох форм:

Рядок S

Підрядковий або оболонковий шаблон буде перевірено щодо «назви» пристрою, «phys» (що надає інформацію про те, як він підключений) та «id», що є рядком у форматі «Bus=…​ Vendor=…​ Product=…​ Version=…​». Ви можете переглянути name, phys та id підключених пристроїв, виконавши команду 'less /proc/bus/input/devices'. Приклади:

  • Космічна куля

  • "Vendor=001f Product=0001"

  • serio*/input0

Число N

Це відкриває /dev/input/eventN. За винятком пристроїв, які завжди підключені до системи, це число може змінюватися після перезавантаження або при видаленні пристрою. З цієї причини використання цілого числа не рекомендується.

Якщо кілька пристроїв ідентифікуються одним і тим самим рядком, додайте «:N», де N — індекс потрібного пристрою. Наприклад, якщо Mouse відповідає input3 та input10, то Mouse та Mouse:0 вибирають input3. Вказавши mouse:1, вибирається input10.

Для пристроїв, які з’являються як кілька записів у /dev/input, ці індекси, ймовірно, залишатимуться незмінними щоразу. Для кількох однакових пристроїв ці індекси, ймовірно, залежатимуть від порядку вставлення, але залишатимуться незмінними після перезавантаження, якщо пристрої не будуть переміщені до інших портів або від’єднані під час завантаження машини.

Якщо перший символ inputspec — це «+», то hal_input запитує ексклюзивний доступ до пристрою. Використовується перший пристрій, що відповідає inputspec. Можна використовувати будь-яку кількість inputspec.

Опція subset може передувати кожному inputspec. Опція subset починається з тире. Кожна літера в опції subset визначає функцію пристрою, яку потрібно включити. Функції, які не вказані, виключаються. Наприклад, щоб експортувати світлодіоди клавіатури в HAL без експорту клавіш, використовуйте

hal_input -L keyboard ...

ПІДТРИМУВАНІ ФУНКЦІЇ ПРИСТРОЮ

  • EV_KEY (кнопки та клавіші). Підмножина -K

  • EV_ABS (абсолютні аналогові входи). Підмножина -A

  • EV_REL (відносні аналогові входи). Підмножина -R

  • EV_LED (LED outputs). Subset -L

ПІНИ ТА ПАРАМЕТРИ HAL

Для кпонок

input.N.btn-name bit out

input.N.btn-name-not bit out

Створено для кожної кнопки на пристрої.

Для ключів

input.N.key-name

inputN.key-name-not

Створено для кожної клавіші на пристрої.

Для абсолютних осей

input.N.abs-name-counts s32 out

input.N.abs-name-position float out

input.N.abs-name-scale parameter float rw

input.N.abs-name-offset parameter float rw

input.N.abs-name-fuzz parameter s32 rw

input.N.abs-name-flat parameter s32 rw

input.N.abs-name-min parameter s32 r

input.N.abs-name-max параметр s32 r

Створюється для кожної абсолютної осі на пристрої. Позиції пристрою, ближчі за flat до offset, повідомляються як offset в counts, і counts не змінюється, доки позиція пристрою не зміниться щонайменше на fuzz. Позиція обчислюється як position = (counts - offset) / scale. Значення за замовчуванням scale і offset відображають діапазон осі, про який повідомляє операційна система, в [-1,1]. Значення за замовчуванням fuzz і flat є тими, про які повідомляє операційна система. Значення min і max є тими, про які повідомляє операційна система.

Для відносних осей

input.N.rel-name-counts s32 out

input.N.rel-name-position float out

input.N.rel-name-reset bit in

input.N.rel-name-scale parameter float rw

input.N.rel-name-absolute parameter s32 rw

input.N.rel-name-precision parameter s32 rw

input.N.rel-name-last параметр s32 rw

Створюється для кожної відносної осі на пристрої. Поки reset має значення true, counts обнуляється незалежно від будь-яких минулих або поточних рухів осі. В іншому випадку counts збільшується або зменшується відповідно до руху осі. counts ділиться на position-scale, щоб отримати position. Значення за замовчуванням position дорівнює 1. Є деякі пристрої, зокрема колеса прокрутки, які повертають знакові значення з роздільною здатністю менше 32 бітів. Значення за замовчуванням precision дорівнює 32. precision можна встановити на 8 для пристрою, який повертає знакові 8-бітні значення, або будь-яке інше значення від 1 до 32. absolute, коли встановлено true, ігнорує дублікати подій з однаковим значенням. Це дозволяє пристроям, які повторюють події без будь-яких дій користувача, працювати правильно. last показує найновіше значення лічильника, повернене пристроєм, і використовується в реалізації absolute.

Для LEDs

input.N.led-name bit out

input.N.led-name-invert параметр біт rw

Створено для кожного світлодіода на пристрої.

ДОЗВОЛИ ТА UDEV

За замовчуванням пристрої введення можуть бути недоступні для звичайних користувачів — hal_input вимагає доступу для читання та запису, навіть якщо пристрій не має виходів.

Різні версії udev мають дещо різні, несумісні синтаксиси. З цієї причини в цій сторінці довідки неможливо навести точний приклад. Сторінка довідки udev(7) містить опис синтаксису, що використовується у вашому дистрибутиві Linux. Щоб переглянути її в терміналі, виконайте команду man 7 udev.

ПОМИЛКИ

Початковий стан клавіш, кнопок та абсолютних осей помилково повідомляється як ХИБНІСТЬ або 0, доки для цієї клавіші, кнопки або осі не буде отримано подію.

ДИВІТЬСЯ ТАКОЖ

udev(8), udev(7)