X-Git-Url: http://git.rot13.org/?p=huawei.git;a=blobdiff_plain;f=qcdm.pl;h=57125b461f66505d0184e37b697638b90332421c;hp=21a1673581dbadeb912944ac128e822a9d56988e;hb=HEAD;hpb=932883ea61826723d57f912fae6fa3938393f286 diff --git a/qcdm.pl b/qcdm.pl index 21a1673..57125b4 100755 --- a/qcdm.pl +++ b/qcdm.pl @@ -53,7 +53,8 @@ sub crc { -my $device = $ENV{DEVICE} || '/dev/ttyUSB2'; # last device! control port! +my $device = $ARGV[0] || $ENV{DEVICE} || '/dev/ttyUSB2'; # last device! control port! +my $at_qcdmg = $ARGV[1]; # force AT$QCDMG from command-line my $port = Device::SerialPort->new( $device ) || die "$device: $!"; $port->baudrate(115200) || die "fail $device baudrate"; @@ -72,7 +73,13 @@ $port->read_char_time(3000); # 5 s char timeout $port->read_const_time(3000); # 1 s read timeout while ( my $drain = $port->input ) { - warn "# drain $drain\n# /drain\n"; + warn "# drain $drain\n"; + $at_qcdmg = 1; +} + +if ( $at_qcdmg ) { + $port->write('AT$QCDMG' . "\r"); + warn "DIAG mode: ", $port->read(9 + 3); # echo, OK+cr/lf } my $diag = { @@ -97,9 +104,6 @@ my $diag = { warn "## using $device\n"; -#$port->write('AT$QCDMG'); -#warn "DIAG mode: ", $port->read(2), $port->input; # OK+cr/lf - sub as_hex { my @out; foreach my $str ( @_ ) {