can succesfully make a graph from database data
This commit is contained in:
@@ -10,6 +10,9 @@ class Graph {
|
||||
|
||||
// Function to create a graph
|
||||
makeGraph(line, lineColor, name) {
|
||||
let div = document.createElement("div");
|
||||
div.setAttribute("id", this.id);
|
||||
document.body.appendChild(div);
|
||||
let lineArray;
|
||||
switch (line) {
|
||||
case "temp":
|
||||
@@ -27,7 +30,6 @@ class Graph {
|
||||
default:
|
||||
console.error("Invalid line");
|
||||
}
|
||||
this.timeArray.push(new Date());
|
||||
Plotly.plot(this.id, [
|
||||
{
|
||||
x: this.timeArray,
|
||||
@@ -39,7 +41,9 @@ class Graph {
|
||||
]);
|
||||
}
|
||||
|
||||
updateData(type, value) {
|
||||
updateData(type, value, timestamp) {
|
||||
this.timeArray.push(timestamp);
|
||||
|
||||
switch (type) {
|
||||
case "Temp":
|
||||
this.tempArray.push(value);
|
||||
@@ -59,8 +63,6 @@ class Graph {
|
||||
}
|
||||
|
||||
updateGraph() {
|
||||
let time = new Date();
|
||||
this.timeArray.push(time);
|
||||
let update = {
|
||||
x: [[this.timeArray]],
|
||||
y: [
|
||||
@@ -71,15 +73,7 @@ class Graph {
|
||||
],
|
||||
};
|
||||
|
||||
let olderTime = time.setMinutes(time.getMinutes() - 1);
|
||||
let futureTime = time.setMinutes(time.getMinutes() + 1);
|
||||
let minuteView = {
|
||||
xaxis: {
|
||||
type: "date",
|
||||
range: [olderTime, futureTime],
|
||||
},
|
||||
};
|
||||
Plotly.relayout(this.id, minuteView);
|
||||
Plotly.relayout(this.id, update);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -142,9 +136,6 @@ class DataProcessor {
|
||||
}
|
||||
|
||||
makeGraph() {
|
||||
let div = document.createElement("div");
|
||||
div.setAttribute("id", "graph1");
|
||||
document.body.appendChild(div);
|
||||
this.graph = new Graph(1);
|
||||
this.graph.makeGraph("temp", "red", "Temperature");
|
||||
this.graph.makeGraph("humi", "blue", "Humidity");
|
||||
@@ -153,15 +144,10 @@ class DataProcessor {
|
||||
}
|
||||
|
||||
updateGraph() {
|
||||
this.graph.updateData(this.data[0].Type, this.data[0].Value);
|
||||
console.log(this.data[0].Type, this.data[0].Value);
|
||||
this.graph.updateData(this.data[1].Type, this.data[1].Value);
|
||||
console.log(this.data[1].Type, this.data[1].Value);
|
||||
this.graph.updateData(this.data[2].Type, this.data[2].Value);
|
||||
console.log(this.data[2].Type, this.data[2].Value);
|
||||
this.graph.updateData(this.data[3].Type, this.data[3].Value);
|
||||
console.log(this.data[3].Type, this.data[3].Value);
|
||||
|
||||
this.graph.updateGraph();
|
||||
for (let i = 0; i < this.data.length; i++) {
|
||||
this.graph.updateData(this.data[i].Type, this.data[i].Value, this.data[i].TimeStamp);
|
||||
console.log(this.data[i].Type, this.data[i].Value, this.data[i].TimeStamp);
|
||||
this.graph.updateGraph();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,9 @@
|
||||
// Sample data - you can replace this with your actual dataset
|
||||
const data = [];
|
||||
processor = new DataProcessor();
|
||||
dateStart='2024-03-27%2011:47:11'
|
||||
dateEnd="2024-03-27%2011:47:11"
|
||||
|
||||
// Function to create checkbox with label
|
||||
function createCheckBox(id, label) {
|
||||
const checkbox = document.createElement("input");
|
||||
@@ -109,7 +112,7 @@ function createFilterContainer() {
|
||||
|
||||
// Get request to fetch data from the server
|
||||
function fetchData() {
|
||||
fetch("http://145.92.8.114/getMeasurements?dateStart=2024-03-27%2011:47:11&dateEnd=2024-03-27%2011:47:11")
|
||||
fetch("http://145.92.8.114/getMeasurements?dateStart=2024-03-27%2011:47:11&dateEnd=2024-03-28%2011:47:11")
|
||||
.then((response) => {
|
||||
if (!response.ok) {
|
||||
throw new Error("Network response was not ok");
|
||||
@@ -120,7 +123,7 @@ function fetchData() {
|
||||
createFilterContainer();
|
||||
processor.update(data);
|
||||
processor.makeGraph();
|
||||
processor.updateGraph();
|
||||
processor.updateGraph(dateStart, dateEnd);
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error("Error fetching data:", error);
|
||||
|
Reference in New Issue
Block a user