force AT$QCDMG from command-line master
authorDobrica Pavlinusic <dpavlin@rot13.org>
Tue, 31 Jan 2012 10:29:30 +0000 (11:29 +0100)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Tue, 31 Jan 2012 10:29:30 +0000 (11:29 +0100)
qcdm.pl

diff --git a/qcdm.pl b/qcdm.pl
index 03b20e2..57125b4 100755 (executable)
--- a/qcdm.pl
+++ b/qcdm.pl
@@ -53,7 +53,8 @@ sub crc {
 
 
 
-my $device = shift @ARGV || $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";
@@ -73,10 +74,12 @@ $port->read_const_time(3000); # 1 s read timeout
 
 while ( my $drain = $port->input ) {
        warn "# drain $drain\n";
+       $at_qcdmg = 1;
+}
 
+if ( $at_qcdmg ) {
        $port->write('AT$QCDMG' . "\r");
-       warn "DIAG mode: ", $port->read(2), $port->input; # OK+cr/lf
-
+       warn "DIAG mode: ", $port->read(9 + 3); # echo, OK+cr/lf
 }
 
 my $diag = {