Mahlzeit,
hab mal ne kleine Frage /Problem. Nachdem ich erfolgreich den Timer aus svdrpsend.pl ausgelesen hab möchte ich die Daten über die Serielle Schnittstelle an eine ext. C- Control übergeben. Leider klappt garnicht wie ich mir das vorgestellt habe. Unter Win mit Hyper Terminal funktioniert das wie es soll. hier ist das skript bis jetzt:
Perl
#!/usr/bin/perl
use POSIX qw(strftime);
use IO::Handle;
$curTime = time();
$next = `svdrpsend.pl next abs`;
if($next =~ /550 No active timers/) {
#platzhalter
}
elsif($next =~ /250 \d+ (\d+)/)
{
setVar($1);
}
sub setVar {
my $Next = shift;
print("Next event at ", strftime("%d.%m.%Y %H:%M", localtime($Next)),"\n");
#Wakeup- Zeit in Variablen verpacken
$intHour = strftime("%H",localtime($Next));
$intMin =strftime("%M",localtime($Next));
$intDay = strftime("%d",localtime($Next));
$intMonth = strftime("%m",localtime($Next));
$intYear = strftime("%y",localtime($Next));
print $intMin,"\n";
print $intHour,"\n";
print $intDay,"\n";
print $intMonth,"\n";
print $intYear,"\n";
#Akt. Zeit in Variablen verpacken
$intcurMin = strftime("%M",localtime($curTime));
$intcurHour = strftime("%H",localtime($curTime));
$intcurMonth = strftime("%m",localtime($curTime));
$intcurDay = strftime("%d",localtime($curTime));
$intcurYear = strftime("%y",localtime($curTime));
#Serielle Schnittstelle öffnen und werte Schreiben
open (serial, "+>/dev/ttyS1" -s9600 ); # '+' steht fuer 'update' open (serial, "+>/dev/ttyS1");
#serial->autoflush(1);
#Aktuelle Zeit senden
print serial "$intcurMin\015";
print serial "$intcurHour\015";
print serial "$intcurDay\015";
print serial "$intcurMonth\015";
print serial "$intcurYear\015";
#wakeup- Zeit senden
print Serial "$intMin\015";
print serial "$intHour\015";
print serial "$intDay\015";
print serial "$intMonth\015";
print serial "$intYear\015";
#else {
#print "Fehler an Schnittstelle}
close (serial);
}
Alles anzeigen
Bis auf dem teil mit der seriellen macht das skript was es soll.
Weiß jemand wie das Schreiben auf ttyS1 unter Perl richtig funktioniert?
Ich jedenfalls nicht!
Die manpages und FAQ's zum Thema hab ich schon durch werd daraus aber nicht richtig schlau.
cya
Muddel