add sicsvar output to diffscan

This commit is contained in:
Douglas Clowes
2012-12-14 08:48:05 +11:00
parent 43346d6ea5
commit 907f0e2ba6
2 changed files with 29 additions and 0 deletions

View File

@ -123,6 +123,31 @@ int DiffScanWrapper(SConnection * pCon, SicsInterp * pSics, void *pData,
return status; 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 if we end here we are treating variables
*/ */
@ -376,6 +401,8 @@ static int DiffScanTask(void *pData)
self->scanObject->iCounts - 1, self->scanObject->iCounts - 1,
fPos, countValue, rawCount, rawMon, data->fTime); fPos, countValue, rawCount, rawMon, data->fTime);
SCWrite(self->scanObject->pCon, pBueffel, eLog); 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); InvokeCallBack(self->scanObject->pCall, SCANPOINT, self->scanObject);
traceSys("diffscan","RUN: pos, count, rawcount, rawmon: %f, %d, %d, %d", traceSys("diffscan","RUN: pos, count, rawcount, rawmon: %f, %d, %d, %d",
fPos, countValue, rawCount, rawMon); fPos, countValue, rawCount, rawMon);

View File

@ -12,6 +12,7 @@
#include "obpar.h" #include "obpar.h"
#include "scan.h" #include "scan.h"
#include "scan.i" #include "scan.i"
#include "sicsvar.h"
typedef struct { typedef struct {
pObjectDescriptor pDes; pObjectDescriptor pDes;
@ -23,6 +24,7 @@ typedef struct {
int skipCount; int skipCount;
pScanData scanObject; pScanData scanObject;
double last_report_time; double last_report_time;
pSicsVariable sicsvar;
} DiffScan, *pDiffScan; } DiffScan, *pDiffScan;
/*==================================================================*/ /*==================================================================*/