User Documentation

Datenrekorder
Systemhandbuch
2696780000/02/04.2020
93
gezeichnet. Nach gestoppter Aufzeichnung ergibt sich die Anzahl der Samp-
les aus der Differenz der Trigger-Positionen + 1, da die Stopp- Position die
Position des letzten Samples angibt.
/
*****************************************************************************
* constants
*/
enum { cFALSE = 0, cTRUE = 1 };
static const char scProfileName[] = "TestDataRecAppP1";
static const char scVarNameTemp[] = "temperature";
static const char scVarNamePres[] = "pressure";
static const char scVarNameAct[] = "active";
/
*****************************************************************************
* static variables
*/
static int32_t sTemp;
static float sPres;
static int8_t sActive;
static DataRecApiProfileId sP1Id;
static DataRecApiVarId sTempId;
static DataRecApiVarId sPresId;
/
****************************************************************************/
void ModuleInit() {
DataRecApiInfo info;
DataRecApiTrigger trig;
DataRecApiResult rc;
char varPath[80];
LogApiAddId(traceid, "TestRec");
LogApiTrace(traceid, "TestDataRecApp initialized");
MemApiInit();
MemApiAddVar(scVarNameTemp, MemApiSInt32, &sTemp, sizeof sTemp);
MemApiAddVar(scVarNamePres, MemApiReal, &sPres, sizeof sPres);
MemApiAddVar(scVarNameAct, MemApiBool, &sActive, sizeof sActive);
sTemp = 0;
sPres = 0.0;
sActive = cFALSE;
strcpy(info.name, scProfileName);
info.size = 1000; /* space for 1000 samples */
info.maxVarCnt = 5; /* max. 5 variables per sample */
info.bufType = DataRecApiBufTypeContinuous; /* ring buffer type */
info.level = DataRecApiLevelApplRt; /* (unsupported yet) */
info.autoStart = 0; /* application start recording */
rc = DataRecApiCreateProfile(&info, &sP1Id);
ReturnIfNot(rc == DataRecApiResultOk && sP1Id != DataRecApiNoId);
snprintf(varPath, sizeof varPath, "APPL.MEM.%s", scVarNameTemp);
rc = DataRecApiAddVar(sP1Id, varPath, 0, &sTempId);
ReturnIfNot(rc == DataRecApiResultOk && sTempId != DataRecApiNoId);
snprintf(varPath, sizeof varPath, "APPL.MEM.%s", scVarNamePres);
rc = DataRecApiAddVar(sP1Id, varPath, 0, &sPresId);
ReturnIfNot(rc == DataRecApiResultOk && sPresId != DataRecApiNoId);
memset(&trig, 0, sizeof trig);
snprintf(varPath, sizeof varPath, "APPL.MEM.%s", scVarNameAct);
trig.startCond.op = DataRecApiTriggerOpPosSlope;
trig.startCond.val.valBOOL = cFALSE;
strncpy(trig.startCond.var, varPath, sizeof trig.startCond.var - 1);
trig.stopCond.op = DataRecApiTriggerOpNegSlope;
trig.stopCond.val.valBOOL = cTRUE;
strncpy(trig.stopCond.var, varPath, sizeof trig.stopCond.var - 1);