Documentation
Includes
tuya_cloud_com_defs.h
#include "tuya_cloud_com_defs.h"
uni_log.h
#include "uni_log.h"
ty_cJSON.h
#include "ty_cJSON.h"
tuya_ir_ws_db.h
#include "tuya_ir_ws_db.h"
tuya_ir_code.h
#include "tuya_ir_code.h"
mem_pool.h
#include "mem_pool.h"
tuya_system_dp.h
#include "tuya_system_dp.h"
tuya_iot_com_api.h
#include "tuya_iot_com_api.h"
uni_base64.h
#include "uni_base64.h"
tuya_system_dp.h
#include "tuya_system_dp.h"
tuya_iot_internal_api.h
#include "tuya_iot_internal_api.h"
uni_msg_queue.h
#include "uni_msg_queue.h"
string.h
#include "string.h"
Macros
Marco _TUYA_IR_CONTROL_H
#define _TUYA_IR_CONTROL_H
Marco TUYA_IR_ATTRIBUTE_REPORT_URL
#define TUYA_IR_ATTRIBUTE_REPORT_URL "tuya.device.infrared.attribute.batch.save"
Marco TUYA_IR_ATTRIBUTE_REPORT_URL_VER
#define TUYA_IR_ATTRIBUTE_REPORT_URL_VER "1.0"
Marco TY_CODE_FASTLZ_VER
#define TY_CODE_FASTLZ_VER 3
Marco IR_MQTT_UP_VER
#define IR_MQTT_UP_VER 3
Marco IR_KEY_MAX_NUM_FASTLZ
#define IR_KEY_MAX_NUM_FASTLZ 10
Marco IR_MQTT_UP_CYCLE_TIME
#define IR_MQTT_UP_CYCLE_TIME 2000 //ms
Marco IR_MQTT_UP_CYCLE_TYPE
#define IR_MQTT_UP_CYCLE_TYPE TIMER_ONCE //ms
Marco IR_MQTT_PUSH_TYPE_BUF_MAX_LEN
#define IR_MQTT_PUSH_TYPE_BUF_MAX_LEN 128
Functions
Func tuya_ir_control_register
OPERATE_RET tuya_ir_control_register(IN CONST TY_IR_CONTROL_CBS_S *p_ir_cbs);
Func tuya_ir_study_code_report
OPERATE_RET tuya_ir_study_code_report(IN CONST USHORT_T *p_code, IN CONST UINT_T code_len);
Func tuya_ir_study_error_report
OPERATE_RET tuya_ir_study_error_report(VOID);
Func tuya_ir_code_free
OPERATE_RET tuya_ir_code_free(IN TY_IR_CODE_S *ir_code, IN UCHAR_T code_num);
Func tuya_ir_study_stat_report
OPERATE_RET tuya_ir_study_stat_report(IN TY_IR_STUDY_CTL_E mode);
Func tuya_ir_control_register_v20
OPERATE_RET tuya_ir_control_register_v20(IN CONST TY_IR_COMPRESS_CONTROL_CBS_S *p_ir_cbs);
Func tuya_ir_study_fz_compress_report
OPERATE_RET tuya_ir_study_fz_compress_report(IN CHAR_T *dev_id,IN CONST CHAR_T *p_code, IN CONST UINT_T code_len);
Func tuya_ir_lib2timecode
OPERATE_RET tuya_ir_lib2timecode(IN CHAR_T *head,IN CHAR_T *key,INOUT TY_IR_CODE_S **timecode);
Func tuya_ir_code_free_v20
OPERATE_RET tuya_ir_code_free_v20(IN TY_IR_CODE_V20_S *ir_code, IN UCHAR_T code_num);
Func tuya_ir_sub_attribute_report
OPERATE_RET tuya_ir_sub_attribute_report(IN TY_IR_INIT_TYPE p_type, IN CHAR_T ir_ver, IN CONST CHAR_T *c_devid);
Func tuya_ir_report_ir_attr
OPERATE_RET tuya_ir_report_ir_attr(TY_IR_INIT_TYPE type);
Func tuya_rf_control_register
OPERATE_RET tuya_rf_control_register(IN CONST TY_RF_CONTROL_CBS_S *p_ir_cbs);
Func tuya_rf_study_code_report
OPERATE_RET tuya_rf_study_code_report(IN CONST UCHAR_T *p_code,IN CONST UINT_T code_len,IN CONST UINT_T max_len);
Func tuya_rf_study_stat_report
OPERATE_RET tuya_rf_study_stat_report(IN TY_RF_STUDY_CTL_E mode);
Vars
Consts
Types
Typedefs
Typedef TY_IR_INIT_TYPE
typedef CHAR_T TY_IR_INIT_TYPE;
#define TY_IR_INIT_NO_TYPE 0
#define TY_IR_INIT_CODE_TYPE 1
#define TY_IR_INIT_CODE_FASTLZ 2
#define TY_IR_INIT_CODE_KK 3
Typedef TY_IR_STUDY_CTL_E
typedef CHAR_T TY_IR_STUDY_CTL_E;
#define TY_IR_STUDY_START 0
#define TY_IR_STUDY_EXIT 1
Typedef IR_FAST_LZ;
typedef struct
{
TY_IR_INIT_TYPE ir_init_type;
TM_MSG_S *ir_type_sync;
}IR_FAST_LZ;
Typedef TY_IR_CODE_S;
typedef struct
{
USHORT_T *code;
USHORT_T code_len;
BYTE_T send_count; //repeat send count, don't need delay
UINT_T feq;
USHORT_T delay; //ms
}TY_IR_CODE_S;
Typedef TY_IR_STUDY_CTL_CB
typedef VOID (*TY_IR_STUDY_CTL_CB)(TY_IR_STUDY_CTL_E mode);
Typedef TY_IR_SEND_CB
typedef VOID (*TY_IR_SEND_CB)(TY_IR_CODE_S *ir_code, UCHAR_T code_num_type);
Typedef TY_IR_CONTROL_CBS_S;
typedef struct
{
TY_IR_STUDY_CTL_CB study_ctl_cb;
TY_IR_SEND_CB send_cb;
}TY_IR_CONTROL_CBS_S;
Typedef TY_IR_GW_ID_S;
typedef struct
{
CHAR_T *devid;
CHAR_T *vir_devid;
}TY_IR_GW_ID_S;
Typedef TY_IR_GW_KEY_S;
typedef struct
{
UINT_T key_id;
CHAR_T *key;
}TY_IR_GW_KEY_S;
Typedef TY_IR_CODE_HK_S;
typedef struct
{
CHAR_T *ir_head;
CHAR_T *ir_key;
}TY_IR_CODE_HK_S;
Typedef TY_IR_CODE_FZ_S;
typedef struct
{
CHAR_T *ir_fzcode;
USHORT_T ir_fzcode_len;
USHORT_T feq;
UCHAR_T send_cnt;
}TY_IR_CODE_FZ_S;
Typedef TY_IR_CODE_HKORFZ_U;
typedef union
{
TY_IR_CODE_HK_S ir_hk_info;
TY_IR_CODE_FZ_S ir_fz_info;
}TY_IR_CODE_HKORFZ_U;
Typedef TY_IR_CODE_V20_S;
typedef struct
{
TY_IR_CODE_HKORFZ_U ir_code_info;
CHAR_T is_fz_code;
USHORT_T delay; //ms
CHAR_T relearn;
TY_IR_GW_KEY_S ir_gw_info_s;
}TY_IR_CODE_V20_S;
Typedef TY_IR_STUDY_CTL_CB_V20
typedef VOID (*TY_IR_STUDY_CTL_CB_V20)(TY_IR_STUDY_CTL_E mode,TY_IR_GW_ID_S *gwid_info);
Typedef TY_IR_SEND_CB_V20
typedef VOID (*TY_IR_SEND_CB_V20)(TY_IR_CODE_V20_S *ir_code, UCHAR_T code_num,TY_IR_GW_ID_S *gwid_info);
Typedef TY_IR_COMPRESS_CONTROL_CBS_S;
typedef struct
{
TY_IR_STUDY_CTL_CB_V20 study_ctl_cb;
TY_IR_SEND_CB_V20 send_cb;
}TY_IR_COMPRESS_CONTROL_CBS_S;
Typedef TY_RF_STUDY_CTL_E
typedef UCHAR_T TY_RF_STUDY_CTL_E;
#define TY_RF_STUDY_START 0
#define TY_RF_STUDY_EXIT 1
Typedef TY_RF_SEND_CTL_E
typedef UCHAR_T TY_RF_SEND_CTL_E;
#define TY_RF_SEND_CONFIG_PKG 0
#define TY_RF_SEND_PAIR_PKG 1
#define TY_RF_SEND_CMD_PKG 2
#define TY_RF_SEND_STUDYCODE_PKG 3
Typedef TY_RF_STUDY_STATE_CB
typedef VOID (*TY_RF_STUDY_STATE_CB)(TY_RF_STUDY_CTL_E mode);
Typedef TY_RF_SEND_CB
typedef VOID (*TY_RF_SEND_CB)(UCHAR_T *rf_data,UCHAR_T rf_data_len,TY_RF_SEND_CTL_E type);
Typedef TY_RF_CONTROL_CBS_S;
typedef struct
{
TY_RF_STUDY_STATE_CB rf_study_state_cb; //A callback is sent in the RF learning state
TY_RF_SEND_CB rf_lib_send_cb; //A callback is sent in the RF data
}TY_RF_CONTROL_CBS_S;