X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=loop.pl;h=4046ca9b95b42dd95f00a8313a4fc588b433563b;hb=104d1371435741ced5e3fe8f78f352865505133c;hp=71464fd208d81390b2fa588a348855c484adaf83;hpb=729468e0480bc5a382f61b29e0c4ae27866536d4;p=dweather.git
diff --git a/loop.pl b/loop.pl
index 71464fd..4046ca9 100755
--- a/loop.pl
+++ b/loop.pl
@@ -13,6 +13,8 @@ use JSON;
use Debug;
use SMGLog;
use Math::Round qw(nearest);
+use File::Copy;
+use Data::Random qw(rand_chars);
use constant pi => 3.14159265358979;
@@ -153,6 +155,9 @@ dbg "after app start";
write_ld();
close $dataf if $dataf;
+# move all the files along one
+cycle_loop_data_files();
+
dbg '***';
dbg "*** ending $0";
dbg '***';
@@ -163,10 +168,6 @@ exit 0;
sub loop
{
-
- open $dataf, "+>>", $datafn or die "cannot open $datafn $!";
- $dataf->autoflush(1);
-
read_ld();
dbg "last_min: " . scalar gmtime($ld->{last_min});
@@ -375,6 +376,8 @@ sub process
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};
@@ -618,7 +621,10 @@ sub calc_rain
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>;
@@ -645,8 +651,11 @@ sub read_ld
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;
$ld->{ts} = time;
@@ -655,6 +664,16 @@ sub write_ld
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__
@@ -707,29 +726,40 @@ __DATA__
Time: | + | Sunrise: | + | Sunset: | + | Console Volts: | + | TX Battery OK: | + | ||
---|---|---|---|---|---|---|---|---|---|---|---|
Pressure: | + | Trend: | + | ||||||||
Temperature in: | Humidity: | + | |||||||||
Temperature out: | Min: | Max: | Humidity: | Dew Point: | + | ||||||
Wind Direction: | - | Minute: | + | Minute Avg: | Speed: | - | Minute: | + | Minute Avg: | + | |
Rain Hour: | + | Rain 30mins: | Day: | 24hrs: | Month: | Year: |