Fine tuning of second generation motor and counter parameter update messages
Changed paramete rupdates to verbose severity
This commit is contained in:
14
countersec.c
14
countersec.c
@ -39,6 +39,7 @@ static void SecCounterSetError(pCounter self, char *text)
|
||||
if(node != NULL){
|
||||
v = MakeHdbText(strdup(text));
|
||||
UpdateHipadabaPar(node,v,NULL);
|
||||
Log(VERBOSE,"par","%s:error:%s", self->name,text);
|
||||
ReleaseHdbValue(&v);
|
||||
}
|
||||
}
|
||||
@ -98,6 +99,7 @@ static int SecStartCount(void *pData, SConnection *pCon)
|
||||
self->tStart = time(NULL);
|
||||
node = GetHipadabaNode(self->pDes->parNode, "control");
|
||||
UpdateHipadabaPar(node,MakeHdbFloat(.0), pCon);
|
||||
Log(VERBOSE,"par","%s:control:%s", self->name,"0");
|
||||
SetHdbProperty(node,"geterror", NULL);
|
||||
/*
|
||||
* set time to 0. Otherwise, if there is a delay,
|
||||
@ -106,6 +108,7 @@ static int SecStartCount(void *pData, SConnection *pCon)
|
||||
*/
|
||||
node = GetHipadabaNode(self->pDes->parNode, "time");
|
||||
UpdateHipadabaPar(node,MakeHdbFloat(.0), pCon);
|
||||
Log(VERBOSE,"par","%s:time:%s", self->name,"0");
|
||||
InvokeCallBack(self->pCall,COUNTSTART, pCon);
|
||||
SecCounterSetError(self,"None");
|
||||
return 1;
|
||||
@ -308,7 +311,9 @@ static int SecCtrSetMode(pCounter self, CounterMode eNew)
|
||||
v = MakeHdbText("monitor");
|
||||
break;
|
||||
}
|
||||
Log(VERBOSE,"par","%s:mode:%s", self->name,v.v.text);
|
||||
return SetHipadabaPar(node,v,NULL);
|
||||
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
||||
static CounterMode SecCtrGetMode(pCounter self)
|
||||
@ -338,6 +343,7 @@ static int SecCtrSetPreset(pCounter self, float val)
|
||||
node = GetHipadabaNode(self->pDes->parNode,"preset");
|
||||
assert(node != NULL);
|
||||
v = MakeHdbFloat(val);
|
||||
Log(VERBOSE,"par","%s:preset:%f", self->name,v.v.doubleValue);
|
||||
return SetHipadabaPar(node,v,NULL);
|
||||
}
|
||||
/*--------------------------------------------------------------------------*/
|
||||
@ -585,15 +591,19 @@ static hdbCallbackReturn SecStatusCallback(pHdb node, void *userData,
|
||||
{
|
||||
pHdbDataMessage mm = NULL;
|
||||
hdbValue v;
|
||||
pCounter self = (pCounter)userData;
|
||||
|
||||
mm = GetHdbUpdateMessage(message);
|
||||
if (mm != NULL) {
|
||||
if(strcmp(node->value.v.text,"starting") == 0) {
|
||||
v = *mm->v;
|
||||
if(strcmp(node->value.v.text,"starting") == 0) {
|
||||
if(strstr(v.v.text,"run") == 0 && strstr(v.v.text,"error") == 0) {
|
||||
return hdbAbort;
|
||||
}
|
||||
}
|
||||
if(strcmp(v.v.text,node->value.v.text) != 0){
|
||||
Log(VERBOSE,"par","%s:status:%s", self->name,v.v.text);
|
||||
}
|
||||
}
|
||||
|
||||
return hdbContinue;
|
||||
@ -684,7 +694,7 @@ pCounter CreateSecCounter(SConnection *pCon, char *type, char *name, int length)
|
||||
return NULL;
|
||||
}
|
||||
AppendHipadabaCallback(child,
|
||||
MakeHipadabaCallback(SecStatusCallback, NULL,
|
||||
MakeHipadabaCallback(SecStatusCallback, pRes,
|
||||
NULL));
|
||||
AddHipadabaChild(node, child, NULL);
|
||||
|
||||
|
45
motorsec.c
45
motorsec.c
@ -58,6 +58,7 @@ static void SecMotorSetError(pMotor self, char *text)
|
||||
if(node != NULL){
|
||||
v = MakeHdbText(strdup(text));
|
||||
UpdateHipadabaPar(node,v,NULL);
|
||||
Log(VERBOSE,"par","%s:error:%s", self->name,text);
|
||||
ReleaseHdbValue(&v);
|
||||
}
|
||||
}
|
||||
@ -84,6 +85,7 @@ static int SecMotorSetPar(pMotor self, SConnection * pCon, char *name,
|
||||
status = SICSHdbSetPar(self, pCon, name, value);
|
||||
if (status == 1) {
|
||||
SCparChange(pCon);
|
||||
Log(VERBOSE,"par","%s:%s:%f", self->name,name,fVal);
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
@ -287,6 +289,7 @@ static void handleMoveCallback(pMotor self, SConnection * pCon)
|
||||
node = GetHipadabaNode(self->pDescriptor->parNode, "hardposition");
|
||||
GetHipadabaPar(node, &v, pCon);
|
||||
UpdateHipadabaPar(node, v, pCon);
|
||||
Log(VERBOSE,"par","%s:hardposition:%f",self->name,v.v.doubleValue);
|
||||
self->posCount = 0;
|
||||
}
|
||||
}
|
||||
@ -539,6 +542,7 @@ static hdbCallbackReturn SecMotorCallback(pHdb node, void *userData,
|
||||
UpdateHipadabaPar(child, MakeHdbText("run"), pCon);
|
||||
child = GetHipadabaNode(self->pDescriptor->parNode, "targetposition");
|
||||
UpdateHipadabaPar(child, MakeHdbFloat(fHard), pCon);
|
||||
Log(VERBOSE,"par","%s:targetposition:%f", self->name,fHard);
|
||||
child = GetHipadabaNode(self->pDescriptor->parNode, "hardposition");
|
||||
SetHipadabaPar(child, MakeHdbFloat(fHard), pCon);
|
||||
|
||||
@ -579,6 +583,9 @@ static hdbCallbackReturn HardUpdateCallback(pHdb node, void *userData,
|
||||
mm = GetHdbUpdateMessage(message);
|
||||
if (mm != NULL) {
|
||||
v = *mm->v;
|
||||
if(ABS(v.v.doubleValue - node->value.v.doubleValue) > .01){
|
||||
Log(VERBOSE,"par","%s:hardposition:%f", self->name,v.v.doubleValue);
|
||||
}
|
||||
fVal = hardToSoftPosition(self, (float) v.v.doubleValue);
|
||||
v.v.doubleValue = fVal;
|
||||
UpdateHipadabaPar(self->pDescriptor->parNode, v, mm->callData);
|
||||
@ -596,6 +603,41 @@ static hdbCallbackReturn HardUpdateCallback(pHdb node, void *userData,
|
||||
}
|
||||
|
||||
|
||||
return hdbContinue;
|
||||
}
|
||||
/*--------------------------------------------------------------------------*/
|
||||
static hdbCallbackReturn StatusUpdateCallback(pHdb node, void *userData,
|
||||
pHdbMessage message)
|
||||
{
|
||||
pHdbDataMessage mm = NULL;
|
||||
pHdbPropertyChange pm = NULL;
|
||||
pMotor self = (pMotor) userData;
|
||||
float fVal;
|
||||
hdbValue v;
|
||||
|
||||
assert(self != NULL);
|
||||
|
||||
mm = GetHdbUpdateMessage(message);
|
||||
if (mm != NULL) {
|
||||
v = *mm->v;
|
||||
if(strcmp(v.v.text,node->value.v.text) != 0){
|
||||
UpdateHipadabaPar(self->pDescriptor->parNode, v, mm->callData);
|
||||
Log(VERBOSE,"par","%s:status:%s", self->name,v.v.text);
|
||||
}
|
||||
return hdbContinue;
|
||||
}
|
||||
|
||||
/*
|
||||
forward geterror
|
||||
*/
|
||||
pm = GetPropertyChangeMessage(message);
|
||||
if(pm != NULL){
|
||||
if(strstr(pm->key,"geterror") != NULL){
|
||||
SetHdbProperty(self->pDescriptor->parNode,pm->key, pm->value);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return hdbContinue;
|
||||
}
|
||||
|
||||
@ -882,6 +924,9 @@ pMotor SecMotorInit(char *name)
|
||||
|
||||
child = MakeHipadabaNode("status", HIPTEXT, 1);
|
||||
SetHdbProperty(child, "motname", name);
|
||||
AppendHipadabaCallback(child,
|
||||
MakeHipadabaCallback(StatusUpdateCallback, pM,
|
||||
NULL));
|
||||
AddHipadabaChild(node, child, NULL);
|
||||
|
||||
child = MakeHipadabaNode("error", HIPTEXT, 1);
|
||||
|
Reference in New Issue
Block a user