On Tue, May 12, 2009 at 3:37 AM, Hsieh Dinow <dino...@gmail.com> wrote:
> Thanks your positive response. You inspire me and give me the direction.
>
> So I will state ONE MORE TIME: you need to download and read the HID
> spec.  Until you do, I am not going to answer any more of your
> questions.
> ==> Yes, you are absolutely right and really instruct me.
> This time I follow the spec(HID-USB) which you post the link and read it
> for a while. Below 5 issues are my concepts and queries, Could you give
> me any your dirction or correct to my concepts?
>
> In Linux and JAVA
>
> Q1: Is it rigth that I should use the object "UsbControlIrp"
>     to get or set the value to the specific "ReportID"

Usually this is right to set a report; typically devices are set up so
incoming reports are on the interrupt pipe(s), however.  It's up to
the device implementor though, as you can get reports on the control
pipe too.

> Q2: Below is my object inherited sequence from the top to the bottom
>     UsbDevice -> UsbConfiguration -> UsbInterface
>     -> UsbEndpoint (only one) -> UsbPipe -> UsbControlIrp

Check the UsbEndpoint.getType() to see what type the endpoint is.

> Q3: 7.2.1 Get_Report_Request :
> I could get the value by the specific ReportID
> => bmRequestType = 1010001 = 161 = 0xA1
> => bRequest = GET_REPORT = 0x01
> => wValue = Report_Type and Report_ID = 0x031D
> (ex : Report_Type=feature(03) and Report_ID=29(DEC))
>
> Q4: If everything is right and run well, the data[] should be filled
> with the data and
> could be printed the value at the line14, right?

Yep, that looks like a standard get-feature-report command.  You
didn't mention the data portion, but you have set up the control
header correctly as far as I can tell.

>
> Q5: However, this time I block in the line 12(pipe.syncSubmit(irp)) and no
> any print on the screen.
>       Could you tell me any advice?

You're don't understand your device topology.  Read the HID spec sec
4.4.  You should also read the USB spec sec 5.3.1.1.  Then read the
javadoc header for javax.usb.UsbDevice:
http://javax-usb.org/jdoc/


>
> <<Line and Code>>
> 1.  UsbPipe pipe = endpoint.getUsbPipe();
> 2.  byte bmRequestType = (byte)0xA1;
> 3.  byte bRequest = (byte)0x01;
> 4.  short wValue = 0x031D;
> 5.  short wIndex = 0;
> 6.  UsbControlIrp irp = pipe.createUsbControlIrp(bmRequestType, bRequest,
> wValue, wIndex);
> 7.  byte data[] = new byte[8];
> 8.  irp.setData(data);
> 9.  pipe.open();
> 10. int a =0;
> 11. while(true){
> 12.   pipe.syncSubmit(irp);
> 13.   for(int i=0; i<data.length; i++){
> 14.     System.out.print(data[i]+" ");
> 15.   }
> 16.   irp.setComplete(false);
> 17.   sleep(1000);
> 18. }
>
> Thanks your reading
>
> ------------------------------------------------------------------------------
> The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
> production scanning environment may not be a perfect world - but thanks to
> Kodak, there's a perfect scanner to get the job done! With the NEW KODAK
> i700
> Series Scanner you'll get full speed at 300 dpi even with all image
> processing features enabled. http://p.sf.net/sfu/kodak-com
> _______________________________________________
> javax-usb-devel mailing list
> javax-usb-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/javax-usb-devel
>
>

------------------------------------------------------------------------------
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image 
processing features enabled. http://p.sf.net/sfu/kodak-com
_______________________________________________
javax-usb-devel mailing list
javax-usb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/javax-usb-devel

Reply via email to