[Perl] DAQ system for the FAPG.
1
exportasyncfunction(url,options={}){
2
const=awaitfetchurl,options;
3
4
if!response.ok{
5
thrownew Error`HTTP ${response.status}`;
6
}
7
8
returnresponse.json;
9
}
10
11
exportasyncfunction(){
12
const=awaitfetchJson"/api/status";
13
returnpayload.statuses||{};
14
}
15
16
exportasyncfunction(probe){
17
const=new URLSearchParams{"1"};
18
const=awaitfetchJson`/api/readings/${probe}?${params}`;
19
const=payload.readings||;
20
21
returnreadings.length?readingsreadings.length-1:null;
22
}
23
24
exportasyncfunction(probe,timeframe,range,includeReadings=false,signal=null){
25
const=new URLSearchParams{
26
timeframe,
27
Stringrange
28
};
29
const=new URLSearchParams{"10"};
30
const=signal?{signal}:{};
31
const=includeReadings
32
?fetchJson`/api/readings/${probe}?${readingsParams}`,options
33
:Promise.resolve{};
34
const[,]=awaitPromise.all
35
fetchJson`/api/readings/${probe}/series?${seriesParams}`,options,
36
readingsRequest
37
;
38
39
return{
40
series.points||,
41
readings.readings||
42
};
43
}
44
45
exportasyncfunction(hours,signal=null){
46
const=new URLSearchParams{Stringhours};
47
const=signal?{signal}:{};
48
returnfetchJson`/api/weather/hourly?${params}`,options;
49
}
50
51
exportasyncfunction(signal=null){
52
const=signal?{signal}:{};
53
returnfetchJson"/api/weather/forecast",options;
54
}
55
56
exportasyncfunction(hours,signal=null){
57
const=new URLSearchParams{Stringhours};
58
const=signal?{signal}:{};
59
returnfetchJson`/api/insights/stability?${params}`,options;
60
}
61
62
exportasyncfunction(hours,signal=null){
63
const=new URLSearchParams{Stringhours};
64
const=signal?{signal}:{};
65
returnfetchJson`/api/insights/derivatives?${params}`,options;
66
}
67
68
exportasyncfunction(probe,days,signal=null){
69
const=new URLSearchParams{Stringdays};
70
const=signal?{signal}:{};
71
returnfetchJson`/api/insights/diurnal/${probe}?${params}`,options;
72
}
73