comparison Small_CPU/Inc/externalInterface.h @ 729:d646a0f724a7

Added auto detection functionality for sensors connected to the external interface: O2 sensors may be connected to the analog input as well as to the UART. The GUI visualization provides three slots for ppo2 display. Beside detection of sensor kind the task of the function is to place the available sensor in this three slots. CO2 has its own communication slot outside the ppo2 channel. The result of the automatic detection is communicated via the sensor map.
author Ideenmodellierer
date Sat, 14 Jan 2023 20:46:17 +0100
parents 045ff7800501
children 2a801cfe23ab
comparison
equal deleted inserted replaced
728:5143e927219f 729:d646a0f724a7
32 #define MAX_ADC_CHANNEL (3u) /* number of channels to be read */ 32 #define MAX_ADC_CHANNEL (3u) /* number of channels to be read */
33 #define EXTERNAL_ADC_NO_DATA 0xFF 33 #define EXTERNAL_ADC_NO_DATA 0xFF
34 34
35 #define EXT33V_CONTROL_PIN GPIO_PIN_7 /* PortC */ 35 #define EXT33V_CONTROL_PIN GPIO_PIN_7 /* PortC */
36 36
37 #define MIN_ADC_VOLTAGE_MV (5.0f) /* miminal voltage to rate an ADC channel as active */
38
39
40 typedef enum
41 {
42 DETECTION_OFF = 0, /* no detection requested */
43 DETECTION_INIT, /* prepare external interface for operation if not already activated */
44 DETECTION_ANALOG, /* check ADC channels for connected sensors */
45 DETECTION_DIGO2, /* check UART channel for connected DigO2 sensor */
46 DETECTION_CO2, /* check UART channel for connected CO2 sensor */
47 DETECTION_DONE
48 } externalInterfaceAutoDetect_t;
49
50
51
52
37 void externalInterface_Init(void); 53 void externalInterface_Init(void);
38 void externalInterface_InitPower33(void); 54 void externalInterface_InitPower33(void);
39 uint8_t externalInterface_StartConversion(uint8_t channel); 55 uint8_t externalInterface_StartConversion(uint8_t channel);
40 uint8_t externalInterface_ReadAndSwitch(); 56 uint8_t externalInterface_ReadAndSwitch();
41 float externalInterface_CalculateADCValue(uint8_t channel); 57 float externalInterface_CalculateADCValue(uint8_t channel);
54 uint16_t externalInterface_GetCO2SignalStrength(void); 70 uint16_t externalInterface_GetCO2SignalStrength(void);
55 void externalInterface_SetCO2State(uint16_t state); 71 void externalInterface_SetCO2State(uint16_t state);
56 uint16_t externalInterface_GetCO2State(void); 72 uint16_t externalInterface_GetCO2State(void);
57 uint8_t externalInterface_GetSensorData(uint8_t* pDataStruct); 73 uint8_t externalInterface_GetSensorData(uint8_t* pDataStruct);
58 void externalInterface_SetSensorData(uint8_t dataId, uint8_t* pDataStruct); 74 void externalInterface_SetSensorData(uint8_t dataId, uint8_t* pDataStruct);
59 75 void externalInface_SetSensorMap(uint8_t* pMap);
76 uint8_t* externalInterface_GetSensorMapPointer(void);
77 void externalInterface_AutodetectSensor(void);
60 void externalInterface_ExecuteCmd(uint16_t Cmd); 78 void externalInterface_ExecuteCmd(uint16_t Cmd);
61 79
62 #endif /* EXTERNAL_INTERFACE_H */ 80 #endif /* EXTERNAL_INTERFACE_H */