Member 13947289 Ответов: 1

Проблема с файлом записи с usb-устройством


Привет друзья мои

У меня есть проект для связи с usb-устройством с помощью usb-шины. Устройство имеет свой собственный драйвер и коммуникационный протокол Guid . В его guid есть такая особенность :"после установки USB-драйвера любая программа может взаимодействовать с устройством с помощью "CreateFile", "ReadFile" и "WriteFile", общих системных функций Windows." Поэтому я последовал инструкциям, и функция Creatfile() работает очень хорошо. Моя проблема заключается в функциях Writefile()и ReadFile. Он всегда показывает эту ошибку 3758100489 : может ли кто-нибудь мне помочь ? большое вам спасибо P. s USB path is right 100%
В книге guid есть следующее примечание:все сообщения используют порядок байтов в стиле Intel, где поля размером более одного байта хранятся в памяти, поэтому
что наименее значимая часть находится в самом низком адресе.
Поэтому я тоже попытался использовать функции для преобразования в littel Endien

Что я уже пробовал:

Я попытался использовать перекрывающийся параметр в Creatfile() и Writefile (), но все равно столкнулся с той же проблемой.
я пытался использовать различные формы пакета сообщений с помощью идентификаторов GUID тоже

1 Ответов

Рейтинг:
1

Rick York

Одна странная вещь с кодами ошибок Windows API заключается в том, что они чаще всего документируются в шестнадцатеричной форме. Этот код ошибки-E0001009 в шестнадцатеричном формате, и, согласно google, для него существует несколько различных значений. Один из них-USBIO_ERR_NOT_BOUND. Причина: ручка не привязана к трубе. Об этой ошибке сообщает драйвер USBIO. Я рекомендую искать этот код ошибки в любой документации, которая у вас есть для этого устройства.

Несколько советов здесь: отображение кодов ошибок в шестнадцатеричном формате. Если вы используете printf или sprintf для работы с ними, то формат "%08X" для отображения кода ошибки в шестнадцатеричном формате.

Кроме того, поскольку большинство машин windows работают на процессоре Intel, данные, скорее всего, уже будут в формате little endian, так что вам не придется беспокоиться о его преобразовании.


Member 13947289

Спасибо Рик
извините за опоздание но в прошлый раз я действительно был басовитым:
Так что вы правы есть проблема с проблемой трубы :
Поэтому я думаю, что у меня есть два варианта выбора : Createpipe() или CreateNamedpipe();
Я попробовал Createpipe().. затем Writefile() и Readfile() работают без ошибок, но устройство не реагирует.
С помощью CreateNamedpipe() как я могу использовать usb-путь для создания правильного имени канала ?