2012-02-12 47 views
2

HIDデバイスへの書き込みに問題があります。 以下は、スヌーピーで作られた2つのログです。 最初のものはデバイスメーカーのオリジナルのデモSWを使用して作成され、2番目のものは私のSWログです。 私のソフトウェアはこのデバイスでは動作しませんが、別のHIDデバイスで動作します。USB HIDデバイスへの書き込み

オリジナルソフトウェア:私のソフトウェア

9 ??? down n/a 27.868 BULK_OR_INTERRUPT_TRANSFER 06 16 19 17 00 00 00 00 
URB Header (length: 72) 
SequenceNumber: 9 
Function: 0009 (BULK_OR_INTERRUPT_TRANSFER) 
TransferFlags: 0x00000002 

TransferBuffer: 0x00000040 (64) length 
0000: 06 16 19 17 00 00 00 00 00 00 00 00 00 00 00 00 
0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
9 ??? up n/a 27.874 BULK_OR_INTERRUPT_TRANSFER - 0x00000000 
URB Header (length: 72) 
SequenceNumber: 9 
Function: 0009 (BULK_OR_INTERRUPT_TRANSFER) 
TransferFlags: 0x00000002 

No TransferBuffer 

コードは、データを送信するために使用

9 out down n/a 22.224 CLASS_INTERFACE 06 16 19 17 00 00 00 00 
URB Header (length: 80) 
SequenceNumber: 9 
Function: 001b (CLASS_INTERFACE) 
PipeHandle: 00000000 

SetupPacket: 
0000: 22 09 00 02 00 00 00 00 
bmRequestType: 22 
    DIR: Host-To-Device 
    TYPE: Class 
    RECIPIENT: Endpoint 
bRequest: 09 


TransferBuffer: 0x00000040 (64) length 
0000: 06 16 19 17 00 00 00 00 00 00 00 00 00 00 00 00 
0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
9 out up n/a 22.227 CONTROL_TRANSFER - 0x00000000 
URB Header (length: 80) 
SequenceNumber: 9 
Function: 0008 (CONTROL_TRANSFER) 
PipeHandle: 877af60c 

SetupPacket: 
0000: 21 09 00 02 00 00 40 00 
bmRequestType: 21 
    DIR: Host-To-Device 
    TYPE: Class 
    RECIPIENT: Interface 
bRequest: 09 


No TransferBuffer 
は次のようになります。

hiddata.ReportID := 0; 
hiddata.Data[0] := 6; 
hiddata.Data[1] := $16; 
hiddata.Data[2] := $19; 
hiddata.Data[3] := $17; 
for I := 4 to 64 do 
    hiddata.Data[I] := $0; 
b := HidD_SetOutputReport(HidHandle, @hiddata, 65); 

HidHandleは正しいと、変数 "B" です実行後は真です。

アイデア?

私は間違っていますか?オリジナル

答えて

1

Function: 0009 (BULK_OR_INTERRUPT_TRANSFER) 

あなたのプログラム:

Function: 0008 (CONTROL_TRANSFER) 

HID仕様ができます両方IIRC、あなたのハードウェアがうるさいようですし、割り込みエンドポイントを使用している場合にのみ機能します。

関連する問題