mirror of
https://github.com/zaphar/Heracles.git
synced 2025-07-23 04:29:48 -04:00
48 lines
1.3 KiB
JavaScript
48 lines
1.3 KiB
JavaScript
|
|
class Timeseries {
|
|
#uri;
|
|
#title;
|
|
#targetEl;
|
|
//#width;
|
|
//#height;
|
|
|
|
constructor(uri, targetEl, /** width, height **/) {
|
|
this.#uri = uri;
|
|
this.#targetEl = targetEl;
|
|
//this.#width = width;
|
|
//this.#height = height;
|
|
}
|
|
|
|
async fetchData() {
|
|
const response = await fetch(this.#uri);
|
|
const data = await response.json();
|
|
return data;
|
|
}
|
|
|
|
async updateGraph() {
|
|
const data = await this.fetchData();
|
|
if (data.Series) {
|
|
var traces = [];
|
|
for (const pair of data.Series) {
|
|
var trace = {
|
|
type: "scatter",
|
|
mode: "lines",
|
|
x: [],
|
|
y: []
|
|
};
|
|
//const labels = pair[0];
|
|
const series = pair[1];
|
|
for (const point of series) {
|
|
trace.x.push(point.timestamp);
|
|
trace.y.push(point.value);
|
|
}
|
|
traces.push(trace);
|
|
}
|
|
console.log("Traces: ", traces);
|
|
Plotly.react(this.#targetEl, traces, { width: 500, height: 500 });
|
|
} else if (data.Scalar) {
|
|
// The graph should be a single value
|
|
}
|
|
}
|
|
}
|