WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Perl: TTY-fråga (https://www.wn.se/forum/showthread.php?t=1053490)

Digitum 2012-05-20 14:10

Perl: TTY-fråga
 
Hej.

Jag vill fråga ett modem om lite parametrar med hjälp av PERL, men jag kan inte hitta rätt information om hur jag skall gör.

Låt säga att jag vill fråga /dev/ttyUSB0 följande: AT+COPS
Hur får jag då tag på svaret?

Pseudokod:
Kod:

sub getnetworkinfo
{
  Öppna /dev/ttyUSB0
  if(/dev/ttyUSB0 öppnad)
  {
      Sänd kommando "AT+COPS" till /dev/ttyUSB0
      Fånga svaret
      Stäng anslutning
      Rensa datan
      returnera info
  }
  returnera false
}

PS! Jag är på en väldigt låg PERL-kunskapsnivå men har hyfsad kunskap i programmering av scriptspråk i allmänhet.

Digitum 2012-05-20 17:46

Jag har hittat lite info men jag får det inte riktigt att fungera.

Så här kan en kommunikation se ut:
Kod:

AT

OK
AT+COPS?

+COPS: 0,2,"24005",2

OK

Det i rött är det jag skriver.

Så här ser min kod ut:
Kod:

#!/usr/local/bin/perl
use Device::SerialPort;

my $port = Device::SerialPort->new("/dev/ttyUSB0")||
      die("Kan inte öppna port");

$port->write("AT+COPS?\n");
my $line;
my $i = 0;
print "Data från modem:";
while($i++ < 10)
{
        print "\n" . $i . ":";
        $line = $port->read();
        print $line;
}
print "\nSlut\n";


Digitum 2012-05-24 15:11

Jag har inte löst det men jag bytte till IO::Modem i stället och det fungerade utmärkt.


Alla tider är GMT +2. Klockan är nu 05:03.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson