#ifndef __TEMPCTRL_UNIT_H__ #define __TEMPCTRL_UNIT_H__ #include "apt32f102_types_local.h" /*温控相关宏定义开始*/ #define TEM_MIN_SET 0x10 //最低温度 #define TEM_MAX_SET 0x20 //最高温度 #define TEM_VALVE_OPEN 0x01 //阀开 #define TEM_VALVE_CLOSE 0x00 //阀关 #define FAN_LOW 0x00 //低风速 #define FAN_MID 0x01 //中风速 #define FAN_HIGH 0x02 //高风速 #define FAN_AUTO 0x03 //自动风 #define FAN_STOP 0x04 //停 #define MODEL_COLD 0x00 //制冷模式 #define MODEL_HOT 0x02 //制热模式 #define MODEL_WIND 0x04 //送风模式 #define MODEL_AUTO 0x06 //自动模式 #define TEMP_ON 0x01 //开机 #define TEMP_OFF 0x00 //关机 #define CARDIN 0x01 //插卡 #define CARDOUT 0x00 //拔卡 #define TEM_DEPARTTURE 0x09 //偏差温度标准 #define uint5_t(data) (data&0x1f) #define TEMSTATECONVER(data) (*(U16_T *)&data) //实际u16的值 #define TEMTEMPCONVER(data) ((0x00 == data)?TEM_MAX_SET:data) //温控器温度转换为0,就输出32度 /*温控相关宏定义结束*/ typedef struct { U32_T indoor_t : 8; //0~50(°C),室温 U32_T set_t : 8; //5~40(°C),设定温度 U32_T valve : 1; //阀门状态 U32_T fan : 3; //风速 U32_T mode : 3; //工作模式 U32_T on_off : 1; //开关机状态 U32_T reserved : 8; }TemState_Struct; typedef struct { TemState_Struct TemState_Now; TemState_Struct TemStateLast; //温控器的上一个状态 用于输出屏幕 TemState_Struct TemState_Ctrller; //中宏网关读取到的温控状态 U8_T Temp_dirwind; //风向值,不做控制,值只记录,默认0 // U16_T IndoorTem; // U16_T IndoorTemLast; //用于显示 // // U16_T ReportTem; //用于上报 // U16_T ReportTemLast; U8_T CardState; //插卡状态 U8_T CardFlag; //插卡状态改变标记 U8_T CardEn; //插卡状态功能启用标记 U8_T SceneNo; //场景编号 U8_T SceneFlag; //场景改变标记 U8_T TempChange_Flag; //状态改变标记 U8_T TempCtrller_Cnt; //发送次数 U8_T TempCtrllerChange_Flag;//状态改变下发网关标记 U32_T SceneNoTick; U32_T Temp_SendTick; //温度定时上报间隔时间戳 U32_T TempChange_Tick; U32_T TemQuery_1S_tick; //查询网关温控状态时间戳 }TempCtrl_Unit; extern TempCtrl_Unit TempCtrl; void Debug_Init(void); void DisPlay_Task(void); /*相关函数声明开始*/ void TemCtrl_Init(void); //初始化函数 void TemCtrl_Pro(void); U8_T Ctrller_RecData_Processing(U8_T *RecData, U16_T Len); void Ctrller_Query_AirFun(void); void Ctrller_Query_AirState(void); void Ctrller_Ctrl_AirState(void); /*相关函数声明结束*/ #endif