Mercurial > public > ostc4
comparison 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 |
comparison
equal
deleted
inserted
replaced
968:b9a1710522b1 | 969:81049905d829 |
---|---|
1014 { | 1014 { |
1015 case EXT_INTERFACE_AUTODETECT: externalAutoDetect = DETECTION_INIT; | 1015 case EXT_INTERFACE_AUTODETECT: externalAutoDetect = DETECTION_INIT; |
1016 for(index = 0; index < 3; index++) | 1016 for(index = 0; index < 3; index++) |
1017 { | 1017 { |
1018 SensorMap[index] = SENSOR_SEARCH; | 1018 SensorMap[index] = SENSOR_SEARCH; |
1019 } | |
1020 break; | |
1021 case EXT_INTERFACE_CO2_CALIB: for(index = 0; index < EXT_INTERFACE_SENSOR_CNT; index++) | |
1022 { | |
1023 if(SensorMap[index] == SENSOR_CO2) | |
1024 { | |
1025 externalInterface_SensorState[index] = UART_CO2_CALIBRATE; | |
1026 break; | |
1027 } | |
1028 } | 1019 } |
1029 break; | 1020 break; |
1030 case EXT_INTERFACE_COPY_SENSORMAP: if(externalAutoDetect == DETECTION_OFF) | 1021 case EXT_INTERFACE_COPY_SENSORMAP: if(externalAutoDetect == DETECTION_OFF) |
1031 { | 1022 { |
1032 memcpy(SensorMap, MasterSensorMap, sizeof(MasterSensorMap)); | 1023 memcpy(SensorMap, MasterSensorMap, sizeof(MasterSensorMap)); |
1047 { | 1038 { |
1048 externalInterfaceMuxReqIntervall = 0xFFFF; | 1039 externalInterfaceMuxReqIntervall = 0xFFFF; |
1049 } | 1040 } |
1050 } | 1041 } |
1051 break; | 1042 break; |
1043 case EXT_INTERFACE_CO2_CALIB: index = (Cmd >> 8) & 0x000F; | |
1044 if(SensorMap[index] == SENSOR_CO2M) | |
1045 { | |
1046 index = Mux2ADCMap[index]; | |
1047 } | |
1048 if(SensorMap[index] == SENSOR_CO2) | |
1049 { | |
1050 externalInterface_SensorState[index] = UART_CO2_CALIBRATE; | |
1051 } | |
1052 break; | |
1053 case EXT_INTERFACE_O2_INDICATE: index = (Cmd >> 8) & 0x000F; | |
1054 if(SensorMap[index] == SENSOR_DIGO2M) | |
1055 { | |
1056 index = Mux2ADCMap[index]; | |
1057 } | |
1058 if(SensorMap[index] == SENSOR_DIGO2) | |
1059 { | |
1060 externalInterface_SensorState[index] = UART_O2_CHECK; | |
1061 } | |
1062 break; | |
1063 | |
1052 default: | 1064 default: |
1053 break; | 1065 break; |
1054 } | 1066 } |
1055 if(cmdLength != 0) | 1067 if(cmdLength != 0) |
1056 { | 1068 { |
1190 break; | 1202 break; |
1191 default: | 1203 default: |
1192 break; | 1204 break; |
1193 } | 1205 } |
1194 } | 1206 } |
1207 if((externalInterface_SensorState[activeSensorId] == UART_CO2_SETUP) /* timeout while setting up sensors */ | |
1208 || (externalInterface_SensorState[activeSensorId] == UART_O2_CHECK)) | |
1209 { | |
1210 forceMuxChannel = 1; | |
1211 } | |
1212 | |
1195 | 1213 |
1196 if(pmap[EXT_INTERFACE_SENSOR_CNT-1] == SENSOR_MUX) /* select next sensor if mux is connected */ | 1214 if(pmap[EXT_INTERFACE_SENSOR_CNT-1] == SENSOR_MUX) /* select next sensor if mux is connected */ |
1197 { | 1215 { |
1198 if(activeUartChannel < MAX_MUX_CHANNEL) | 1216 if(activeUartChannel < MAX_MUX_CHANNEL) |
1199 { | 1217 { |
1201 if((index != activeUartChannel) || (forceMuxChannel)) | 1219 if((index != activeUartChannel) || (forceMuxChannel)) |
1202 { | 1220 { |
1203 forceMuxChannel = 0; | 1221 forceMuxChannel = 0; |
1204 timeToTrigger = 100; | 1222 timeToTrigger = 100; |
1205 activeUartChannel = index; | 1223 activeUartChannel = index; |
1206 if((pmap[index + EXT_INTERFACE_MUX_OFFSET] == SENSOR_DIGO2) | 1224 switch(pmap[index + EXT_INTERFACE_MUX_OFFSET]) |
1207 || (pmap[index + EXT_INTERFACE_MUX_OFFSET] == SENSOR_CO2) | |
1208 || (pmap[index + EXT_INTERFACE_MUX_OFFSET] == SENSOR_GNSS)) | |
1209 { | 1225 { |
1210 uartO2_SetChannel(activeUartChannel); | 1226 case SENSOR_DIGO2: uartO2_SetChannel(activeUartChannel); |
1211 externalInterface_CheckBaudrate(SENSOR_MUX); | 1227 /* no break */ |
1212 UART_MUX_SelectAddress(activeUartChannel); | 1228 case SENSOR_CO2: |
1213 externalInterface_CheckBaudrate(pmap[activeUartChannel + EXT_INTERFACE_MUX_OFFSET]); | 1229 case SENSOR_GNSS: externalInterface_CheckBaudrate(SENSOR_MUX); |
1230 UART_MUX_SelectAddress(activeUartChannel); | |
1231 externalInterface_CheckBaudrate(pmap[activeUartChannel + EXT_INTERFACE_MUX_OFFSET]); | |
1232 break; | |
1233 default: | |
1234 break; | |
1214 } | 1235 } |
1215 } | 1236 } |
1216 } | 1237 } |
1217 } | 1238 } |
1218 else | 1239 else |