LinuxCNC HID Extender
-
- Мастер
- Сообщения: 516
- Зарегистрирован: 21 янв 2012, 00:23
- Репутация: 32
- Откуда: Ивано-Франковск
- Контактная информация:
Re: LinuxCNC HID Extender
Схема пульта из GenericHid . Фото пульта сделаю после Рождественских праздников .
- PKM
- Почётный участник
- Сообщения: 4263
- Зарегистрирован: 31 мар 2011, 18:11
- Репутация: 705
- Настоящее имя: Андрей
- Откуда: Украина
- Контактная информация:
Re: LinuxCNC HID Extender
Кинул в корзину на али Teensy 2.0.
Одно неясно - когда только всем этим заниматься
Одно неясно - когда только всем этим заниматься
- selenur
- Почётный участник
- Сообщения: 4604
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1621
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: LinuxCNC HID Extender
Ну да это ещё прощеUAVpilot писал(а):Если по быстрому получить результат прям сейчас, то это http://generichid.sourceforge.net/ + поддерживаемые проектом платы - там даже программировать не надо, в визуальном редакторе нарисовал всякие кнопки, лампочки и т.п. и сразу прошил плату.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: LinuxCNC HID Extender
Вот и я пару комплектов спаял пару месяцев назад, а первую версию прошивки написал за 5 вечеров этих праздников.PKM писал(а):Одно неясно - когда только всем этим заниматься
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Мастер
- Сообщения: 516
- Зарегистрирован: 21 янв 2012, 00:23
- Репутация: 32
- Откуда: Ивано-Франковск
- Контактная информация:
Re: LinuxCNC HID Extender
Я ,аналогично , сделал несколько вариантов на Teensy , платы запустил у производство свои , но очень сложное конфигурирование , нужно много переходов -в HAL файле делать , вручную все проверять не просто . По моему файлу для токарного это видно . Возможности этой идеологии прекрасны , но у меня пришлось делать много плат переходников на 24 вольта , и в результате идею убило . На пульт я вывел функции настройки и подстройки , но экранчик 4- строчный , маленький , на экране компа видно лучше
- PKM
- Почётный участник
- Сообщения: 4263
- Зарегистрирован: 31 мар 2011, 18:11
- Репутация: 705
- Настоящее имя: Андрей
- Откуда: Украина
- Контактная информация:
Re: LinuxCNC HID Extender
Я бы все что касается пульта вынес в отдельный хал.vmarkiv писал(а): очень сложное конфигурирование , нужно много переходов -в HAL файле делать , вручную все проверять не просто . По моему файлу для токарного это видно
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: LinuxCNC HID Extender
Сия идея очень помогает ориентироваться в больших конфигах.
Вот мой пример:
Вот мой пример:
Код: Выделить всё
~/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
- Мастер
- Сообщения: 608
- Зарегистрирован: 17 дек 2013, 22:14
- Репутация: 580
- Откуда: București
- Контактная информация:
Re: LinuxCNC HID Extender
занялся похожей штукой, но хочу чтобы она еще и стандартной клавиатурой прикидывалясь. никогда с USB до этого не связывался и что-то всю голову сломал... системную клавиатуру, вроде, сделал. для остального определил второй интерфейс. а вот какой для него сделать рипорт дескриптор - не могу придумать. понятно, что можно
usage page - vendor defined
usage - vendor
и шли, что хочешь. но тогда его linux как input device не опознает и hal_input, соответственно, не видит. а если сделать
usage page - generic desktop
usage - чего-нить из стандартного
то в этом стандартном придумана ну просто куча всяких штук, но все они имеют какое-то предназначение. станочных среди нех нет. а если я хочу описать кейпад, но со своими кнопками - чтобы никакие приложения на них больше не реагировали? или MPG по аналогии с мышинным колеcом? это как-то делается?
usage page - vendor defined
usage - vendor
и шли, что хочешь. но тогда его linux как input device не опознает и hal_input, соответственно, не видит. а если сделать
usage page - generic desktop
usage - чего-нить из стандартного
то в этом стандартном придумана ну просто куча всяких штук, но все они имеют какое-то предназначение. станочных среди нех нет. а если я хочу описать кейпад, но со своими кнопками - чтобы никакие приложения на них больше не реагировали? или MPG по аналогии с мышинным колеcом? это как-то делается?
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: LinuxCNC HID Extender
Надо второе устройство создавать.merkwurdigliebe писал(а):для остального определил второй интерфейс. а вот какой для него сделать рипорт дескриптор
Придумай свои коды клавиш, для которых нет системных событий.merkwurdigliebe писал(а):а если я хочу описать кейпад, но со своими кнопками - чтобы никакие приложения на них больше не реагировали?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- merkwurdigliebe
- Мастер
- Сообщения: 608
- Зарегистрирован: 17 дек 2013, 22:14
- Репутация: 580
- Откуда: București
- Контактная информация:
Re: LinuxCNC HID Extender
свои придумать - так нет такой возможности, если следовать стандарту. в usage page keyboard можно использовать только определенные клавиши. есть область reserved 235-65535, но, по-идее, эти коды нельзя использовать. и HID Descriptor Tool с usb.org не дает их создать. а ведь какой только херни там не предусмотрено - вплоть до органов управления ковром-самолетом (sic! реально!). а вот про шпиндель они не вспомнили...
как все сделать c hidcomp - понятно, но он сложный по сравнению с hal_input т.к. делает все сам. думал - почитаю про USB и использую все готовое. ан нет. напридумывали фигни всякой... комитеты... это примерно как файловая система позволяла бы хранить только вордовские документы, картинки и музыку, например
как все сделать c hidcomp - понятно, но он сложный по сравнению с hal_input т.к. делает все сам. думал - почитаю про USB и использую все готовое. ан нет. напридумывали фигни всякой... комитеты... это примерно как файловая система позволяла бы хранить только вордовские документы, картинки и музыку, например
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: LinuxCNC HID Extender
Думаешь за их использование на usb.org забанят?..merkwurdigliebe писал(а):есть область reserved 235-65535, но, по-идее, эти коды нельзя использовать.
Ты поаккуратнее с ним - в нём багов хватает, он даже неправильные коды вставлять умеет...merkwurdigliebe писал(а):и HID Descriptor Tool с usb.org не дает их создать.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- merkwurdigliebe
- Мастер
- Сообщения: 608
- Зарегистрирован: 17 дек 2013, 22:14
- Репутация: 580
- Откуда: București
- Контактная информация:
Re: LinuxCNC HID Extender
да не, смотрю вот в линуксячий код: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 писал(а):Ты поаккуратнее с ним - в нём багов хватает, он даже неправильные коды вставлять умеет...
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: LinuxCNC HID Extender
Потому что обработчик клавы и не должен реагировать на такие события - эти коды придётся в рукопашную отрабатывать.merkwurdigliebe писал(а):да не, смотрю вот в линуксячий код:
Посмотри на xkbcommon...
А зачем тебе именно клавиатура? Можно-же просто кнопками/джойстиками прикидываться, да и просто /dev/input/eventN самому читать.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- merkwurdigliebe
- Мастер
- Сообщения: 608
- Зарегистрирован: 17 дек 2013, 22:14
- Репутация: 580
- Откуда: București
- Контактная информация:
Re: LinuxCNC HID Extender
можно и баттоны, но там тоже все расписано по функциям. вот чего evtest пишет про мой дескриптор:
REL_DIAL - это MPG
ABS_RUDDER - галетник на 24 положения
hal_input насоздает пинов с соответсвующимим названиями:
че хочу-то:
есть вот эта мембранная панель с разными кнопками, галетник на 24 позиции, MPG и, возможно, аналоговый джойстик.
1. алфавитно-цифровые клавиши, enter, shift, курсор, backspace, F1..F7 и т.п. передавать как нажатия на стандартной клавиатуре. чтобы работало везде, начиная с BIOS
2. я пока не уверен, что все получится сделать через пины, поэтому несколько клавиш без аналогов на стандартной клавиатуре, типа main menu, edit, simul, exec, reset тоже смапить на какие-то существующие клавиатурные коды. чтобы потом в интерфейсе (axis, например) обрабатывать их аналогично:
root_window.bind("<Key-F12>", commands.spindle_increase)
3. остальные кнопки экпортировать в HAL пины с помощью hal_input (ну или своего аналога). типа jog, rapid.. и подключить к соответствующим пинам axis, halui и т.п.
4. комбинированный галетник (выбор режима и значения MPG/JOG/FEED) пока не придумал как представить. наверное просто передавать позицию, а потом обрабатывать и генерить соответствующие сигналы на активацию режимов и установки множителей. надо пробовать, пока не представляю
5. MPG и джойстик понятно - к соответствующим пинам
ну почему в HID нет возможности описать просто элементы управления, без привязки к конкретным функциям?? 30 кнопок, скажем. или абстрактное колесо для MPG... не понимаю...
Код: Выделить всё
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)
ABS_RUDDER - галетник на 24 положения
hal_input насоздает пинов с соответсвующимим названиями:
Код: Выделить всё
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
есть вот эта мембранная панель с разными кнопками, галетник на 24 позиции, MPG и, возможно, аналоговый джойстик.
1. алфавитно-цифровые клавиши, enter, shift, курсор, backspace, F1..F7 и т.п. передавать как нажатия на стандартной клавиатуре. чтобы работало везде, начиная с BIOS
2. я пока не уверен, что все получится сделать через пины, поэтому несколько клавиш без аналогов на стандартной клавиатуре, типа main menu, edit, simul, exec, reset тоже смапить на какие-то существующие клавиатурные коды. чтобы потом в интерфейсе (axis, например) обрабатывать их аналогично:
root_window.bind("<Key-F12>", commands.spindle_increase)
3. остальные кнопки экпортировать в HAL пины с помощью hal_input (ну или своего аналога). типа jog, rapid.. и подключить к соответствующим пинам axis, halui и т.п.
4. комбинированный галетник (выбор режима и значения MPG/JOG/FEED) пока не придумал как представить. наверное просто передавать позицию, а потом обрабатывать и генерить соответствующие сигналы на активацию режимов и установки множителей. надо пробовать, пока не представляю
5. MPG и джойстик понятно - к соответствующим пинам
ну почему в HID нет возможности описать просто элементы управления, без привязки к конкретным функциям?? 30 кнопок, скажем. или абстрактное колесо для MPG... не понимаю...
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: LinuxCNC HID Extender
1. Ну и пусть эти кнопки будут на устройстве "клава" и посылают аналогичные коды...
2. На клавиатурах есть "неиспользуемые" коды. Стандартных кодов 255, а кнопок на PC клавиатуре 103-106... Например на клавиатуре Sun есть штатная кнопка Edit...
3. создаёшь HID-устройство "прочие кнопки" и описываешь их там.
4. такими-же кнопками в устройстве "прочие кнопки".
2. На клавиатурах есть "неиспользуемые" коды. Стандартных кодов 255, а кнопок на PC клавиатуре 103-106... Например на клавиатуре Sun есть штатная кнопка Edit...
3. создаёшь HID-устройство "прочие кнопки" и описываешь их там.
4. такими-же кнопками в устройстве "прочие кнопки".
Всё есть - см. например в моих исходниках.merkwurdigliebe писал(а):ну почему в HID нет возможности описать просто элементы управления, без привязки к конкретным функциям?? 30 кнопок, скажем. или абстрактное колесо для MPG... не понимаю...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Зачётный участник
- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6192
- Откуда: Казахстан.
- Контактная информация:
Re: LinuxCNC HID Extender
У моей панельки Сименса стоит STM32 которая опрашивает цифровую клавиатуру и эмулирует клаву. К STM32 подключена и мышка.merkwurdigliebe писал(а):1. алфавитно-цифровые клавиши, enter, shift, курсор, backspace, F1..F7 и т.п. передавать как нажатия на стандартной клавиатуре. чтобы работало везде, начиная с BIOS
Не все кнопки подключены к STM32. Потому все хочу сделать эмуляцию клавиатуры на Ардуино. Например: при нажатии на определенную мембранную кнопочку должна посылаться команда CTRL+пробел(закрыть окошки сообщений).
У меня считывает галетник Ардуина и шлет по МодБасу.merkwurdigliebe писал(а):4. комбинированный галетник (выбор режима и значения MPG/JOG/FEED) пока не придумал как представить. наверное просто передавать позицию, а потом обрабатывать и генерить соответствующие сигналы на активацию режимов и установки множителей. надо пробовать, пока не представляю
merkwurdigliebe, купили панельку новую Сименс от 808D, она USB. На ней кнопочки, галетники, и индикация номера инструмента, лампошки. Самому интересно что она там по USB шлет. Как приползет можно будет обзорчик сделать, если интересно людям будет
Есть предположение что по USB панелька от ЧПУ получает номер инструмента и включает нужные лампоШки. У старых моделей часть кнопок работало по USB, а часть подключалась отдельным шлефом к ЧПУ или к PLC.
На 0:20мин нижняя панель.
https://www.youtube.com/watch?v=LO1Jv_H2T54
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: LinuxCNC HID Extender
Там ничего секретного нет - используется класс HID. LinuxCNC HID Extender этот-же протокол использует.aftaev писал(а):Самому интересно что она там по USB шлет.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- merkwurdigliebe
- Мастер
- Сообщения: 608
- Зарегистрирован: 17 дек 2013, 22:14
- Репутация: 580
- Откуда: București
- Контактная информация:
Re: LinuxCNC HID Extender
на ее USB HID report descriptor интересно посмотреть, агаaftaev писал(а):merkwurdigliebe, купили панельку новую Сименс от 808D, она USB. На ней кнопочки, галетники, и индикация номера инструмента, лампошки. Самому интересно что она там по USB шлет. Как приползет можно будет обзорчик сделать, если интересно людям будет
-
- Зачётный участник
- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6192
- Откуда: Казахстан.
- Контактная информация:
Re: LinuxCNC HID Extender
Там тоже Linux стоит
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
-
- Зачётный участник
- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6192
- Откуда: Казахстан.
- Контактная информация:
Re: LinuxCNC HID Extender
недели через две мож приползет, если звезды правильно выстроятсяmerkwurdigliebe писал(а):на ее USB HID report descriptor интересно посмотреть, ага
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.