Re: LinuxCNC HID Extender
Добавлено: 08 янв 2017, 15:42
Схема пульта из GenericHid . Фото пульта сделаю после Рождественских праздников .
Статьи, обзоры, цены на станки и комплектующие.
https://www.cnc-club.ru/forum/
Ну да это ещё прощеUAVpilot писал(а):Если по быстрому получить результат прям сейчас, то это http://generichid.sourceforge.net/ + поддерживаемые проектом платы - там даже программировать не надо, в визуальном редакторе нарисовал всякие кнопки, лампочки и т.п. и сразу прошил плату.
Вот и я пару комплектов спаял пару месяцев назад, а первую версию прошивки написал за 5 вечеров этих праздников.PKM писал(а):Одно неясно - когда только всем этим заниматься
Я бы все что касается пульта вынес в отдельный хал.vmarkiv писал(а): очень сложное конфигурирование , нужно много переходов -в HAL файле делать , вручную все проверять не просто . По моему файлу для токарного это видно
Код: Выделить всё
~/linuxcnc/configs/plasma$ ls -lRn
.:
итого 2932
-rw-r--r-- 1 1000 1000 1945 Дек 19 2014 axisrc
-rw-r--r-- 1 1000 1000 1589409 Авг 13 21:23 BlackBox.log
-rwxr-xr-x 1 1000 1000 4171 Дек 9 2015 BlackBox.py
-rw-r--r-- 1 1000 1000 260 Дек 26 2014 custom_postgui.hal
lrwxrwxrwx 1 1000 1000 17 Авг 13 21:05 egantry.c -> egantry.c-1.0pre3
-rw-rw-r-- 1 1000 1000 19066 Май 11 2015 egantry.c-1.0pre2
-rw-r--r-- 1 1000 1000 20123 Дек 3 2015 egantry.c-1.0pre3
-rw-r--r-- 1 1000 1000 1222 Ноя 23 2015 gladevcp_postgui.hal
lrwxrwxrwx 1 1000 1000 10 Авг 13 21:05 inc -> inc-test/x
drwxr-xr-x 4 1000 1000 4096 Ноя 22 2015 inc-test
drwxr-xr-x 2 1000 1000 4096 Дек 13 2015 inc-work
-rwxr-xr-x 1 1000 1000 70 Дек 13 2015 install.old
-rwxr-xr-x 1 1000 1000 242 Дек 13 2015 install.sh
-rwxr-xr-x 1 1000 1000 2716 Дек 2 2014 limit3step.comp
-rw-r--r-- 1 1000 1000 1673 Авг 13 21:23 linuxcnc.var
-rw-r--r-- 1 1000 1000 1673 Авг 13 21:23 linuxcnc.var.bak
-rw-r--r-- 1 1000 1000 5731 Авг 13 21:06 loadrt.hal
-rwxr-xr-x 1 1000 1000 91 Дек 7 2014 plasma
-rw-r--r-- 1 1000 1000 8523 Дек 10 2015 plasma.hal
-rw-r--r-- 1 1000 1000 3932 Дек 10 2015 plasma.ini
-rw-r--r-- 1 1000 1000 11463 Ноя 29 2014 plasma.ngc
-rw-r--r-- 1 1000 1000 67149 Ноя 25 2015 plasma_panel.glade
-rw-r--r-- 1 1000 1000 487 Авг 13 21:23 plasma_panel.ini
-rwxr-xr-x 1 1000 1000 8589 Ноя 22 2015 plasma_panel.py
-rw-r--r-- 1 1000 1000 8451 Ноя 22 2015 plasma_panel.pyc
-rw-r--r-- 1 1000 1000 2699 Май 8 2015 plasma_postgui.hal
-rw-r--r-- 1 1000 1000 5616 Май 8 2015 plasma.xml
-rw-r--r-- 1 1000 1000 164 Ноя 22 2015 postgui_call_list.hal
-rw-r--r-- 1 1000 1000 1083 Дек 10 2015 restartrequire.hal
-rw-r--r-- 1 1000 1000 105 Окт 5 2014 shutdown.hal
drwx------ 2 1000 1000 4096 Ноя 22 2015 subs
-rw-r--r-- 1 1000 1000 21421 Май 30 2015 THCController.py
-rw-r--r-- 1 1000 1000 9301 Ноя 22 2015 THC.hal
-rw-r--r-- 1 1000 1000 549 Дек 7 2014 thcpanel-settings.ini
-rw-r--r-- 1 1000 1000 1602 Дек 5 2014 thcpanel-settings.py
-rw-r--r-- 1 1000 1000 1587 Дек 7 2014 thcpanel-settings.pyc
-rw-r--r-- 1 1000 1000 47566 Окт 5 2014 THC_System.pdf
-rw-r--r-- 1 1000 1000 61 Дек 13 2015 tool.tbl
-rw-r--r-- 1 1000 1000 32 Окт 5 2014 tool.tbl.bak
-rw-r--r-- 1 1000 1000 2781 Май 8 2015 vent.hal
./inc-test:
итого 16
-rw-r--r-- 1 1000 1000 414 Ноя 29 2014 vent_post.hal
-rw-r--r-- 1 1000 1000 2036 Окт 5 2014 vent.xml
drwxr-xr-x 2 1000 1000 4096 Дек 10 2015 x
drwxr-xr-x 2 1000 1000 4096 Окт 28 21:11 yz
./inc-test/x:
итого 28
-rw-r--r-- 1 1000 1000 515 Дек 3 2015 axis-x1.ini
-rw-r--r-- 1 1000 1000 517 Дек 3 2015 axis-x2.ini
-rw-r--r-- 1 1000 1000 424 Дек 23 2014 axis-y.ini
-rw-r--r-- 1 1000 1000 423 Дек 23 2014 axis-z.ini
-rw-r--r-- 1 1000 1000 811 Дек 10 2015 debug.hal
-rw-r--r-- 1 1000 1000 0 Май 30 2015 debug.plasma.ini
-rw-r--r-- 1 1000 1000 6322 Май 15 2015 hwdep.hal
./inc-test/yz:
итого 32
-rw-r--r-- 1 1000 1000 470 Дек 26 2014 axis-x1.ini
-rw-r--r-- 1 1000 1000 472 Дек 26 2014 axis-x2.ini
-rw-r--r-- 1 1000 1000 472 Дек 24 2014 axis-y.ini
-rw-r--r-- 1 1000 1000 468 Дек 25 2014 axis-z.ini
-rw-r--r-- 1 1000 1000 798 Май 30 2015 debug.hal
-rw-r--r-- 1 1000 1000 240 Май 30 2015 debug.plasma.ini
-rw-r--r-- 1 1000 1000 6319 Май 30 2015 hwdep.hal
./inc-work:
итого 28
-rw-r--r-- 1 1000 1000 521 Ноя 24 2015 axis-x1.ini
-rw-r--r-- 1 1000 1000 523 Ноя 24 2015 axis-x2.ini
-rw-r--r-- 1 1000 1000 476 Ноя 24 2015 axis-y.ini
-rw-r--r-- 1 1000 1000 474 Ноя 24 2015 axis-z.ini
-rw-r--r-- 1 1000 1000 30 Дек 10 2015 debug.hal
-rw-r--r-- 1 1000 1000 0 Май 30 2015 debug.plasma.ini
-rw-r--r-- 1 1000 1000 6448 Ноя 24 2015 hwdep.hal
./subs:
итого 32
-rwxr-xr-x 1 1000 1000 272 Ноя 22 2015 M120
-rwxr-xr-x 1 1000 1000 276 Ноя 22 2015 M121
-rwxr-xr-x 1 1000 1000 620 Дек 14 2014 M130
-rwxr-xr-x 1 1000 1000 267 Ноя 22 2015 M131
-rwxr-xr-x 1 1000 1000 272 Ноя 22 2015 M132
-rwxr-xr-x 1 1000 1000 392 Ноя 22 2015 M133
-rwxr-xr-x 1 1000 1000 249 Ноя 22 2015 M134
-rwxr-xr-x 1 1000 1000 267 Ноя 22 2015 M139
Надо второе устройство создавать.merkwurdigliebe писал(а):для остального определил второй интерфейс. а вот какой для него сделать рипорт дескриптор
Придумай свои коды клавиш, для которых нет системных событий.merkwurdigliebe писал(а):а если я хочу описать кейпад, но со своими кнопками - чтобы никакие приложения на них больше не реагировали?
Думаешь за их использование на usb.org забанят?..merkwurdigliebe писал(а):есть область reserved 235-65535, но, по-идее, эти коды нельзя использовать.
Ты поаккуратнее с ним - в нём багов хватает, он даже неправильные коды вставлять умеет...merkwurdigliebe писал(а):и HID Descriptor Tool с usb.org не дает их создать.
да не, смотрю вот в линуксячий код:UAVpilot писал(а): Думаешь за их использование на usb.org забанят?
Код: Выделить всё
case HID_UP_KEYBOARD:
set_bit(EV_REP, input->evbit);
if ((usage->hid & HID_USAGE) < 256) {
if (!hid_keyboard[usage->hid & HID_USAGE]) goto ignore;
map_key_clear(hid_keyboard[usage->hid & HID_USAGE]);
} else
map_key(KEY_UNKNOWN);
угу, ок, сэньксUAVpilot писал(а):Ты поаккуратнее с ним - в нём багов хватает, он даже неправильные коды вставлять умеет...
Потому что обработчик клавы и не должен реагировать на такие события - эти коды придётся в рукопашную отрабатывать.merkwurdigliebe писал(а):да не, смотрю вот в линуксячий код:
Код: Выделить всё
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
0x09, 0x05, // USAGE (Gamepad)
0xa1, 0x01, // COLLECTION (Application)
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
0x09, 0x37, // USAGE (Dial) rotary switch
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x25, 0x17, // LOGICAL_MAXIMUM (23)
0x75, 0x08, // REPORT_SIZE (8)
0x95, 0x01, // REPORT_COUNT (1)
0x81, 0x02, // INPUT (Data,Var,Abs)
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
0x09, 0x37, // USAGE (Dial) MPG
0x15, 0x81, // LOGICAL_MINIMUM (-127)
0x25, 0x7f, // LOGICAL_MAXIMUM (127)
0x81, 0x26, // INPUT (Data,Var,Rel,NPrf)
0x05, 0x09, // USAGE_PAGE (Button)
0x19, 0x01, // USAGE_MINIMUM (Button 1) keys
0x29, 0x20, // USAGE_MAXIMUM (Button 32)
0x15, 0x01, // LOGICAL_MINIMUM (1)
0x25, 0x20, // LOGICAL_MAXIMUM (32)
0x75, 0x08, // REPORT_SIZE (8)
0x95, 0x03, // REPORT_COUNT (3) 3 simultaneous keys
0x81, 0x00, // INPUT (Data,Ary,Abs)
0xc0 // END_COLLECTION
Код: Выделить всё
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x483 product 0x572b version 0x111
Input device name: "STMicroelectronics STM32 Human interface"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 304 (BTN_A)
Event code 305 (BTN_B)
Event code 306 (BTN_C)
Event code 307 (BTN_X)
Event code 308 (BTN_Y)
Event code 309 (BTN_Z)
Event code 310 (BTN_TL)
Event code 311 (BTN_TR)
Event code 312 (BTN_TL2)
Event code 313 (BTN_TR2)
Event code 314 (BTN_SELECT)
Event code 315 (BTN_START)
Event code 316 (BTN_MODE)
Event code 317 (BTN_THUMBL)
Event code 318 (BTN_THUMBR)
Event code 319 (?)
Event code 320 (BTN_TOOL_PEN)
Event code 321 (BTN_TOOL_RUBBER)
Event code 322 (BTN_TOOL_BRUSH)
Event code 323 (BTN_TOOL_PENCIL)
Event code 324 (BTN_TOOL_AIRBRUSH)
Event code 325 (BTN_TOOL_FINGER)
Event code 326 (BTN_TOOL_MOUSE)
Event code 327 (BTN_TOOL_LENS)
Event code 328 (BTN_TOOL_QUINTTAP)
Event code 329 (?)
Event code 330 (BTN_TOUCH)
Event code 331 (BTN_STYLUS)
Event code 332 (BTN_STYLUS2)
Event code 333 (BTN_TOOL_DOUBLETAP)
Event code 334 (BTN_TOOL_TRIPLETAP)
Event code 335 (BTN_TOOL_QUADTAP)
Event type 2 (EV_REL)
Event code 7 (REL_DIAL)
Event type 3 (EV_ABS)
Event code 7 (ABS_RUDDER)
Value 0
Min 0
Max 23
Flat 1
Event type 4 (EV_MSC)
Event code 4 (MSC_SCAN)
Код: Выделить всё
KEY 0.btn-thumbl
KEY 0.btn-tr
KEY 0.btn-tool-rubber
KEY 0.btn-tl
KEY 0.btn-thumbr
KEY 0.btn-tool-mouse
KEY 0.btn-a
KEY 0.btn-b
KEY 0.btn-c
KEY 0.btn-tool-airbrush
KEY 0.btn-tl2
KEY 0.btn-tool-quadtap
KEY 0.btn-tool-finger
KEY 0.btn-tool-brush
KEY 0.btn-x
KEY 0.btn-y
KEY 0.btn-z
KEY 0.btn-stylus
KEY 0.btn-touch
KEY 0.btn-select
KEY 0.key-319
KEY 0.btn-tool-tripletap
KEY 0.btn-stylus2
KEY 0.btn-digi
KEY 0.btn-start
KEY 0.btn-mode
KEY 0.btn-tool-pencil
KEY 0.btn-tool-lens
KEY 0.btn-tool-doubletap
KEY 0.btn-tr2
KEY 0.key-328
KEY 0.key-329
REL 0.rel-dial-position
ABS 0.abs-rudder-position
Всё есть - см. например в моих исходниках.merkwurdigliebe писал(а):ну почему в HID нет возможности описать просто элементы управления, без привязки к конкретным функциям?? 30 кнопок, скажем. или абстрактное колесо для MPG... не понимаю...
У моей панельки Сименса стоит STM32 которая опрашивает цифровую клавиатуру и эмулирует клаву. К STM32 подключена и мышка.merkwurdigliebe писал(а):1. алфавитно-цифровые клавиши, enter, shift, курсор, backspace, F1..F7 и т.п. передавать как нажатия на стандартной клавиатуре. чтобы работало везде, начиная с BIOS
У меня считывает галетник Ардуина и шлет по МодБасу.merkwurdigliebe писал(а):4. комбинированный галетник (выбор режима и значения MPG/JOG/FEED) пока не придумал как представить. наверное просто передавать позицию, а потом обрабатывать и генерить соответствующие сигналы на активацию режимов и установки множителей. надо пробовать, пока не представляю
Там ничего секретного нет - используется класс HID. LinuxCNC HID Extender этот-же протокол использует.aftaev писал(а):Самому интересно что она там по USB шлет.
на ее USB HID report descriptor интересно посмотреть, агаaftaev писал(а):merkwurdigliebe, купили панельку новую Сименс от 808D, она USB. На ней кнопочки, галетники, и индикация номера инструмента, лампошки. Самому интересно что она там по USB шлет. Как приползет можно будет обзорчик сделать, если интересно людям будет
недели через две мож приползет, если звезды правильно выстроятсяmerkwurdigliebe писал(а):на ее USB HID report descriptor интересно посмотреть, ага