Просмотр исходного кода

date for graph is now selectable

Ralf D. Müller 3 лет назад
Родитель
Сommit
5724f37ea6
2 измененных файлов с 49 добавлено и 28 удалено
  1. 2 1
      Changelog.md
  2. 47 27
      sd-card/html/graph.html

+ 2 - 1
Changelog.md

@@ -4,7 +4,8 @@
 
 
 ### Added
 ### Added
 
 
--   Addes PreValue to `/json` ([#1154](https://github.com/jomjol/AI-on-the-edge-device/issues/1154))
+-   added `/graph.html` to fetch measurements from the debug log and display them as a graph. Activate debug logging for this feature to work.
+-   Added PreValue to `/json` ([#1154](https://github.com/jomjol/AI-on-the-edge-device/issues/1154))
 
 
 ### Changed
 ### Changed
 
 

+ 47 - 27
sd-card/html/graph.html

@@ -1,29 +1,47 @@
+
 <html>
 <html>
-<head>
-<script src='https://cdn.plot.ly/plotly-2.14.0.min.js'></script>
-<style>
-    textarea {
-        width: 600px;
-        height: 300px;
+    <head>
+    <script src='https://cdn.plot.ly/plotly-2.14.0.min.js'></script>
+    <style>
+        textarea {
+            width: 600px;
+            height: 300px;
+        }
+    </style>
+    <script>
+    function run() {
+      var el = document.getElementById('cnsl');
+      el && eval(el.value);
     }
     }
-</style>
-<script>
-function run() {
-  var el = document.getElementById('cnsl');
-  el && eval(el.value);
+    </script>
+    </head>
+    <body>
+    <div id='chart'></div>
+    <select id="selector" onchange="document.location.href=document.location.href.split('#')[0]+'#'+this.value;run();"></select>
+    <button onclick="document.getElementById('editor').hidden = false; this.hidden = true;" >Editor</button>
+    <div id='editor' hidden='true'>
+    <textarea id="cnsl">
+var hash = window.location.hash;
+console.log (hash);
+var d = new Date();
+var options="<option>Please Select...</option>";
+for (var i=0;  i<27; i++) {
+  var currentDate = new Date(d-i*60*60*24*1000);
+  var option = currentDate.getFullYear()+"-"+(currentDate.getMonth()+1)+"-"+currentDate.getDate()
+  options += "<option>"+option+"</option>\n";
 }
 }
-</script>
-</head>
-<body>
-<div id='chart'></div>
-<button onclick="document.getElementById('editor').hidden = false; this.hidden = true;" >Editor</button>
-<div id='editor' hidden='true'>
-<textarea id="cnsl">
-const d = new Date();
-var date = d.getFullYear() + "-" + (d.getMonth()+1) + "-" + d.getDate();    
-fetch('/fileserver/log/message/log_'+date+'.txt')
+document.getElementById("selector").innerHTML = options;
+
+var dateString = d.getFullYear() + "-" + (d.getMonth()+1) + "-" + d.getDate();    
+if (hash!="") {
+  dateString = hash.substring(1);
+}
+fetch('/fileserver/log/message/log_'+dateString+'.txt')
 .then(response => {
 .then(response => {
     // handle the response
     // handle the response
+    if (response.status == 404) {
+      alert("no log data available for "+dateString);
+    }
     response.text()
     response.text()
     .then( result => {
     .then( result => {
         var lines = result.split("\n");
         var lines = result.split("\n");
@@ -40,19 +58,21 @@ fetch('/fileserver/log/message/log_'+date+'.txt')
                 var value = line.split(" ")[6];
                 var value = line.split(" ")[6];
                 var time  = line.split(" ")[0];
                 var time  = line.split(" ")[0];
                 console.log("> "+time+" "+value+"\n");
                 console.log("> "+time+" "+value+"\n");
-                trace.x.push(timex);
-                timex += 1;
-                trace.y.push(value);
+                if (value<1000) {
+                    trace.x.push(timex);
+                    timex += 1;
+                    trace.y.push(value);
+                }
             }
             }
         }
         }
         console.log(trace);
         console.log(trace);
         var data = [trace];
         var data = [trace];
         Plotly.newPlot('chart', data);
         Plotly.newPlot('chart', data);
     });
     });
-})
-.catch(error => {
+}).catch((error) => {
     // handle the error
     // handle the error
-out.value = "error";
+    console.log(error);
+alert("test");
 });        
 });        
 </textarea><br />
 </textarea><br />
 <button onclick="run();">run</button>
 <button onclick="run();">run</button>