Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > *NIX системы: Общие вопросы > USB-порт


Автор: Bulat 5.11.2013, 07:37
к usb-порту подключен контроллер, пытаюсь простым скриптом опросить. После запуска скрипта, на контроллере пара ламп мигает, из чего я делаю вывод, что мой пакет до контроллера нормально доходит, а вот обратный ответ получить не могу. Возникли подозрения на настройку порта.

Код

$ setserial /dev/ttyUSB0 -a

/dev/ttyUSB0, Line 0, UART: 16654, Port: 0x0000, IRQ: 0
    Baud_base: 460800, close_delay: 0, divisor: 0
    closing_wait: infinite
    Flags: spd_normal


Мож, что-то отдельно нужно донастроить. Если кто подобным баловался, мож поделится советом.

скрипт опроса:

Код

#!/usr/bin/perl

use strict;
use warnings;

use Fcntl;
use Device::SerialPort;

my $port = "/dev/ttyUSB0";

my $ob = Device::SerialPort->new($port) || die "Can't open port: $!";
$ob->baudrate(9600) || die "failed setting baudrate";
$ob->parity("none") || die "failed setting parity";
$ob->databits(8) || die "failed setting databits";

$ob->handshake("none") || die "failed setting handshake";
$ob->stopbits(1) || die "failed setting stopbits";
$ob->write_settings || die "failed writing settings";

my $cmd1 = chr(16).chr(3).chr(0).chr(50).chr(0).chr(1).chr(38).chr(132);
$ob->write($cmd1);

open(LOG, ">>", "test2.txt") || die "can't open log file: $!";

open(DEV, "<", $port) || die "can't open prt: $_";

select(LOG), $| = 1;

while($_ = <DEV>) {
    print LOG $_;
} 

undef $ob;

Автор: Bulat 12.11.2013, 07:59
Ларчик открылся, к настройкам usb-порта прямого отношения не имеет, бага была в самом коде perl.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)