According to the brief part of the spec I read, you have to listen on the interrupt pipe also as the device can send responses on either pipe. You should either asynchronously submit multiple IRPs on the interrupt-in pipe and have the pipe listener handle and then resubmit each one, or you should create a dedicated thread to just manage IRPs on the interrupt-in pipe. In any case you need to listen to it.
As far as if you are sending the right commands to the device or not, i don't have the time to get into the garmin spec to tell you if you are or not... On Thu, Feb 14, 2008 at 7:51 AM, Christoph Ott <[EMAIL PROTECTED]> wrote: > Hi maybe anyone can read he garmin sdk : > http://www8.garmin.com/support/pdf/IOSDK.zip > > I don't know what I do wrong but I only get zeros :( > > Here is my Code: > > public void IODevices(UsbDevice device){ > try{ > device.getActiveUsbConfiguration(); > UsbConfiguration config = device.getActiveUsbConfiguration(); > UsbInterface interf = config.getUsbInterface((byte)0); > interf.claim(new UsbInterfacePolicy() { > public boolean forceClaim(UsbInterface usbInterface) { > return true; > } > }); > List totalEndpoints = interf.getUsbEndpoints(); > UsbEndpoint ep = null; > //Endpoints > UsbEndpoint pipeInEndP = (UsbEndpoint) totalEndpoints.get(0); > UsbEndpoint pipeOutEndP = (UsbEndpoint) totalEndpoints.get(2); > > //Pipes > UsbPipe pipeIn = pipeInEndP.getUsbPipe(); > pipeIn.open(); > UsbPipe pipeOut = pipeOutEndP.getUsbPipe(); > pipeOut.open(); > > short mReserved2 = 0; > short mPacketId = 254; > int mDataSize = 0; > byte[] bytesToSend = new byte[12]; > bytesToSend[0] = 20; > bytesToSend[1] = 0; > bytesToSend[2] = (byte) (mReserved2 & 0xFF); //Short to Byte > bytesToSend[3] = (byte) ((mReserved2 & 0xff00 ) >> 8); > //Short to Byte > bytesToSend[4] = (byte) (mPacketId & 0xFF); //Short to Byte > bytesToSend[5] = (byte) ((mPacketId & 0xff00 ) >> 8); //Short > to Byte > bytesToSend[6] = (byte) (mReserved2 & 0xFF); //Short to Byte > bytesToSend[7] = (byte) ((mReserved2 & 0xff00 ) >> 8); > //Short to Byte > bytesToSend[8] = (byte) (mDataSize >>24); //unsigned long to > Byte > BytesToSend[9] = (byte) ((mDataSize << 8) >> 24); > BytesToSend[10] = (byte) ((mDataSize << 16) >> 24); > bytesToSend[11] = (byte) ((mDataSize << 24) >> 24); > > UsbIrp irpSend = pipeOut.createUsbIrp(); > IrpSend.setData(bytesToSend); > pipeOut.asyncSubmit(irpSend); > irpSend.waitUntilComplete(1000); > > byte[] bytesToRead = new byte[255]; > UsbIrp irpRead = pipeIn.createUsbIrp(); > irpRead.setData(bytesToRead); > pipeIn.asyncSubmit(irpRead); > irpRead.waitUntilComplete(1000); > pipeIn.abortAllSubmissions(); > pipeOut.abortAllSubmissions(); > pipeIn.close(); > pipeOut.close(); > interf.release(); > > int pid,sv; > pid =(bytesToRead[0] & 0xff); > sv =(bytesToRead[1] & 0xff); > pid= bytes_to_int(bytesToRead); > sv= bytes_to_int(bytesToRead, 4); > System.out.println("pid: " + pid + "; sv: " + sv); > > System.out.println(bytesToRead); > }catch(Exception ex){ > ex.printStackTrace(); > } > } > > int bytes_to_int(byte b[], int start) { > int i = ((b[start + 3] & 0xff) << 24) + ((b[start + 2] & 0xff) << 16) > + > ((b[start + 1] & 0xff) << 8) + (b[start] & 0xff); > return i; > } > int bytes_to_int(byte b[]) { > /* as above, but start == 0 */ > return bytes_to_int(b, 0); > } > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > javax-usb-devel mailing list > javax-usb-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/javax-usb-devel > ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ javax-usb-devel mailing list javax-usb-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/javax-usb-devel