Mercurial > public > ostc4
diff Small_CPU/Src/externalInterface.c @ 969:81049905d829 Evo_2_23
Zusammenf?hren
author | heinrichsweikamp |
---|---|
date | Sun, 19 Jan 2025 12:02:59 +0100 (2 months ago) |
parents | 3420e3ba698d |
children | 142f3d0363b3 |
line wrap: on
line diff
--- a/Small_CPU/Src/externalInterface.c Sun Jan 19 12:00:50 2025 +0100 +++ b/Small_CPU/Src/externalInterface.c Sun Jan 19 12:02:59 2025 +0100 @@ -1018,15 +1018,6 @@ SensorMap[index] = SENSOR_SEARCH; } break; - case EXT_INTERFACE_CO2_CALIB: for(index = 0; index < EXT_INTERFACE_SENSOR_CNT; index++) - { - if(SensorMap[index] == SENSOR_CO2) - { - externalInterface_SensorState[index] = UART_CO2_CALIBRATE; - break; - } - } - break; case EXT_INTERFACE_COPY_SENSORMAP: if(externalAutoDetect == DETECTION_OFF) { memcpy(SensorMap, MasterSensorMap, sizeof(MasterSensorMap)); @@ -1049,6 +1040,27 @@ } } break; + case EXT_INTERFACE_CO2_CALIB: index = (Cmd >> 8) & 0x000F; + if(SensorMap[index] == SENSOR_CO2M) + { + index = Mux2ADCMap[index]; + } + if(SensorMap[index] == SENSOR_CO2) + { + externalInterface_SensorState[index] = UART_CO2_CALIBRATE; + } + break; + case EXT_INTERFACE_O2_INDICATE: index = (Cmd >> 8) & 0x000F; + if(SensorMap[index] == SENSOR_DIGO2M) + { + index = Mux2ADCMap[index]; + } + if(SensorMap[index] == SENSOR_DIGO2) + { + externalInterface_SensorState[index] = UART_O2_CHECK; + } + break; + default: break; } @@ -1192,6 +1204,12 @@ break; } } + if((externalInterface_SensorState[activeSensorId] == UART_CO2_SETUP) /* timeout while setting up sensors */ + || (externalInterface_SensorState[activeSensorId] == UART_O2_CHECK)) + { + forceMuxChannel = 1; + } + if(pmap[EXT_INTERFACE_SENSOR_CNT-1] == SENSOR_MUX) /* select next sensor if mux is connected */ { @@ -1203,14 +1221,17 @@ forceMuxChannel = 0; timeToTrigger = 100; activeUartChannel = index; - if((pmap[index + EXT_INTERFACE_MUX_OFFSET] == SENSOR_DIGO2) - || (pmap[index + EXT_INTERFACE_MUX_OFFSET] == SENSOR_CO2) - || (pmap[index + EXT_INTERFACE_MUX_OFFSET] == SENSOR_GNSS)) + switch(pmap[index + EXT_INTERFACE_MUX_OFFSET]) { - uartO2_SetChannel(activeUartChannel); - externalInterface_CheckBaudrate(SENSOR_MUX); - UART_MUX_SelectAddress(activeUartChannel); - externalInterface_CheckBaudrate(pmap[activeUartChannel + EXT_INTERFACE_MUX_OFFSET]); + case SENSOR_DIGO2: uartO2_SetChannel(activeUartChannel); + /* no break */ + case SENSOR_CO2: + case SENSOR_GNSS: externalInterface_CheckBaudrate(SENSOR_MUX); + UART_MUX_SelectAddress(activeUartChannel); + externalInterface_CheckBaudrate(pmap[activeUartChannel + EXT_INTERFACE_MUX_OFFSET]); + break; + default: + break; } } }