Mercurial > public > ostc4
diff Small_CPU/Inc/externalInterface.h @ 794:bb37d4f3e50e
Restructure UART based sensor handling:
In the previous version every UART sensor instance had its own protocol handling instance (requests, timeout, errors). With the introduction of the multiplexer these functionalities had to be harmonized. E.g. only one errorhandling which is applied to all sensors. In the new structure the sensor communication is split into one function which takes care for the control needs of a sensor and one function which handles the incoming data. The functions behalf the same independend if the sensor are connected to multiplexer or directly to the OSTC.
Second big change in the external sensor concepts is that the data processing is no longer focussed at the three existing ADC channels. Every external sensor (up to 3 ADC and 4 UART) sensor has its own instance. If the ADC slots are not in use then they may be used for visiualization of UART sensors by creating a mirror instance but this is no longer a must.
author | Ideenmodellierer |
---|---|
date | Mon, 31 Jul 2023 19:46:29 +0200 |
parents | 19ab6f3ed52a |
children | e9eba334b942 |
line wrap: on
line diff
--- a/Small_CPU/Inc/externalInterface.h Thu Jul 27 21:52:19 2023 +0200 +++ b/Small_CPU/Inc/externalInterface.h Mon Jul 31 19:46:29 2023 +0200 @@ -29,7 +29,8 @@ /* Includes ------------------------------------------------------------------*/ #include "configuration.h" - +#include "data_central.h" +#include "data_exchange.h" #define MAX_ADC_CHANNEL (3u) /* number of channels to be read */ #define MAX_MUX_CHANNEL (4u) /* number of channels provided by the UART multiplexer */ @@ -39,6 +40,8 @@ #define MIN_ADC_VOLTAGE_MV (5.0f) /* miminal voltage to rate an ADC channel as active */ +#define COMMON_SENSOR_STATE_INIT (0x0u) /* All individual state definitions shall start with a INIT state = 0 */ +#define COMMON_SENSOR_STATE_INVALID (0xFFu) /* All individual state devinitions shall not use 0xFF for operation control */ typedef enum { @@ -78,8 +81,10 @@ void externalInterface_SwitchUART(uint8_t protocol); uint8_t externalInterface_isEnabledPower33(void); uint8_t externalInterface_isEnabledADC(void); -uint8_t externalInterface_GetUARTProtocol(); - +uint8_t externalInterface_GetUARTProtocol(void); +void externalInterface_HandleUART(void); +void externalInterface_SetCO2Scale(float CO2Scale); +float externalInterface_GetCO2Scale(void); void externalInterface_SetCO2Value(uint16_t CO2_ppm); void externalInterface_SetCO2SignalStrength(uint16_t LED_qa); uint16_t externalInterface_GetCO2Value(void); @@ -93,4 +98,10 @@ void externalInterface_AutodetectSensor(void); void externalInterface_ExecuteCmd(uint16_t Cmd); +uint8_t externalInterface_GetActiveUartSensor(void); +void externalInterface_SetSensorState(uint8_t sensorIdx, uint8_t state); +uint8_t externalInterface_GetSensorState(uint8_t sensorIdx); + + + #endif /* EXTERNAL_INTERFACE_H */