Files
RS485_T1_Transition/Source/SYSTEM/inc/tempctrl_unit.h

106 lines
2.8 KiB
C
Raw Normal View History

#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