Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
9 / 9 / 5
Регистрация: 21.09.2015
Сообщений: 102
1

Прием данных по USB от HID устройства

09.10.2015, 15:02. Просмотров 3394. Ответов 4
Метки нет (Все метки)

Добрый день. Столкнулся с нетривиальной для себя задачей получения данных по usb с hid-устройства. Вся документация по данному устройству была потеряна, поскольку сделано оно было 8 лет назад в единичном экземпляре. Единственное что осталось - exe файл программы, которая может принимать данные с устройства.
Используя дополнительный софт (Device Monitoring Studio) выяснил, что с помощью программы устройству передается 129 репортов типа feature. Накидал по-быстрому программку, используя компонент TjHidDeviceController из JVCL.
Отправить данные устройству получилось, принять данные тоже. Но приходит какая-то ерунда.
Вот пример set запроса:
Кликните здесь для просмотра всего текста
ReportData[0]:=1;
ReportData[1]:=1;
ReportData[2]:=249;
ReportData[3]:=40;
ReportData[4]:=0;
ReportData[5]:=156;
ReportData[6]:=26;
ReportData[7]:=1;
ReportData[8]:=189;
ReportData[9]:=56;
ReportData[10]:=29;
ReportData[11]:=75;
ReportData[12]:=0;
ReportData[13]:=0;
ReportData[14]:=0;
ReportData[15]:=0;
ReportData[16]:=0;
ReportData[17]:=240;
ReportData[18]:=248;
ReportData[19]:=40;
ReportData[20]:=0;
ReportData[21]:=1;
ReportData[22]:=0;
ReportData[23]:=0;
ReportData[24]:=0;
ReportData[25]:=0;
ReportData[26]:=0;
ReportData[27]:=0;
ReportData[28]:=0;
ReportData[29]:=44;
ReportData[30]:=249;
ReportData[31]:=40;
ReportData[32]:=0;
ReportData[33]:=2;
ReportData[34]:=0;
ReportData[35]:=0;
ReportData[36]:=0;
ReportData[37]:=156;
ReportData[38]:=26;
ReportData[39]:=1;
ReportData[40]:=189;
ReportData[41]:=28;
ReportData[42]:=0;
ReportData[43]:=0;
ReportData[44]:=0;
ReportData[45]:=32;
ReportData[46]:=8;
ReportData[47]:=3;
ReportData[48]:=0;
ReportData[49]:=80;
ReportData[50]:=0;
ReportData[51]:=0;
ReportData[52]:=0;
ReportData[53]:=56;
ReportData[54]:=29;
ReportData[55]:=75;
ReportData[56]:=0;
ReportData[57]:=0;
ReportData[58]:=0;
ReportData[59]:=0;
ReportData[60]:=0;
ReportData[61]:=15;
ReportData[62]:=0;
ReportData[63]:=88;
ReportData[64]:=118;
ReportData[65]:=156;
ReportData[66]:=26;
ReportData[67]:=1;
ReportData[68]:=189;
ReportData[69]:=119;
ReportData[70]:=0;
ReportData[71]:=0;
ReportData[72]:=0;
ReportData[73]:=16;
ReportData[74]:=0;
ReportData[75]:=0;
ReportData[76]:=0;
ReportData[77]:=1;
ReportData[78]:=0;
ReportData[79]:=0;
ReportData[80]:=0;
ReportData[81]:=0;
ReportData[82]:=0;
ReportData[83]:=0;
ReportData[84]:=0;
ReportData[85]:=0;
ReportData[86]:=0;
ReportData[87]:=0;
ReportData[88]:=0;
ReportData[89]:=116;
ReportData[90]:=0;
ReportData[91]:=16;
ReportData[92]:=1;
ReportData[93]:=15;
ReportData[94]:=0;
ReportData[95]:=0;
ReportData[96]:=0;
ReportData[97]:=1;
ReportData[98]:=0;
ReportData[99]:=0;
ReportData[100]:=0;
ReportData[101]:=3;
ReportData[102]:=0;
ReportData[103]:=0;
ReportData[104]:=0;
ReportData[105]:=134;
ReportData[106]:=0;
ReportData[107]:=16;
ReportData[108]:=1;
ReportData[109]:=240;
ReportData[110]:=69;
ReportData[111]:=154;
ReportData[112]:=0;
ReportData[113]:=0;
ReportData[114]:=0;
ReportData[115]:=0;
ReportData[116]:=0;
ReportData[117]:=72;
ReportData[118]:=249;
ReportData[119]:=40;
ReportData[120]:=0;
ReportData[121]:=15;
ReportData[122]:=0;
ReportData[123]:=0;
ReportData[124]:=0;
ReportData[125]:=3;
ReportData[126]:=0;
ReportData[127]:=0;
ReportData[128]:=0;

Вот пример get запроса (того что получаю):
Кликните здесь для просмотра всего текста
Ђ из репорта 2
х из репорта 3
 из репорта 4
