On Mon, 16 Sep 2013, Scott Talbert wrote:

>> OK, here's a (hopefully) final version.
>>
>> There's a few autoconf/automake tweaks for MacOSX since the last version.
>> Removed some debug code, and updated the Linux and Mac docs.
>>
>> Have you had any success making hidapi-raw work on Windows?
>
> No, I have not.  I haven't tried yet - I will, though.  Ideally, I would
> like to get the Windows build working through MinGW, so we could easily
> cross compile the Windows build from Linux.

Well, tried hidapi on Windows, and I actually got it to build with MinGW. 
Yay!  So, I think I will probably make that the official way to build the 
Windows version.

>> +int HID_WriteReport(const uint8_t *data)
>> +{
>> +    int err = hid_write(h_dev, data, USB_PACKET_LENGTH);
>> +    if (err < 0) {
>> +        debug("Failed to write to device: %d (%s)", err, hid_error(h_dev));
>> +        return err;
>> +    }
>> +
>> +    return 0;
>> +}
>
> I found a pretty substantial bug here.  It turns out that hid_write
> requires that you pass it a 'Report ID' as the first byte - so we actually
> need to pass in a buffer of USB_PACKET_LENGTH + 1, and set the first byte
> to zero.  So, here we'll probably have to copy the input data into a
> larger buffer, and pass that on.  Because of the way hid_write() works,
> this bug is only seen when we send a packet that starts with 0x00.  (See
> the hidapi.h header file for more info on the 'Report ID' requirement.)

Yep, the Windows version of hidapi wouldn't work at all unless I fixed 
this bug by doing:

int HID_WriteReport(const uint8_t *data)
{
     uint8_t newdata[USB_PACKET_LENGTH + 1];
     newdata[0] = 0x00;
     memcpy(&newdata[1], data, USB_PACKET_LENGTH);
     int err = hid_write(h_dev, newdata, USB_PACKET_LENGTH + 1);
     if (err < 0) {
         debug("Failed to write to device: %d (%ls)", err, hid_error(h_dev));
         return err;
     }

     return 0;
}


------------------------------------------------------------------------------
LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99!
1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint
2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes
Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. 
http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk
_______________________________________________
concordance-devel mailing list
concordance-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/concordance-devel

Reply via email to