read data from usb,

2,564 views
Skip to first unread message

Fariz Siracli

unread,
Apr 7, 2014, 7:31:52 AM4/7/14
to usb4...@googlegroups.com

Hello guys. I have usb device in form of usb modem. It receives wireless M-bus signals and passes this data to its own program.  Now i need to get this data from my java application. For this i tried java4usb and run sample projects. But now i do not how to go further. Any instructions please ..
Best regards.

Klaus Reimer

unread,
Apr 7, 2014, 7:51:45 AM4/7/14
to usb4...@googlegroups.com
Depends on what you have already. Do you have any USB protocol
documentation from the device manufacturer? Is the program which
currently receives the data available in source form so you can see how
the program communicates with the device? If both answers are "no" then
I'm afraid usb4java can't help you because it just provides the
low-level USB layer. The device protocol is on a higher level and you
need to know how this protocol works so you can implement it yourself on
top of usb4java.

--
Klaus Reimer <http://www.ailis.de/~k/>
[2FC4 CCA0 C03B 1E5F 1ACC 94D6 6461 426C E734 75A1]

Message has been deleted

Fariz Siracli

unread,
Apr 8, 2014, 3:02:52 AM4/8/14
to usb4...@googlegroups.com
I dont have protocol and source code or SDK. It's the problem already. But i listen the usb port with sniffer and see the communicating data between usb device and program and i guess which bytes are used to get data. So i think that if i can send and view the data  in my java application then i will have chance to create normal communication. So i need to read and view the data of usb device as if it was serial COM. What should i do for this ?

Klaus Reimer

unread,
Apr 8, 2014, 3:18:33 AM4/8/14
to usb4...@googlegroups.com
On 04/08/2014 09:02 AM, Fariz Siracli wrote:
> I dont have protocol and source code or SDK. It's the problem already.
> But i listen the usb port with sniffer and see the communicating data
> between usb device and program and i guess which bytes are used to get
> data. So i think that if i can send and view the data in my java
> application then i will have chance to create normal communication. So i
> need to read and view the data of usb device as if it was serial COM.
> What should i do for this ?

You have to translate the output you see in the USB monitor into USB
control/bulk/interrupt transfers. So in the end you need to know the
following stuff:

* Transfer type: control, bulk, interrupt
* For control transfers you need to know the parameters requestType,
request, value, index and the custom data sent/received to/from the device.
* For bulk and interrupt transfers you need to know the endpoint address
and the custom data sent/received to/from the device.

If you think you have deciphered all this information then you can use
the various methods of usb4java to send the same kind of transfers. The
Quick Start guide on the usb4java website may give you some useful hints
how to do control and bulk/interrupt transfers:

http://usb4java.org/quickstart/javax-usb.html

Fariz Siracli

unread,
Apr 8, 2014, 5:17:23 AM4/8/14
to usb4...@googlegroups.com
I think in my case its Bulk or Interrupt type. Sniffer shows it.
I have already read that topic. From this i could understand and write only following class.
package TestJavaUSB;

 

import jsrTest.ShowTopology;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.usb.UsbConfiguration;
import javax.usb.UsbDevice;
import javax.usb.UsbDeviceDescriptor;
import javax.usb.UsbDisconnectedException;
import javax.usb.UsbEndpoint;
import javax.usb.UsbException;
import javax.usb.UsbHub;
import javax.usb.UsbInterface;
import javax.usb.UsbNotActiveException;
import javax.usb.UsbNotClaimedException;
import javax.usb.UsbNotOpenException;
import javax.usb.UsbPipe;

/**
 *
 * @author admin
 */
public class NewMain {

    public NewMain() {
        UsbHub virtualRootUsbHub = ShowTopology.getVirtualRootUsbHub();

        /* This method recurses through the topology tree, using
         * the getAttachedUsbDevices() method.
         */
       // System.out.println("Using UsbHub.getAttachedUsbDevices() to show toplogy:");
        ShowTopology.processUsingGetAttachedUsbDevices(virtualRootUsbHub, "");

        /* Let's go through the topology again, but using getUsbPorts()
         * this time.
         */
       // System.out.println("Using UsbHub.getUsbPorts() to show toplogy:");
        ShowTopology.processUsingGetUsbPorts(virtualRootUsbHub, "");
        short vendorId= 0x17a8;
        short productId=0x0101;
       
        UsbDevice device = findDevice(virtualRootUsbHub,vendorId ,productId );
        communicate(device);
    }

