Thread Schwierigkeiten mit serieller Schnittstelle: Benutzen von Win32::SerialPort (3 answers)
Opened by Gast at 2004-08-14 10:12

Gast Gast
 2004-08-14 10:12
#49291 #49291
Ich habe in Perl ein kleines Script geschrieben, das (unter Windows) eine Serielle Schnittstelle öffnet, Einen Befehl in die Schnittstelle schreibt, und dann ein paar Zeichen wieder Ausliest.

Das komische daran ist jedoch, dass das manchmal klappt, manchmal auch nicht.

Ich glaube nicht, dass das an der Hardware oder an Windows liegt, da ich das schon auf zwei verschiedenen Rechnern ausprobiert habe (einmal win 2000, einmal XP).

Hier das Script:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!perl -w

use strict;
use Win32::SerialPort;

my ($count, $result);
$count = 0;
$result = "#";

my $pruefling = new Win32::SerialPort ("COM1") || die "Konnte den Port für den Prüfling nicht öffnen!";


print "Port ist nun geöffnet!\n";
$pruefling->user_msg("ON");
$pruefling->databits(8);
$pruefling->baudrate(1200);
$pruefling->parity("none");
$pruefling->stopbits(1);
$pruefling->handshake("none");
$pruefling->write_settings || undef $pruefling;


print "Einrichten fertig!\n";

$pruefling->read_interval(300); # Zeit Zwischen einzelnen Zeichen, bei Überschreitung Abbruch
$pruefling->read_const_time(1000); # Maximale Gesamtzeit zum Einlesen von Zeichen, dann Abbruch
$pruefling->write("#036\r");

($count, $result) = $pruefling->read(80); # Entweder 80 Zeichen einlesen, oder Zeitaus
print "count = $count, result = $result\n";


undef $pruefling;



Hat jemand eine Idee was man an diesem Script verbessern könnte?


Bearbeitet von Crian: CODE-Tags ergänzt\n\n

<!--EDIT|Crian|1092491775-->

View full thread Schwierigkeiten mit serieller Schnittstelle: Benutzen von Win32::SerialPort