query Huawei and ZTE specific AT commands
[huawei.git] / at-chat.pl
index 0fc9411..a9a8756 100755 (executable)
@@ -5,7 +5,7 @@ use strict;
 use Device::SerialPort;
 use Data::Dump qw(dump);
 
 use Device::SerialPort;
 use Data::Dump qw(dump);
 
-my $device = $ENV{DEVICE} || '/dev/ttyUSB0';
+my $device = $ENV{DEVICE} || shift @ARGV || '/dev/ttyUSB0';
 
 my $port = Device::SerialPort->new( $device ) || die "$device: $!";
 $port->baudrate(115200) || die "fail $device baudrate";
 
 my $port = Device::SerialPort->new( $device ) || die "$device: $!";
 $port->baudrate(115200) || die "fail $device baudrate";
@@ -56,7 +56,9 @@ c 'ATZ' => 'reset';
 
 c 'ATI'  => 'info';
 
 
 c 'ATI'  => 'info';
 
-c 'AT+CGMI'  => 'manufacturer';
+c 'AT+CPIN?' => 'SIM pin';
+
+my $manufacturer = c 'AT+CGMI'  => 'manufacturer';
 
 c 'AT+CGMM'  => 'model';
 
 
 c 'AT+CGMM'  => 'model';
 
@@ -74,6 +76,10 @@ c 'AT+CNUM'  => 'MSISDN';
 
 c 'AT+CLCK=?' => 'facility lock';
 
 
 c 'AT+CLCK=?' => 'facility lock';
 
+if ( $manufacturer =~ m/Huawei/i ) {
+
+print "# Huawei\n";
+
 c 'AT^HWVER' => 'hardware version';
 
 c 'AT^CVOICE?' => 'is voice enabled?';
 c 'AT^HWVER' => 'hardware version';
 
 c 'AT^CVOICE?' => 'is voice enabled?';
@@ -82,6 +88,17 @@ c 'AT^DDSETEX=?' => 'voice output';
 
 c 'AT^SYSINFO' => 'sys info';
 
 
 c 'AT^SYSINFO' => 'sys info';
 
+} elsif ( $manufacturer =~ m/ZTE/i ) {
+
+print "# ZTE\n";
+
+c 'AT+GMR'  => 'revision';
+
+c 'AT+GCI?' => '?';
+
+c 'AT+ZOPRT?' => '?';
+
+}
 
 $port->close || die "can't close port $!";
 
 
 $port->close || die "can't close port $!";