// #ifndef __AIR_H
// #define __AIR_H

// #include "ModbusRtu.h"
// #include "project_var.h"
// #include "tcp_demo.h"

// #pragma pack(1)
// // 空调数据
// typedef struct
// {
//     u16 air_work_state;              // 空调工作状态
//     u16 fan_in_state;                // 室内风机状态
//     u16 fan_out_state;               // 室外风机状态
//     u16 compressor_state;            // 压缩机状态
//     u16 return_air_temp;             // 回风温度
//     u16 pump_state;                  //
//     u16 outside_temp;                //
//     u16 condenser_temp;              // 冷凝器温度
//     u16 evaporator_temp;             // 蒸发器温度
//     u16 speed_fan_in;                // 内风机转速
//     u16 speed_fan_out;               // 外风机转速
//     u16 voltage_ac_input;            // 交流输入电压
//     u16 voltage_dc_input;            // 直流输入电压
//     u16 current_ac_run;              // 交流允许电流
//     u16 run_time1_air;               // 空调运行时间 高字节
//     u16 run_time2_air;               // 空调运行时间 低字节
//     u16 run_time1_compressor;        // 压缩机运行时间 高字节
//     u16 run_time2_compressor;        // 压缩机运行时间 低字节
//     u16 run_time1_fan_in;            // 室内风机运行时间 高字节
//     u16 run_time2_fan_in;            // 室内风机行时间 低字节
//     u16 action_time1_compressor;     // 室内风机运行次数  高字节
//     u16 action_time2_compressor;     // 室内风机运行次数  低字节
//     u16 blowing_temp;                // 送风温度
//     u16 return_air_humidity;         // 回风湿度
//     u16 alarm_high_temp;             // 高温报警   // 报警
//     u16 fault_fan_in;                // 内风机故障
//     u16 fault_fan_out;               // 外风机故障
//     u16 fault_compressor;            // 压缩机故障
//     u16 detector_temp;               // 回风温度探头故障
//     u16 alarm_high_presure;          // 系统高压力报警
//     u16 alarm_low_temp;              // 低温报警
//     u16 alarm_dc_over;               // 直流过压报警
//     u16 alarm_dc_under;              // 直流欠压报警
//     u16 alarm_ac_over;               // 交流过压报警
//     u16 alarm_ac_under;              // 交流欠压报警
//     u16 alarm_ac_drop;               // 交流掉电报警
//     u16 fault_evaporator_sensor;     // 蒸发器温度传感器故障
//     u16 fault_condenser_sensor;      // 冷凝器故障温度传感器故障
//     u16 fault_env_sensor;            // 环境温度传感器故障
//     u16 alarm_evaporator_freeze;     // 蒸发器冻结报警
//     u16 alarm_high_presure_frequent; // 频繁高压力报警
//     u16 serious_alarm;               // 严重告警总状态

// } Data_Air_TypeDef;

// union Data_Air_Union_TypeDef
// {
//     u8               data_air_buf_u8[96];
//     u16              data_air_buf_u16[48];
//     Data_Air_TypeDef Data_Air_Union;
// };

// // 参数设置
// typedef struct
// {
//     float cold_value;       // 设定制冷温度
//     float cold_sensitivity; // 制冷设定灵敏度
//     float hot_temp;         //  高温告警点
//     float cold_temp;        // 低温告警点
//     float hot_value;        // 加热设定温度
//     float hot_sensitivity;  // 加热设定灵敏度
//     u16   data5;
//     u16   data6;
//     u16   data9;
//     u16   data10;
//     u16   data11;
//     u16   data12;
//     u16   data13;
//     u16   data14;
//     u16   data15;
//     u16   data16;
// } Par_Set_Air_TypeDef;

// union Par_Set_Air_Union_TypeDef
// {
//     u8                  par_buff_u8[32];
//     float               par_buff_float[8];
//     Par_Set_Air_TypeDef ParSet_AirUnion; //
// };

// ////空调 03请求帧
// // typedef struct
// //{
// //	  u8   addr;       //
// //		u8   function;   //
// //	  u16  register_addr;
// //	  u16  register_count;
// //	  u16 crc;
// // }Air_03Frame_Tx_TypeDef;

// // union Air_03Frame_Tx_Union_TypeDef
// //{
// //	  Air_03Frame_Tx_TypeDef  Frame03;    //
// //	  u8  send_buff[16];
// // };

// #pragma pack() // 取消自定义字节对齐方式

// extern union Data_Air_Union_TypeDef Data_Air[2];
// // extern union Par_Set_Air_Union_TypeDef   Par_Set_Air;

// void CopyAirData(u16 register_addr, u16 count, u16 *p); // 读取空调数据

// void SendFrame_ReadAirData(u16 register_addr, u16 count); // 发送读取空调数据数据帧

// void HandleAirData(u8 *p, u8 frame_style, u16 size);
// void HandleAirData1(u8 *p, u8 frame_style, u16 size);

// void SendFrame_SetAirPar(u8 *p, u16 register_addr, u16 count); // 设置空调运行参数

// void CopyAirDataSet(u16 register_addr, u16 count, float *p);

// // void ReadAirData(u16 register_addr, u16 count, u8  frame_style);  // 读取空调数据数据帧
// void ReadAirData(void); // 读取空调数据数据帧

// void HMI_10Frame_ParSetAir(u16 register_addr, const float *p);

// void HMI_10Frame_SwitchAir(u16 register_addr, u16 data);

// void I104_SwitchAir1(u16 addr_104, u8 data); // 104开关空调1
// void I104_SwitchAir2(u16 addr_104, u8 data); // 104开关空调2

// void I104_ParSetAir1(u16 i104_addr, float data); // 104设置空调1参数
// void I104_ParSetAir2(u16 i104_addr, float data); // 104设置空调2参数

// void Uart_air_test(void);

// #endif
