1. Опис
Shuttle — це компонент HAL, що не працює в реальному часі, який інтегрує пристрої ShuttleXpress, ShuttlePRO та ShuttlePRO2 від Contour Design з HAL від LinuxCNC.
Якщо драйвер запускається без аргументів командного рядка, він перевіряє всі файли пристроїв /dev/hidraw* на наявність пристроїв Shuttle і використовує всі знайдені пристрої. Якщо він запускається з аргументами командного рядка, він перевіряє тільки вказані пристрої.
ShuttleXpress має п’ять кнопок миттєвого керування, поворотне колесо з фіксаторами на 10 оборотів та пружинне зовнішнє колесо з 15 позиціями, яке повертається в центральне положення після відпускання.
ShuttlePRO має 13 кнопок миттєвого керування, поворотне колесо з фіксаторами на 10 оборотів та пружинне зовнішнє колесо з 15 положеннями, яке повертається в центральне положення після відпускання.
ShuttlePRO2 має 15 кнопок миттєвого керування, поворотне колесо з фіксаторами на 10 оборотів та пружинне зовнішнє колесо з 15 положеннями, яке повертається в центральне положення після відпускання.
|
Warning
|
Пристрої Shuttle мають внутрішній 8-бітний лічильник поточного положення колеса прокрутки. Драйвер Shuttle не може знати це значення, поки пристрій Shuttle не надішле своє перше повідомлення. Коли перше повідомлення надходить до драйвера, драйвер використовує повідомлене положення колеса прокрутки пристрою для ініціалізації лічильника до 0. Це означає, що якщо перша подія генерується рухом поворотного колеса, цей перший рух буде втрачено. Будь-яка взаємодія користувача з пристроєм Shuttle генерує подію, що інформує драйвер про положення колеса прокрутки. Отже, якщо ви (наприклад) натиснете одну з кнопок під час запуску, колесо прокрутки працюватиме нормально і реагуватиме на перше натискання. |
2. Налаштування
Драйверу човника потрібен дозвіл на читання файлів пристрою /dev/hidraw*. Цього можна досягти, додавши файл /etc/udev/rules.d/99-shuttle.rules з таким вмістом:
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0b33", ATTRS{idProduct}=="0020", MODE="0444"
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="05f3", ATTRS{idProduct}=="0240", MODE="0444"
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0b33", ATTRS{idProduct}=="0030", MODE="0444"
Пакет LinuxCNC Debian автоматично встановлює відповідний файл udev, але якщо ви створюєте LinuxCNC з вихідного коду і не використовуєте пакет Debian, вам доведеться встановити цей файл вручну. Якщо ви встановлюєте файл вручну, вам доведеться повідомити udev про необхідність перезавантаження файлів правил, виконавши команду udevadm control --reload-rules.
3. Піни
Усі назви контактів HAL починаються з префікса shuttle, після якого йде індекс пристрою (порядок, у якому драйвер їх знайшов), наприклад shuttle.0 або shuttle.2.
-
<Prefix>
.button-<ButtonNumber>(bit out) -
Ці контакти мають стан True (1), коли кнопка натиснута.
-
<Prefix>
.button-<ButtonNumber>-not(bit out) -
Ці контакти мають інверсний стан до стану кнопки, тому вони мають значення True (1), коли кнопка не натиснута.
-
<Prefix>
.counts(s32 out) -
Накопичені показники з поворотного колеса (внутрішнього колеса).
-
<Prefix>
.spring-wheel-s32(s32 out) -
Поточне відхилення пружинного колеса (зовнішнього колеса). У стані спокою воно дорівнює 0 і коливається від -7 проти годинникової стрілки до +7 за годинниковою стрілкою.
-
<Prefix>
.spring-wheel-f(float out) -
Поточне відхилення пружинного колеса (зовнішнього колеса). У стані спокою воно дорівнює 0,0, у крайньому положенні проти годинникової стрілки — -1,0, а у крайньому положенні за годинниковою стрілкою — +1,0. Пристрої Shuttle повідомляють про положення пружинного колеса у вигляді цілого числа від -7 до +7, тому цей вивід повідомляє лише 15 дискретних значень у своєму діапазоні.