1 #!/usr/bin/perl
3 use FileHandle;
5 $DATADIR="/home/weather/data";
7 if ($#ARGV < 0) { die "Usage: weatherd tty\n"; }
8 $TTY = $ARGV[0];
10 system("stty `cat /home/weather/bin/tty` < $TTY");
11 print "stty returned $?\n";
13 # Filename for today<\#146>s data
14 ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
15 	localtime(time);
16 $TODAY= sprintf "%02d%02d%02d", $mon+1, $mday, $year;
18 print "today is $TODAY\n";
19 
20 $OUTFILE = "$DATADIR/$TODAY";
21 open(LINE, "< $TTY") or die "Unable to open tty: $TTY";
22 open(OUT, ">> $OUTFILE") or die "Unable to open output file: $OUTFILE";
24 LINE->autoflush(1);
25 OUT->autoflush(1);
27 while(<LINE>)
28 {
30 	# parse out date, make sure it matches $TODAY
31 	#
32 	($time, $date, $wdir, $wspeed, $aux, $intemp,
33 		$outtemp, $hum, $bp, $raind, $rainm, $rain_rate) = split;
35 	$date =~ s/\///g;
37 	if ( $time =~ /Min/ ) {
38 		#system(" echo \<\#146>$_\<\#146> > $DATADIR/$date.min ");
40 		open(MIN, ">> $DATADIR/$date.min")
41 		 or die "Unable to open output file: $DATADIR/$date.min";
42 		printf MIN "%s", $_;
43 		close MIN;
44 	}
45 	elsif ( $time =~ /Max/ ) {
46 		#system(" echo \<\#146>$_\<\#146> > $DATADIR/$date.max ");
48 		open(MAX, ">> $DATADIR/$date.max")
49 		 or die "Unable to open output file: $DATADIR/$date.max";
50 		printf MAX "%s", $_;
51 		close MAX;
52 	}
53 	else
54 	{
55 		$date =~ s/\///g;
57 		if( $TODAY eq $date )
58 		{
59 			printf OUT "%s",$_; 
60 		}
61 		else
62 		{
63 			$TODAY = $date;
65 			# if not, close this file and open the next one
66 			close OUT;
67 			$OUTFILE = "$DATADIR/$TODAY";
68 			open(OUT, ">> $OUTFILE")
69 				or die "Unable to open output file: $OUTFILE";
71 			OUT->autoflush(1);
72 			printf OUT "%s",$_; 
73 		}
74 	}
