да читал. но это не ReadFile (он рабоатет нормально, как и HidD_GetFeature)
проблема есть при записи - я отсылаю репорт в USB, а контроллер принимает
предыдущий отосланный репорт.
пример hclient из Windows XP DDK "работает" также.
либо у pic18f4455 есть какой-то приёмный буфер вне 2 кБ ОЗУ, либо устройство заставляет хост задерживать передачу репортов...
вот лог USB Monitor'a:
отправка пакета репорта повторноЦитата
000037: Class-Specific Request (DOWN), 01.08.2006 16:27:10.8593750 +29.9843750
Destination: Inrterface, Index 0
Reserved Bits: 34
Request: 0x9
Value: 0x300
Send 0x7 bytes to the device
00 01 03 04 05 06 08 .......
000038: Control Transfer (UP), 01.08.2006 16:27:10.8750000 +0.0156250
Pipe Handle: 0xfdfc0c28
00 01 03 04 05 06 08 .......
Setup Packet
21 09 00 03 00 00 07 00 !.......
Recipient: Inrterface
Request Type: Class
Direction: Host->Device
Request: 0x9 (Unknown)
Value: 0x300
Index: 0x0
Length: 0x7
запрос текущих данных (устанавливаются записью репорта с хоста)Цитата
000039: Class-Specific Request (DOWN), 01.08.2006 16:27:18.9531250 +8.0781250
Destination: Inrterface, Index 0
Reserved Bits: 34
Request: 0x1
Value: 0x300
Get 0x7 bytes from the device
00 00 00 00 00 00 00 .......
000040: Control Transfer (UP), 01.08.2006 16:27:18.9687500 +0.0156250
Pipe Handle: 0xfdfc0c28
00 01 03 04 05 06 08 .......
Setup Packet
A1 01 00 03 00 00 07 00 Ў.......
Recipient: Inrterface
Request Type: Class
Direction: Device->Host
Request: 0x1 (Unknown)
Value: 0x300
Index: 0x0
Length: 0x7
запись нового репортаЦитата
000041: Class-Specific Request (DOWN), 01.08.2006 16:27:32.7500000 +13.7812500
Destination: Inrterface, Index 0
Reserved Bits: 34
Request: 0x9
Value: 0x300
Send 0x7 bytes to the device
00 01 AA 04 BB 06 FF ..Є.».я
000042: Control Transfer (UP), 01.08.2006 16:27:32.7656250 +0.0156250
Pipe Handle: 0xfdfc0c28
00 01 AA 04 BB 06 FF ..Є.».я
Setup Packet
21 09 00 03 00 00 07 00 !.......
Recipient: Inrterface
Request Type: Class
Direction: Host->Device
Request: 0x9 (Unknown)
Value: 0x300
Index: 0x0
Length: 0x7
запрос данных (должны были быть изменены вышеуказанной записью репорта, но не изменились)Цитата
000043: Class-Specific Request (DOWN), 01.08.2006 16:27:35.4531250 +2.6875000
Destination: Inrterface, Index 0
Reserved Bits: 34
Request: 0x1
Value: 0x300
Get 0x7 bytes from the device
00 00 00 00 00 00 00 .......
000044: Control Transfer (UP), 01.08.2006 16:27:35.4531250 +0.0
Pipe Handle: 0xfdfc0c28
00 01 03 04 05 06 08 .......
Setup Packet
A1 01 00 03 00 00 07 00 Ў.......
Recipient: Inrterface
Request Type: Class
Direction: Device->Host
Request: 0x1 (Unknown)
Value: 0x300
Index: 0x0
Length: 0x7
повторная запись нового репортаЦитата
000045: Class-Specific Request (DOWN), 01.08.2006 16:27:38.7187500 +3.2656250
Destination: Inrterface, Index 0
Reserved Bits: 34
Request: 0x9
Value: 0x300
Send 0x7 bytes to the device
00 01 AA 04 BB 06 FF ..Є.».я
000046: Control Transfer (UP), 01.08.2006 16:27:38.7343750 +0.0156250
Pipe Handle: 0xfdfc0c28
00 01 AA 04 BB 06 FF ..Є.».я
Setup Packet
21 09 00 03 00 00 07 00 !.......
Recipient: Inrterface
Request Type: Class
Direction: Host->Device
Request: 0x9 (Unknown)
Value: 0x300
Index: 0x0
Length: 0x7
запрос данных. они изменились после повторной записи репортаЦитата
000047: Class-Specific Request (DOWN), 01.08.2006 16:27:40.2812500 +1.5468750
Destination: Inrterface, Index 0
Reserved Bits: 34
Request: 0x1
Value: 0x300
Get 0x7 bytes from the device
00 00 00 00 00 00 00 .......
000048: Control Transfer (UP), 01.08.2006 16:27:40.2812500 +0.0
Pipe Handle: 0xfdfc0c28
00 01 AA 04 BB 06 FF ..Є.».я
Setup Packet
A1 01 00 03 00 00 07 00 Ў.......
Recipient: Inrterface
Request Type: Class
Direction: Device->Host
Request: 0x1 (Unknown)
Value: 0x300
Index: 0x0
Length: 0x7
Сообщение отредактировал Rius - Aug 1 2006, 12:57