Fine tuning of second generation motor and counter parameter update messages

Changed paramete rupdates to verbose severity
This commit is contained in:
2016-02-15 11:38:23 +01:00
parent 66466c1c0f
commit 0da0380c8a
3 changed files with 58 additions and 3 deletions

View File

@ -39,6 +39,7 @@ static void SecCounterSetError(pCounter self, char *text)
if(node != NULL){ if(node != NULL){
v = MakeHdbText(strdup(text)); v = MakeHdbText(strdup(text));
UpdateHipadabaPar(node,v,NULL); UpdateHipadabaPar(node,v,NULL);
Log(VERBOSE,"par","%s:error:%s", self->name,text);
ReleaseHdbValue(&v); ReleaseHdbValue(&v);
} }
} }
@ -98,6 +99,7 @@ static int SecStartCount(void *pData, SConnection *pCon)
self->tStart = time(NULL); self->tStart = time(NULL);
node = GetHipadabaNode(self->pDes->parNode, "control"); node = GetHipadabaNode(self->pDes->parNode, "control");
UpdateHipadabaPar(node,MakeHdbFloat(.0), pCon); UpdateHipadabaPar(node,MakeHdbFloat(.0), pCon);
Log(VERBOSE,"par","%s:control:%s", self->name,"0");
SetHdbProperty(node,"geterror", NULL); SetHdbProperty(node,"geterror", NULL);
/* /*
* set time to 0. Otherwise, if there is a delay, * 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"); node = GetHipadabaNode(self->pDes->parNode, "time");
UpdateHipadabaPar(node,MakeHdbFloat(.0), pCon); UpdateHipadabaPar(node,MakeHdbFloat(.0), pCon);
Log(VERBOSE,"par","%s:time:%s", self->name,"0");
InvokeCallBack(self->pCall,COUNTSTART, pCon); InvokeCallBack(self->pCall,COUNTSTART, pCon);
SecCounterSetError(self,"None"); SecCounterSetError(self,"None");
return 1; return 1;
@ -308,7 +311,9 @@ static int SecCtrSetMode(pCounter self, CounterMode eNew)
v = MakeHdbText("monitor"); v = MakeHdbText("monitor");
break; break;
} }
Log(VERBOSE,"par","%s:mode:%s", self->name,v.v.text);
return SetHipadabaPar(node,v,NULL); return SetHipadabaPar(node,v,NULL);
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static CounterMode SecCtrGetMode(pCounter self) static CounterMode SecCtrGetMode(pCounter self)
@ -338,6 +343,7 @@ static int SecCtrSetPreset(pCounter self, float val)
node = GetHipadabaNode(self->pDes->parNode,"preset"); node = GetHipadabaNode(self->pDes->parNode,"preset");
assert(node != NULL); assert(node != NULL);
v = MakeHdbFloat(val); v = MakeHdbFloat(val);
Log(VERBOSE,"par","%s:preset:%f", self->name,v.v.doubleValue);
return SetHipadabaPar(node,v,NULL); return SetHipadabaPar(node,v,NULL);
} }
/*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/
@ -585,15 +591,19 @@ static hdbCallbackReturn SecStatusCallback(pHdb node, void *userData,
{ {
pHdbDataMessage mm = NULL; pHdbDataMessage mm = NULL;
hdbValue v; hdbValue v;
pCounter self = (pCounter)userData;
mm = GetHdbUpdateMessage(message); mm = GetHdbUpdateMessage(message);
if (mm != NULL) { if (mm != NULL) {
v = *mm->v;
if(strcmp(node->value.v.text,"starting") == 0) { if(strcmp(node->value.v.text,"starting") == 0) {
v = *mm->v;
if(strstr(v.v.text,"run") == 0 && strstr(v.v.text,"error") == 0) { if(strstr(v.v.text,"run") == 0 && strstr(v.v.text,"error") == 0) {
return hdbAbort; 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; return hdbContinue;
@ -684,7 +694,7 @@ pCounter CreateSecCounter(SConnection *pCon, char *type, char *name, int length)
return NULL; return NULL;
} }
AppendHipadabaCallback(child, AppendHipadabaCallback(child,
MakeHipadabaCallback(SecStatusCallback, NULL, MakeHipadabaCallback(SecStatusCallback, pRes,
NULL)); NULL));
AddHipadabaChild(node, child, NULL); AddHipadabaChild(node, child, NULL);

View File

@ -58,6 +58,7 @@ static void SecMotorSetError(pMotor self, char *text)
if(node != NULL){ if(node != NULL){
v = MakeHdbText(strdup(text)); v = MakeHdbText(strdup(text));
UpdateHipadabaPar(node,v,NULL); UpdateHipadabaPar(node,v,NULL);
Log(VERBOSE,"par","%s:error:%s", self->name,text);
ReleaseHdbValue(&v); ReleaseHdbValue(&v);
} }
} }
@ -84,6 +85,7 @@ static int SecMotorSetPar(pMotor self, SConnection * pCon, char *name,
status = SICSHdbSetPar(self, pCon, name, value); status = SICSHdbSetPar(self, pCon, name, value);
if (status == 1) { if (status == 1) {
SCparChange(pCon); SCparChange(pCon);
Log(VERBOSE,"par","%s:%s:%f", self->name,name,fVal);
return 1; return 1;
} else { } else {
return 0; return 0;
@ -287,6 +289,7 @@ static void handleMoveCallback(pMotor self, SConnection * pCon)
node = GetHipadabaNode(self->pDescriptor->parNode, "hardposition"); node = GetHipadabaNode(self->pDescriptor->parNode, "hardposition");
GetHipadabaPar(node, &v, pCon); GetHipadabaPar(node, &v, pCon);
UpdateHipadabaPar(node, v, pCon); UpdateHipadabaPar(node, v, pCon);
Log(VERBOSE,"par","%s:hardposition:%f",self->name,v.v.doubleValue);
self->posCount = 0; self->posCount = 0;
} }
} }
@ -539,6 +542,7 @@ static hdbCallbackReturn SecMotorCallback(pHdb node, void *userData,
UpdateHipadabaPar(child, MakeHdbText("run"), pCon); UpdateHipadabaPar(child, MakeHdbText("run"), pCon);
child = GetHipadabaNode(self->pDescriptor->parNode, "targetposition"); child = GetHipadabaNode(self->pDescriptor->parNode, "targetposition");
UpdateHipadabaPar(child, MakeHdbFloat(fHard), pCon); UpdateHipadabaPar(child, MakeHdbFloat(fHard), pCon);
Log(VERBOSE,"par","%s:targetposition:%f", self->name,fHard);
child = GetHipadabaNode(self->pDescriptor->parNode, "hardposition"); child = GetHipadabaNode(self->pDescriptor->parNode, "hardposition");
SetHipadabaPar(child, MakeHdbFloat(fHard), pCon); SetHipadabaPar(child, MakeHdbFloat(fHard), pCon);
@ -579,6 +583,9 @@ static hdbCallbackReturn HardUpdateCallback(pHdb node, void *userData,
mm = GetHdbUpdateMessage(message); mm = GetHdbUpdateMessage(message);
if (mm != NULL) { if (mm != NULL) {
v = *mm->v; 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); fVal = hardToSoftPosition(self, (float) v.v.doubleValue);
v.v.doubleValue = fVal; v.v.doubleValue = fVal;
UpdateHipadabaPar(self->pDescriptor->parNode, v, mm->callData); 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; return hdbContinue;
} }
@ -882,6 +924,9 @@ pMotor SecMotorInit(char *name)
child = MakeHipadabaNode("status", HIPTEXT, 1); child = MakeHipadabaNode("status", HIPTEXT, 1);
SetHdbProperty(child, "motname", name); SetHdbProperty(child, "motname", name);
AppendHipadabaCallback(child,
MakeHipadabaCallback(StatusUpdateCallback, pM,
NULL));
AddHipadabaChild(node, child, NULL); AddHipadabaChild(node, child, NULL);
child = MakeHipadabaNode("error", HIPTEXT, 1); child = MakeHipadabaNode("error", HIPTEXT, 1);

View File

@ -230,7 +230,7 @@ void traceprint(char *sub, char *id, char *data)
} else if(strstr(sub,"com") != NULL){ } else if(strstr(sub,"com") != NULL){
severity = INFO; severity = INFO;
} else if(strstr(sub,"par") != NULL){ } else if(strstr(sub,"par") != NULL){
severity = INFO; severity = VERBOSE;
} else { } else {
severity = DEBUG; severity = DEBUG;
} }