diff --git a/files/etc/crontabs/root b/files/etc/crontabs/root index 8d2a6c30..1ad28724 100644 --- a/files/etc/crontabs/root +++ b/files/etc/crontabs/root @@ -1 +1,2 @@ */5 * * * * /usr/local/bin/fccid +* * * * * /usr/local/bin/snrlog diff --git a/files/usr/local/bin/snrlog b/files/usr/local/bin/snrlog new file mode 100755 index 00000000..5f34da1f --- /dev/null +++ b/files/usr/local/bin/snrlog @@ -0,0 +1,24 @@ +#!/usr/bin/perl +BEGIN {push @INC, '/www/cgi-bin'}; +use perlfunc; + +my $filename = '/tmp/snrlog'; +my $MAXLINES=48960; # 17bytes * 60mins * 24 hours * 2 days + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time); +$d = sprintf ("%02d:%02d:%02d", $hour, $min, $sec); +($s, $n) = get_wifi_signal(get_interface("wifi")); +$s = $n if $s eq "N/A"; + +open(my $fh, '>>', $filename) or die "Could not open file '$filename' $!"; +print $fh "$d,$s,$n\n"; +close $fh; + +$lcount=`wc -l < $filename`; +chomp($lcount); + +if($lcount>$MAXLINES) +{ + $rc=`tail -n$MAXLINES $filename > $filename.tmp`; + $rc=`mv $filename.tmp $filename`; +} \ No newline at end of file diff --git a/files/www/cgi-bin/signal2 b/files/www/cgi-bin/signal2 new file mode 100644 index 00000000..d2a9c8ee --- /dev/null +++ b/files/www/cgi-bin/signal2 @@ -0,0 +1,177 @@ +#!/usr/bin/perl +=for commnet + + Part of AREDN -- Used for creating Amateur Radio Emergency Data Networks + Copyright (C) 2015 Darryl Quinn + See Contributors file for additional contributors + + Copyright (c) 2013 David Rivenburg et al. BroadBand-HamNet + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation version 3 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + + Additional Terms: + + Additional use restrictions exist on the AREDN(TM) trademark and logo. + See AREDNLicense.txt for more info. + + Attributions to the AREDN Project must be retained in the source code. + If importing this code into a new or existing project attribution + to the AREDN project must be added to the source code. + + You must not misrepresent the origin of the material conained within. + + Modified versions must be modified to attribute to the original source + and be marked in reasonable ways as differentiate it from the original + version. +=cut + +$debug = 0; + +BEGIN {push @INC, '/www/cgi-bin'}; +use perlfunc; + +read_query_string(); + +# collect some variables +$node = nvram_get("node"); +$node = "NOCALL" unless $node; + +if($parms{"realtime"} ) +{ + $dmode="Realtime"; +} else { + $dmode="Archived"; +} + +http_header(); +html_header("$node $dmode signal strength", 0); + +$header = < + + + +EOF + +$page = < +
+
+
+
+

$node


+ +
+
+EOF + +print $header; +print $page; +show_debug_info(); +print ""; + +sub DEBUGEXIT() +{ + my ($text) = @_; + http_header(); + html_header("$node setup", 1); + print "DEBUG-"; + print $text; + print ""; + exit; +} diff --git a/files/www/cgi-bin/signal2.json b/files/www/cgi-bin/signal2.json new file mode 100755 index 00000000..2a0cdbee --- /dev/null +++ b/files/www/cgi-bin/signal2.json @@ -0,0 +1,100 @@ +#!/usr/bin/perl +=for commnet + + Part of AREDN -- Used for creating Amateur Radio Emergency Data Networks + Copyright (C) 2015 Conrad Lara + See Contributors file for additional contributors + + Copyright (c) 2013 David Rivenburg et al. BroadBand-HamNet + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation version 3 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + + Additional Terms: + + Additional use restrictions exist on the AREDN(TM) trademark and logo. + See AREDNLicense.txt for more info. + + Attributions to the AREDN Project must be retained in the source code. + If importing this code into a new or existing project attribution + to the AREDN project must be added to the source code. + + You must not misrepresent the origin of the material conained within. + + Modified versions must be modified to attribute to the original source + and be marked in reasonable ways as differentiate it from the original + version. + +=cut + +BEGIN {push @INC, '/www/cgi-bin'}; +use perlfunc; + +read_query_string(); + +my $debug = 0; +my $filename="/tmp/snrlog"; +my @values; +my $counter=0; +my $sjson; +my $njson; + +if($parms{"realtime"}) { + # ==== REALTIME DATA ===== + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time); + $d = sprintf ("%02d:%02d:%02d", $hour, $min, $sec); + ($s, $n) = get_wifi_signal(get_interface("wifi")); + $sjson= sprintf("{\"label\":\"%s\",\"y\":%s}",$d,$s); + $njson= sprintf("{\"label\":\"%s\",\"y\":%s}",$d,$n); +} else { + # ==== ARCHIVE DATA ===== + # --- Load the snr data into an array + open my $fh, '<', $filename or die "Could not open file '$filename' $!"; + chomp(my @lines = <$fh>); + close $fh; + + # --- iterate over each line and build the json strings + foreach my $line (@lines) { + @values = split(',', $line); + chomp($values[0]); + chomp($values[1]); + chomp($values[2]); + #print "{\"label\":\"$values[0]\",\"y\":\"$values[1]\",\"n\":\"$values[2]\"},"; + $sjson= join("", $sjson, sprintf("{\"label\":\"%s\",\"y\":%s}",$values[0],$values[1])); + $njson= join("", $njson, sprintf("{\"label\":\"%s\",\"y\":%s}",$values[0],$values[2])); + + # --- properly terminate json + if(++$counter != scalar(@lines)) { + $sjson=join("", $sjson, ","); + $njson=join("", $njson, ","); + } + } +} + +&json_header(); + +print "[["; +print $sjson; +print "],["; +print $njson; +print "]]"; + + +sub json_header +{ + # THIS MUST BE ONE LINE! + # otherwise an intermittent busybox bug will incorrectly "fix" the generated output + # print "HTTP/1.0 200 OK\r\n"; # Not needed under Uhttpd + print "Content-type: application/json\r\n"; + print "Cache-Control: no-store\r\n"; + print "\r\n"; +}