Added the generation of incomensurate reflections for 0,0,0 in fourmess
Applied Douglas task deletion patch Fixed a bug with repeated motor failures in interface.c
This commit is contained in:
15
fourmess.c
15
fourmess.c
@ -811,6 +811,21 @@ static int GenInconsumerate(pSICSOBJ self, SConnection * pCon,
|
||||
SCPrintf(pCon,eLog, "%d of %d input reflections processed", i, startCount);
|
||||
}
|
||||
}
|
||||
/*
|
||||
add satellites of 0,0,0,
|
||||
*/
|
||||
for(i = 0; i < 3; i++){
|
||||
hkl[i] = 0. + qvec[i];
|
||||
}
|
||||
AddRefIdx(priv->messList, hkl);
|
||||
iGen++;
|
||||
for(i = 0; i < 3; i++){
|
||||
hkl[i] = 0. - qvec[i];
|
||||
}
|
||||
if(FindHKL(priv->messList, hkl[0], hkl[1], hkl[2]) == NULL){
|
||||
AddRefIdx(priv->messList, hkl);
|
||||
iGen++;
|
||||
}
|
||||
SCPrintf(pCon, eValue,
|
||||
"%d additional inconsumerate reflections generated", iGen);
|
||||
return 1;
|
||||
|
@ -241,6 +241,8 @@ static int DriveTaskFunc(void *data)
|
||||
}
|
||||
if(status == HWFault){
|
||||
taskData->pDriv->iErrorCount++;
|
||||
} else {
|
||||
taskData->pDriv->iErrorCount = 0;
|
||||
}
|
||||
if(status == HWFault || status == HWPosFault){
|
||||
SetDevexecStatus(pServ->pExecutor,DEVERROR);
|
||||
|
24
task.c
24
task.c
@ -214,22 +214,28 @@ static pTaskHead MakeTaskHead(char *name, TaskFunc pTask, SignalFunc pSignal,
|
||||
static void DeleteTaskHead(pTaskHead self)
|
||||
{
|
||||
assert(self);
|
||||
void *pData;
|
||||
|
||||
if (self->pKill) {
|
||||
if (self->pData) {
|
||||
self->pKill(self->pData);
|
||||
}
|
||||
}
|
||||
if(self->name != NULL){
|
||||
free(self->name);
|
||||
}
|
||||
/* unlink */
|
||||
/* unlink first to prevent double handling when Kill calls Yield*/
|
||||
if (self->pPrevious != NULL) {
|
||||
self->pPrevious->pNext = self->pNext;
|
||||
}
|
||||
if (self->pNext != NULL) {
|
||||
self->pNext->pPrevious = self->pPrevious;
|
||||
}
|
||||
|
||||
|
||||
if (self->pKill) {
|
||||
if (self->pData) {
|
||||
pData = self->pData;
|
||||
self->pData = NULL;
|
||||
self->pKill(pData);
|
||||
}
|
||||
}
|
||||
if(self->name != NULL){
|
||||
free(self->name);
|
||||
}
|
||||
|
||||
memset(self,0,sizeof(TaskHead));
|
||||
free(self);
|
||||
}
|
||||
|
Reference in New Issue
Block a user