MultiCounterSec revised now passes self test

This commit is contained in:
2015-06-30 15:03:06 +02:00
parent 7643c51d74
commit a3605ea96b
3 changed files with 40 additions and 5 deletions

View File

@ -45,21 +45,33 @@ static void SecCounterSetError(pCounter self, char *text)
/*---------------------------------------------------------------------------*/
int SecCtrInvokeFunction(pCounter self, SConnection *pCon, int code)
{
pHdb node = NULL;
pHdb node = NULL, status = NULL;
hdbValue v;
node = GetHipadabaNode(self->pDes->parNode, "control");
status = GetHipadabaNode(self->pDes->parNode, "status");
assert(node != NULL);
assert(status != NULL);
v = MakeHdbFloat(code);
if(code != START && strcmp(status->value.v.text,"starting") == 0){
UpdateHipadabaPar(node,MakeHdbText("run"),NULL);
}
return SetHipadabaPar(node,v,pCon);
}
/*---------------------------------------------------------------------------*/
static int SecCtrHalt(void *pData)
{
pCounter self = (pCounter)pData;
pHdb node = NULL;
assert(self != NULL);
SecCtrInvokeFunction(self,pServ->dummyCon, STOP);
node = GetHipadabaNode(self->pDes->parNode, "status");
assert(node != NULL);
if(strcmp(node->value.v.text,"starting") == 0){
UpdateHipadabaPar(node,MakeHdbText("run"),NULL);
}
ReleaseCountLock(self->pCountInt);
return 1;
}