/** * 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>>} 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; } }