- Modified dubiuos limit code in ECBSetValue

- Added subsampling to sinqhmdriv
This commit is contained in:
koennecke
2008-06-09 09:00:19 +00:00
parent b9157b18d7
commit 90497e4beb
4 changed files with 32 additions and 6 deletions

View File

@ -694,9 +694,14 @@ static int ECBRunTo(void *pData, float newPosition){
*/ */
diff = newPosition - oldValue; diff = newPosition - oldValue;
steps2degree= ObVal(self->driverPar,STEPS2DEG); steps2degree= ObVal(self->driverPar,STEPS2DEG);
if(ABS(diff) <= ObVal(self->driverPar,TOLERANCE)){
return OKOK;
}
/*
if(ABS(diff) <= .5/steps2degree + ObVal(self->driverPar,TOLERANCE)){ if(ABS(diff) <= .5/steps2degree + ObVal(self->driverPar,TOLERANCE)){
return OKOK; return OKOK;
} }
*/
/* /*
save restartTarget for backlash handling save restartTarget for backlash handling

View File

@ -625,7 +625,13 @@ static hdbCallbackReturn JulChoGetCallback(pHdb currentNode,
} }
/*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/
static int AppendJulChoROPar(pHdb parent, char *name, int type){ static int AppendJulChoROPar(pHdb parent, char *name, int type){
return AddSICSHdbROPar(parent,name,makeHdbValue(type,1)); pHdb child = NULL;
child = AddSICSHdbROPar(parent,name,makeHdbValue(type,1));
if(child != NULL){
return 1;
} else {
return 0;
}
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int ConfigureSingleJulCho(pHdb parent, pJulCho driv, static int ConfigureSingleJulCho(pHdb parent, pJulCho driv,
@ -796,11 +802,13 @@ static int InitJulChoPar(pJulCho driv){
* set callback and replace by a speed setting callback * set callback and replace by a speed setting callback
*/ */
parChild = GetHipadabaNode(child,"nomspeed"); parChild = GetHipadabaNode(child,"nomspeed");
assert(parChild != NULL); assert(parChild != NULL);
/* /*
* TODO: possible delete some callbacks * delete the callback cahin in order to remove the
* read only callback
*/ */
DeleteCallbackChain(parChild->callBackChain);
parChild->callBackChain = NULL;
pCb = MakeCheckPermissionCallback(usUser); pCb = MakeCheckPermissionCallback(usUser);
if(pCb == NULL){ if(pCb == NULL){
@ -812,6 +820,10 @@ static int InitJulChoPar(pJulCho driv){
return 0; return 0;
} }
AppendHipadabaCallback(parChild,pCb); AppendHipadabaCallback(parChild,pCb);
AppendHipadabaCallback(parChild,
MakeHipadabaCallback(JulChoGetCallback,driv,NULL));
AddHipadabaChild(driv->parNode,child,NULL); AddHipadabaChild(driv->parNode,child,NULL);
child = MakeHipadabaNode(CH3N,HIPNONE,0); child = MakeHipadabaNode(CH3N,HIPNONE,0);

View File

@ -48,9 +48,12 @@ typedef struct {
char *pFile; char *pFile;
}Polterdi, *pPolterdi; }Polterdi, *pPolterdi;
/* ------------------- forward declaration of task function --------------*/ /* ------------------- forward declaration of task function --------------*/
static int PoldiTask(void *pData); static int PoldiTask(void *pData);
static void PoldiUpdate(pPolterdi self, SConnection *pCon); static void PoldiUpdate(pPolterdi self, SConnection *pCon);
static void PoldiStart(pPolterdi s, SConnection *pCon);
static void PoldiLink(pPolterdi s, SConnection *pCon);
/*------------------ The Countstart Callback Function ----------------------*/ /*------------------ The Countstart Callback Function ----------------------*/
static int Countstartcallback(int iEvent, void *pEventData, void *pUser, static int Countstartcallback(int iEvent, void *pEventData, void *pUser,
@ -70,7 +73,7 @@ typedef struct {
return 1; return 1;
} }
return 1; return 1;
} }
/*------------------ The Countend Callback Function ----------------------*/ /*------------------ The Countend Callback Function ----------------------*/
static int Countendcallback(int iEvent, void *pEventData, void *pUser, static int Countendcallback(int iEvent, void *pEventData, void *pUser,
commandContext cc) commandContext cc)
@ -83,7 +86,12 @@ typedef struct {
assert(self); assert(self);
self->tUpdate = time(NULL); self->tUpdate = time(NULL);
self->iEnd = 1; self->iEnd = 1;
PoldiUpdate(self,self->pCon); if(self->iNew == 1){
PoldiStart(self,self->pCon);
PoldiLink(self, self->pCon);
} else {
PoldiUpdate(self,self->pCon);
}
return 1; return 1;
} }
return 1; return 1;

View File

@ -1156,6 +1156,7 @@ pCon);
pNew->Preset = SQPreset; pNew->Preset = SQPreset;
pNew->FreePrivate = SQFreePrivate; pNew->FreePrivate = SQFreePrivate;
pNew->Pause = SQPause; pNew->Pause = SQPause;
pNew->SubSample = DefaultSubSample;
pNew->Continue = SQContinue; pNew->Continue = SQContinue;
return pNew; return pNew;