adds fucntion to dynamically scale according to amount of nodes

This commit is contained in:
sietse jonker
2024-03-14 15:01:15 +01:00
parent 10eee12189
commit b13824afe5

View File

@@ -4,7 +4,7 @@ const sensorData = {};
let liveGraphs = []; let liveGraphs = [];
let nodeArray = []; let nodeArray = [];
let nodeDict = {}; let nodeDict = {};
let funny;
// letiables // letiables
let intervalDelay = 5000; let intervalDelay = 5000;
let amountOfNodes = 3; let amountOfNodes = 3;
@@ -47,9 +47,9 @@ function openConnection() {
openConnection(); openConnection();
function handleIncomingData(data) { function handleIncomingData(data) {
nodeAdressHandler(data.Node); nodeEventHandler(data.node);
funny = data.node;
nodeNumber = nodeDict[data.Node]; nodeNumber = nodeDict[data.node];
temperature = data.Temp; temperature = data.Temp;
humidity = data.Humi; humidity = data.Humi;
CO2 = data.eCO2; CO2 = data.eCO2;
@@ -58,13 +58,23 @@ function handleIncomingData(data) {
updateNodeData(nodeNumber, temperature, humidity, CO2, TVOC); updateNodeData(nodeNumber, temperature, humidity, CO2, TVOC);
} }
function nodeAdressHandler(node) { function nodeEventHandler(node) {
if (!nodeArray.includes(node)) { if (!nodeArray.includes(node)) {
nodeArray.push(node); nodeArray.push(node);
nodeDict[node] = nodeArray.length; nodeDict[node] = nodeArray.length;
makeLiveGraph(nodeArray.length);
} }
} }
function makeLiveGraph(node) {
createNodeData(node);
liveGraphs.push(new liveGraph(node));
liveGraphs.forEach((graph) => {
graph.makeGraph();
});
}
//function for making the html elements for the following html code //function for making the html elements for the following html code
function nodeData(data, node) { function nodeData(data, node) {
let nodeData = document.createElement("div"); let nodeData = document.createElement("div");
@@ -175,19 +185,13 @@ function updateNodeData(node, temperature, humidity, eCO2, TVOC) {
document.getElementById("TVOCStatus").textContent = "Connected"; document.getElementById("TVOCStatus").textContent = "Connected";
// Update the graph // Update the graph
liveGraphs[0].updateData(temperature, humidity, eCO2, TVOC); liveGraphs[node -1].updateData(temperature, humidity, eCO2, TVOC);
liveGraphs[0].updateGraph(); liveGraphs[node - 1].updateGraph();
console.log(nodeDict[node]); console.log(nodeDict);
console.log(nodeArray); console.log(nodeArray);
} }
// Call the function to create the HTML structure
for (let i = 1; i <= amountOfNodes; i++) {
createNodeData(i);
liveGraphs.push(new liveGraph(i));
}
// make the graphs // make the graphs
liveGraphs.forEach((graph) => { liveGraphs.forEach((graph) => {
graph.makeGraph(); graph.makeGraph();