


#ifndef _BLV_485_DEV_AIRDETECTFUN_H_
#define _BLV_485_DEV_AIRDETECTFUN_H_

#include "includes.h"
#include "stdint.h"
#include "BLV_485_Protocol.h"


#define DEV_AirDetectTYPE			0x09

#define AirDetectCO2         	0x00         //二氧化碳浓度   单位 ppm 
#define AirDetectCH2O     		0x01			   //甲醛浓度       单位 ug/m^3
#define AirDetectTVOC     		0x02				 //TVOC浓度       单位 ug/m^3
#define AirDetectPM2_5     		0x03			   //PM2.5浓度      单位 ug/m^3
#define AirDetectPM10     		0x04				 //PM10浓度值     单位 ug/m^3
#define AirDetectTemperature  0x05			   //温度 被放大10倍存放  单位 度
#define AirDetectHumidity     0x06				 //湿度 被放大十倍      单位 %RH
#define AirDetectValidMax      0x07         //7路输入检测


typedef struct RS485_AirDetect_INFO* 		RS485_AirDetect_INFOP;     //定义红外结构体指针

typedef struct RS485_AirDetect_INFO
{
//	uint16_t CO2;          
//	uint16_t CH2O;         
//	uint16_t TVOC;         
//	uint16_t PM2_5;        
//	uint16_t PM10          
//	uint16_t Temperature;  
//	uint16_t Humidity;     
	BLV_COMM_RECORD_G comm_record;	//通讯记录
	
	uint16_t DevReadBuf[AirDetectValidMax]; 			//输入检测数组，每个u16存检测参数的值
	uint16_t DevReadBuf_last[AirDetectValidMax]; 			//输入检测数组，每个u16存检测参数的上一个状态
	
	uint64_t AirDetectCycleTime;    //当前时间
	uint8_t AirDetectInputValidNum;     //红外有效的输出数量

	uint8_t DevSendCnt;     //设备发送计数   计数达到重发次数都没有回复，判为离线  占4位
	uint8_t DevOffline;       //设备离线标志 1，设备离线   0，设备在线             占2位
	uint8_t DevOfflineLast;       //设备离线标志 1，设备离线   0，设备在线         占2位
	
	uint32_t inquire_tick;		//询问时间戳

}__attribute__ ((__packed__))RS485_AirDetect_INFO;						//485红外的数据与函数


//uint8_t	Rs485_AirDetect_Data_Get(CFG_Dev_AddP CfgDevAdd);    
void BLW_RS485_AirDetect_Data_Init(uint8_t devaddr);
void BLW_RS485_AirDetect_For_Logic_Init(LOGICFILE_DEVICE_INFO *dev_info,uint8_t *data,uint16_t data_len);


#endif




