Mercurial > public > ostc4
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 */ |