mirror of https://github.com/aredn/aredn.git
feature: select a device to view archived data against, enabled chart zooming/panning
This commit is contained in:
parent
46c13c8c64
commit
c81127f2a4
|
@ -79,6 +79,7 @@ $header = <<EOF;
|
|||
\$(document).ready(function () {
|
||||
var MAXPOINTS=10;
|
||||
var chart = new CanvasJS.Chart("chartContainer", {
|
||||
zoomEnabled: true,
|
||||
backgroundColor: "#E7E7E7",
|
||||
title: {
|
||||
text: "$dmode Signal to Noise"
|
||||
|
@ -114,7 +115,7 @@ $header = <<EOF;
|
|||
}); // --- chart
|
||||
|
||||
var updateArchiveChart = function () {
|
||||
\$.getJSON("/cgi-bin/signal2.json", function (result) {
|
||||
\$.getJSON("/cgi-bin/signal2.json?device=$parms{device}", function (result) {
|
||||
chart.options.data[0].dataPoints = result[0];
|
||||
chart.options.data[1].dataPoints = result[1];
|
||||
chart.render();
|
||||
|
@ -122,11 +123,7 @@ $header = <<EOF;
|
|||
};
|
||||
|
||||
var updateRealtimeChart = function () {
|
||||
\$.getJSON("/cgi-bin/signal2.json?realtime=1", function (result) {
|
||||
//if (dps[0].length > MAXPOINTS) {
|
||||
// dps[0].shift();
|
||||
// dps[1].shift();
|
||||
//}
|
||||
\$.getJSON("/cgi-bin/signal2.json?realtime=1&device=$parms{device}", function (result) {
|
||||
dps[0].push(result[0][0]);
|
||||
dps[1].push(result[1][0]);
|
||||
chart.render();
|
||||
|
@ -156,6 +153,42 @@ $page = <<EOF;
|
|||
</div>
|
||||
<h1><big>$node</big></h1><hr>
|
||||
<nobr>
|
||||
<div id="deviceSelector">
|
||||
<form name="deviceSelector" method="GET" action="/cgi-bin/signal2">
|
||||
Selected Device: <select name="device" onChange="this.form.submit();">
|
||||
EOF
|
||||
|
||||
# get a list of files from /tmp/snrlog
|
||||
my @files = `ls -1A /tmp/snrlog`;
|
||||
$parms{device}="" if(!/$parms{device}/ ~~ @files);
|
||||
|
||||
# default to "Strongest Signal"
|
||||
if($parms{device}) {
|
||||
$page = $page . "<option value='strongest'>Strongest Signal</option>";
|
||||
} else {
|
||||
$page = $page . "<option selected value='strongest'>Strongest Signal</option>";
|
||||
}
|
||||
|
||||
# iterate over each file
|
||||
foreach $logfile (@files)
|
||||
{
|
||||
chomp($logfile);
|
||||
next if($logfile eq 'strongest');
|
||||
my ($dmac, $dname) = $logfile =~ /^(.*?)\-(.*)/;
|
||||
$dname=$logfile if($dname eq '');
|
||||
if($parms{device} eq $logfile) {
|
||||
$page = $page . "<option selected value='$logfile'>$dname</option>";
|
||||
} else {
|
||||
$page = $page . "<option value='$logfile'>$dname</option>";
|
||||
}
|
||||
}
|
||||
|
||||
$page = $page . "</select>";
|
||||
$page = $page . "<input type='hidden' name='realtime' value='1'></input>" if($parms{realtime} eq "1");
|
||||
|
||||
$page = $page . <<EOF;
|
||||
</form>
|
||||
</div>
|
||||
<div id="chartContainer" style="width: 800px; height: 380px;"></div>
|
||||
<button onclick="window.location.href='/cgi-bin/signal2'">Archive</button><button onclick="window.location.href='/cgi-bin/signal2?realtime=1'">Realtime</button><button onclick="window.location.href='/cgi-bin/status'">Quit</button>
|
||||
</center>
|
||||
|
|
|
@ -42,24 +42,32 @@ use perlfunc;
|
|||
read_query_string();
|
||||
|
||||
my $debug = 0;
|
||||
my $filename="/tmp/snrlog";
|
||||
my $dirname="/tmp/snrlog";
|
||||
my @values;
|
||||
my $counter=0;
|
||||
my $sjson;
|
||||
my $njson;
|
||||
|
||||
system("touch $filename") unless (-f $filename);
|
||||
system("mkdir $dirname") unless (-d $dirname);
|
||||
|
||||
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"));
|
||||
$d = sprintf ("%02d:%02d:%02d", $hour, $min, $sec);
|
||||
|
||||
#if($parms{device} eq '') {
|
||||
($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
|
||||
if($parms{device} == '') { $parms{device}="strongest"; }
|
||||
|
||||
$filename=$dirname . "/" . $parms{device};
|
||||
|
||||
open my $fh, '<', $filename or die "Could not open file '$filename' $!";
|
||||
chomp(my @lines = <$fh>);
|
||||
close $fh;
|
||||
|
|
Loading…
Reference in New Issue