User manual
6. Im Anschluss gilt es die Funktion, die im Sekundenintervall die Anzeige der letzten Messwerte aktualisiert, zu
erstellen.
/*========================================================================================
Aktualisiert den Bereich in dem die letzten Messwerte angezeigt werden
Nach dem Absetzen der API-Abfrage setzt diese Funktion einen Timeout von 1sec. nach dessen
Ablauf sie wieder aufgerufen wird. Der erste Aufruf dieser Funktion erfolgt nach
erfolgreicher Überprüfung der User Credentials beim Klicken des Login-Buttons
========================================================================================*/
function poll_status(){
//Konstante für die Liste der Messwerte (alias), deren akt. Werte vom Server gelesen werden sollen
const o = {
select:["VoltageBattery","VoltageUSB","Temperature"]
};
/* Get Zugriff auf den aktuellsten der gespeicherten Messdatensätze des Messdatenkanals 0, wobei die
in der Konstante "o" angegebenen Messwerte gelesen werden. Die anonyme Funktion verarbeitet den
Response-Code (err) und das zurückgelieferte JSON-Array(x) */
uapi.get( '1/customers/$cid/sites/$sid/histdata0/youngest', o, (err,x)=>{
/* Variable zur Aufnahme des Strings der im Bereich für Anzeige der letzten Messwerte angezeigt wird.
Das 1ste Zeichen wird bei jedem Aufruf abwechselnd auf "*" o. "." gesetzt, um Aktivität anzuzeigen*/
let s = (++poll_spin & 1) ? '* ':'. ';
if (err) // Wenn ein Fehler aufgetreten ist ->
s += err // Fehlercode zum String "s" hinzufügen
else if (!x.length) // Andernfalls -> Wenn JSON-Array die Länge 0 hat ->
s += '(no data yet available)';//Hinweis, dass keine Daten vorhanden sind, zum String "s" hinzufügen
else {
/* Den Zeitstempel aus dem JSON-Arrayelement [0][0] in das Format "yyyy-mm-dd hh:nn:ss[.zzz]"
umwandeln, den "[.zzz]"-Anteil entfernen und das Ergebnis zum String "s" hinzufügen */
s += uapi.stampFormat( x[0][0]).substr(0,19);
// Die Messwerte aus dem JSON-Array inkl. entsprechender Beschriftung zum String "s" hinzufügen
s += ` Ubat=<em>${x[0][1]}</em>V Uusb=<em>${x[0][2]}</em>V T=<em>${x[0][3]}</em> °C`;
}
$('#status').html( s); // Im Bereich für die letzten Messwerte den String "s" anzeigen
/* Timout von 1000ms setzen und zurückgelieferte ID in Variable speichern. Nach Ablauf des Timeouts
wird die Funktion "poll_status" erneut aufgerufen. */
poll_tmr= setTimeout( poll_status, 1000);
});
}
42 Rev. 01