Ошибка в работе с usb_interrupt_read
От: __GnoM  
Дата: 10.01.06 13:57
Оценка:
Есть проблема, а имеенно принтер с USB интерфейсом.

С принтера необходимо получить его статус, а именно информацию о кодичестве бумаги. Для этого на принтер посылается специальная команда (использовался usb_interrupt_write()). ответом является всего один байт, однако функция usb_interrupt_read(), выдает сообщение "device timeout", функции usb_reap_async().

Endpoint принтера 0x02 для посылки и 0x81 для приёма. Принтер успешно принимает команды на печать, это проверено.

Команда на посылку запроса: WrLen = usb_interrupt_write(hPrinter,0x02,(char*)&StatusRequest[1],StatusRequest[0],500); --- возвразает 3, что и нужно.

Команда на чтение ответа: RdLen = usb_interrupt_read(hPrinter,0x81,(char*)&StatusByte,sizeof(StatusByte),1500); --- возвращает -116, всегда.

Если кто знает решение, буду очень признателен.

11.01.06 17:17: Перенесено из 'C/C++. Прикладные вопросы'
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.