MultiCounterSec revised now passes self test
This commit is contained in:
14
countersec.c
14
countersec.c
@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user