diff --git a/Android/app/src/main/jniLibs/arm64-v8a/libirdecode.so b/Android/app/src/main/jniLibs/arm64-v8a/libirdecode.so index f68c5a9..6bdeaf5 100644 Binary files a/Android/app/src/main/jniLibs/arm64-v8a/libirdecode.so and b/Android/app/src/main/jniLibs/arm64-v8a/libirdecode.so differ diff --git a/Android/app/src/main/jniLibs/armeabi-v7a/libirdecode.so b/Android/app/src/main/jniLibs/armeabi-v7a/libirdecode.so index 8f9ea63..d0ce7d6 100644 Binary files a/Android/app/src/main/jniLibs/armeabi-v7a/libirdecode.so and b/Android/app/src/main/jniLibs/armeabi-v7a/libirdecode.so differ diff --git a/Android/app/src/main/jniLibs/armeabi/libirdecode.so b/Android/app/src/main/jniLibs/armeabi/libirdecode.so index f809249..986b02e 100644 Binary files a/Android/app/src/main/jniLibs/armeabi/libirdecode.so and b/Android/app/src/main/jniLibs/armeabi/libirdecode.so differ diff --git a/Android/app/src/main/jniLibs/mips/libirdecode.so b/Android/app/src/main/jniLibs/mips/libirdecode.so index 5215327..eb7ae1c 100644 Binary files a/Android/app/src/main/jniLibs/mips/libirdecode.so and b/Android/app/src/main/jniLibs/mips/libirdecode.so differ diff --git a/Android/app/src/main/jniLibs/mips64/libirdecode.so b/Android/app/src/main/jniLibs/mips64/libirdecode.so index c8c1f4e..8d1df59 100644 Binary files a/Android/app/src/main/jniLibs/mips64/libirdecode.so and b/Android/app/src/main/jniLibs/mips64/libirdecode.so differ diff --git a/Android/app/src/main/jniLibs/x86/libirdecode.so b/Android/app/src/main/jniLibs/x86/libirdecode.so index af4a07e..9f84ea6 100644 Binary files a/Android/app/src/main/jniLibs/x86/libirdecode.so and b/Android/app/src/main/jniLibs/x86/libirdecode.so differ diff --git a/Android/app/src/main/jniLibs/x86_64/libirdecode.so b/Android/app/src/main/jniLibs/x86_64/libirdecode.so index 93b3991..76856b7 100644 Binary files a/Android/app/src/main/jniLibs/x86_64/libirdecode.so and b/Android/app/src/main/jniLibs/x86_64/libirdecode.so differ diff --git a/Android/decodesdk/irextdecode/include/ir_defs.h b/Android/decodesdk/irextdecode/include/ir_defs.h index 2981520..7b60e53 100644 --- a/Android/decodesdk/irextdecode/include/ir_defs.h +++ b/Android/decodesdk/irextdecode/include/ir_defs.h @@ -37,6 +37,8 @@ typedef signed int INT; typedef unsigned int UINT; typedef int BOOL; +void noprint(const char *fmt, ...); + #if !defined BOARD_CC26XX #define ir_malloc(A) malloc(A) #define ir_free(A) free(A) @@ -48,7 +50,11 @@ typedef int BOOL; #define ir_memcpy(A, B, C) memcpy(A, B, C) #define ir_memset(A, B, C) memset(A, B, C) #define ir_strlen(A) strlen(A) +#if (defined BOARD_PC) && (!defined BOARD_PC_JNI) #define ir_printf printf +#else +#define ir_printf noprint +#endif #define USER_DATA_SIZE 1636 #ifdef __cplusplus diff --git a/Android/decodesdk/irextdecode/jni/ir_decode_jni.c b/Android/decodesdk/irextdecode/jni/ir_decode_jni.c index 1c84e4e..7500e93 100644 --- a/Android/decodesdk/irextdecode/jni/ir_decode_jni.c +++ b/Android/decodesdk/irextdecode/jni/ir_decode_jni.c @@ -8,10 +8,9 @@ Description: This file links to java layer for Android application Revision log: * 2016-03-21: created by strawmanbobi **************************************************************************************************/ -#include #include #include -#include + #include "ir_decode_jni.h" #include "../include/ir_defs.h" #include "../include/ir_decode.h" @@ -49,24 +48,22 @@ JNIEXPORT jint JNICALL Java_net_irext_decodesdk_IRDecode_irOpenBinary return IR_DECODE_FAILED; } - (*env)->ReleaseByteArrayElements(env, binaries, j_buffer, JNI_ABORT); - return IR_DECODE_SUCCEEDED; } JNIEXPORT jintArray JNICALL Java_net_irext_decodesdk_IRDecode_irDecode (JNIEnv *env, jobject this_obj, jint key_code, jobject jni_ac_status, jint change_wind_direction) { - UINT16 user_data[USER_DATA_SIZE]; + UINT16 user_data[USER_DATA_SIZE]; int i = 0; - int copy_array[USER_DATA_SIZE] = {0}; - remote_ac_status_t ac_status; + jint copy_array[USER_DATA_SIZE] = {0}; + remote_ac_status_t ac_status; jclass n_ac_status = (*env)->GetObjectClass(env, jni_ac_status); - if (NULL != n_ac_status) - { - jfieldID ac_power_fid = (*env)->GetFieldID(env, n_ac_status, "acPower", "I"); + if (NULL != n_ac_status) + { + jfieldID ac_power_fid = (*env)->GetFieldID(env, n_ac_status, "acPower", "I"); jint i_ac_power = (*env)->GetIntField(env, jni_ac_status, ac_power_fid); jfieldID ac_mode_fid = (*env)->GetFieldID(env, n_ac_status, "acMode", "I"); @@ -80,7 +77,7 @@ JNIEXPORT jintArray JNICALL Java_net_irext_decodesdk_IRDecode_irDecode jfieldID ac_wind_speed_fid = (*env)->GetFieldID(env, n_ac_status, "acWindSpeed", "I"); jint i_ac_wind_speed = (*env)->GetIntField(env, jni_ac_status, ac_wind_speed_fid); - + ac_status.acDisplay = 0; ac_status.acSleep = 0; ac_status.acTimer = 0; @@ -89,7 +86,7 @@ JNIEXPORT jintArray JNICALL Java_net_irext_decodesdk_IRDecode_irDecode ac_status.acTemp = i_ac_temp; ac_status.acWindDir = i_ac_wind_dir; ac_status.acWindSpeed = i_ac_wind_speed; - } + } int wave_code_length = ir_decode(key_code, user_data, &ac_status, change_wind_direction); @@ -103,7 +100,7 @@ JNIEXPORT jintArray JNICALL Java_net_irext_decodesdk_IRDecode_irDecode copy_array[i] = (int)user_data[i]; } (*env)->SetIntArrayRegion(env, result, 0, wave_code_length, copy_array); - (*env)->DeleteLocalRef(env, n_ac_status); + (*env)->DeleteLocalRef(env, n_ac_status); return result; } diff --git a/Android/decodesdk/irextdecode/jni/ir_decode_jni.h b/Android/decodesdk/irextdecode/jni/ir_decode_jni.h index c44a0aa..81458dc 100644 --- a/Android/decodesdk/irextdecode/jni/ir_decode_jni.h +++ b/Android/decodesdk/irextdecode/jni/ir_decode_jni.h @@ -1,5 +1,9 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#if defined BOARD_ANDROID #include +#elif (defined BOARD_PC) && (defined BOARD_PC_JNI) +#include "./include/jni.h" +#endif /* Header for class net_irext_decodesdk_IRDecode */ #ifndef _Included_net_irext_decodesdk_IRDecode diff --git a/Android/decodesdk/irextdecode/src/ir_decode.c b/Android/decodesdk/irextdecode/src/ir_decode.c index 5a4dd2b..cfc7b5b 100644 --- a/Android/decodesdk/irextdecode/src/ir_decode.c +++ b/Android/decodesdk/irextdecode/src/ir_decode.c @@ -61,6 +61,11 @@ static UINT16 ir_tv_lib_control(UINT8 key, UINT16 *l_user_data); static INT8 ir_tv_lib_close(); +void noprint(const char *fmt, ...) +{ + return; +} + // pubic function definitions INT8 ir_file_open(const UINT8 category, const UINT8 sub_category, const char* file_name) @@ -111,7 +116,8 @@ INT8 ir_file_open(const UINT8 category, const UINT8 sub_category, const char* fi INT8 ir_binary_open(const UINT8 category, const UINT8 sub_category, UINT8* binary, UINT16 binary_length) { INT8 ret = IR_DECODE_SUCCEEDED; - if (category == IR_TYPE_STATUS) + + if (category == IR_CATEGORY_AC) { ir_binary_type = IR_TYPE_STATUS; ret = ir_ac_lib_open(binary, binary_length); @@ -352,11 +358,15 @@ static UINT16 ir_ac_lib_control(remote_ac_status_t ac_status, UINT16 *user_data, time_length = create_ir_frame(); -#if defined BOARD_PC +#if (defined BOARD_PC) +#if (defined BOARD_PC_JNI) + ir_printf("code count = %d\n", context->code_cnt); +#else for (i = 0; i < context->code_cnt; i++) { ir_printf("%d,", context->time[i]); } +#endif ir_printf("\n"); #endif diff --git a/Android/decodesdk/irextdecode/src/ir_test_main.c b/Android/decodesdk/irextdecode/src/ir_test_main.c index 729a3fa..10db3de 100644 --- a/Android/decodesdk/irextdecode/src/ir_test_main.c +++ b/Android/decodesdk/irextdecode/src/ir_test_main.c @@ -70,22 +70,22 @@ INT8 decode_as_ac(char *file_name) break; case 's': case 'S': + // temperature minus ac_status.acTemp = ((ac_status.acTemp == AC_TEMP_16) ? AC_TEMP_16 : (ac_status.acTemp - 1)); function_code = AC_FUNCTION_TEMPERATURE_DOWN; - // temperature minus break; case 'a': case 'A': + // wind speed loop ++ac_status.acWindSpeed; ac_status.acWindSpeed = ac_status.acWindSpeed % AC_WS_MAX; function_code = AC_FUNCTION_WIND_SPEED; - // wind speed loop break; case 'd': case 'D': + // wind swing loop ac_status.acWindDir = ((ac_status.acWindDir == 0) ? AC_SWING_OFF : AC_SWING_ON); function_code = AC_FUNCTION_WIND_SWING; - // wind swing loop break; case 'q': case 'Q': diff --git a/Android/decodesdk/irextdecode/src/ir_tv_control.c b/Android/decodesdk/irextdecode/src/ir_tv_control.c index 462e7e9..e4b04ba 100644 --- a/Android/decodesdk/irextdecode/src/ir_tv_control.c +++ b/Android/decodesdk/irextdecode/src/ir_tv_control.c @@ -115,6 +115,7 @@ static BOOL get_ir_protocol(UINT8 encode_type) /* cycles number */ prot_cycles_num = pbuffer->data + pbuffer->offset; + if (encode_type == 0) { cycles_num_size = 8; /* "BOOT", "STOP", "SEP", "ONE", "ZERO", "FLIP", "TWO", "THREE" */ @@ -190,6 +191,7 @@ static void print_ir_time(ir_data_t *data, UINT8 key_index, UINT16 *ir_time) if (NULL == data || NULL == ir_time) { + ir_printf("data or ir_time is null\n"); return; } @@ -198,11 +200,13 @@ static void print_ir_time(ir_data_t *data, UINT8 key_index, UINT16 *ir_time) if (prot_cycles_num[IRDA_ONE] != 1 || prot_cycles_num[IRDA_ZERO] != 1) { + ir_printf("logical 1 or 0 is invalid\n"); return; } if (time_index >= USER_DATA_SIZE) { + ir_printf("time index exceeded\n"); return; } @@ -210,12 +214,14 @@ static void print_ir_time(ir_data_t *data, UINT8 key_index, UINT16 *ir_time) { if (pcycles == NULL) { + ir_printf("pcycles is null\n"); return; } cycles_num = prot_cycles_num[data->index]; if (cycles_num > 5) { + ir_printf("cycles number exceeded\n"); return; } diff --git a/CC26XX/ti/BLE-CC264x/ble_cc26xx/Projects/ble/SimpleBLEPeripheral-IREXT/CC26xx/Source/Application/Irext/include/ir_defs.h b/CC26XX/ti/BLE-CC264x/ble_cc26xx/Projects/ble/SimpleBLEPeripheral-IREXT/CC26xx/Source/Application/Irext/include/ir_defs.h index 2981520..7b60e53 100644 --- a/CC26XX/ti/BLE-CC264x/ble_cc26xx/Projects/ble/SimpleBLEPeripheral-IREXT/CC26xx/Source/Application/Irext/include/ir_defs.h +++ b/CC26XX/ti/BLE-CC264x/ble_cc26xx/Projects/ble/SimpleBLEPeripheral-IREXT/CC26xx/Source/Application/Irext/include/ir_defs.h @@ -37,6 +37,8 @@ typedef signed int INT; typedef unsigned int UINT; typedef int BOOL; +void noprint(const char *fmt, ...); + #if !defined BOARD_CC26XX #define ir_malloc(A) malloc(A) #define ir_free(A) free(A) @@ -48,7 +50,11 @@ typedef int BOOL; #define ir_memcpy(A, B, C) memcpy(A, B, C) #define ir_memset(A, B, C) memset(A, B, C) #define ir_strlen(A) strlen(A) +#if (defined BOARD_PC) && (!defined BOARD_PC_JNI) #define ir_printf printf +#else +#define ir_printf noprint +#endif #define USER_DATA_SIZE 1636 #ifdef __cplusplus diff --git a/CC26XX/ti/BLE-CC264x/ble_cc26xx/Projects/ble/SimpleBLEPeripheral-IREXT/CC26xx/Source/Application/Irext/src/ir_decode.c b/CC26XX/ti/BLE-CC264x/ble_cc26xx/Projects/ble/SimpleBLEPeripheral-IREXT/CC26xx/Source/Application/Irext/src/ir_decode.c index fe7d32c..cfc7b5b 100644 --- a/CC26XX/ti/BLE-CC264x/ble_cc26xx/Projects/ble/SimpleBLEPeripheral-IREXT/CC26xx/Source/Application/Irext/src/ir_decode.c +++ b/CC26XX/ti/BLE-CC264x/ble_cc26xx/Projects/ble/SimpleBLEPeripheral-IREXT/CC26xx/Source/Application/Irext/src/ir_decode.c @@ -61,6 +61,11 @@ static UINT16 ir_tv_lib_control(UINT8 key, UINT16 *l_user_data); static INT8 ir_tv_lib_close(); +void noprint(const char *fmt, ...) +{ + return; +} + // pubic function definitions INT8 ir_file_open(const UINT8 category, const UINT8 sub_category, const char* file_name) @@ -111,6 +116,7 @@ INT8 ir_file_open(const UINT8 category, const UINT8 sub_category, const char* fi INT8 ir_binary_open(const UINT8 category, const UINT8 sub_category, UINT8* binary, UINT16 binary_length) { INT8 ret = IR_DECODE_SUCCEEDED; + if (category == IR_CATEGORY_AC) { ir_binary_type = IR_TYPE_STATUS; @@ -352,11 +358,15 @@ static UINT16 ir_ac_lib_control(remote_ac_status_t ac_status, UINT16 *user_data, time_length = create_ir_frame(); -#if defined BOARD_PC +#if (defined BOARD_PC) +#if (defined BOARD_PC_JNI) + ir_printf("code count = %d\n", context->code_cnt); +#else for (i = 0; i < context->code_cnt; i++) { ir_printf("%d,", context->time[i]); } +#endif ir_printf("\n"); #endif diff --git a/CC26XX/ti/BLE-CC264x/ble_cc26xx/Projects/ble/SimpleBLEPeripheral-IREXT/CC26xx/Source/Application/Irext/src/ir_tv_control.c b/CC26XX/ti/BLE-CC264x/ble_cc26xx/Projects/ble/SimpleBLEPeripheral-IREXT/CC26xx/Source/Application/Irext/src/ir_tv_control.c index 462e7e9..e4b04ba 100644 --- a/CC26XX/ti/BLE-CC264x/ble_cc26xx/Projects/ble/SimpleBLEPeripheral-IREXT/CC26xx/Source/Application/Irext/src/ir_tv_control.c +++ b/CC26XX/ti/BLE-CC264x/ble_cc26xx/Projects/ble/SimpleBLEPeripheral-IREXT/CC26xx/Source/Application/Irext/src/ir_tv_control.c @@ -115,6 +115,7 @@ static BOOL get_ir_protocol(UINT8 encode_type) /* cycles number */ prot_cycles_num = pbuffer->data + pbuffer->offset; + if (encode_type == 0) { cycles_num_size = 8; /* "BOOT", "STOP", "SEP", "ONE", "ZERO", "FLIP", "TWO", "THREE" */ @@ -190,6 +191,7 @@ static void print_ir_time(ir_data_t *data, UINT8 key_index, UINT16 *ir_time) if (NULL == data || NULL == ir_time) { + ir_printf("data or ir_time is null\n"); return; } @@ -198,11 +200,13 @@ static void print_ir_time(ir_data_t *data, UINT8 key_index, UINT16 *ir_time) if (prot_cycles_num[IRDA_ONE] != 1 || prot_cycles_num[IRDA_ZERO] != 1) { + ir_printf("logical 1 or 0 is invalid\n"); return; } if (time_index >= USER_DATA_SIZE) { + ir_printf("time index exceeded\n"); return; } @@ -210,12 +214,14 @@ static void print_ir_time(ir_data_t *data, UINT8 key_index, UINT16 *ir_time) { if (pcycles == NULL) { + ir_printf("pcycles is null\n"); return; } cycles_num = prot_cycles_num[data->index]; if (cycles_num > 5) { + ir_printf("cycles number exceeded\n"); return; }