copying classes python to document
This commit is contained in:
@@ -1,64 +1,19 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
import websockets
|
import websockets
|
||||||
import mysql.connector
|
|
||||||
import json
|
import json
|
||||||
|
from class_SensorNode import SensorNode
|
||||||
|
from class_enqueteNode import EnqueteNode
|
||||||
|
from classes_data import dbLogin
|
||||||
|
|
||||||
sensorNodeArray = []
|
sensorNodeArray = []
|
||||||
enqueteNodeArray = []
|
enqueteNodeArray = []
|
||||||
|
|
||||||
async def processSensorNodeData(data, nodeID):
|
|
||||||
try:
|
|
||||||
mydb = dbLogin()
|
|
||||||
cursor = mydb.cursor()
|
|
||||||
|
|
||||||
query = "INSERT INTO `Measurement` (NodeID, Type, Value) VALUES (%s, %s, %s)"
|
|
||||||
processedData = json.loads(data)
|
|
||||||
|
|
||||||
processedTemp = (processedData['Temp'])
|
|
||||||
processedHumi = (processedData['Humi'])
|
|
||||||
processedeCO2 = (processedData['eCO2'])
|
|
||||||
processedTVOC = (processedData['TVOC'])
|
|
||||||
processedMAC = (processedData['node'])
|
|
||||||
|
|
||||||
pushingDataArray = [(nodeID, "Temp", processedTemp), (nodeID, "Humi", processedHumi), (nodeID, "eCO2", processedeCO2), (nodeID, "TVOC", processedTVOC)]
|
|
||||||
for i in pushingDataArray:
|
|
||||||
print(query ,i)
|
|
||||||
cursor.execute(query, i)
|
|
||||||
mydb.commit()
|
|
||||||
|
|
||||||
except mysql.connector.Error as err:
|
|
||||||
print("MySQL Error:", err)
|
|
||||||
finally:
|
|
||||||
cursor.close()
|
|
||||||
mydb.close()
|
|
||||||
|
|
||||||
async def processEnqueteNodeData(data, nodeID):
|
|
||||||
try:
|
|
||||||
mydb = dbLogin()
|
|
||||||
cursor = mydb.cursor()
|
|
||||||
|
|
||||||
query = "INSERT INTO `Reply` (Result, Node_NodeID, Question_QuestionID) VALUES (%s, %s, %s)"
|
|
||||||
processedData = json.loads(data)
|
|
||||||
|
|
||||||
processedQuestionID = (processedData['QuestionID'])
|
|
||||||
processedResponse = (processedData['Response'])
|
|
||||||
|
|
||||||
pushingDataArray = [(processedResponse, nodeID, processedQuestionID)]
|
|
||||||
|
|
||||||
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():
|
async def receive_data():
|
||||||
uri = "ws://145.92.8.114/ws"
|
uri = "ws://145.92.8.114/ws"
|
||||||
try:
|
try:
|
||||||
async with websockets.connect(uri) as websocket:
|
async with websockets.connect(uri) as websocket:
|
||||||
while True:
|
while True:
|
||||||
|
print("true")
|
||||||
data = await websocket.recv()
|
data = await websocket.recv()
|
||||||
print(f"Received data: {data}")
|
print(f"Received data: {data}")
|
||||||
|
|
||||||
@@ -73,14 +28,13 @@ async def receive_data():
|
|||||||
await getNodeInfo('sensor')
|
await getNodeInfo('sensor')
|
||||||
await getNodeInfo('enquete')
|
await getNodeInfo('enquete')
|
||||||
|
|
||||||
print(sensorNodeArray)
|
|
||||||
|
|
||||||
if macAdress in sensorNodeArray:
|
if macAdress in sensorNodeArray:
|
||||||
nodeID = await getNodeID(macAdress)
|
nodeID = await getNodeID(macAdress)
|
||||||
await processSensorNodeData(data, nodeID)
|
await SensorNode.processSensorNodeData(data, nodeID)
|
||||||
elif macAdress in enqueteNodeArray:
|
elif macAdress in enqueteNodeArray:
|
||||||
nodeID = await getNodeID(macAdress)
|
nodeID = await getNodeID(macAdress)
|
||||||
await processEnqueteNodeData(data, nodeID)
|
await EnqueteNode.processEnqueteNodeData(data, nodeID)
|
||||||
else:
|
else:
|
||||||
await newNode(macAdress, type)
|
await newNode(macAdress, type)
|
||||||
except websockets.ConnectionClosedError as e:
|
except websockets.ConnectionClosedError as e:
|
||||||
@@ -89,17 +43,8 @@ async def receive_data():
|
|||||||
async def main():
|
async def main():
|
||||||
await receive_data()
|
await receive_data()
|
||||||
|
|
||||||
def dbLogin():
|
|
||||||
mydb = mysql.connector.connect(
|
|
||||||
host="localhost",
|
|
||||||
user="root",
|
|
||||||
password="Dingleberries69!",
|
|
||||||
database="NodeData"
|
|
||||||
)
|
|
||||||
|
|
||||||
return mydb
|
|
||||||
|
|
||||||
async def getNodeInfo(type):
|
async def getNodeInfo(type):
|
||||||
|
print("getNodeINfo")
|
||||||
global sensorNodeArray
|
global sensorNodeArray
|
||||||
global enqueteNodeArray
|
global enqueteNodeArray
|
||||||
|
|
||||||
@@ -114,14 +59,12 @@ async def getNodeInfo(type):
|
|||||||
for tuples in nodeInfo:
|
for tuples in nodeInfo:
|
||||||
for item in tuples:
|
for item in tuples:
|
||||||
nodeInfoArray.append(item)
|
nodeInfoArray.append(item)
|
||||||
print(nodeInfoArray)
|
|
||||||
|
|
||||||
cursor.close()
|
cursor.close()
|
||||||
mydb.close()
|
mydb.close()
|
||||||
|
|
||||||
if type == 'sensor':
|
if type == 'sensor':
|
||||||
sensorNodeArray = nodeInfoArray
|
sensorNodeArray = nodeInfoArray
|
||||||
print(sensorNodeArray)
|
|
||||||
return sensorNodeArray
|
return sensorNodeArray
|
||||||
|
|
||||||
elif type == 'enquete':
|
elif type == 'enquete':
|
||||||
@@ -143,7 +86,7 @@ async def getNodeID(macAdress):
|
|||||||
return nodeID
|
return nodeID
|
||||||
|
|
||||||
async def newNode(mac, type):
|
async def newNode(mac, type):
|
||||||
id = (mac, type,)
|
id = (mac, type)
|
||||||
mydb = dbLogin()
|
mydb = dbLogin()
|
||||||
|
|
||||||
cursor = mydb.cursor()
|
cursor = mydb.cursor()
|
||||||
|
26
server/databaseGeneralClass.py
Normal file
26
server/databaseGeneralClass.py
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
import mysql.connector
|
||||||
|
|
||||||
|
def dbLogin():
|
||||||
|
mydb = mysql.connector.connect(
|
||||||
|
host="localhost",
|
||||||
|
user="root",
|
||||||
|
password="Dingleberries69!",
|
||||||
|
database="NodeData"
|
||||||
|
)
|
||||||
|
return mydb
|
||||||
|
|
||||||
|
class Node():
|
||||||
|
def __init__(self, macAdress):
|
||||||
|
self.macAdress = macAdress
|
||||||
|
self.id = None
|
||||||
|
|
||||||
|
def getNodeId(self):
|
||||||
|
id = (self.macAdress,)
|
||||||
|
mydb = dbLogin()
|
||||||
|
cursor = mydb.cursor()
|
||||||
|
cursor.execute("""SELECT nodeID FROM Node WHERE MAC = %s""", id)
|
||||||
|
data = cursor.fetchall()
|
||||||
|
|
||||||
|
for tuples in data:
|
||||||
|
for item in tuples:
|
||||||
|
self.id = item
|
35
server/enqueteNodeClass.py
Normal file
35
server/enqueteNodeClass.py
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
import mysql.connector
|
||||||
|
import json
|
||||||
|
|
||||||
|
from classes_data import Node
|
||||||
|
from classes_data import dbLogin
|
||||||
|
|
||||||
|
class EnqueteNode(Node):
|
||||||
|
query = "INSERT INTO `Reply` (Result, Node_NodeID, Question_QuestionID) VALUES (%s, %s, %s)"
|
||||||
|
|
||||||
|
def __init__(self, macAdress, response, questionID):
|
||||||
|
super().__init__(macAdress)
|
||||||
|
self.response = response
|
||||||
|
self.questionID = questionID
|
||||||
|
|
||||||
|
async def processEnqueteNodeData(data, nodeID):
|
||||||
|
try:
|
||||||
|
mydb = dbLogin()
|
||||||
|
cursor = mydb.cursor()
|
||||||
|
|
||||||
|
processedData = json.loads(data)
|
||||||
|
|
||||||
|
EnqueteNode.questionID = (processedData['QuestionID'])
|
||||||
|
EnqueteNode.response = (processedData['Response'])
|
||||||
|
|
||||||
|
pushingDataArray = [(EnqueteNode.questionID, nodeID, EnqueteNode.response)]
|
||||||
|
|
||||||
|
for i in pushingDataArray:
|
||||||
|
print(EnqueteNode.query, i)
|
||||||
|
cursor.execute(EnqueteNode.query, i)
|
||||||
|
mydb.commit()
|
||||||
|
except mysql.connector.Error as err:
|
||||||
|
print("MySQL Error:", err)
|
||||||
|
finally:
|
||||||
|
cursor.close()
|
||||||
|
mydb.close()
|
41
server/sensorNodeClass.py
Normal file
41
server/sensorNodeClass.py
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
import mysql.connector
|
||||||
|
import json
|
||||||
|
|
||||||
|
from classes_data import Node
|
||||||
|
from classes_data import dbLogin
|
||||||
|
|
||||||
|
class SensorNode(Node):
|
||||||
|
query = "INSERT INTO `Measurement` (NodeID, Type, Value) VALUES (%s, %s, %s)"
|
||||||
|
|
||||||
|
def __init__(self, macAdress, temp, humi, eCO2, TVOC):
|
||||||
|
super().__init__(macAdress)
|
||||||
|
self.temperature = temp
|
||||||
|
self.humidity = humi
|
||||||
|
self.eCO2 = eCO2
|
||||||
|
self.TVOC = TVOC
|
||||||
|
|
||||||
|
async def processSensorNodeData(data, nodeID):
|
||||||
|
try:
|
||||||
|
mydb = dbLogin()
|
||||||
|
cursor = mydb.cursor()
|
||||||
|
|
||||||
|
processedData = json.loads(data)
|
||||||
|
|
||||||
|
SensorNode.temperature = (processedData['Temp'])
|
||||||
|
SensorNode.humidity = (processedData['Humi'])
|
||||||
|
SensorNode.eCO2 = (processedData['eCO2'])
|
||||||
|
SensorNode.TVOC = (processedData['TVOC'])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
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)
|
||||||
|
mydb.commit()
|
||||||
|
|
||||||
|
|
||||||
|
except mysql.connector.Error as err:
|
||||||
|
print("MySQL Error:", err)
|
||||||
|
finally:
|
||||||
|
cursor.close()
|
||||||
|
mydb.close()
|
Reference in New Issue
Block a user