Hello,
I am trying to communicate with a custom-made HID device with LabVIEW using the NI-VISA Driver Wizard. The device can be used with the standard windows driver with C#, but now I will use it with LabVIEW.
The device has the following endpoint descriptors:
Offset | Field | Size | Value | Description |
---|---|---|---|---|
0 | bLength | 1 | 07h | |
1 | bDescriptorType | 1 | 05h | Endpoint |
2 | bEndpointAddress | 1 | 81h | 1 In |
3 | bmAttributes | 1 | 03h | Interrupt |
1..0: Transfer Type | ......11 | Interrupt | ||
7..2: Reserved | 000000.. | |||
4 | wMaxPacketSize | 2 | 0040h | 64 bytes |
6 | bInterval | 1 | 01h | 1 ms |
Offset | Field | Size | Value | Description |
---|---|---|---|---|
0 | bLength | 1 | 07h | |
1 | bDescriptorType | 1 | 05h | Endpoint |
2 | bEndpointAddress | 1 | 01h | 1 Out |
3 | bmAttributes | 1 | 03h | Interrupt |
1..0: Transfer Type | ......11 | Interrupt | ||
7..2: Reserved | 000000.. | |||
4 | wMaxPacketSize | 2 | 0040h | 64 bytes |
6 | bInterval | 1 | 01h | 1 ms |
There are two endpoint descriptors for communication in Interrupt mode. But after creating a driver with the Driver Wizard this driver doesn't have these two endpoints. Instead it recognizes the descriptor with 0x1 as Bulk In Pipe and the Descriptor 0x81 as Interrupt In Pipe (a screenshot is attached, because the values cannot be copied).
A communication with the LabVIEW examples which uses the Interrupt In Pipe does work, but everything else failed because of the wrong out endpoint.
Is there any way to correct the descriptors?
Thanks,
Chris