diff --git a/src/ir_decoder/include/irda_ac_parse_forbidden_info.h b/src/ir_decoder/include/irda_ac_parse_forbidden_info.h index 187dc52..36a4c68 100644 --- a/src/ir_decoder/include/irda_ac_parse_forbidden_info.h +++ b/src/ir_decoder/include/irda_ac_parse_forbidden_info.h @@ -3,7 +3,7 @@ Filename: irda_parse_forbidden_info.h Revised: Date: 2016-10-05 Revision: Revision: 1.0 -Description: This file provides algorithms for IR decode for TAG 1002 +Description: This file provides algorithms for forbidden area of AC code Revision log: * 2016-10-05: created by strawmanbobi @@ -14,8 +14,8 @@ Revision log: */ #include "irda_decode.h" -#ifndef _IRDA_PARSE_PARSE_150X_H_ -#define _IRDA_PARSE_PARSE_150X_H_ +#ifndef _IRDA_PARSE_PARSE_H_ +#define _IRDA_PARSE_PARSE_H_ #ifdef __cplusplus extern "C" @@ -33,11 +33,11 @@ extern "C" /* * public function declaration */ -extern INT8 parse_nmode_150x(struct tag_head *tag, ac_n_mode index); +extern INT8 parse_nmode(struct tag_head *tag, ac_n_mode index); #ifdef __cplusplus } #endif -#endif // _IRDA_PARSE_PARSE_150X_H_ +#endif // _IRDA_PARSE_PARSE_H_ diff --git a/src/ir_decoder/include/irda_ac_parse_frame_parameter.h b/src/ir_decoder/include/irda_ac_parse_frame_parameter.h index b539a2e..13c672c 100644 --- a/src/ir_decoder/include/irda_ac_parse_frame_parameter.h +++ b/src/ir_decoder/include/irda_ac_parse_frame_parameter.h @@ -33,23 +33,23 @@ extern "C" /* * public function declaration */ -extern INT8 parse_bootcode_300(struct tag_head *tag); +extern INT8 parse_bootcode(struct tag_head *tag); -extern INT8 parse_zero_301(struct tag_head *tag); +extern INT8 parse_zero(struct tag_head *tag); -extern INT8 parse_one_302(struct tag_head *tag); +extern INT8 parse_one(struct tag_head *tag); -extern INT8 parse_delaycode_303(struct tag_head *tag); +extern INT8 parse_delaycode(struct tag_head *tag); -extern INT8 parse_framelen_304(struct tag_head *tag, UINT16 len); +extern INT8 parse_framelen(struct tag_head *tag, UINT16 len); -extern INT8 parse_endian_306(struct tag_head *tag); +extern INT8 parse_endian(struct tag_head *tag); -extern INT8 parse_lastbit_307(struct tag_head *tag); +extern INT8 parse_lastbit(struct tag_head *tag); -extern INT8 parse_repeat_times_1508(struct tag_head *tag); +extern INT8 parse_repeat_times(struct tag_head *tag); -extern INT8 parse_bitnum_1509(struct tag_head *tag); +extern INT8 parse_bitnum(struct tag_head *tag); #ifdef __cplusplus } diff --git a/src/ir_decoder/include/irda_ac_parse_parameter.h b/src/ir_decoder/include/irda_ac_parse_parameter.h index a8d1f57..ee9243f 100644 --- a/src/ir_decoder/include/irda_ac_parse_parameter.h +++ b/src/ir_decoder/include/irda_ac_parse_parameter.h @@ -36,35 +36,35 @@ extern "C" extern INT8 parse_common_ac_parameter(t_tag_head *tag, tag_comp *comp_data, UINT8 with_end, UINT8 type); -extern INT8 parse_defaultcode_1002(struct tag_head *tag, ac_hex *default_code); +extern INT8 parse_defaultcode(struct tag_head *tag, ac_hex *default_code); -extern INT8 parse_power_1_1001(struct tag_head *tag, power_1 *power1); +extern INT8 parse_power_1(struct tag_head *tag, power_1 *power1); -extern INT8 parse_temp_1_1003(struct tag_head *tag, temp_1 *temp1); +extern INT8 parse_temp_1(struct tag_head *tag, temp_1 *temp1); -extern INT8 parse_mode_1_1004(struct tag_head *tag, mode_1 *mode1); +extern INT8 parse_mode_1(struct tag_head *tag, mode_1 *mode1); -extern INT8 parse_speed_1_1005(struct tag_head *tag, speed_1 *speed1); +extern INT8 parse_speed_1(struct tag_head *tag, speed_1 *speed1); -extern INT8 parse_swing_1_1007(struct tag_head *tag, swing_1 *swing1, UINT16 swing_count); +extern INT8 parse_swing_1(struct tag_head *tag, swing_1 *swing1, UINT16 swing_count); -extern INT8 parse_checksum_1008(struct tag_head *tag, tchecksum *checksum); +extern INT8 parse_checksum(struct tag_head *tag, tchecksum *checksum); -extern INT8 parse_function_1_1010(struct tag_head *tag, function_1 *function1); +extern INT8 parse_function_1_tag29(struct tag_head *tag, function_1 *function1); -extern INT8 parse_temp_2_1011(struct tag_head *tag, temp_2 *temp2); +extern INT8 parse_temp_2(struct tag_head *tag, temp_2 *temp2); -extern INT8 parse_mode_2_1012(struct tag_head *tag, mode_2 *mode2); +extern INT8 parse_mode_2(struct tag_head *tag, mode_2 *mode2); -extern INT8 parse_speed_2_1013(struct tag_head *tag, speed_2 *speed2); +extern INT8 parse_speed_2(struct tag_head *tag, speed_2 *speed2); -extern INT8 parse_swing_2_1015(struct tag_head *tag, swing_2 *swing2, UINT16 swing_count); +extern INT8 parse_swing_2(struct tag_head *tag, swing_2 *swing2, UINT16 swing_count); -extern INT8 parse_function_2_1016(struct tag_head *tag, function_2 *function2); +extern INT8 parse_function_2_tag34(struct tag_head *tag, function_2 *function2); -extern INT8 parse_swing_info_1506(struct tag_head *tag, swing_info *si); +extern INT8 parse_swing_info(struct tag_head *tag, swing_info *si); -extern INT8 parse_solo_code_1009(struct tag_head *tag, solo_code *sc); +extern INT8 parse_solo_code(struct tag_head *tag, solo_code *sc); #ifdef __cplusplus } diff --git a/src/ir_decoder/include/irda_decode.h b/src/ir_decoder/include/irda_decode.h index 9ca6c04..af92423 100644 --- a/src/ir_decoder/include/irda_decode.h +++ b/src/ir_decoder/include/irda_decode.h @@ -14,22 +14,19 @@ Revision log: #include #include "irda_defs.h" -#define TAG_COUNT_FOR_PROTOCOL 29 -#define TAG_COUNT_FOR_BC_PROTOCOL 20 +#define TAG_COUNT_FOR_PROTOCOL 29 -#define KEY_COUNT 15 +#define EXPECTED_MEM_SIZE 1024 -#define EXPECTED_MEM_SIZE 1024 +#define TAG_INVALID 0xffff +#define MAX_DELAYCODE_NUM 16 +#define MAX_BITNUM 16 -#define TAG_INVALID 0xffff -#define MAX_DELAYCODE_NUM 16 -#define MAX_BITNUM 16 +#define IR_DECODE_FAILED (-1) +#define IR_DECODE_SUCCEEDED (0) -#define IR_DECODE_FAILED (-1) -#define IR_DECODE_SUCCEEDED (0) - -#define AC_PARAMETER_TYPE_1 0 -#define AC_PARAMETER_TYPE_2 1 +#define AC_PARAMETER_TYPE_1 0 +#define AC_PARAMETER_TYPE_2 1 typedef enum { @@ -161,65 +158,65 @@ typedef struct _tag_comp_type_1 UINT8 *segment; } tag_comp; -typedef struct _tag_1506_swing_info +typedef struct _tag_swing_info { swing_type type; UINT8 mode_count; UINT8 dir_index; } swing_info; -typedef struct _tag_1001_power_1 +typedef struct _tag_power_1 { UINT8 len; tag_comp comp_data[AC_POWER_MAX]; } power_1; -typedef struct _tag_1003_temp_1 +typedef struct _tag_temp_1 { UINT8 len; UINT8 type; tag_comp comp_data[AC_TEMP_MAX]; } temp_1; -typedef struct tag_1004_mode_1 +typedef struct tag_mode_1 { UINT8 len; tag_comp comp_data[AC_MODE_MAX]; } mode_1; -typedef struct tag_1005_speed_1 +typedef struct tag_speed_1 { UINT8 len; tag_comp comp_data[AC_WS_MAX]; } speed_1; -typedef struct tag_1007_swing_1 +typedef struct tag_swing_1 { UINT8 len; UINT16 count; tag_comp *comp_data; } swing_1; -typedef struct tag_1011_temp_2 +typedef struct tag_temp_2 { UINT8 len; UINT8 type; tag_comp comp_data[AC_TEMP_MAX]; } temp_2; -typedef struct tag_1012_mode_2 +typedef struct tag_mode_2 { UINT8 len; tag_comp comp_data[AC_MODE_MAX]; } mode_2; -typedef struct tag_1013_speed_2 +typedef struct tag_speed_2 { UINT8 len; tag_comp comp_data[AC_WS_MAX]; } speed_2; -typedef struct tag_1015_swing_2 +typedef struct tag_swing_2 { UINT8 len; UINT16 count; @@ -227,7 +224,7 @@ typedef struct tag_1015_swing_2 } swing_2; #if defined SUPPORT_HORIZONTAL_SWING -typedef struct tag_1006_horiswing_1 +typedef struct tag_horiswing_1 { UINT16 len; tag_comp comp_data[AC_HORI_SWING_MAX]; @@ -384,43 +381,41 @@ typedef struct REMOTE_AC_STATUS // function polymorphism typedef INT8 (*lp_apply_ac_parameter) (remote_ac_status_t ac_status, UINT8 function_code); -#define TAG_AC_POWER_1 1001 -#define TAG_AC_DEFAULT_CODE 1002 -#define TAG_AC_TEMP_1 1003 -#define TAG_AC_MODE_1 1004 -#define TAG_AC_SPEED_1 1005 -#define TAG_AC_SWING_1 1007 -#define TAG_AC_CHECKSUM_TYPE 1008 -#define TAG_AC_TEMP_2 1011 -#define TAG_AC_MODE_2 1012 -#define TAG_AC_SPEED_2 1013 -#define TAG_AC_SWING_2 1015 -#define TAG_AC_SOLO_FUNCTION 1009 +#define TAG_AC_BOOT_CODE 1 +#define TAG_AC_ZERO 2 +#define TAG_AC_ONE 3 +#define TAG_AC_DELAY_CODE 4 +#define TAG_AC_FRAME_LENGTH 5 +#define TAG_AC_ENDIAN 6 +#define TAG_AC_LASTBIT 7 -#define TAG_AC_FUNCTION_1 1010 -#define TAG_AC_FUNCTION_2 1016 +#define TAG_AC_POWER_1 21 +#define TAG_AC_DEFAULT_CODE 22 +#define TAG_AC_TEMP_1 23 +#define TAG_AC_MODE_1 24 +#define TAG_AC_SPEED_1 25 +#define TAG_AC_SWING_1 26 +#define TAG_AC_CHECKSUM_TYPE 27 +#define TAG_AC_SOLO_FUNCTION 28 +#define TAG_AC_FUNCTION_1 29 +#define TAG_AC_TEMP_2 30 +#define TAG_AC_MODE_2 31 +#define TAG_AC_SPEED_2 32 +#define TAG_AC_SWING_2 33 +#define TAG_AC_FUNCTION_2 34 -#define TAG_AC_SWING_INFO 1506 +#define TAG_AC_BAN_FUNCTION_IN_COOL_MODE 41 +#define TAG_AC_BAN_FUNCTION_IN_HEAT_MODE 42 +#define TAG_AC_BAN_FUNCTION_IN_AUTO_MODE 43 +#define TAG_AC_BAN_FUNCTION_IN_FAN_MODE 44 +#define TAG_AC_BAN_FUNCTION_IN_DRY_MODE 45 +#define TAG_AC_SWING_INFO 46 +#define TAG_AC_REPEAT_TIMES 47 +#define TAG_AC_BITNUM 48 -#define TAG_AC_BOOT_CODE 300 -#define TAG_AC_ZERO 301 -#define TAG_AC_ONE 302 -#define TAG_AC_DELAY_CODE 303 -#define TAG_AC_FRAME_LENGTH 304 -#define TAG_AC_REPEAT_TIMES 1508 -#define TAG_AC_BITNUM 1509 - -#define TAG_AC_ENDIAN 306 -#define TAG_AC_LASTBIT 307 - -#define TAG_AC_BAN_FUNCTION_IN_COOL_MODE 1501 -#define TAG_AC_BAN_FUNCTION_IN_HEAT_MODE 1502 -#define TAG_AC_BAN_FUNCTION_IN_AUTO_MODE 1503 -#define TAG_AC_BAN_FUNCTION_IN_FAN_MODE 1504 -#define TAG_AC_BAN_FUNCTION_IN_DRY_MODE 1505 // definition about size diff --git a/src/ir_decoder/include/irda_tv_parse_protocol.h b/src/ir_decoder/include/irda_tv_parse_protocol.h index 292c4da..09ca17e 100644 --- a/src/ir_decoder/include/irda_tv_parse_protocol.h +++ b/src/ir_decoder/include/irda_tv_parse_protocol.h @@ -9,26 +9,22 @@ Revision log: * 2016-10-21: created by strawmanbobi **************************************************************************************************/ -#ifndef _IRDA_H_ -#define _IRDA_H_ - -/************************************************************************************************** - * INCLUDES - **************************************************************************************************/ - +#ifndef _IRDA_LIB_H_ +#define _IRDA_LIB_H_ +#ifdef __cplusplus +extern "C" +{ +#endif +/* + * inclusions + */ #include "irda_defs.h" -/************************************************************************************************** - * MACROS - **************************************************************************************************/ +/* + * macros and constants + */ - - - -/************************************************************************************************** - * CONSTANTS - **************************************************************************************************/ #define STB_CHANNEL_OFFSET 14 #define IRDA_FLAG_NORMAL 0 @@ -47,11 +43,9 @@ enum IRDA_DECODE_4_BITS, }; -/************************************************************************************************** - * GLOBAL DATA TYPES - **************************************************************************************************/ - -//======================== IRDA protocol definition ============================= +/* + * global type definitions + */ typedef enum irda_flags { IRDA_BOOT = 0, @@ -94,7 +88,6 @@ typedef struct irda_cycles } irda_cycles_t; #pragma pack() -//================================== TV ================================== typedef enum tv_key_value { TV_POWER = 0, @@ -124,7 +117,7 @@ typedef enum tv_key_value TV_KEY_MAX, } tv_key_value_t; -//================================== STB ================================== + typedef enum stb_key_value { STB_POWER = 0, @@ -154,7 +147,6 @@ typedef enum stb_key_value STB_KEY_MAX, } stb_key_value_t; -//================================== NW ================================== typedef enum nw_key_value { NW_POWER = 0, @@ -181,7 +173,6 @@ typedef enum nw_key_value NW_KEY_MAX, } nw_key_value_t; -//================================== COMMON ================================== typedef enum cm_key_value { CM_POWER = 0, @@ -209,45 +200,17 @@ typedef struct irda_data_tv } irda_data_tv_t; -/************************************************************************************************** - * GLOBAL VARIABLES - **************************************************************************************************/ +/* + * export functions + */ - - - - -/************************************************************************************************** - * EXTERNAL VARIABLES - **************************************************************************************************/ - - - - - -/************************************************************************************************** - * GLOBAL TABLES - **************************************************************************************************/ - - - - - -/************************************************************************************************** - * EXTERNAL FUNCTIONS - **************************************************************************************************/ - - - - - -/************************************************************************************************** - * GLOBAL FUNCTION PROTOTYPES - **************************************************************************************************/ extern INT8 tv_lib_open(UINT8* binary, UINT16 binary_length); extern BOOL tv_lib_parse(UINT8 encode_type); extern UINT16 tv_lib_control(UINT8 key, UINT16 *user_data); +#ifdef __cplusplus +} +#endif -#endif /* _IRDA_H_ */ +#endif /* _IRDA_LIB_H_ */ diff --git a/src/ir_decoder/irda_ac_build_frame.c b/src/ir_decoder/irda_ac_build_frame.c index 09dc54a..fe59800 100644 --- a/src/ir_decoder/irda_ac_build_frame.c +++ b/src/ir_decoder/irda_ac_build_frame.c @@ -107,7 +107,7 @@ UINT16 create_ir_frame() for (i = 0; i < ir_hex_len; i++) { - bitnum = bits_per_byte(i);//use tag[1509] + bitnum = bits_per_byte(i); //IR_PRINTF("bitnum:%d\n", bitnum); for (j = 0; j < bitnum; j++) { @@ -118,14 +118,12 @@ UINT16 create_ir_frame() if (irdata[i] & mask) { - //one[302] //IR_PRINTF("%d,%d,", context->one.low, context->one.high); context->time[context->code_cnt++] = context->one.low; context->time[context->code_cnt++] = context->one.high; } else { - //zero[301] //IR_PRINTF("%d,%d,", context->zero.low, context->zero.high); context->time[context->code_cnt++] = context->zero.low; context->time[context->code_cnt++] = context->zero.high; diff --git a/src/ir_decoder/irda_ac_parse_forbidden_info.c b/src/ir_decoder/irda_ac_parse_forbidden_info.c index 439993d..ded5b12 100644 --- a/src/ir_decoder/irda_ac_parse_forbidden_info.c +++ b/src/ir_decoder/irda_ac_parse_forbidden_info.c @@ -3,7 +3,7 @@ Filename: irda_parse_forbidden_info.c Revised: Date: 2016-10-05 Revision: Revision: 1.0 -Description: This file provides algorithms for IR decode for TAG 150x +Description: This file provides algorithms for forbidden area of AC code Revision log: * 2016-10-05: created by strawmanbobi @@ -34,7 +34,7 @@ extern protocol* context; /* * function definition */ -INT8 parse_nmode_150x_data_speed(char *pdata, ac_n_mode seq) +INT8 parse_nmode_data_speed(char *pdata, ac_n_mode seq) { char buf[16] = {0}; char *p = pdata; @@ -58,7 +58,7 @@ INT8 parse_nmode_150x_data_speed(char *pdata, ac_n_mode seq) return IR_DECODE_SUCCEEDED; } -INT8 parse_nmode_150x_data_temp(char *pdata, ac_n_mode seq) +INT8 parse_nmode_data_temp(char *pdata, ac_n_mode seq) { char buf[16] = {0}; @@ -82,7 +82,7 @@ INT8 parse_nmode_150x_data_temp(char *pdata, ac_n_mode seq) return IR_DECODE_SUCCEEDED; } -INT8 parse_nmode_150x_pos(char *buf, ac_n_mode index) +INT8 parse_nmode_pos(char *buf, ac_n_mode index) { UINT16 i = 0; char data[64] = {0}; @@ -110,17 +110,17 @@ INT8 parse_nmode_150x_pos(char *buf, ac_n_mode index) } if (buf[0] == 'S') { - parse_nmode_150x_data_speed(data, index); + parse_nmode_data_speed(data, index); } else { - parse_nmode_150x_data_temp(data, index); + parse_nmode_data_temp(data, index); } return IR_DECODE_SUCCEEDED; } -INT8 parse_nmode_150x(struct tag_head *tag, ac_n_mode index) +INT8 parse_nmode(struct tag_head *tag, ac_n_mode index) { UINT16 i = 0; UINT16 preindex = 0; @@ -145,13 +145,13 @@ INT8 parse_nmode_150x(struct tag_head *tag, ac_n_mode index) { irda_memcpy(buf, tag->pdata + preindex, i - preindex); preindex = i + 1; - parse_nmode_150x_pos(buf, index); + parse_nmode_pos(buf, index); irda_memset(buf, 0, 64); } } irda_memcpy(buf, tag->pdata + preindex, i - preindex); - parse_nmode_150x_pos(buf, index); + parse_nmode_pos(buf, index); irda_memset(buf, 0, 64); return IR_DECODE_SUCCEEDED; } diff --git a/src/ir_decoder/irda_ac_parse_frame_parameter.c b/src/ir_decoder/irda_ac_parse_frame_parameter.c index 740c35f..3666ca0 100644 --- a/src/ir_decoder/irda_ac_parse_frame_parameter.c +++ b/src/ir_decoder/irda_ac_parse_frame_parameter.c @@ -35,7 +35,7 @@ Revision log: /* * function definition */ -INT8 parse_bootcode_300(struct tag_head *tag) +INT8 parse_bootcode(struct tag_head *tag) { UINT8 buf[16] = {0}; UINT8 *p = NULL; @@ -69,7 +69,7 @@ INT8 parse_bootcode_300(struct tag_head *tag) return IR_DECODE_SUCCEEDED; } -INT8 parse_zero_301(struct tag_head *tag) +INT8 parse_zero(struct tag_head *tag) { UINT8 low[16] = {0}; UINT8 high[16] = {0}; @@ -100,7 +100,7 @@ INT8 parse_zero_301(struct tag_head *tag) return IR_DECODE_SUCCEEDED; } -INT8 parse_one_302(struct tag_head *tag) +INT8 parse_one(struct tag_head *tag) { UINT8 low[16] = {0}; UINT8 high[16] = {0}; @@ -131,7 +131,7 @@ INT8 parse_one_302(struct tag_head *tag) return IR_DECODE_SUCCEEDED; } -INT8 parse_delaycode_303_data(UINT8 *pdata) +INT8 parse_delaycode_data(UINT8 *pdata) { UINT8 buf[16] = {0}; UINT8 *p = NULL; @@ -161,7 +161,7 @@ INT8 parse_delaycode_303_data(UINT8 *pdata) return IR_DECODE_SUCCEEDED; } -INT8 parse_delaycode_303_pos(UINT8 *buf) +INT8 parse_delaycode_pos(UINT8 *buf) { UINT16 i = 0; UINT8 data[64] = {0}, start[8] = {0}; @@ -180,14 +180,14 @@ INT8 parse_delaycode_303_pos(UINT8 *buf) break; } } - parse_delaycode_303_data(data); + parse_delaycode_data(data); context->dc[context->dc_cnt].pos = atoi((char *) start); context->dc_cnt++; return IR_DECODE_SUCCEEDED; } -INT8 parse_delaycode_303(struct tag_head *tag) +INT8 parse_delaycode(struct tag_head *tag) { UINT8 buf[64] = {0}; UINT16 i = 0; @@ -205,19 +205,19 @@ INT8 parse_delaycode_303(struct tag_head *tag) { irda_memcpy(buf, tag->pdata + preindex, i - preindex); preindex = i + 1; - parse_delaycode_303_pos(buf); + parse_delaycode_pos(buf); irda_memset(buf, 0, 64); } } irda_memcpy(buf, tag->pdata + preindex, i - preindex); - parse_delaycode_303_pos(buf); + parse_delaycode_pos(buf); irda_memset(buf, 0, 64); return IR_DECODE_SUCCEEDED; } -INT8 parse_framelen_304(struct tag_head *tag, UINT16 len) +INT8 parse_framelen(struct tag_head *tag, UINT16 len) { UINT8 *temp = NULL; @@ -245,7 +245,7 @@ INT8 parse_framelen_304(struct tag_head *tag, UINT16 len) return IR_DECODE_SUCCEEDED; } -INT8 parse_endian_306(struct tag_head *tag) +INT8 parse_endian(struct tag_head *tag) { UINT8 buf[8] = {0}; @@ -258,7 +258,7 @@ INT8 parse_endian_306(struct tag_head *tag) return IR_DECODE_SUCCEEDED; } -INT8 parse_lastbit_307(struct tag_head *tag) +INT8 parse_lastbit(struct tag_head *tag) { UINT8 buf[8] = {0}; @@ -271,7 +271,7 @@ INT8 parse_lastbit_307(struct tag_head *tag) return IR_DECODE_SUCCEEDED; } -INT8 parse_repeat_times_1508(struct tag_head *tag) +INT8 parse_repeat_times(struct tag_head *tag) { char asc_code[8] = {0}; if (NULL == tag) @@ -286,7 +286,7 @@ INT8 parse_repeat_times_1508(struct tag_head *tag) return IR_DECODE_SUCCEEDED; } -INT8 parse_delaycode_1509_pos(UINT8 *buf) +INT8 parse_delaycode_tag48_pos(UINT8 *buf) { UINT16 i = 0; UINT8 data[64] = {0}, start[8] = {0}; @@ -312,7 +312,7 @@ INT8 parse_delaycode_1509_pos(UINT8 *buf) return IR_DECODE_SUCCEEDED; } -INT8 parse_bitnum_1509(struct tag_head *tag) +INT8 parse_bitnum(struct tag_head *tag) { UINT16 i = 0; UINT16 preindex = 0; @@ -330,13 +330,13 @@ INT8 parse_bitnum_1509(struct tag_head *tag) { irda_memcpy(buf, tag->pdata + preindex, i - preindex); preindex = i + 1; - parse_delaycode_1509_pos(buf); + parse_delaycode_tag48_pos(buf); irda_memset(buf, 0, 64); } } irda_memcpy(buf, tag->pdata + preindex, i - preindex); - parse_delaycode_1509_pos(buf); + parse_delaycode_tag48_pos(buf); irda_memset(buf, 0, 64); for (i = 0; i < context->bitnum_cnt; i++) diff --git a/src/ir_decoder/irda_ac_parse_parameter.c b/src/ir_decoder/irda_ac_parse_parameter.c index 829184a..dc07a29 100644 --- a/src/ir_decoder/irda_ac_parse_parameter.c +++ b/src/ir_decoder/irda_ac_parse_parameter.c @@ -172,7 +172,7 @@ INT8 parse_common_ac_parameter(t_tag_head *tag, tag_comp *comp_data, UINT8 with_ return IR_DECODE_SUCCEEDED; } -INT8 parse_defaultcode_1002(struct tag_head *tag, ac_hex *default_code) +INT8 parse_defaultcode(struct tag_head *tag, ac_hex *default_code) { UINT16 byteLen = 0; @@ -187,7 +187,7 @@ INT8 parse_defaultcode_1002(struct tag_head *tag, ac_hex *default_code) return IR_DECODE_SUCCEEDED; } -INT8 parse_power_1_1001(struct tag_head *tag, power_1 *power1) +INT8 parse_power_1(struct tag_head *tag, power_1 *power1) { UINT16 hex_len = 0; UINT16 trav_offset = 0; @@ -244,7 +244,7 @@ INT8 parse_power_1_1001(struct tag_head *tag, power_1 *power1) return IR_DECODE_SUCCEEDED; } -INT8 parse_temp_1_1003(struct tag_head *tag, temp_1 *temp1) +INT8 parse_temp_1(struct tag_head *tag, temp_1 *temp1) { UINT16 hex_len = 0; UINT16 i = 0; @@ -330,7 +330,7 @@ INT8 parse_temp_1_1003(struct tag_head *tag, temp_1 *temp1) return IR_DECODE_SUCCEEDED; } -INT8 parse_mode_1_1004(struct tag_head *tag, mode_1 *mode1) +INT8 parse_mode_1(struct tag_head *tag, mode_1 *mode1) { UINT16 hex_len = 0; UINT16 trav_offset = 0; @@ -381,7 +381,7 @@ INT8 parse_mode_1_1004(struct tag_head *tag, mode_1 *mode1) return IR_DECODE_SUCCEEDED; } -INT8 parse_speed_1_1005(struct tag_head *tag, speed_1 *speed1) +INT8 parse_speed_1(struct tag_head *tag, speed_1 *speed1) { UINT16 hex_len = 0; UINT16 trav_offset = 0; @@ -432,7 +432,7 @@ INT8 parse_speed_1_1005(struct tag_head *tag, speed_1 *speed1) return IR_DECODE_SUCCEEDED; } -INT8 parse_swing_1_1007(struct tag_head *tag, swing_1 *swing1, UINT16 swing_count) +INT8 parse_swing_1(struct tag_head *tag, swing_1 *swing1, UINT16 swing_count) { UINT16 hex_len = 0; UINT16 trav_offset = 0; @@ -554,7 +554,7 @@ INT8 parse_checksum_spec_half_byte_typed(UINT8 *csdata, tag_checksum_data *check return IR_DECODE_SUCCEEDED; } -INT8 parse_checksum_1008_malloc(struct tag_head *tag, tchecksum *checksum) +INT8 parse_checksum_malloc(struct tag_head *tag, tchecksum *checksum) { UINT8 i = 0; UINT8 cnt = 0; @@ -580,7 +580,7 @@ INT8 parse_checksum_1008_malloc(struct tag_head *tag, tchecksum *checksum) return IR_DECODE_SUCCEEDED; } -INT8 parse_checksum_1008_data(UINT8 *buf, tag_checksum_data *checksum, UINT8 length) +INT8 parse_checksum_data(UINT8 *buf, tag_checksum_data *checksum, UINT8 length) { UINT8 *hex_data = NULL; UINT16 hex_len = 0; @@ -665,7 +665,7 @@ INT8 parse_checksum_1008_data(UINT8 *buf, tag_checksum_data *checksum, UINT8 len return IR_DECODE_SUCCEEDED; } -INT8 parse_checksum_1008(struct tag_head *tag, tchecksum *checksum) +INT8 parse_checksum(struct tag_head *tag, tchecksum *checksum) { UINT8 i = 0; UINT8 num = 0; @@ -681,7 +681,7 @@ INT8 parse_checksum_1008(struct tag_head *tag, tchecksum *checksum) return IR_DECODE_FAILED; } - if(IR_DECODE_FAILED == parse_checksum_1008_malloc(tag, checksum)) + if(IR_DECODE_FAILED == parse_checksum_malloc(tag, checksum)) { return IR_DECODE_FAILED; } @@ -690,9 +690,9 @@ INT8 parse_checksum_1008(struct tag_head *tag, tchecksum *checksum) { if (tag->pdata[i] == '|') { - if(IR_DECODE_FAILED == parse_checksum_1008_data(tag->pdata + preindex, - checksum->checksum_data + num, - (i - preindex) >> 1)) + if(IR_DECODE_FAILED == parse_checksum_data(tag->pdata + preindex, + checksum->checksum_data + num, + (i - preindex) >> 1)) { return IR_DECODE_FAILED; } @@ -701,9 +701,9 @@ INT8 parse_checksum_1008(struct tag_head *tag, tchecksum *checksum) } } - if(IR_DECODE_FAILED == parse_checksum_1008_data(tag->pdata + preindex, - checksum->checksum_data + num, - (i - preindex) >> 1)) + if(IR_DECODE_FAILED == parse_checksum_data(tag->pdata + preindex, + checksum->checksum_data + num, + (i - preindex) >> 1)) { return IR_DECODE_FAILED; } @@ -793,7 +793,7 @@ INT8 parse_function_1(UINT8 *data, UINT16 *trav_offset, tag_comp *mode_seg) return function_id; } -INT8 parse_function_1_1010(struct tag_head *tag, function_1 *function1) +INT8 parse_function_1_tag29(struct tag_head *tag, function_1 *function1) { UINT16 hex_len = 0; UINT16 trav_offset = 0; @@ -823,7 +823,7 @@ INT8 parse_function_1_1010(struct tag_head *tag, function_1 *function1) // parse hex data to mode1 data structure function1->len = hex_len; - // seg_index in TAG 1010 and TAG 1016 only refers to functional count + // seg_index in TAG only refers to functional count for (seg_index = AC_FUNCTION_POWER; seg_index < AC_FUNCTION_MAX; seg_index++) { int fid = parse_function_1(hex_data, &trav_offset, &function1->comp_data[0]); @@ -849,7 +849,7 @@ INT8 parse_function_1_1010(struct tag_head *tag, function_1 *function1) return IR_DECODE_SUCCEEDED; } -INT8 parse_temp_2_1011(struct tag_head *tag, temp_2 *temp2) +INT8 parse_temp_2(struct tag_head *tag, temp_2 *temp2) { UINT16 hex_len = 0; UINT16 i = 0; @@ -901,7 +901,7 @@ INT8 parse_temp_2_1011(struct tag_head *tag, temp_2 *temp2) temp2->comp_data[seg_index].segment[i - 2] = hex_data[i - 1]; temp2->comp_data[seg_index].segment[i - 1] = hex_data[i]; - // for this second type (TAG 1011) temperature update, apply the change in run time. + // for this second type (TAG 30) temperature update, apply the change in run time. temp2->comp_data[seg_index].segment[i] = hex_data[i + 1] * seg_index; } @@ -940,7 +940,7 @@ INT8 parse_temp_2_1011(struct tag_head *tag, temp_2 *temp2) return IR_DECODE_SUCCEEDED; } -INT8 parse_mode_2_1012(struct tag_head *tag, mode_2 *mode2) +INT8 parse_mode_2(struct tag_head *tag, mode_2 *mode2) { UINT16 hex_len = 0; UINT16 trav_offset = 0; @@ -996,7 +996,7 @@ INT8 parse_mode_2_1012(struct tag_head *tag, mode_2 *mode2) return IR_DECODE_SUCCEEDED; } -INT8 parse_speed_2_1013(struct tag_head *tag, speed_2 *speed2) +INT8 parse_speed_2(struct tag_head *tag, speed_2 *speed2) { UINT16 hex_len = 0; UINT16 trav_offset = 0; @@ -1052,7 +1052,7 @@ INT8 parse_speed_2_1013(struct tag_head *tag, speed_2 *speed2) return IR_DECODE_SUCCEEDED; } -INT8 parse_swing_2_1015(struct tag_head *tag, swing_2 *swing2, UINT16 swing_count) +INT8 parse_swing_2(struct tag_head *tag, swing_2 *swing2, UINT16 swing_count) { UINT16 hex_len = 0; UINT16 trav_offset = 0; @@ -1184,7 +1184,7 @@ INT8 parse_function_2(UINT8 *data, UINT16 *trav_offset, tag_comp *mode_seg) return function_id; } -INT8 parse_function_2_1016(struct tag_head *tag, function_2 *function2) +INT8 parse_function_2_tag34(struct tag_head *tag, function_2 *function2) { UINT16 hex_len = 0; UINT16 trav_offset = 0; @@ -1214,7 +1214,7 @@ INT8 parse_function_2_1016(struct tag_head *tag, function_2 *function2) // parse hex data to mode1 data structure function2->len = hex_len; - // seg_index in TAG 1010 and TAG 1016 only refers to functional count + // seg_index in TAG only refers to functional count for (seg_index = AC_FUNCTION_POWER; seg_index < AC_FUNCTION_MAX; seg_index++) { UINT8 fid = parse_function_2(hex_data, &trav_offset, &function2->comp_data[0]); @@ -1240,7 +1240,7 @@ INT8 parse_function_2_1016(struct tag_head *tag, function_2 *function2) return IR_DECODE_SUCCEEDED; } -INT8 parse_swing_info_1506(struct tag_head *tag, swing_info *si) +INT8 parse_swing_info(struct tag_head *tag, swing_info *si) { if (NULL == tag) { @@ -1258,7 +1258,7 @@ INT8 parse_swing_info_1506(struct tag_head *tag, swing_info *si) { if ('0' == tag->pdata[0]) { - // to identify if there is only 1 status in TAG 1007 OR 1015 + // to identify if there is only 1 status in TAG 26 OR 33 si->type = SWING_TYPE_NOT_SPECIFIED; si->mode_count = 0; } @@ -1284,7 +1284,7 @@ INT8 parse_swing_info_1506(struct tag_head *tag, swing_info *si) return IR_DECODE_SUCCEEDED; } -INT8 parse_solo_code_1009(struct tag_head *tag, solo_code *sc) +INT8 parse_solo_code(struct tag_head *tag, solo_code *sc) { UINT16 hex_len = 0; UINT8 *hex_data = NULL; diff --git a/src/ir_decoder/irda_decode.c b/src/ir_decoder/irda_decode.c index b93896a..cc4def5 100644 --- a/src/ir_decoder/irda_decode.c +++ b/src/ir_decoder/irda_decode.c @@ -30,31 +30,24 @@ struct tag_head *tags; UINT8* ir_hex_code = NULL; UINT8 ir_hex_len = 0; +// tv raw code length +UINT16 tv_bin_length = 0; + // global output buffer UINT8 tag_count = 0; UINT16 tag_head_offset = 0; -UINT16 global_mem_consume = 0; - UINT8 byteArray[PROTOCOL_SIZE] = {0}; UINT16 user_data[USER_DATA_SIZE] = {0}; UINT8 tv_bin[EXPECTED_MEM_SIZE] = {0}; -UINT16 tv_bin_length = 0; remote_ac_status_t ac_status; -// 2016-10-06 protocol version minor change: parse TAG 1009 instead of TAG 304 const UINT16 tag_index[TAG_COUNT_FOR_PROTOCOL] = { - 300, 301, 302, 303, 305, 306, 307, 1001, 1002, - 1003, 1004, 1005, 1007, 1008, 1009, 1010, 1011, - 1012, 1013, 1015, 1016, 1501, 1502, 1503, 1504, 1505, - 1506, 1508, 1509 -}; - -const UINT16 bc_tag_index[TAG_COUNT_FOR_BC_PROTOCOL] = -{ - 100, 101, 102, 103, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, 214, 300 + 1, 2, 3, 4, 5, 6, 7, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 41, 42, 43, 44, 45, + 46, 47, 48 }; // 2016-10-09 updated by strawmanbobi, change global data context to array pointer @@ -369,14 +362,14 @@ INT8 irda_ac_lib_parse() context->n_mode[i].temp_cnt = 0; } - // parse tag 1506 in first priority + // parse TAG 46 in first priority for (i = 0; i < tag_count; i++) { if (tags[i].tag == TAG_AC_SWING_INFO) { if (tags[i].len != 0) { - parse_swing_info_1506(&tags[i], &(context->si)); + parse_swing_info(&tags[i], &(context->si)); } else { @@ -393,7 +386,7 @@ INT8 irda_ac_lib_parse() { continue; } - // then parse TAG 1007 or 1015 + // then parse TAG 26 or 33 if (context->si.type == SWING_TYPE_NORMAL) { UINT16 swing_space_size = 0; @@ -448,7 +441,7 @@ INT8 irda_ac_lib_parse() { return IR_DECODE_FAILED; } - if (IR_DECODE_FAILED == parse_defaultcode_1002(&tags[i], &(context->default_code))) + if (IR_DECODE_FAILED == parse_defaultcode(&tags[i], &(context->default_code))) { return IR_DECODE_FAILED; } @@ -468,7 +461,7 @@ INT8 irda_ac_lib_parse() else if (tags[i].tag == TAG_AC_TEMP_1) // temperature tag type 1 { IR_PRINTF("\nparse temperature 1\n"); - if (IR_DECODE_FAILED == parse_temp_1_1003(&tags[i], &(context->temp1))) + if (IR_DECODE_FAILED == parse_temp_1(&tags[i], &(context->temp1))) { return IR_DECODE_FAILED; } @@ -500,7 +493,7 @@ INT8 irda_ac_lib_parse() else if (tags[i].tag == TAG_AC_CHECKSUM_TYPE) { IR_PRINTF("\nparse checksum\n"); - if (IR_DECODE_FAILED == parse_checksum_1008(&tags[i], &(context->checksum))) + if (IR_DECODE_FAILED == parse_checksum(&tags[i], &(context->checksum))) { return IR_DECODE_FAILED; } @@ -530,7 +523,7 @@ INT8 irda_ac_lib_parse() else if (tags[i].tag == TAG_AC_TEMP_2) { IR_PRINTF("\nparse temperature 2\n"); - if (IR_DECODE_FAILED == parse_temp_2_1011(&tags[i], &(context->temp2))) + if (IR_DECODE_FAILED == parse_temp_2(&tags[i], &(context->temp2))) { return IR_DECODE_FAILED; } @@ -538,7 +531,7 @@ INT8 irda_ac_lib_parse() else if (tags[i].tag == TAG_AC_SOLO_FUNCTION) { IR_PRINTF("\nparse solo functions\n"); - if (IR_DECODE_FAILED == parse_solo_code_1009(&tags[i], &(context->sc))) + if (IR_DECODE_FAILED == parse_solo_code(&tags[i], &(context->sc))) { return IR_DECODE_FAILED; } @@ -546,7 +539,7 @@ INT8 irda_ac_lib_parse() } else if (tags[i].tag == TAG_AC_FUNCTION_1) { - if (IR_DECODE_FAILED == parse_function_1_1010(&tags[i], &(context->function1))) + if (IR_DECODE_FAILED == parse_function_1_tag29(&tags[i], &(context->function1))) { IR_PRINTF("\nfunction code parse error\n"); return IR_DECODE_FAILED; @@ -555,91 +548,91 @@ INT8 irda_ac_lib_parse() else if (tags[i].tag == TAG_AC_FUNCTION_2) { IR_PRINTF("\nparse function 2\n"); - if (IR_DECODE_FAILED == parse_function_2_1016(&tags[i], &(context->function2))) + if (IR_DECODE_FAILED == parse_function_2_tag34(&tags[i], &(context->function2))) { return IR_DECODE_FAILED; } } else if (tags[i].tag == TAG_AC_FRAME_LENGTH) { - if (IR_DECODE_FAILED == parse_framelen_304(&tags[i], tags[i].len)) + if (IR_DECODE_FAILED == parse_framelen(&tags[i], tags[i].len)) { return IR_DECODE_FAILED; } } else if (tags[i].tag == TAG_AC_ZERO) { - if (IR_DECODE_FAILED == parse_zero_301(&tags[i])) + if (IR_DECODE_FAILED == parse_zero(&tags[i])) { return IR_DECODE_FAILED; } } else if (tags[i].tag == TAG_AC_ONE) { - if (IR_DECODE_FAILED == parse_one_302(&tags[i])) + if (IR_DECODE_FAILED == parse_one(&tags[i])) { return IR_DECODE_FAILED; } } else if (tags[i].tag == TAG_AC_BOOT_CODE) { - if (IR_DECODE_FAILED == parse_bootcode_300(&tags[i])) + if (IR_DECODE_FAILED == parse_bootcode(&tags[i])) { return IR_DECODE_FAILED; } } else if (tags[i].tag == TAG_AC_REPEAT_TIMES) { - if (IR_DECODE_FAILED == parse_repeat_times_1508(&tags[i])) + if (IR_DECODE_FAILED == parse_repeat_times(&tags[i])) { return IR_DECODE_FAILED; } } else if (tags[i].tag == TAG_AC_BITNUM) { - if (IR_DECODE_FAILED == parse_bitnum_1509(&tags[i])) + if (IR_DECODE_FAILED == parse_bitnum(&tags[i])) { return IR_DECODE_FAILED; } } else if (tags[i].tag == TAG_AC_ENDIAN) { - if (IR_DECODE_FAILED == parse_endian_306(&tags[i])) + if (IR_DECODE_FAILED == parse_endian(&tags[i])) { return IR_DECODE_FAILED; } } else if (tags[i].tag == TAG_AC_BAN_FUNCTION_IN_COOL_MODE) { - if (IR_DECODE_FAILED == parse_nmode_150x(&tags[i], N_COOL)) + if (IR_DECODE_FAILED == parse_nmode(&tags[i], N_COOL)) { return IR_DECODE_FAILED; } } else if (tags[i].tag == TAG_AC_BAN_FUNCTION_IN_HEAT_MODE) { - if (IR_DECODE_FAILED == parse_nmode_150x(&tags[i], N_HEAT)) + if (IR_DECODE_FAILED == parse_nmode(&tags[i], N_HEAT)) { return IR_DECODE_FAILED; } } else if (tags[i].tag == TAG_AC_BAN_FUNCTION_IN_AUTO_MODE) { - if (IR_DECODE_FAILED == parse_nmode_150x(&tags[i], N_AUTO)) + if (IR_DECODE_FAILED == parse_nmode(&tags[i], N_AUTO)) { return IR_DECODE_FAILED; } } else if (tags[i].tag == TAG_AC_BAN_FUNCTION_IN_FAN_MODE) { - if (IR_DECODE_FAILED == parse_nmode_150x(&tags[i], N_FAN)) + if (IR_DECODE_FAILED == parse_nmode(&tags[i], N_FAN)) { return IR_DECODE_FAILED; } } else if (tags[i].tag == TAG_AC_BAN_FUNCTION_IN_DRY_MODE) { - if (IR_DECODE_FAILED == parse_nmode_150x(&tags[i], N_DRY)) + if (IR_DECODE_FAILED == parse_nmode(&tags[i], N_DRY)) { return IR_DECODE_FAILED; } @@ -654,14 +647,14 @@ INT8 irda_ac_lib_parse() } if (tags[i].tag == TAG_AC_DELAY_CODE) { - if (IR_DECODE_FAILED == parse_delaycode_303(&tags[i])) + if (IR_DECODE_FAILED == parse_delaycode(&tags[i])) { return IR_DECODE_FAILED; } } if (tags[i].tag == TAG_AC_LASTBIT) { - if (IR_DECODE_FAILED == parse_lastbit_307(&tags[i])) + if (IR_DECODE_FAILED == parse_lastbit(&tags[i])) { return IR_DECODE_FAILED; }