Прошу помощи. Ситуация следующая. Уже давно борюсь с VCP, который наотрез отказывался подключаться в составе комплексного устройства черз IAD или union functional дескрипторы. Вообщем, подключил я VCP с его CDC классом, не как описано в большинстве примеров - через два интерфейса (булк и interrupt) а через один, содержащий 3 end points. Всё вродебы работает отлично, устройство определяется, данные передаются, - но вот не задача: при определенных условиях пакет теряется. А именно. Если устройство передаёт один пает длинной 64 байта, то на Virtual COM он не приходит. При иных параметрах, если пакет 63 байта, он приходит, если устройство посылает несколько 64-ёх байтных пакетов, они доходят. Но если послан только один 64 байтный пакет ни COM порт, ни usb снифер по имени "Usb Monitor" его не видят, а в это время прерывание Correct Transfer рапортует об удачной отправке. Думаю что сниферу особо доверять нельзя, т.к. он наверное просто недостаточно близко к аппаратуре сидит, есть ощущение что драйвер usbser.sys чтото с буферированием тупит.
Ответье ели вы сталкивались или слышали о чем то таком.
Мне нужно хотябы объяснение почему не работает, пусть даже не заработает. --------------- P.S. В сторону устройства всё передается нормально
Сообщение отредактировал Usatyj - Aug 5 2008, 06:33
|