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 |
| 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 |
