WLE5CC_NODE_STS/STS/RC/ir_device.h

87 lines
2.6 KiB
C

/**
* @file ir_device.h
* @author your name (you@domain.com)
* @brief
* @version 0.1
* @date 2024-06-03
*
* @copyright Copyright (c) 2024
*
*/
#ifndef IR_DEVICE_H
#define IR_DEVICE_H
/**
* @brief HXD 芯片电源启动IO
*
*/
#define HXD039B2_POWER_CTRL_GPIO 3 // 芯片使能IO
/**
* @brief 判忙IO ,低电平时处于学习状态,其他时间为高电平
*
*/
#define HXD039B2_BUSY_GPIO 1
/**
* @brief HXD 芯片启动时间
*
*/
#define HXD_039B2_START_TIME_MS 70
/**
* @brief 长时间无操作电源关闭,时长定义
*
*/
#define HXD_039B2_POWER_OFF_TIMEOUT_MS 2000
typedef enum
{
IR_CODE_BYTE_HANDLE = 0X30,
IR_CODE_BYTE_AC_TYPE = 0X06,
IR_CODE_BYTE_AC_OFF = 0X80,
IR_CODE_BYTE_AC_ON,
IR_CODE_BYTE_AC_MODE_AUTO = 0XA1,
IR_CODE_BYTE_AC_MODE_COOL,
IR_CODE_BYTE_AC_MODE_DRY,
IR_CODE_BYTE_AC_MODE_FAN_ONLY,
IR_CODE_BYTE_AC_MODE_HEAT,
IR_CODE_BYTE_AC_TEMPERATURE_16 = 0X40,
IR_CODE_BYTE_AC_TEMPERATURE_17,
IR_CODE_BYTE_AC_TEMPERATURE_18,
IR_CODE_BYTE_AC_TEMPERATURE_19,
IR_CODE_BYTE_AC_TEMPERATURE_20,
IR_CODE_BYTE_AC_TEMPERATURE_21,
IR_CODE_BYTE_AC_TEMPERATURE_22,
IR_CODE_BYTE_AC_TEMPERATURE_23,
IR_CODE_BYTE_AC_TEMPERATURE_24,
IR_CODE_BYTE_AC_TEMPERATURE_25,
IR_CODE_BYTE_AC_TEMPERATURE_26,
IR_CODE_BYTE_AC_TEMPERATURE_27,
IR_CODE_BYTE_AC_TEMPERATURE_28,
IR_CODE_BYTE_AC_TEMPERATURE_29,
IR_CODE_BYTE_AC_TEMPERATURE_30,
IR_CODE_BYTE_AC_TEMPERATURE_31,
IR_CODE_BYTE_AC_FAN_MODE_AUTO = 0X51,
IR_CODE_BYTE_AC_FAN_MODE_LOW,
IR_CODE_BYTE_AC_FAN_MODE_MEDIUM,
IR_CODE_BYTE_AC_FAN_MODE_HIGH,
IR_CODE_BYTE_AC_TREND_UP = 0X61, // 风向向上
IR_CODE_BYTE_AC_TREND_MEDIUM, // 中间风向
IR_CODE_BYTE_AC_TREND_DOWN, // 风向向下
IR_CODE_BYTE_AC_TREND_AUTO_ON = 0X70, // 打开自动风向
IR_CODE_BYTE_AC_TREND_AUTO_OFF, // 关闭自动风向
IR_CODE_BYTE_AC_LIGHT_ON = 0XD0, // 打开灯光
IR_CODE_BYTE_AC_LIGHT_OFF, // 关闭灯光
} ir_code_byte_t;
void ir_dvice_init(void);
void ir_codec_start_learn(void);
void ir_codec_set_power(int power_state);
void ir_codec_set_mode(int mode);
void ir_codec_set_temperature(unsigned char temperature);
void ir_codec_set_fan_mode(unsigned char fan_mode);
void ir_codec_set_trend(unsigned char trend);
void ir_codec_set_trend_auto(unsigned char trend_auto);
void ir_codec_set_light_power(unsigned char light_power);
void hxd_039b_uart_recv_cb(unsigned char uart_data);
void hxd_039b2_save_ac_codeGrud(unsigned char *ac_codeGrud, int size_len);
int hxd_039b2_get_ac_codeGrud(unsigned char *ac_codeGrud);
#endif