From 17f6ba8376a357cf90891b7c5b4a51e3e90d69c2 Mon Sep 17 00:00:00 2001 From: sietse jonker Date: Tue, 26 Mar 2024 23:03:26 +0100 Subject: [PATCH 1/2] Add WebSocket data sender scripts --- server/bullshitSenderENQUETE.py | 31 +++++++++++++++++++ ...lshitSender.py => bullshitSenderSENSOR.py} | 0 2 files changed, 31 insertions(+) create mode 100644 server/bullshitSenderENQUETE.py rename server/{bullshitSender.py => bullshitSenderSENSOR.py} (100%) diff --git a/server/bullshitSenderENQUETE.py b/server/bullshitSenderENQUETE.py new file mode 100644 index 0000000..1c58863 --- /dev/null +++ b/server/bullshitSenderENQUETE.py @@ -0,0 +1,31 @@ +import asyncio +import websockets +import json +import random +import time + +async def send_data(uri): + async with websockets.connect(uri) as websocket: + print("Connected to WebSocket server") + + while True: + data = { + "node": "69:42:08:F5:00:00", + "Response": str(round(random.uniform(0, 2))), + "QuestionID": str(round(random.uniform(0, 90))), + } + await websocket.send(json.dumps(data)) + print("Data sent") + + response = await websocket.recv() + print("Received message:", response) + + await asyncio.sleep(2) # Wait a bit before sending the next message + +# Start the WebSocket connection +while True: + try: + asyncio.get_event_loop().run_until_complete(send_data("ws://145.92.8.114/ws")) + except Exception as e: + print("Exception:", e) + time.sleep(1) # Wait a bit before trying to reconnect \ No newline at end of file diff --git a/server/bullshitSender.py b/server/bullshitSenderSENSOR.py similarity index 100% rename from server/bullshitSender.py rename to server/bullshitSenderSENSOR.py From 379a8b0f844628ff7a19c27aed76114d54addf6c Mon Sep 17 00:00:00 2001 From: sietse jonker Date: Tue, 26 Mar 2024 23:03:34 +0100 Subject: [PATCH 2/2] Add processEnqueteNodeData function to handle enquete node data --- server/data.py | 49 +++++++++++++++++++++++++++++++++---------------- 1 file changed, 33 insertions(+), 16 deletions(-) diff --git a/server/data.py b/server/data.py index c932aa2..a863857 100644 --- a/server/data.py +++ b/server/data.py @@ -31,10 +31,33 @@ async def processSensorNodeData(data, nodeID): finally: cursor.close() mydb.close() + +async def processEnqueteNodeData(data, nodeID): + try: + mydb = dbLogin() + cursor = mydb.cursor() + + query = "INSERT INTO `Response` (Node_NodeID, Question_QuestionID, Response) VALUES (%s, %s, %s)" + processedData = json.loads(data) + + processedQuestionID = (processedData['QuestionID']) + processedResponse = (processedData['Response']) + + pushingDataArray = [(nodeID, processedQuestionID, processedResponse)] + + for i in pushingDataArray: + cursor.execute(query, i) + mydb.commit() + except mysql.connector.Error as err: + print("MySQL Error:", err) + finally: + cursor.close() + mydb.close() + + async def receive_data(): uri = "ws://145.92.8.114/ws" - try: async with websockets.connect(uri) as websocket: while True: @@ -44,13 +67,8 @@ async def receive_data(): processedData = json.loads(data) macAdress = processedData['node'] - if processedData["Temp"]: - type = 'sensor' - else: - type = 'enquete' - + type = await getNodeType(macAdress) - await getNodeInfo('sensor') await getNodeInfo('enquete') @@ -67,15 +85,6 @@ async def receive_data(): except websockets.ConnectionClosedError as e: print("WebSocket connection closed:", e) -async def processEnqueteNodeData(data): - mydb = dbLogin() - cursor = mydb.cursor() - - query = "INSERT INTO `Response` (NodeID, QuestionID, Response) VALUES (%s, %s, %s)" - processedData = json.loads(data) - - - async def main(): await receive_data() @@ -130,8 +139,16 @@ async def getNodeID(macAdress): return nodeID +async def getNodeType(macAdress): + id = (macAdress,) + mydb = dbLogin() + cursor = mydb.cursor() + cursor.execute("""SELECT Type FROM Node WHERE MAC = %s""", id) + data = cursor.fetchall() + Type = data[0][0] + return Type async def newNode(mac, type): id = (mac, type,)