Sorry for the resend (if you got this twice)...

--------------------

Hi, all. Could somebody help me out here? I'm pulling my hair out on 
this one...

After finding my device, claiming the interface, grabbing an endpoint, and
opening a pipe, I try to send 30 bytes down the pipe (see JUnit test below).

The output says:

  device = PowerShot G2
  Sending 30 bytes
  return code (expected=30,actual=0)

I expect to see 30 bytes transferred, but I see 0.

There are no exceptions thrown. For grins, I tried the other two endpoints,
but they both block forever.

My real question is: Why would I get a "successful" completion (no 
exceptions) but get zero bytes transferred? Am I doing something wrong 
here?

Thanks,

--dave;

===========================================================

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;

import javax.usb.UsbConfiguration;
import javax.usb.UsbDevice;
import javax.usb.UsbEndpoint;
import javax.usb.UsbHostManager;
import javax.usb.UsbHub;
import javax.usb.UsbInterface;
import javax.usb.UsbPipe;

import junit.framework.TestCase;

public class SendToUsbDeviceTest extends TestCase {

    UsbDevice device;
   
    public void testSend() throws Exception {
        List<UsbDevice> devices = 
                
findAddressableDevices(UsbHostManager.getUsbServices().getRootUsbHub());

        Iterator it = devices.iterator();
        while (it.hasNext()) {
            // find my camera
            if ((device = 
                (UsbDevice)it.next()).getProductString().contains("G2"))
                break;
        }
        System.out.println("device = " + device.getProductString());
       
        UsbConfiguration config = device.getActiveUsbConfiguration();
        UsbInterface intf = config.getUsbInterface((byte)0);
        intf.claim();
        UsbEndpoint endp = intf.getUsbEndpoint((byte)0x83);
        UsbPipe pipe = endp.getUsbPipe();
        pipe.open();
       
        byte[] data = new byte[] {
                (byte) 0x10, (byte) 0x01, (byte) 0x00, (byte) 0x00, 
                (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, 
                (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
                (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, 
                (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
                (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
                (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, 
                (byte) 0x00, (byte) 0x00 };
       
        System.out.println("Sending 30 bytes");
        int returnCode = pipe.syncSubmit(data);
        System.out.println("return code (expected=30,actual=" + 
                returnCode + ")");
        assertEquals("check return code from syncSubmit", 30, returnCode);
    }
   
    public List<UsbDevice> findAddressableDevices(UsbDevice parent) {
        List<UsbDevice> devices = new ArrayList<UsbDevice>();
        if (parent.isUsbHub()) {
            List children = ((UsbHub) parent).getAttachedUsbDevices();
            Iterator it = children.iterator();
            while (it.hasNext()) {
                UsbDevice child = (UsbDevice) it.next();
                List<UsbDevice> childsDevices = 
                        findAddressableDevices(child);
                Iterator childIterator = childsDevices.iterator();
                while (childIterator.hasNext()) {
                    UsbDevice d = (UsbDevice) childIterator.next();
                    if (!d.isUsbHub())
                        devices.add(d);
                }
            }
        } else {
            devices.add(parent);
        }
        return Collections.unmodifiableList(devices);
    }
}




-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
javax-usb-devel mailing list
javax-usb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/javax-usb-devel

Reply via email to