- Enhanced and debugged histogram memory for AMOR
* added PROJECT both in HM and driver code * added single detector support. - Removed several bugs in the AMOR data bit. - Updated documentation
This commit is contained in:
50
histmem.c
50
histmem.c
@ -655,7 +655,7 @@
|
||||
myDim++;
|
||||
}
|
||||
}
|
||||
if(self->pDriv->eHistMode == eHTOF)
|
||||
if(self->pDriv->eHistMode == eHTOF || self->pDriv->eHistMode == ePSD)
|
||||
{
|
||||
iDim[myDim] = self->pDriv->iTimeChan;
|
||||
myDim++;
|
||||
@ -1000,6 +1000,54 @@
|
||||
}
|
||||
memcpy(lData,lHist,iCopy*sizeof(HistInt));
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
/*-------------------------------------------------------------------------*/
|
||||
int GetHistogramDirect(pHistMem self, SConnection *pCon,
|
||||
int i, int iStart, int iEnd, HistInt *lData, int iDataLen)
|
||||
{
|
||||
int ii, iErr, iRet, iCopy;
|
||||
char pBueffel[512], pError[80];
|
||||
HistInt *lHist = NULL;
|
||||
|
||||
assert(self);
|
||||
|
||||
if(!self->iInit)
|
||||
{
|
||||
SCWrite(pCon,"ERROR: histogram memory not initialised",eError);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(iDataLen < iEnd*sizeof(HistInt))
|
||||
{
|
||||
SCWrite(pCon,"ERROR: Data space mismatch in GetHistogramDirect",
|
||||
eError);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* try at least three times */
|
||||
for(ii = 0; ii < 3; ii++)
|
||||
{
|
||||
iRet = self->pDriv->GetHistogram(self->pDriv,pCon,
|
||||
i,iStart,iEnd,
|
||||
lData);
|
||||
if(iRet == OKOK)
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
iRet = self->pDriv->GetError(self->pDriv,&iErr,pError,79);
|
||||
sprintf(pBueffel,"ERROR: %s ",pError);
|
||||
SCWrite(pCon,pBueffel,eError);
|
||||
iRet = self->pDriv->TryAndFixIt(self->pDriv,iErr);
|
||||
if(iRet == COTERM)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
/*-----------------------------------------------------------------------*/
|
||||
|
Reference in New Issue
Block a user