|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.05.2016, 20:02 | #1 |
Регистрация: 16.05.2016
Сообщений: 3
|
.NET 4.x Чтение данных с Hid устроства с использованием HidSharp.dll
Добрый день.
Пытаюсь решить проблему как же правильно считать с HID устройства нужные мне байты. На данный момент я умею передавать данные в устройство с ПК. В C# делаю это так: Код:
C++ Код:
C++ Код:
Теперь хочу считать с устройства 3 байта, делаю это в приложении C# следующим способом: Код:
Такая проблема. Просьба подсказать: Как вообще реализовать передачу из USB контроллера в ПК? Как ПК выбирает конечную точку для приема и передачи? Связан ли номер конечной точки в дескрипторе с этой процедурой? Как правильно пользоваться библиотекой HidSharp чтобы считать данные с устройства? (никаких флагов прерывания при выполнении последней части кода не возникает как будто до USB контроллера не доходит запрос. При передаче данных из ПК флаги и запрос появляется в EP0) Влияет ли первый байт "bytes[0] = 2;" на что либо? (Пробовал так и 0) Читал что он не используется для передачи и приема данных и как-то влияет на Report ID, но не до конца понятно как он это делает и что это такое. Заранее спасибо. |
05.10.2016, 19:45 | #2 |
Регистрация: 26.09.2016
Сообщений: 8
|
Доброго времени суток.
Можете подсказать? Нужно получить 64 байта данных с USB HID устройства. |
05.10.2016, 21:46 | #3 | |
Регистрация: 16.05.2016
Сообщений: 3
|
Цитата:
Спасибо что откликнулись, мне надо передать с hid usb устройства в компьютер 15 байт и в hid usb устройство с компьютера 15 байт. Но я не понимаю как это сделать с тем,что я имею. |
|
06.10.2016, 13:14 | #4 |
Старожил
Регистрация: 25.08.2011
Сообщений: 2,841
|
Не знаю как в вашей библиотеке, но усб ждет от любого источника пакет в 64 байта. Это обязательно.
Вот есть библиотека для работу с усб. В ней все достаточно просто. Код:
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два. |
06.10.2016, 18:54 | #5 |
Регистрация: 16.05.2016
Сообщений: 3
|
Добрый день!
Вопрос: функции Код:
Код:
Я обязательно попробую сделать это по Вашему примеру. И насколько я изучал Агурова, размер принятых и отправленных байт зависит от: Код:
но самый важный вопрос правильно ли составлен hid descriptor? |
06.10.2016, 21:27 | #6 |
Старожил
Регистрация: 25.08.2011
Сообщений: 2,841
|
Это переопределенные функции класса Forms и базового класса обработчика сообщений оконного приложения. Вызываются системой и доп.привязки не требуют. достаточно в коде формы расположить их.
Вообще весь протокол USB разрабатывали явно тяжело больные психически люди. разбираться с внутренней структурой дескрипторов, булок и пайпов это еще то извращение над мозгом. Конечно почитать для общего развития можно... но эта библиотека это самое простое что нашлось для работы с хидом. Сам использовал эту библиотеку для программы которая работает с устройствами на базе микроконтроллеров PIC. Только прописать пид и вид и работа идет на ура, без сложных обработок.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два. |
16.10.2016, 19:23 | #7 |
Регистрация: 26.09.2016
Сообщений: 8
|
Уважаемый, WorldMaster, могли бы Вы объяснить, что за объект с именем "Data", то есть как он объявляется в коде? Если есть возможность, можете код целиком показать по приёму 64 байт данных? Просто достаточно давно пытаюсь сделать это, но уровень программирования достаточно мал, как я недавно понял, для реализации этого.
|
16.10.2016, 23:21 | #8 |
Старожил
Регистрация: 25.08.2011
Сообщений: 2,841
|
Это просто массив данных .. byte[] Data = new byte[64]
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два. |
17.10.2016, 12:59 | #9 |
Регистрация: 26.09.2016
Сообщений: 8
|
Добрый день, WorldMaster, спасибо за ответ, но Visual Studio, тем не менее выдаёт ошибку по поводу метода "Input": "System.Array" не содержит определения для "Input" и не был найден метод расширения "Input", принимающий тип "System.Array" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку).
|
17.10.2016, 21:37 | #10 |
Старожил
Регистрация: 25.08.2011
Сообщений: 2,841
|
Да сделайте вы вот так:
Код:
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
не получается линкнуть hid.dll | wanes101 | Visual C++ | 3 | 05.01.2016 09:39 |
USB ручной сканер. Перехват данных в HID режиме | VitalyaVentel | Общие вопросы Delphi | 14 | 28.11.2012 09:31 |
Чтение файла с использованием TFileStream | Desha | Помощь студентам | 0 | 13.05.2011 22:18 |
Проблема с использованием Net Use | Rovert | Операционные системы общие вопросы | 2 | 21.07.2010 07:39 |
Многопоточный код на C++ с использованием .NET | UltroMain | Общие вопросы .NET | 1 | 27.12.2009 23:20 |