diff --git a/countersec.c b/countersec.c index 42ee582c..98da93ac 100644 --- a/countersec.c +++ b/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) { + v = *mm->v; if(strcmp(node->value.v.text,"starting") == 0) { - v = *mm->v; 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); diff --git a/motorsec.c b/motorsec.c index d33e7076..3bb14849 100644 --- a/motorsec.c +++ b/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); diff --git a/trace.c b/trace.c index f9e8af9f..2ae4c3d1 100644 --- a/trace.c +++ b/trace.c @@ -230,7 +230,7 @@ void traceprint(char *sub, char *id, char *data) } else if(strstr(sub,"com") != NULL){ severity = INFO; } else if(strstr(sub,"par") != NULL){ - severity = INFO; + severity = VERBOSE; } else { severity = DEBUG; }