[libhid-discuss] HID_Interrupt_write reports OK, but no action on device..

Charles Lepple clepple at ghz.cc
Tue Sep 1 22:43:40 UTC 2009


On Sep 1, 2009, at 12:47 PM, Neil Sutton wrote:

>
>
> On Tue, Sep 1, 2009 at 12:33 PM, Charles Lepple <clepple at ghz.cc>  
> wrote:
>
> I would assume that if the argument to Convert.ToByte() is an  
> integer less than 255, then the C equivalent would be that same  
> integer. I think you would only use 0x35 if you were passing a  
> string "5" to Convert.ToByte(). Someone who actually knows .NET can  
> feel free to correct me, though.
>
> I think you're right Charles, I went back to the working example  
> from LVR and stepped through everything. If I send Hex 0x05 to the  
> device using an Output report it works under windows.. so my data  
> needs to be a single byte of 0x05.
> Also if I echo back the result of Convert.ToByte(5) it is indeed 5..
>
> Could you advise on how the output usage path is calculated from my  
> lsusb -vv output ? (http://pastebin.com/m48287552)
> I am going to try and get things working using output reports  
> instead of interrupt_write because I know this works under Windows,  
> but even after reading the example text I don't know how to  
> calculate the PATH_IN / PATH_OUT values.
> I think if I can get those right then my problems will be solved.
>
Your original code pastebin expired, but I think you were close.

             Item(Global): Usage Page, data= [ 0xa0 0xff ] 65440
             Item(Local ): Usage, data= [ 0x01 ] 1
             Item(Main  ): Collection, data= [ 0x01 ] 1
             Item(Local ): Usage, data= [ 0x03 ] 3
             Item(Global): Logical Minimum, data= [ 0x00 ] 0
             Item(Global): Logical Maximum, data= [ 0x00 0xff ] 65280
             Item(Global): Report Size, data= [ 0x08 ] 8
             Item(Global): Report Count, data= [ 0x01 ] 1
[...]
             Item(Main  ): Output, data= [ 0x02 ] 2
                             Data Variable Absolute No_Wrap Linear
                             Preferred_State No_Null_Position  
Non_Volatile Bitfield
             Item(Local ): Usage, data= [ 0x05 ] 5

The "usage page" part is the upper 16 bits of each entry in the  
"path". If there are no other Usage Pages listed, then that part  
(0xffa0) doesn't change.

The bold items above are what you need.

I think the path should be "0xffa00001, 0xffa00003, 0xffa00005". I  
forget if the HID parser drops the very first usage (since it is  
outside a collection).
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/libhid-discuss/attachments/20090901/1a73e5ca/attachment.htm>


More information about the libhid-discuss mailing list