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);
|
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,
|
SCPrintf(pCon, eValue,
|
||||||
"%d additional inconsumerate reflections generated", iGen);
|
"%d additional inconsumerate reflections generated", iGen);
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -241,6 +241,8 @@ static int DriveTaskFunc(void *data)
|
|||||||
}
|
}
|
||||||
if(status == HWFault){
|
if(status == HWFault){
|
||||||
taskData->pDriv->iErrorCount++;
|
taskData->pDriv->iErrorCount++;
|
||||||
|
} else {
|
||||||
|
taskData->pDriv->iErrorCount = 0;
|
||||||
}
|
}
|
||||||
if(status == HWFault || status == HWPosFault){
|
if(status == HWFault || status == HWPosFault){
|
||||||
SetDevexecStatus(pServ->pExecutor,DEVERROR);
|
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)
|
static void DeleteTaskHead(pTaskHead self)
|
||||||
{
|
{
|
||||||
assert(self);
|
assert(self);
|
||||||
|
void *pData;
|
||||||
|
|
||||||
if (self->pKill) {
|
/* unlink first to prevent double handling when Kill calls Yield*/
|
||||||
if (self->pData) {
|
|
||||||
self->pKill(self->pData);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(self->name != NULL){
|
|
||||||
free(self->name);
|
|
||||||
}
|
|
||||||
/* unlink */
|
|
||||||
if (self->pPrevious != NULL) {
|
if (self->pPrevious != NULL) {
|
||||||
self->pPrevious->pNext = self->pNext;
|
self->pPrevious->pNext = self->pNext;
|
||||||
}
|
}
|
||||||
if (self->pNext != NULL) {
|
if (self->pNext != NULL) {
|
||||||
self->pNext->pPrevious = self->pPrevious;
|
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));
|
memset(self,0,sizeof(TaskHead));
|
||||||
free(self);
|
free(self);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user