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
This commit is contained in:
Ferdi Franceschini
2012-06-22 18:30:59 +10:00
committed by Douglas Clowes
parent f8124ccc5c
commit 5dd1ff27a4

View File

@@ -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){