From badea73c4d2cf0080dcd3b66226402b4b0e5c2c1 Mon Sep 17 00:00:00 2001 From: Bram Barbieri Date: Tue, 2 Apr 2024 15:55:10 +0200 Subject: [PATCH] Uml added, documetnation added --- server/web-data-connection/sensorNodeClass.py | 4 ++-- server/web-data-connection/umlpython.png | Bin 0 -> 19133 bytes 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 server/web-data-connection/umlpython.png diff --git a/server/web-data-connection/sensorNodeClass.py b/server/web-data-connection/sensorNodeClass.py index c3cb90d..0e22bb9 100644 --- a/server/web-data-connection/sensorNodeClass.py +++ b/server/web-data-connection/sensorNodeClass.py @@ -5,7 +5,7 @@ from classes_data import Node from classes_data import dbLogin class SensorNode(Node): - query = "INSERT INTO `Measurement` (NodeID, Type, Value) VALUES (%s, %s, %s)" + __query = "INSERT INTO `Measurement` (NodeID, Type, Value) VALUES (%s, %s, %s)" def __init__(self, macAdress, temp, humi, eCO2, TVOC): super().__init__(macAdress) @@ -30,7 +30,7 @@ class SensorNode(Node): pushingDataArray = [(nodeID, "Temp", SensorNode.temperature), (nodeID, "Humi", SensorNode.humidity), (nodeID, "eCO2", SensorNode.eCO2), (nodeID, "TVOC", SensorNode.TVOC)] for i in pushingDataArray: - cursor.execute(SensorNode.query, i) + cursor.execute(SensorNode.__query, i) mydb.commit() diff --git a/server/web-data-connection/umlpython.png b/server/web-data-connection/umlpython.png new file mode 100644 index 0000000000000000000000000000000000000000..721adcad35be409052186741cd39acb06044b7e5 GIT binary patch literal 19133 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 literal 0 HcmV?d00001