Hallo alle,
ich möchte mit Perl eine RS232-Schnittstelle auslesen.
Zwar mache ich dies so:
open( PORT, "+>COM1" ) or die "COM1 konnte nicht geöffnet werden!";
my $datenauslesen = <PORT>;
print "$datenauslesen";
close (PORT);
So wollte ich jetzt einfach mal sehen welche Daten ich reinbekomme! Leider funktioniert es mir nicht. Außerdem wenn nichts angeschlossen ist an COM1 dann hängt der PC sich immer auf. Kann man dies verhindern?
Vielen Dank für Hilfe!!!
M.f.G.
Weman
User since
2005-08-10
17
Artikel
BenutzerIn
Hallo,
danke für den Tipp.
Kann ich dies einfach über ppm einbinden???
Weman
User since
2003-08-04
14371
Artikel
ModeratorIn
Es sind beide bei ActiveState als ppm vorhanden...
User since
2003-08-04
5246
Artikel
ModeratorIn
ausprobieren hilft in so einem fall meistens schneller ;-)
User since
2005-04-14
684
Artikel
BenutzerIn
Hallo
> ausprobieren hilft in so einem fall meistens schneller ;-)
Du irrst.
Es ist gar nicht so einfach Daten vom ComPort zu lesen oder zu schreiben.
Die Hardware auf der Gegenseite kann manchnal recht störrisch sein.
Es empfielt sich auf jeden Fall die gängigen Module (je nach Platform) zu nutzen, es ist aber verwegen die Kommunikation mit unbekannter Hard/Software als easy zu sehen.
Manchmal muß man den Port systemseitig konfigurieren, oft hat man keine Angaben über die Schnittstelle,
Ein Spaß ist das NIE.
Gruß Kristian
User since
2005-04-13
625
Artikel
BenutzerIn
Er meinte glaub ich, das es schneller geht, zu testen ob es bei ppm verfügbar ist
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'
http://perl-tutor.de
User since
2005-04-14
684
Artikel
BenutzerIn
Uuups, sorry
da habe ich wohl was falsch gelesen.
Indes, sowie er (OP) *das* Problem gelöst hat, gilt mein Beitrag wieder ohne Einschränkung.
Gruß Kristian
User since
2005-08-10
17
Artikel
BenutzerIn
Hallo,
danke für die Antworten.
Also, mit my $verbindung = open( PORT, "+>COM1" );
konnte ich jetzt die Verbindung öffnen und auch Daten für den Handle "Port" rauschicken.
Nur ich bekomme keine Daten zum PC rein. Entweder er läuft ewig oder das Script hängt sich einfach auf.
M.f.G.
Weman