User Documentation

Datenrekorder
Systemhandbuch
2696780000/02/04.2020
94
rc = DataRecApiSetTrigger(sP1Id, &trig);
ReturnIfNot(rc == DataRecApiResultOk);
}
/
****************************************************************************/
void ModuleExit() {
MemApiRemoveVar(scVarNameAct);
MemApiRemoveVar(scVarNamePres);
MemApiRemoveVar(scVarNameTemp);
MemApiExit();
LogApiTrace(traceid, "TestDataRecApp unloaded");
LogApiRemoveId(traceid);
}
/
****************************************************************************/
void ModuleStart() {
DataRecApiResult rc;
LogApiTrace(traceid, "Starting TestDataRecApp");
rc = DataRecApiStartRecording(sP1Id);
ReturnIfNot(rc == DataRecApiResultOk);
}
/
****************************************************************************/
void ModuleStop() {
DataRecApiResult rc;
LogApiTrace(traceid, "Stopping TestDataRecApp");
rc = DataRecApiStopRecording(sP1Id);
ReturnIfNot(rc == DataRecApiResultOk);
}
/
****************************************************************************/
void ModuleCallback(UserFuncParam *arg, uint32_t provArg) {
DataRecApiSampleValues(sP1Id);
sTemp += 1;
sPres += 0.1;
}
14.7.4 Profil mit Persistierung
Das folgende Beispiel unterscheidet sich stärker von den Vorangegangenen.
Es verwendet ein Profil mit Persistierung und muss somit mehrere Fälle be-
handeln: Zum einen, dass das Profil noch nicht existiert und neu angelegt
werden muss, zum anderen, dass das Profil aufgrund der bestehenden Per-
sistierung bereits systemseitig angelegt und somit nur mehr neu gestartet
werden muss.
Die Wiederherstellung von Profilen erfolgt zwischen den Init- und Start-Auf-
rufen der Applikation, da auch die Pfade der konfigurierten Variablen persis-
tiert werden und diese erst nach Initialisierung aller Laufzeitsysteme gültig
sind. Dies erfordert eine Änderung des Applikationsaufbaus: Das Ermitteln
oder erstmalige Erzeugen des Profils erfolgt somit im Zuge des Start-Auf-
rufs. Dieser Schritt wird in einer Extrafunktion InitRecording integriert.
Auch die übrigen Schritte werden in separate Funktionen herausgehoben,
um die Aufzeichnung besser vom übrigen Applikationscode zu entkoppeln.