/[cvs]/nfo/perl/scripts/serialcom/c-control/futter.pl
ViewVC logotype

Annotation of /nfo/perl/scripts/serialcom/c-control/futter.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations)
Tue May 27 22:27:03 2003 UTC (21 years, 1 month ago) by joko
Branch: MAIN
CVS Tags: HEAD
File MIME type: text/plain
initial commit

1 joko 1.1 #!/usr/bin/perl
2    
3     # $Id$
4     # $Log$
5    
6    
7     use CGI::Carp qw(fatalsToBrowser);
8    
9     # Konfiguration
10     $cfg_SeriellerPort = '/dev/ttyS1';
11    
12     use Device::SerialPort qw( :PARAM :STAT 0.07 );
13    
14     $PortName = $cfg_SeriellerPort;
15    
16     $PortObj = new Device::SerialPort ($PortName, $quiet)
17     || die "Can't open $PortName: $^E\n"; # $quiet is
18    
19     # configuring
20    
21     $PortObj->user_msg(ON);
22     $PortObj->baudrate(9600);
23     $PortObj->databits(8);
24     $PortObj->parity("none");
25     $PortObj->stopbits(1);
26     $PortObj->handshake("none");
27    
28     $PortObj->write_settings || undef $PortObj;
29    
30     # $PortObj->save($Configuration_File_Name);
31     # $PortObj->baudrate(300);
32     # $PortObj->restart($Configuration_File_Name); # back to 9600 baud
33    
34    
35     # operating
36    
37     # temporäre Variablen initialisieren
38    
39     $data_put = "41\r";
40    
41    
42    
43    
44     # Zeitvariablen initialisieren
45     my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat,
46     $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime(time);
47     my $CTIME_String = localtime(time);
48     $Monat+=1;
49     $Jahrestag+=1;
50     $Monat = $Monat < 10 ? $Monat = "0".$Monat : $Monat;
51     $Monatstag = $Monatstag < 10 ? $Monatstag = "0".$Monatstag : $Monatstag;
52     $Stunden = $Stunden < 10 ? $Stunden = "0".$Stunden : $Stunden;
53     $Minuten = $Minuten < 10 ? $Minuten = "0".$Minuten : $Minuten;
54     $Sekunden = $Sekunden < 10 ? $Sekunden = "0".$Sekunden : $Sekunden;
55     $Jahr+=1900;
56     my @Wochentage = ("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
57     my @Monatsnamen = ("","Januar","Februar","M&auml;rz","April","Mai","Juni",
58     "Juli","August","September","Oktober","November","Dezember");
59    
60    
61     #print $Jahrestag;
62    
63     my $Sekunden_time = time();
64     my $Stunden_time = int($Sekunden_time / 3600);
65     my $Tage_time = int($Sekunden_time / (24 * 3600));
66     my $Wochen_time = int($Sekunden_time / (7 * 24 * 3600));
67    
68     # Config Datei Lesen
69     open(DATEI, "</tmp/futter.cfg") || die "Datei nicht gefunden";
70     my @Zeilen = <DATEI>;
71     close(DATEI);
72    
73     $sek_calc = ($Zeilen[3] * 60);
74     $wielangeher = ($Sekunden_time - $Zeilen[4]);
75     $sec_nach_fuetterung = $wielangeher;
76    
77     $sec_noch = ($sec_nach_fuetterung - $sek_calc);
78    
79     $test1 = ($Sekunden_time - ($Zeilen[4]+ $sek_calc));
80     if ($test1 lt 1 ) {$tester = 1}
81    
82     if ($Jahrestag > $Zeilen[0]) { $Zeilen[1] = "0\n" }
83    
84    
85     if ($Jahrestag => $Zeilen[0]) {
86    
87    
88     if ($Stunden > 7) {
89    
90    
91     if ($Stunden < 22) {
92    
93    
94     if ($Zeilen[1] < $Zeilen[2]) {
95    
96     if ($tester != 1) {
97    
98    
99     ## Fuettern ##
100     $count_out = $PortObj ->write($data_put);
101     warn "write failed\n" unless ($count_out);
102     warn "write incomplete\n" if ( $count_out != length($data_put) );
103     $data_out = $PortObj->write_done(0);
104    
105     $data_put = "40\r";
106     sleep(1);
107    
108     $count_out = $PortObj ->write($data_put);
109     warn "write failed\n" unless ($count_out);
110     warn "write incomplete\n" if ( $count_out != length($data_put) );
111     $data_out = $PortObj->write_done(0);
112     ## Ende Fuettern ##
113    
114     print "Location: http://www.axquarium.de/kunden/axquarium/d2u.nsf/futter?OpenForm&Query=F&uuml;ttere%20!\n\n";
115    
116     $Zeilen[1] = ($Zeilen[1] +1)."\n";
117     $Zeilen[4] = "$Sekunden_time\n";
118     $Zeilen[0] = "$Jahrestag\n";
119    
120     open(DATEI, ">/tmp/futter.cfg") || die "Datei nicht gefunden";
121     print DATEI @Zeilen;
122     close(DATEI);
123    
124     } else {
125    
126     print "Location: http://www.axquarium.de/kunden/axquarium/d2u.nsf/futter?OpenForm&Query=Die%20letze%20F&uuml;tterung%20ist%20";
127    
128     my $Sekundenzahl = $sec_nach_fuetterung;
129     sub zeitformat{
130     my $Sekundenzahl = shift;
131     $Sekundenzahl = abs($Sekundenzahl);
132     printf "%d Tage %02d:%02d:%02d",
133     $Sekundenzahl/24/60/60,($Sekundenzahl/60/60)%24,($Sekundenzahl/60)%60,$Sekundenzahl%60;
134     }
135     zeitformat($Sekundenzahl);
136     print " Stunden her.<br>In ";
137    
138     my $Sekundenzahl2 = $sec_noch;
139     sub zeitformat2{
140     my $Sekundenzahl2 = shift;
141     $Sekundenzahl2 = abs($Sekundenzahl2);
142     printf "%d Tagen %02d:%02d:%02d",
143     $Sekundenzahl2/24/60/60,($Sekundenzahl2/60/60)%24,($Sekundenzahl2/60)%60,$Sekundenzahl2%60;
144     }
145     zeitformat2($Sekundenzahl2);
146     print "%20Stunden%20kann%20wieder%20gef&uuml;ttert%20werden.\n\n";
147    
148     }
149     } else {
150     chomp($Zeilen[2]);
151     chomp($Zeilen[1]);
152     print "Location: http://www.axquarium.de/kunden/axquarium/d2u.nsf/futter?OpenForm&Query=Heute%20schon%20";
153     print "$Zeilen[2] mal%20gef&uuml;ttert.<br>Maximal%20";
154     print "$Zeilen[2]";
155     print "%20F&uuml;tterungen%20t&auml;glich%20erlaubt.\n\n";
156    
157     # print "Location: http://www.axquarium.de/kunden/axquarium/d2u.nsf/futter?OpenForm&Query=Nach 22 Uhr sind die Fische schon im Bett.\n\n";
158     }
159     } else {
160     print "Location: http://www.axquarium.de/kunden/axquarium/d2u.nsf/futter?OpenForm&Query=Nach 22 Uhr sind die Fische schon im Bett.\n\n";
161     }
162     } else {
163     print "Location: http://www.axquarium.de/kunden/axquarium/d2u.nsf/futter?OpenForm&Query=Vor 8 Uhr schlafen die Fische noch.\n\n";
164     }
165     } else {
166     print "Location: http://www.axquarium.de/kunden/axquarium/d2u.nsf/futter?OpenForm&Query=Gepeichert ist die Jahreszahl $Zeilen[0] Heute ist Jahrestag:$Jahrestag\n\n";
167     #print "Gepeichert ist die Jahreszahl $Zeilen[0] Heute ist Jahrestag:$Jahrestag<br>\n";
168     }
169     #print '<br><br><br><img src="/axquarium/webcam/pic/image.jpg" alt="Futterbild"><br>', "\n";
170     #print "Bitte F5 druecken um das Bild zu aktualisieren.<br>\n";
171     #print "CTIME:$CTIME_String<br>\n";
172     #print '</p></body></html>', "\n";
173     #print "\n\n";
174     v

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed