I ran this Perl code running on Linux:
my $command = "\x{11}\x{22}\x{33}\x{44}\x{55}\x{66}\x{77}\x{88}\x{00}\x{00}\x{00}\x{00}\x{00}\x{00}\x{00}\x{00}\x{00}\x{00}\x{00}\x{00}"; # total of 20 bytes to transmit
my $bytesWritten = $device->bulk_write(0x01, $command, 1000);
Using Wireshark, I found the actual application data transmitted to be
0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0010 00 00 00 00 00 00 00 00 11 22 33 44
Printing $bytesWritten
reveals that 20 bytes were transferred, but this is different from what was captured by Wireshark.
What could be the problem?
It is possible that Perl program is working properly.
I've seen wireshark truncate the USB packets (one other reference: http://www.mail-archive.com/[email protected]/msg04042.html).
I had to use "usbmon" application to get the full capture: http://people.redhat.com/zaitcev/linux/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With