* из репорта 6
t из репорта 7
я из репорта 8
v из репорта 9
4 из репорта 10
Ј из репорта 11
; из репорта 12
Ш из репорта 13
ю из репорта 14
я из репорта 15
я из репорта 16
я из репорта 17
‚ из репорта 18
e из репорта 19
 из репорта 20
w из репорта 21
к из репорта 22
i из репорта 23
ю из репорта 24
v из репорта 25
` из репорта 26
+ из репорта 27
Z из репорта 28
из репорта 30
3 из репорта 31
' из репорта 32
Ї из репорта 33
X из репорта 34
+ из репорта 35
Z из репорта 36
W из репорта 40
` из репорта 42
+ из репорта 43
Z из репорта 44
+ из репорта 46
» из репорта 50
 из репорта 51
 из репорта 52
… из репорта 53
 из репорта 54
 из репорта 58
 из репорта 62
 из репорта 70
и из репорта 74
ф из репорта 75
 из репорта 76
 из репорта 77
b из репорта 90
@ из репорта 93
» из репорта 102
 из репорта 103
 из репорта 104
… из репорта 105
* из репорта 106
„ из репорта 107
Y из репорта 108
Р из репорта 110
X из репорта 111
¬ из репорта 112
 из репорта 114
х из репорта 115
 из репорта 116
Р из репорта 118
X из репорта 119
¬ из репорта 120
? из репорта 122
6 из репорта 123
@ из репорта 124
Ф из репорта 126
– из репорта 127
B из репорта 128


Как работать с полученными данными дальше?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.10.2015, 15:02
Ответы с готовыми решениями:

Pic18f4550 USB HID прием данных
Подскажите, пожалуйста, есть ли какой флаг при работе pic18f4550 с usb, сигнализирующий что пришли...

Перехват данных с USB устройств класса HID
Доброго всем времени суток! Как перехватить поток данных с USB устройства, которое относится к...

Отправка данных в STM32F407VG Discovery используя HID USB в C#
Здравствуйте киберфорумчане ) Недавно задался вопросом как управлять контроллером STM32F407VG...

STM32F4 USB HID Host отправка данных в девайс
Здравствуйте. Кто нибудь пробовал подключить кастомный девайс к сабжу? Интересует реализация...

4
2474 / 1770 / 380
Регистрация: 11.09.2009
Сообщений: 6,557
09.10.2015, 15:12 2
Цитата Сообщение от slovnosvoboda Посмотреть сообщение
Вся документация по данному устройству была потеряна ...
Как работать с полученными данными дальше?
Если не знаете назначения устройства, что и в каком формате оно "выдаёт" - то никак.
0
9 / 9 / 5
Регистрация: 21.09.2015
Сообщений: 102
09.10.2015, 15:40  [ТС] 3
Цитата Сообщение от i8085 Посмотреть сообщение
Если не знаете назначения устройства, что и в каком формате оно "выдаёт" - то никак.
Устройство используется для измерения магнитных свойств провода. На самом устройстве имеется дисплей, на котором изображен график некоторого сигнала, над которым в свою очередь отображено численное значение амплитуды данного сигнала.
В программе разработчиков этого устройства при нажатии на кнопку отображается то же самое, только без численного значения амплитуды.
Вот скриншот самой программы.
Численное значение амплитуды указано в сохраняемом с помощью программы pdf файле.
скриншот из pdf файла.

Вот это значение я и пытаюсь "выковырять" из этого устройства.
0
2645 / 2268 / 278
Регистрация: 24.12.2010
Сообщений: 13,725
09.10.2015, 20:36 4
Цитата Сообщение от slovnosvoboda Посмотреть сообщение
типа feature
что это за тип такой ?
0
2474 / 1770 / 380
Регистрация: 11.09.2009
Сообщений: 6,557
10.10.2015, 08:22 5
Цитата Сообщение от slovnosvoboda Посмотреть сообщение
дисплей, на котором изображен график некоторого сигнала ...
В программе разработчиков этого устройства при нажатии на кнопку отображается то же самое
Скорее всего этот график устройство и выдаёт. Можно попробовать сравнить поток чисел от устройства и график на его дисплее. Может удастся "на глаз" определить формат чисел.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.10.2015, 08:22

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Прием/передача данных с устройства по Bluetooth BLE
Добрый день. Подскажите, кто-нибудь сталкивался с подключением, приемом и передачей данных...

Перехват данных USB сканнера Xenon 1900 в HID режиме
Как перехватить поток данных идущий со сканера в ПК через USB вход ?

прием данных по usb
недавно в руки попала отладочная плата на stm32l , подскажите пожалуйста, как на компьютер...

COM-USB приём, передача данных
Добрый день! Такая проблема: данные с микроконтроллера ATMEGA 128 идут по RS232C после чего...

Прием данных через USB порт
кто-нить может подсказать компоненты для работы с USB из Delphi, если точнее нужно считывание...

HID Class на V-USB (статья USB для AVR. Часть 2.)
Здравствуйте. Решил перейти от библиотеки Libusb на HIDlibrary и как раз нашел эту статью. Но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.