Code:
#!/usr/bin/perl
use Tk;
use Win32::SerialPort qw( :STAT 0.19 ); # erforderlich für die serielle Schnittstelle
use strict;
my $schnittstelle = "com3"; # hier wird angegeben welcher COM-Port genutzt werden soll
my $quiet;
my $pass;
my $return;
my $mw = new MainWindow;
$mw->title ("5491A Initialisierung"); # Fenster Titel
my $label1 = $mw->Label (-text=>"Messwert wird geholt");
#my $entry1 = $mw->Entry (-width=>60);
# Constructor & Basic Values
my $ob = new Win32::SerialPort ($schnittstelle, $quiet) || die "Can't open $schnittstelle: $^E\n"; # $quiet is optional
$ob->baudrate (9600) || die "fail setting baudrate";
$ob->parity ("none") || die "fail setting parity";
$ob->databits (8) || die "fail setting databits";
$ob->stopbits (1) || die "fail setting stopbits";
$ob->handshake ("none") || die "fail setting handshake";
$ob->dtr_active (1) || die "fail setting dtr_active";
$ob->write_settings || die "no settings";
sleep 1;
$pass = $ob->write("R1\015\n") or die ("Fehler: $!");
sleep 1;
if (($return = $ob->input) ne "")
{
$ob->write ($return);
print "$return";
$label1->configure(-text=>"Messwert geholt (Initialisierung erfolgreich): $return");
}
else
{
$label1->configure(-text=>'Es konnte kein Messwert gelesen werden. Bitte Verbindung kontrollieren.');
}
undef $ob;
$label1->pack (-side=>"left");
#$entry1->pack (-side=>"left");
MainLoop;
Code:
#!/usr/bin/perl
use Win32::SerialPort qw( :STAT 0.19 );
use strict;
my $schnittstelle = "com3";
my $quiet;
my $pass;
my $return;
my $ob = new Win32::SerialPort ($schnittstelle, $quiet) || die "Can't open $schnittstelle: $^E\n"; # $quiet is optional
$ob->baudrate (9600) || die "fail setting baudrate";
$ob->parity ("none") || die "fail setting parity";
$ob->databits (8) || die "fail setting databits";
$ob->stopbits (1) || die "fail setting stopbits";
$ob->handshake ("none") || die "fail setting handshake";
$ob->dtr_active (1) || die "fail setting dtr_active";
$ob->write_settings || die "no settings";
sleep 1; # Sleep erfordlich
$pass = $ob->write("S10\015\n") or die ("Fehler: $!"); # dies ist der eigentliche Befehl!
sleep 1;
undef $ob;
Code:
#möchte man Ströme messen, ist das obige Codebeispiel in folgender Zeile anzupassen:
$pass = $ob->write("S140\015\n") or die ("Fehler: $!");
# kurz gesagt anstatt S10, S140
Code:
$pass = $ob->write("R1\015\n") # R1\015\n ruft einen Messwert ab!
Statistik: Verfasst von QME — Mi 24. Aug 2011, 16:18