From 5dd1ff27a45e01f9606f03f843ab8533fe64c4d4 Mon Sep 17 00:00:00 2001 From: Ferdi Franceschini Date: Fri, 22 Jun 2012 18:30:59 +1000 Subject: [PATCH] If the multicounter is set to count controlled mode then set all slave counters to timer mode with a preset time of one year otherwise set them to the given mode and preset. r3615 | ffr | 2012-06-22 18:30:59 +1000 (Fri, 22 Jun 2012) | 3 lines --- multicounter.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/multicounter.c b/multicounter.c index d2e40555..b719ca8b 100644 --- a/multicounter.c +++ b/multicounter.c @@ -68,10 +68,11 @@ static int MMCCHalt(void *pData){ static int MMCCStart(void *pData, SConnection *pCon) { int i, status, controlMonitor; - int oneYear=32000000; + int slavePreset, oneYear=32000000; pCounter pCount = NULL; pMultiCounter self = NULL; char buffer[128]; + CounterMode slaveMode; pCount = (pCounter)pData; if(pCount != NULL){ @@ -79,13 +80,20 @@ static int MMCCStart(void *pData, SConnection *pCon) } assert(self); controlMonitor = GetControlMonitor((pCounter)pCount); + if (pCount->pDriv->eMode == ePreset) { + slaveMode = eTimer; + slavePreset = oneYear; + } else { + slaveMode = pCount->pDriv->eMode; + slavePreset = pCount->pDriv->fPreset; + } for(i = 0; i < self->nSlaves; i++){ if (i == controlMonitor) { - self->slaves[i]->SetCountParameters(self->slaveData[i], - pCount->pDriv->fPreset, pCount->pDriv->eMode); + self->slaves[i]->SetCountParameters(self->slaveData[i], + pCount->pDriv->fPreset, pCount->pDriv->eMode); } else { - self->slaves[i]->SetCountParameters(self->slaveData[i], - oneYear, eTimer); + self->slaves[i]->SetCountParameters(self->slaveData[i], + slavePreset, slaveMode); } status = self->slaves[i]->StartCount(self->slaveData[i],pCon); if(status != OKOK){