#ifndef __SENSOR_H #define __SENSOR_H #include "main.h" #include "fifo.h" #include "usart_user.h" #define BIT_0 (1 << 0) #define BIT_1 (1 << 1) #define BIT_ALL (BIT_0 | BIT_1 ) #define SENSOR_DATA_LENGTH 64 #define CO_DATA_LENGTH 9 #define CO_Threshold 30 enum DEVICE_TYPE { NH3_TYPE = 0, H2S_TYPE, PM25_TYPE, CH2O_TYPE, CO2_TYPE, CO_TYPE, }; typedef struct music_control_st{ //osSemaphoreId recvBinarySemHandle; uint8_t MQ2; uint32_t CO; }music_ctr_t; typedef struct sensor_parse_control_st{ //osSemaphoreId recvBinarySemHandle; uint8_t type; RingBuff_t recvRingBuff; uint8_t sensorData[SENSOR_DATA_LENGTH]; uint8_t data_length; void (*function) (RingBuff_t *ringBuff); }sensor_parse_ctrl_t; extern volatile uint8_t THRESHOLD_CTRL; extern sensor_parse_ctrl_t co; void InitSonsorCtrlData(sensor_parse_ctrl_t *sensor_parse_ctrl, uint8_t data_length, uint8_t type); void SensorModeInitSet(void); void GetSensorData(void); uint8_t ReadSensorData(sensor_parse_ctrl_t *sensor_parse_ctrl); void AnalysisSensorData(sensor_parse_ctrl_t *sensor_parse_ctrl); void Mq2Data(void); #endif /* __FIFO_H */