Modem-Initialisierung mit perl-script (gelöst)

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
guennid

Modem-Initialisierung mit perl-script (gelöst)

Beitrag von guennid » 31.12.2005 09:35:59

Ich habe eine pcmcia-Datacard mit flat von eplus.
Z.Z. initialisiere ich unter kppp (sarge, kernel 2.6.8-standard, kde3.3) das pcmcia-modem über das miniterminal mit folgenden Eingaben

Code: Alles auswählen

at_opsys=0,2  
at+cpin="xxxx" 
at+cgdcont=1,"IP","internet.eplus.de"
Danach kann ich mich einwählen und surfen.
Für die automatisierte Eingabe der PIN habe ich hier folgendes perl-Beispielscript gefunden.

Code: Alles auswählen

#!/usr/bin/perl -w 
 
 use strict; 
 use warnings; 
 
 my $modem = "/dev/ttyUSB0"; 
 my $pin = "0000"; 
 
 $SIG{ALRM} = sub { 
         die("Timeout: Keine Antwort von der Karte $modem\n"); 
 }; 
 
 open(MODEM, "+<", $modem) or die("Das modem-Device konnte nicht geöffnet werden $modem"); 
 alarm(10); 
 print(MODEM "AT+CPIN=\"$pin\"\n\r"); 
 while (<MODEM>) { 
         if (m/OK/) { 
                 close(MODEM); 
                 print("PIN accepted\n"); 
                 exit(0); 
         } 
         if (m/ERROR/) { 
                 close(MODEM); 
                 print("PIN rejected\n"); 
                 exit(1); 
         } 
 } 
 
 

###### 
Ich habe null Ahnung von perl und ich fänd es auch etwas übertrieben, es lernen zu müssen, nur um den Internetzugang etwas komfortabler zu realisieren, aber ich denke soviel zu verstehen, dass in dieser Zeile:

Code: Alles auswählen

print(MODEM "AT+CPIN=\"$pin\"\n\r");
die PIN über eine Variable ans Modem geschickt wird..
Kann mir da jemand die beiden anderen Kommandos (at_opsys und at+cgdcont) einbauen?

Grüße, Günther
Zuletzt geändert von guennid am 31.12.2005 14:23:55, insgesamt 1-mal geändert.

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 31.12.2005 10:00:37

Ohne Gewähr.. bin selbst kein Perl Guru.. (ok das hier ist simpel)..

Code: Alles auswählen

#!/usr/bin/perl -w
 
 use strict;
 use warnings;
 
 my $modem = "/dev/ttyUSB0";
 my $pin = "0000";
 
 $SIG{ALRM} = sub {
         die("Timeout: Keine Antwort von der Karte $modem\n");
 };
 
 open(MODEM, "+<", $modem) or die("Das modem-Device konnte nicht geöffnet werden $modem");
 alarm(10);
 print(MODEM "at_opsys=0,2\n\r");
 print(MODEM "AT+CPIN=\"$pin\"\n\r");
 while (<MODEM>) {
         if (m/OK/) {
                 close(MODEM);
                 print("PIN accepted\n");
                 exit(0);
         }
         if (m/ERROR/) {
                 close(MODEM);
                 print("PIN rejected\n");
                 exit(1);
         }
 }
 
 print(MODEM "at+cgdcont=1,\"IP\",\"internet.eplus.de\"\n\r");
 

######
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

guennid

Beitrag von guennid » 31.12.2005 14:22:49

Savar, ich könnt' dich knutschen!!!
Alles paletti, vielen vielen Dank!

Günther

Antworten