add sicsvar output to diffscan
This commit is contained in:
27
diffscan.c
27
diffscan.c
@ -123,6 +123,31 @@ int DiffScanWrapper(SConnection * pCon, SicsInterp * pSics, void *pData,
|
||||
return status;
|
||||
}
|
||||
|
||||
if (strcasecmp(argv[1], "sicsvar") == 0) {
|
||||
if (argc > 2) {
|
||||
if (strcasecmp(argv[2], "none") == 0) {
|
||||
self->sicsvar = NULL;
|
||||
return 1;
|
||||
} else {
|
||||
self->sicsvar = FindVariable(pServ->pSics, argv[2]);
|
||||
if (self->sicsvar == NULL) {
|
||||
SCPrintf(pCon, eError, "Cannot find SICS Variable: %s\n", argv[2]);
|
||||
return 0;
|
||||
}
|
||||
else if (self->sicsvar->eType != veText) {
|
||||
SCPrintf(pCon, eError, "SICS Variable\t be TEXT not %s\n",
|
||||
self->sicsvar->eType == veInt ? "INT" :
|
||||
self->sicsvar->eType == veFloat ? "FLOAT" : "unknown");
|
||||
self->sicsvar = NULL;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
} else {
|
||||
SCPrintf(pCon, eValue, "sicsvar = %s\n", self->sicsvar ? self->sicsvar->name : "none");
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
/*
|
||||
if we end here we are treating variables
|
||||
*/
|
||||
@ -376,6 +401,8 @@ static int DiffScanTask(void *pData)
|
||||
self->scanObject->iCounts - 1,
|
||||
fPos, countValue, rawCount, rawMon, data->fTime);
|
||||
SCWrite(self->scanObject->pCon, pBueffel, eLog);
|
||||
if (self->sicsvar != NULL && self->sicsvar->eType == veText)
|
||||
VarSetText(self->sicsvar, pBueffel, usInternal);
|
||||
InvokeCallBack(self->scanObject->pCall, SCANPOINT, self->scanObject);
|
||||
traceSys("diffscan","RUN: pos, count, rawcount, rawmon: %f, %d, %d, %d",
|
||||
fPos, countValue, rawCount, rawMon);
|
||||
|
@ -12,6 +12,7 @@
|
||||
#include "obpar.h"
|
||||
#include "scan.h"
|
||||
#include "scan.i"
|
||||
#include "sicsvar.h"
|
||||
|
||||
typedef struct {
|
||||
pObjectDescriptor pDes;
|
||||
@ -23,6 +24,7 @@ typedef struct {
|
||||
int skipCount;
|
||||
pScanData scanObject;
|
||||
double last_report_time;
|
||||
pSicsVariable sicsvar;
|
||||
} DiffScan, *pDiffScan;
|
||||
|
||||
/*==================================================================*/
|
||||
|
Reference in New Issue
Block a user