    public final UsbDevice findDevice(UsbHub hub, short vendorId, short productId) {
        for (UsbDevice device : (List<UsbDevice>) hub.getAttachedUsbDevices()) {
            UsbDeviceDescriptor desc = device.getUsbDeviceDescriptor();
            if (desc.idVendor() == vendorId && desc.idProduct() == productId) {
                return device;
            }
            if (device.isUsbHub()) {
                device = findDevice((UsbHub) device, vendorId, productId);
                if (device != null) {
                    return device;
                }
            }
        }
        return null;
    }

    public static void main(String[] args) {
         new NewMain();
    }

    private void communicate(UsbDevice device) {
        UsbConfiguration configuration = device.getActiveUsbConfiguration();
        javax.usb.UsbInterface iface = configuration.getUsbInterface((byte) 1);
        try {
            iface.claim();

        } catch (UsbException | UsbNotActiveException | UsbDisconnectedException ex) {
           ex.printStackTrace();
        }
        try {
            send(iface);
            read(iface);
        } finally {
            try {
                iface.release();
            } catch (UsbException | UsbNotActiveException | UsbDisconnectedException ex) {
                Logger.getLogger(NewMain.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }

    private void send(UsbInterface iface) {
        byte b = 0x03;
        UsbEndpoint endpoint = iface.getUsbEndpoint(b);
        UsbPipe pipe = endpoint.getUsbPipe();
        try {
            pipe.open();
        } catch (UsbException | UsbNotActiveException | UsbNotClaimedException | UsbDisconnectedException ex) {
            Logger.getLogger(NewMain.class.getName()).log(Level.SEVERE, null, ex);
        }
        try {
            int sent = 0;
            try {
                sent = pipe.syncSubmit(new byte[]{1, 2, 3, 4, 5, 6, 7, 8});

            } catch (UsbException | UsbNotActiveException | UsbNotOpenException | IllegalArgumentException | UsbDisconnectedException ex) {
                Logger.getLogger(NewMain.class.getName()).log(Level.SEVERE, null, ex);
            }
            System.out.println(sent + " bytes sent");
        } finally {
            try {
                pipe.close();
            } catch (UsbException | UsbNotActiveException | UsbNotOpenException | UsbDisconnectedException ex) {
                Logger.getLogger(NewMain.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }

    private void read(UsbInterface iface) {
        UsbEndpoint endpoint = iface.getUsbEndpoint((byte) 0x83);
        UsbPipe pipe = endpoint.getUsbPipe();
        try {
            pipe.open();
        } catch (UsbException | UsbNotActiveException | UsbNotClaimedException | UsbDisconnectedException ex) {
            Logger.getLogger(NewMain.class.getName()).log(Level.SEVERE, null, ex);
        }
        try {
            byte[] data = new byte[8];
            int received = 0;
            try {
                received = pipe.syncSubmit(data);
            } catch (UsbException | UsbNotActiveException | UsbNotOpenException | IllegalArgumentException | UsbDisconnectedException ex) {
                Logger.getLogger(NewMain.class.getName()).log(Level.SEVERE, null, ex);
            }
            System.out.println(received + " bytes received");
        } finally {
            try {
                pipe.close();
            } catch (UsbException | UsbNotActiveException | UsbNotOpenException | UsbDisconnectedException ex) {
                Logger.getLogger(NewMain.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }

}
But the output is
run:
Virtual root UsbHub
  Device
  UsbHub
    Device
    Device
  Device
  Device
Exception in thread "main" java.lang.NullPointerException
Virtual root UsbHub
  Device
  UsbHub
    Device
    Device
  Device
  Device
    at TestJavaUSB.NewMain.communicate(NewMain.java:78)
    at TestJavaUSB.NewMain.<init>(NewMain.java:51)
    at TestJavaUSB.NewMain.main(NewMain.java:71)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)



On Monday, April 7, 2014 4:31:52 PM UTC+5, Fariz Siracli wrote:

Klaus Reimer

unread,
Apr 8, 2014, 5:26:09 AM4/8/14
to usb4...@googlegroups.com
On 04/08/2014 11:17 AM, Fariz Siracli wrote:
> at TestJavaUSB.NewMain.communicate(NewMain.java:78)
> at TestJavaUSB.NewMain.<init>(NewMain.java:51)
> at TestJavaUSB.NewMain.main(NewMain.java:71)
> Java Result: 1
> BUILD SUCCESSFUL (total time: 0 seconds)

Sorry, its hard to know what line 78 is in your code when you post code
without line numbers. When I copy it into an editor then line 78 is the
"try" line in the communicate() method which hardly can throw a
NullPointerException.

And by the way: Which operating system are you running the code on? If
it is Windows do you have a proper libusb-compatible device driver
installed?

Fariz Siracli

unread,
Apr 8, 2014, 5:35:29 AM4/8/14
to usb4...@googlegroups.com

It refers to line claim();

try {
            iface.claim();

        } catch (UsbException | UsbNotActiveException | UsbDisconnectedException ex) {
           ex.printStackTrace();
        }

I could not understand libusb-compatible driver. what's it and how to install it ?
My usb device has its own driver. And it appers on device manager as in picture.


On Monday, April 7, 2014 4:31:52 PM UTC+5, Fariz Siracli wrote:

Fariz Siracli

unread,
Apr 8, 2014, 5:40:02 AM4/8/14
to usb4...@googlegroups.com
Right now i also tried
UsbControlIrp irp = device.createUsbControlIrp(
    (byte) (UsbConst.REQUESTTYPE_DIRECTION_IN
          | UsbConst.REQUESTTYPE_TYPE_STANDARD
          | UsbConst.REQUESTTYPE_RECIPIENT_DEVICE),
    UsbConst.REQUEST_GET_CONFIGURATION,
    (short) 0,
    (short) 0
    );
irp.setData(new byte[1]);
device.syncSubmit(irp);
System.out.println(irp.getData()[0]);

from quickstart page. it gives me following error :
javax.usb.UsbPlatformException: USB error 12: Can't open device Bus 008 Device 003: ID 17a8:0101: Operation not supported or unimplemented on this platform
at org.usb4java.javax.ExceptionUtils.createPlatformException(ExceptionUtils.java:39)
at org.usb4java.javax.AbstractDevice.open(AbstractDevice.java:226)
at org.usb4java.javax.AbstractIrpQueue.processControlIrp(AbstractIrpQueue.java:223)
at org.usb4java.javax.ControlIrpQueue.processIrp(ControlIrpQueue.java:41)
at org.usb4java.javax.ControlIrpQueue.processIrp(ControlIrpQueue.java:18)
at org.usb4java.javax.AbstractIrpQueue.process(AbstractIrpQueue.java:104)
at org.usb4java.javax.AbstractIrpQueue$1.run(AbstractIrpQueue.java:73)
at java.lang.Thread.run(Thread.java:744)
Does it say anything ?

On Monday, April 7, 2014 4:31:52 PM UTC+5, Fariz Siracli wrote:

Klaus Reimer

unread,
Apr 8, 2014, 7:30:53 AM4/8/14
to usb4...@googlegroups.com
On 04/08/2014 11:35 AM, Fariz Siracli wrote:
> I could not understand libusb-compatible driver. what's it and how to
> install it ?

usb4java uses libusb as backend and on Windows libusb can't just talk
magically with any USB device. On Windows you need a driver and Windows
drivers provided by the device manufacturers usually are very specific
and can only be used by programs which exactly know how this driver
works. libusb doesn't know your device, libusb only knows USB so it
needs a generic USB driver. So you have to uninstall your current driver
and create a new one. This is explained in detail in the Wiki of the
libusb project (It is linked from the FAQ page of usb4java):

https://github.com/libusb/libusb/wiki/Windows#How_to_use_libusb_on_Windows

You currently have two error messages which I'm sure are both related to
the incompatible driver. You get the Null-Pointer-Exception because
libusb can't comminicate with the device so it can't access the
interfaces. So getUsbInterface returns null (Which is correct because
libusb can't see this interface without a proper driver).

So you need to do the following (If you want to stick with Java or any
other libusb based solution): You need to uninstall the current driver
and then use the Zadig tool as explained in the Wiki article above to
generate and install a libusb compatible driver. After this you should
be able to communicate with the device with usb4java or any other libusb
software. This is not needed for Linux and OSX because only Windows has
such a complicated driver model.

Fariz Siracli

unread,
Apr 9, 2014, 2:06:12 AM4/9/14
to usb4...@googlegroups.com

I did as you said. Now my device appears in device manager as in picture. what should i do next ?

On Monday, April 7, 2014 4:31:52 PM UTC+5, Fariz Siracli wrote:

Klaus Reimer

unread,
Apr 9, 2014, 3:08:44 AM4/9/14
to usb4...@googlegroups.com
On 04/09/2014 08:06 AM, Fariz Siracli wrote:
> <https://lh5.googleusercontent.com/-IiPiWnWz4wQ/U0TjNaw_CDI/AAAAAAAAAGw/HkMKB9e-Yp8/s1600/Untitled.png>
> I did as you said. Now my device appears in device manager as in picture.
> what should i do next ?

Sorry, as a Linux user I can't see from a Windows screenshot that you
did everything right. It pretty much looks the same as before to me. No
idea if this is now the created libusb driver or still the original driver.

Did you try your program again? Is it still throwing NullPointer- or
"Operation not supported" exceptions?

Fariz Siracli

unread,
Apr 9, 2014, 5:45:48 AM4/9/14
to usb4...@googlegroups.com
after changing driver the code seems to work, and when i send bytes to device it says that data is sent. But, i should get the reply data also after sending. I receive nothing. exactly say i receive same as i sent. Look please at my code. for convenience i put point1, point2 ..


On Monday, April 7, 2014 4:31:52 PM UTC+5, Fariz Siracli wrote:
NewMain.java

Klaus Reimer

unread,
Apr 9, 2014, 9:17:29 AM4/9/14
to usb4...@googlegroups.com
On 04/09/2014 11:45 AM, Fariz Siracli wrote:
> after changing driver the code seems to work, and when i send bytes to
> device it says that data is sent. But, i should get the reply data also
> after sending. I receive nothing. exactly say i receive same as i sent.
> Look please at my code. for convenience i put point1, point2 ..

Sorry, I can't invest to much time in debugging your own code. I don't
know your device and whatever goes wrong now is most likely a
device-specific communication problem. With a quick glance I see that
your bytes2 array has the same initial content in the read and send
method. So when the read method simply didn't do anything (Maybe the
device sent 0 bytes, don't know) then your array is untouched and it
looks like you received the same bytes which you sent.

Fariz Siracli

unread,
Apr 9, 2014, 2:08:40 PM4/9/14
to usb4...@googlegroups.com
Ok i understand you. Just tell me am i doing right for sending and receiving data. May be there is another method or wqy of doing it. I cant go on because there no good and clear instruction for doing it. It would be wonderfull if wou provided step by step instructions.
Thank you for attention.

Klaus Reimer

unread,
Apr 9, 2014, 4:11:00 PM4/9/14
to usb4...@googlegroups.com
On 09.04.2014 20:08, Fariz Siracli wrote:
> Ok i understand you. Just tell me am i doing right for sending and
> receiving data. May be there is another method or wqy of doing it.

Looks good to me. Maybe you should prefer using syncSubmit instead of
asyncSubmit until it works because synchronous communication is easier
to understand and to debug.


> I cant go on because there no good and clear instruction for doing it.
> It would be wonderfull if wou provided step by step instructions.
> Thank you for attention.

I created the Quick Start section on the website for this. I'm sorry if
the instructions there are not clear enough. Obviously I'm not that good
in writing documentations. You can also scan the examples to learn how
it works.

You also have the alternative to use the low-level API of usb4java
instead which is directly based on the libusb API. Then you can use the
various documentations on http://libusb.info/ or other tutorials you may
find on the web. It's not that hard to translate the C examples from
these documentations into Java source.
signature.asc

Fariz Siracli

unread,
Apr 10, 2014, 7:57:59 AM4/10/14
to usb4...@googlegroups.com
mm can you just tell me which method should be used to get data from device exactly. When i try to send byte array to device, it writes that 22 bytes has been sent. But how to get the reply data? which function is for this?


On Monday, April 7, 2014 4:31:52 PM UTC+5, Fariz Siracli wrote:

Klaus Reimer

unread,
Apr 10, 2014, 8:26:38 AM4/10/14
to usb4...@googlegroups.com
On 04/10/2014 01:57 PM, Fariz Siracli wrote:
> mm can you just tell me which method should be used to get data from device
> exactly. When i try to send byte array to device, it writes that 22 bytes
> has been sent. But how to get the reply data? which function is for this?

For reading you have to use the same methods as for writing. You are
always submitting "transfers" no matter in which direction. The
direction is defined by the endpoint direction (For bulk/interrupt, 0x01
for example is endpoint 1 for writing, 0x81 is endpoint 1 for reading)
or the request type direction for control requests (See
UsbConst.REQUESTTYPE_DIRECTION_IN and UsbConst.REQUESTTYPE_DIRECTION_OUT).

For write operations the data array contains the data to be sent. For
read operations the data array is the container into which usb4java
reads the bytes.

Fariz Siracli

unread,
Apr 15, 2014, 4:05:28 AM4/15/14
to usb4...@googlegroups.com
Mister Klaus, i will ask once more to pay attention to my work please. It will take just 10-15 minutes.
I'm sending the log of sniffer of usb port(both-original program and my java sample) and my java code with output. Am i doing the process of communication in a right way ?  or may be there is some error.
Thanks in advance.



On Monday, April 7, 2014 4:31:52 PM UTC+5, Fariz Siracli wrote:
usb communication.rar

Klaus Reimer

unread,
Apr 16, 2014, 2:07:23 AM4/16/14
to usb4...@googlegroups.com
On 15.04.2014 10:05, Fariz Siracli wrote:
> Mister Klaus, i will ask once more to pay attention to my work please. It
> will take just 10-15 minutes.
> I'm sending the log of sniffer of usb port(both-original program and my
> java sample) and my java code with output. Am i doing the process of
> communication in a right way ? or may be there is some error.
> Thanks in advance.

I have no experience in reverse-engineering USB device protocols so I
can't help you in deciphering the sniffer logs, sorry.

Looking at your code I don't see a problem. I don't know your device so
I can't tell if the response is correct or if you sent the correct data
to it. Only you can know this. But usb4java is used correctly here. You
have various data arrays (The "arrs" list) which you sent to the device.
And obviously this works correctly. You don't get an exception and
syncSubmit returns the correct number of sent bytes. In the read method
you create a new empty byte array with an initial size of 0 (Size is
increased by 1 on each iteration, actually I don't know if this is
intended, I see no sense in it) and then you read the data from the
device. And again this seems to work. You get no exception, you get the
correct size of read bytes (0 bytes in first iteration, 1 in second, 2
in third and so on) and your data array has data in it which must be
coming from the device because it can't appear magically out of nowhere.

The exception at the end of the output is a simple Java programming
error and has nothing to do with usb4java. You are trying to access the
20th data array from the "arrs" list but there are only 19 data arrays
in this list.

So from my point of view you are using usb4java correctly. If the result
of your program is not what you expect then I'm still pretty sure the
reason for this is the wrong communication with the device. And that's
something I can't help you with.
signature.asc

Fariz Siracli

unread,
Apr 16, 2014, 2:19:28 AM4/16/14
to usb4...@googlegroups.com
Thank you very much. i'm interested in correctness of my code. This is most important for me and i asked you to check  this. Because my boss requires  me to write similar program to device's own program.  And now i will show him that my code is correct , but it does not work correctly because of device protocol which we do not have any info.
Thank you very much again. Your help to me was great.


On Monday, April 7, 2014 4:31:52 PM UTC+5, Fariz Siracli wrote:

Fariz Siracli

unread,
May 30, 2014, 7:04:04 AM5/30/14
to usb4...@googlegroups.com
Hi again.
I have got such a question.
My usb device works with its own driver which comes from manufacturer.  When i use  libusb library i delete this driver and install the one which libusb generates(Zadig tool).
But after that when i send data packet to usb it does not reply me, because it does not understand new driver. So  question is what is the use of libusb if  it does not give me possibility to communicate with usb device ???


On Monday, April 7, 2014 4:31:52 PM UTC+5, Fariz Siracli wrote:

Klaus Reimer

unread,
May 30, 2014, 9:31:06 AM5/30/14
to usb4...@googlegroups.com
On 05/30/2014 01:04 PM, Fariz Siracli wrote:
> But after that when i send data packet to usb it does not reply me, because
> it does not understand new driver. So question is what is the use of
> libusb if it does not give me possibility to communicate with usb device
> ???

Sounds to me if you simply communicate in the wrong way with the device.
The device itself doesn't know a "driver". It just receives USB
requests. When you use the manufacturer driver then this driver
obviously sends the right USB requests so the device works properly.
libusb doesn't know the device-specific USB protocol so it is up to you
to send the correct USB requests (through libusb/usb4java). And when the
device is not answering then this is most likely because you don't send
the correct requests.

If you know the USB protocol then maybe you can ask a more specific
question, telling us what the USB protocol documentation says and what
code you implemented to send the request which seems to be ignored by
the device, maybe we can help finding an error in your code then.

If you don't know the USB protocol and you are currently trying to
reverse-engineer it then maybe it is easier for you to create your own
Java-JNI-Bindings for the manufacturer driver so you don't have to do
any USB communication and you can simply use the drivers API. Naturally
this will only work on Windows then but maybe that's your intention anyway.

Fariz Siracli

unread,
Jun 2, 2014, 3:17:51 AM6/2/14
to usb4...@googlegroups.com
I do not have exact protocol, instead i have used usb sniffer which catches data packages during communication of the manufacturer soft and usb device. For this reason i think if i send these packages to the device in a right way the it should respond. But when i tried it with manufacturer's own driver it gave me error (i described this for you in earlier messages. Look above please). You told me to change the its driver  to generic driver of Zadig. I did  as you told. The error already solved, but usb does not respond. My code is on the attachment of message of 15 april. (usb_communication.rar)

Klaus Reimer

unread,
Jun 2, 2014, 4:47:12 AM6/2/14
to usb4...@googlegroups.com
On 06/02/2014 09:17 AM, Fariz Siracli wrote:
> above please). You told me to change the its driver to generic driver of
> Zadig. I did as you told. The error already solved, but usb does not
> respond. My code is on the attachment of message of 15 april.
> (usb_communication.rar)

Tis RAR archive you sent earlier also contains an output.txt file and
this shows that you sent and received data. Now you say you that USB
does not respond. You already hat it working and now it no longer works?
I'm confused.

Fariz Siracli

unread,
Jun 4, 2014, 7:34:14 AM6/4/14
to usb4...@googlegroups.com
I could send data but i did not received normal reply. I told you last time. Usb does not respond in correct way. I just get array with zeroes or the same data which was sent.

Klaus Reimer

unread,
Jun 4, 2014, 8:00:36 AM6/4/14
to usb4...@googlegroups.com
On 06/04/2014 01:34 PM, Fariz Siracli wrote:
> I could send data but i did not received normal reply. I told you last
> time. Usb does not respond in correct way. I just get array with zeroes or
> the same data which was sent.

And I already told you that this is most likely a USB device protocol
usage problem. You create a completely new array and give that array to
the submit method of usb4java to read data and usb4java reads data from
your device and puts it into the array. So USB communication works
because the data must come from somewhere (And usb4java isn't making up
these numbers). I have to assume that the device is simply replying with
the data you sent in a previous request. Even when you get an array with
zeroes then this must come from somewhere. When the device is not
responding then your application will hang or throw a timeout exception
or some other exception. But this is not the case here. So I have to
assume usb4java is working correctly and your main problem is the
reverse-engineered USB protocol. I'm pretty sure you are doing something
different when compared to the original driver.

In your code you have some hard-coded data blobs which you are sending
to the device. I guess you have sniffed these packets with your USB
monitor? I never reverse-engineered a USB protocol but I think this is a
pretty bad idea to just replicate some proprietary requests. You have to
understand what all these bytes are doing. You have to understand the
USB protocol in order to use it. I have the feeling you are just poking
around in the dark. And, sorry, you can't blame usb4java for not
returning the data you expect when you don't really understand the USB
protocol you are trying to implement.

Fariz Siracli

unread,
Jun 4, 2014, 8:12:40 AM6/4/14
to usb4...@googlegroups.com
No, no. You did not understand me correctly. I do not blame us usb4java. I just think that the data packages which were  taken USB sniffer should give me the correct data from USB. Because every time i run the original program and sniffer the same data packages are seen.
But you do not agree with me and say that i have to have exact protocol for correct communication. So the argument :) 
Do not think that i do not appreciate usb4java's achiements.
Reply all
Reply to author
Forward
0 new messages