Add data_visualization/js/api.js
This commit is contained in:
parent
95a49db187
commit
ceee02fc48
1 changed files with 52 additions and 0 deletions
52
data_visualization/js/api.js
Normal file
52
data_visualization/js/api.js
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
/**
|
||||
* Kommunikationsmodul zur API für Telemetriedatenabruf
|
||||
* Fetch von Telemetriedaten über /data
|
||||
* @module api
|
||||
*/
|
||||
|
||||
/**
|
||||
* Führt GET-Request auf /data aus und gibt JSON mit Telemetrie zurück.
|
||||
*
|
||||
* @async
|
||||
* @function fetchTelemetryData
|
||||
* @param {Object} params - Filterparameter für den Datenabruf
|
||||
* @param {string} [params.time_range] - Zeitfenster (z. B. '2026-03-10T00:00:00Z,2026-03-10T06:00:00Z')
|
||||
* @param {string|number} [params.ir_gain] - IR-Gain Einstellung
|
||||
* @param {string} [params.material_type] - Materialtyp
|
||||
* @returns {Promise<Array<{timestamp:string,vbat:number,ir_gain:number,drift:number,event_flag:boolean}>>>} JSON-Array mit Telemetriedaten
|
||||
* @throws {Error} Bei Netzwerk- oder Parsing-Fehlern
|
||||
*/
|
||||
export async function fetchTelemetryData(params = {}) {
|
||||
const query = new URLSearchParams();
|
||||
|
||||
if (params.time_range) query.append('time_range', params.time_range);
|
||||
if (params.ir_gain) query.append('ir_gain', params.ir_gain);
|
||||
if (params.material_type) query.append('material_type', params.material_type);
|
||||
|
||||
const queryString = query.toString();
|
||||
const url = queryString ? `/data?${queryString}` : '/data';
|
||||
|
||||
try {
|
||||
const response = await fetch(url, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'Accept': 'application/json'
|
||||
}
|
||||
});
|
||||
|
||||
if (!response.ok) {
|
||||
throw new Error(`Server returned ${response.status} (${response.statusText})`);
|
||||
}
|
||||
|
||||
const data = await response.json();
|
||||
|
||||
if (!Array.isArray(data)) {
|
||||
throw new Error('Invalid response format: Expected an array');
|
||||
}
|
||||
|
||||
return data;
|
||||
} catch (error) {
|
||||
console.error('Fehler beim Abrufen der Telemetriedaten:', error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue