我运行了这个在Linux上运行的Perl代码:
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);
使用Wireshark,我发现传输的实际应用程序数据是
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
打印$bytesWritten
显示传输了20个字节,但这与Wireshark捕获的不同。
可能是什么问题呢?
Perl程序可能正常工作。
我见过wireshark截断USB数据包(另一个参考: http : //www.mail-archive.com/tcpdump-workers@lists.tcpdump.org/msg04042.html )。
我不得不使用“usbmon”应用程序来获得完整的捕获: http : //people.redhat.com/zaitcev/linux/