Почему массовая передача через USB с Perl's Device :: USB отключена? - PullRequest
19 голосов
/ 05 апреля 2011

Я запустил этот код Perl, работающий в 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);

Используя 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.

В чем может быть проблема?

1 Ответ

1 голос
/ 03 октября 2011

Возможно, что Perl-программа работает правильно.

Я видел, как wireshark обрезал пакеты USB (еще одна ссылка: http://www.mail-archive.com/tcpdump-workers@lists.tcpdump.org/msg04042.html).

Мне пришлось использовать приложение "usbmon", чтобы получить полный захват: http://people.redhat.com/zaitcev/linux/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...