diff --git a/multicounter.c b/multicounter.c index b719ca8b..c617b193 100644 --- a/multicounter.c +++ b/multicounter.c @@ -231,10 +231,11 @@ static int MMCCTransfer(void *pData, SConnection *pCon){ int i, retVal = OKOK, status; char pBueffel[132]; pCounter pCount = NULL; - pCounter pCountController = NULL; + pCounter pCountController = NULL, pCountSlave; pMultiCounter self = NULL; int tclStatus; int controlMonitor; + double avCntRt; pCount = (pCounter)pData; if(pCount != NULL){ @@ -251,6 +252,13 @@ static int MMCCTransfer(void *pData, SConnection *pCon){ sprintf(pBueffel,"WARNING: slave histogram %d failed to transfer data", i); SCWrite(pCon,pBueffel,eWarning); + } else if (pCountController->pDriv->eMode == ePreset) { + if (i != controlMonitor) { + pCountSlave = (pCounter) self->slaveData[i]; + avCntRt = pCountSlave->pDriv->lCounts[0] / pCountSlave->pDriv->fTime; + pCountSlave->pDriv->lCounts[0] = avCntRt * pCountController->pDriv->fTime; + pCountSlave->pDriv->fTime = pCountController->pDriv->fTime; + } } } pCount->pDriv->fTime = pCountController->pDriv->fTime;