diff 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
line wrap: on
line diff
--- a/Small_CPU/Inc/externalInterface.h	Sat Jan 14 20:41:36 2023 +0100
+++ b/Small_CPU/Inc/externalInterface.h	Sat Jan 14 20:46:17 2023 +0100
@@ -34,6 +34,22 @@
 
 #define EXT33V_CONTROL_PIN				GPIO_PIN_7	/* PortC */
 
+#define MIN_ADC_VOLTAGE_MV	(5.0f)		/* miminal voltage to rate an ADC channel as active */
+
+
+ typedef enum
+ {
+    DETECTION_OFF = 0,		/* no detection requested */
+	DETECTION_INIT,			/* prepare external interface for operation if not already activated */
+	DETECTION_ANALOG,		/* check ADC channels for connected sensors */
+	DETECTION_DIGO2,		/* check UART channel for connected DigO2 sensor */
+	DETECTION_CO2,			/* check UART channel for connected CO2 sensor */
+	DETECTION_DONE
+ } externalInterfaceAutoDetect_t;
+
+
+
+
 void externalInterface_Init(void);
 void externalInterface_InitPower33(void);
 uint8_t externalInterface_StartConversion(uint8_t channel);
@@ -56,7 +72,9 @@
 uint16_t externalInterface_GetCO2State(void);
 uint8_t externalInterface_GetSensorData(uint8_t* pDataStruct);
 void externalInterface_SetSensorData(uint8_t dataId, uint8_t* pDataStruct);
-
+void externalInface_SetSensorMap(uint8_t* pMap);
+uint8_t* externalInterface_GetSensorMapPointer(void);
+void externalInterface_AutodetectSensor(void);
 void externalInterface_ExecuteCmd(uint16_t Cmd);
 
 #endif /* EXTERNAL_INTERFACE_H */