use SMGLog;
use Math::Round qw(nearest);
use File::Copy;
+use Data::Random qw(rand_chars);
use constant pi => 3.14159265358979;
close $dataf if $dataf;
# move all the files along one
-copy "$datafn.oooo", "$datafn.ooooo";
-copy "$datafn.ooo", "$datafn.oooo";
-copy "$datafn.oo", "$datafn.ooo";
-copy "$datafn.o", "$datafn.oo";
-copy $datafn, "$datafn.o";
-
+cycle_loop_data_files();
dbg '***';
dbg "*** ending $0";
sub loop
{
-
- open $dataf, "+>>", $datafn or die "cannot open $datafn $!";
- $dataf->autoflush(1);
-
read_ld();
dbg "last_min: " . scalar gmtime($ld->{last_min});
if ($dayno > $ld->{last_day}) {
$ld->{Temp_Out_Max} = $ld->{Temp_Out_Min} = $temp;
$ld->{last_day} = $dayno;
+ write_ld();
+ cycle_loop_data_files();
}
$ld->{Temp_Out_Max} = $temp if $temp > $ld->{Temp_Out_Max};
$ld->{Temp_Out_Min} = $temp if $temp < $ld->{Temp_Out_Min};
sub read_ld
{
- return unless $dataf;
+ unless ($dataf) {
+ open $dataf, "+>>", $datafn or die "cannot open $datafn $!";
+ $dataf->autoflush(1);
+ }
seek $dataf, 0, 0;
my $s = <$dataf>;
sub write_ld
{
- return unless $dataf;
+ unless ($dataf) {
+ open $dataf, "+>>", $datafn or die "cannot open $datafn $!";
+ $dataf->autoflush(1);
+ }
seek $dataf, 0, 0;
truncate $dataf, 0;
print $dataf "$s\n";
}
+sub cycle_loop_data_files
+{
+ close $dataf if $dataf;
+
+ rename "$datafn.oooo", "$datafn.ooooo";
+ rename "$datafn.ooo", "$datafn.oooo";
+ rename "$datafn.oo", "$datafn.ooo";
+ rename "$datafn.o", "$datafn.oo";
+ copy $datafn, "$datafn.o";
+}
__DATA__
<th>Minute Avg:<td> <span id="Wind_1m"> </span>
<tr>
-<th>Rain Hour:<td> <span id="Rain_1h"> </span>
+<th>Rain 30mins:<td> <span id="Rain_1h"> </span>
<th>Day:<td> <span id="Rain_Day"> </span>
<th>24hrs:<td> <span id="Rain_24h"> </span>
<th>Month:<td> <span id="Rain_Month"> </span>