feat: fetchAnalogInputsHistoryService hinzugefügt zum Laden historischer Messwerte
- Holt die Messwerte der letzten 24 Stunden für alle 8 analogen Eingänge (AE1–AE8) - Baut die Abfrage-URLs dynamisch mit DIA0-Schnittstelle der CPL-Webschnittstelle - Unterstützt Live-Modus über window.location.origin und optional Mock-Daten über API - Dient als zentrale Datenquelle für die Chart-Darstellung in der Entwicklungsumgebung
This commit is contained in:
40
services/fetchAnalogInputsHistoryService.ts
Normal file
40
services/fetchAnalogInputsHistoryService.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
// services/fetchAnalogInputHistoryService.ts
|
||||
|
||||
export async function fetchAnalogInputHistoryService(): Promise<
|
||||
Record<number, any[]>
|
||||
> {
|
||||
const baseUrl = `${window.location.origin}/CPL?Service/empty.acp`;
|
||||
|
||||
const today = new Date();
|
||||
const yesterday = new Date(today);
|
||||
yesterday.setDate(today.getDate() - 1);
|
||||
|
||||
const formatDate = (date: Date) =>
|
||||
`${date.getFullYear()};${String(date.getMonth() + 1).padStart(
|
||||
2,
|
||||
"0"
|
||||
)};${String(date.getDate()).padStart(2, "0")}`;
|
||||
|
||||
const fromDate = formatDate(yesterday);
|
||||
const toDate = formatDate(today);
|
||||
|
||||
const result: Record<number, any[]> = {};
|
||||
|
||||
for (let i = 0; i < 8; i++) {
|
||||
const sourceId = 100 + i;
|
||||
const url = `${baseUrl}&DIA0=${fromDate};${toDate};${sourceId};1`;
|
||||
|
||||
try {
|
||||
const response = await fetch(url);
|
||||
if (!response.ok)
|
||||
throw new Error(`Fehler bei AE${i + 1}: ${response.status}`);
|
||||
const data = await response.json();
|
||||
result[sourceId] = data;
|
||||
} catch (error) {
|
||||
console.error(`Fehler beim Laden von AE${i + 1}:`, error);
|
||||
result[sourceId] = [];
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
Reference in New Issue
Block a user