From d1e700943309d96b96fb3e8ef11746787759f554 Mon Sep 17 00:00:00 2001 From: mia Date: Wed, 11 Jun 2025 11:33:06 +0200 Subject: [PATCH] Server now uses JS to render Graphs instead of Matplotlib. --- webserver/server.py | 23 ++++++++++++++++++ webserver/templates/index.html | 43 +++++++++++++++++++++++++++------- 2 files changed, 57 insertions(+), 9 deletions(-) diff --git a/webserver/server.py b/webserver/server.py index b60be26..14d39c9 100644 --- a/webserver/server.py +++ b/webserver/server.py @@ -86,6 +86,29 @@ class Sensor: def getReadingsTime(self): return self.getReadings(timetype="time") + def getChartJSData(self, limit=5, reversed=False, timetype="ts"): + datalist: list = [[],[]] + match timetype: + case "ts": + for i in range(limit if limit < len(self.ts) else len(self.ts)): + datalist[0].append(self.ts[i]) + datalist[1].append(self.values[i]) + case "time": + for i in range(limit if limit < len(self.ts) else len(self.ts)): + datalist[0].append(self.timeonly[i]) + datalist[1].append(self.values[i]) + case "timedate": + for i in range(limit if limit < len(self.ts) else len(self.ts)): + datalist[0].append(self.timedate[i]) + datalist[1].append(self.values[i]) + case _: + return "ERROR: timetype must be one of 'ts', 'time', 'timedate'" + if reversed: + datalist[0].reverse() + datalist[1].reverse() + return datalist + + def getValueByTimestamp(self, ts: int): c = 0 for i in self.ts: diff --git a/webserver/templates/index.html b/webserver/templates/index.html index 106707f..dbe1128 100644 --- a/webserver/templates/index.html +++ b/webserver/templates/index.html @@ -15,6 +15,9 @@ href="{{ url_for('static', filename='favicon.ico') }}" /> Sensor Data +