From b866f935d41d23e9a0846e5cb2197729d124e529 Mon Sep 17 00:00:00 2001 From: "snickersun@163.com" Date: Fri, 31 May 2024 15:17:06 +0000 Subject: [PATCH] Merge #212 into sdk602patch0521 from refs/changes/212/head MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Code review from snickersun@163.com * refs/changes/212/head: (4 commits squashed) - 解决触摸屏触摸后无法休眠问题 - 解决表冠转动时仍然会息屏问题 - 修复ft6x46内存泄漏问题 - WEARABLE_LOG_DEBUG放到 config.py中,保证所有模块都受控。优化部分打印以及去掉无用代码 Signed-off-by: snickersun@163.com Reviewed-by: snickersun@163.com Merged-by: snickersun@163.com CR-link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/212 --- .../brandy/brandy_standard/thread_pri_init.c | 16 +++------- .../src/filters/timer_event_filter.c | 10 +++--- .../power_manager/src/power_display_service.c | 10 +++--- .../wstp/at_service/app/app_at_process.c | 4 +-- .../config/target_config/brandy/config.py | 1 + .../touch/ft6x46_touch/ft6x46_ctrl.c | 32 ++++++++++++------- .../touch/ft6x46_touch/ft6x46_ctrl.h | 1 + 7 files changed, 40 insertions(+), 34 deletions(-) diff --git a/code/sdk/application/brandy/brandy_standard/thread_pri_init.c b/code/sdk/application/brandy/brandy_standard/thread_pri_init.c index ea69e476a..8be0240d8 100755 --- a/code/sdk/application/brandy/brandy_standard/thread_pri_init.c +++ b/code/sdk/application/brandy/brandy_standard/thread_pri_init.c @@ -434,32 +434,24 @@ static void thread_main(const void *unused) #endif -// #ifdef MAG_MMC5603 -// uapi_mag_service_init(); -// #endif + #ifdef ACC_LIS2DOC - uapi_acc_service_init(); + // uapi_acc_service_init(); #endif -// #ifdef SUPPORT_PPG_SERVICE -// uapi_ppg_service_init(); -// #endif - #ifdef ENABLE_SLIP slip_uart_init(); #endif uapi_custom_cmd_service_init(); -// #ifdef ENABLE_CYWEE -// uapi_cywee_service_init(); -// #endif + #ifdef SUPPORT_ALIPAY_SEC uapi_alipay_svr_init(); #endif - // ble_hid_server_init(); + #ifdef SUPPORT_CAT1_SERVICE cat1_server_init(); diff --git a/code/sdk/application/wearable/service/power_manager/src/filters/timer_event_filter.c b/code/sdk/application/wearable/service/power_manager/src/filters/timer_event_filter.c index 8aac3ce1f..5630f7d2f 100755 --- a/code/sdk/application/wearable/service/power_manager/src/filters/timer_event_filter.c +++ b/code/sdk/application/wearable/service/power_manager/src/filters/timer_event_filter.c @@ -7,7 +7,7 @@ #include "power_display_service.h" #include "display_filter.h" #include "common_def.h" - +#include "touch_screen_def.h" static input_action_t filter_timer_execute_product_rule(screen_context_t *current, uint32_t event) { unused(current); @@ -25,12 +25,12 @@ static input_action_t filter_timer_execute_system_rule(screen_context_t *current if (current->current_state == SCREEN_ON) { ac = RESET_TIMER; } - } else if (event == DEFAULT_TIMER_TIME_OUT) { - if (sc->press_state == 0 && sc->time_out_enable == true) { + } else if (event == DEFAULT_TIMER_TIME_OUT) { + if (sc->press_state == MC_TP_RELEASE && sc->time_out_enable == true) { ac = TURN_OFF_SCREEN; } - } else if (event == KEEP_ON_TIMER_TIME_OUT) { - ac = RESET_TIMER; + } else if (event == KEEP_ON_TIMER_TIME_OUT) { + ac = RESET_TIMER; } return ac; diff --git a/code/sdk/application/wearable/service/power_manager/src/power_display_service.c b/code/sdk/application/wearable/service/power_manager/src/power_display_service.c index de79404ee..32f980a96 100755 --- a/code/sdk/application/wearable/service/power_manager/src/power_display_service.c +++ b/code/sdk/application/wearable/service/power_manager/src/power_display_service.c @@ -20,6 +20,7 @@ #include "touch_screen_def.h" #include "display_state_machine.h" #include "touch_screen_def.h" +#include "rotary_encoder_def.h" #define DISPLAY_AUTO_POWER_OFF_PERIOD_MS 5000 #define DISPLAY_DEFAULT_BRIGHTNESS 50 @@ -230,12 +231,12 @@ static void power_display_touch_event_cb(uint32_t event, uint32_t event_value) event_info += MC_TP_RELEASE; g_power_tp_press_num = 0; } else { - return; + return; } - if (g_power_tp_press_num > 1) { - return; + if (g_power_tp_press_num > 1) { + return; } - errcode_t ret = power_display_msg_write(mt, (uint8_t *)&event_info, sizeof(uint32_t), false); + errcode_t ret = power_display_msg_write(mt, (uint8_t *)&event_info, sizeof(uint32_t), false); if (ret != ERRCODE_SUCC) { POWER_DISPLAY_PRINT_ERR(0, "touch_event send msg fail, ret:%u.", ret); } @@ -464,6 +465,7 @@ errcode_t uapi_power_display_init(void) g_event_filter_map[TIMER_EVENT] = display_get_timer_filter(); g_event_filter_map[SLICE_EVENT] = display_get_slice_filter(); ts_register_power_manager_cb(power_display_touch_event_cb); + re_register_power_manager_cb(power_display_key_event_cb); button_register_power_display_cb(power_display_key_event_cb); return ERRCODE_SUCC; } diff --git a/code/sdk/application/wstp/at_service/app/app_at_process.c b/code/sdk/application/wstp/at_service/app/app_at_process.c index 546f281bc..3ba87d6bc 100755 --- a/code/sdk/application/wstp/at_service/app/app_at_process.c +++ b/code/sdk/application/wstp/at_service/app/app_at_process.c @@ -2419,7 +2419,7 @@ uint8_t mcu_pms_is_screen_on(void) { const power_display_svr_api_t *display_api = power_display_svr_get_api(); screen_state_t state = display_api->get_screen_state(); - wstp_print("app get screen state = %u, on is %u, off is %u. \r\n", state, SCREEN_ON, SCREEN_OFF); + wstp_print("app get screen state = %s . \r\n", state==SCREEN_ON?"on":"off"); if( state == SCREEN_ON){ return 1; }else{ @@ -2432,7 +2432,7 @@ static uint32_t mcu_pms_get_screen_state(uint8_t *para, uint32_t para_len) unused(para); const power_display_svr_api_t *display_api = power_display_svr_get_api(); screen_state_t state = display_api->get_screen_state(); - wstp_print("app get screen state = %u, on is %u, off is %u. \r\n", state, SCREEN_ON, SCREEN_OFF); + wstp_print("app get screen state = %s . \r\n", state==SCREEN_ON?"on":"off"); return ERRCODE_SUCC; } #endif diff --git a/code/sdk/build/config/target_config/brandy/config.py b/code/sdk/build/config/target_config/brandy/config.py index bce4505d0..ae39c1f09 100755 --- a/code/sdk/build/config/target_config/brandy/config.py +++ b/code/sdk/build/config/target_config/brandy/config.py @@ -116,6 +116,7 @@ target = { 'SW_UART_DEBUG', 'SAVE_EXC_INFO', 'HASH_MEM_COPY', 'JS_ENABLE', 'CONFIG_LOW_POWER_TEST', 'ENABLE_ECC','MIPI_ULPS_SUPPORT','SUPPORT_ALIPAY_SEC', 'FT_SINGLE_UART', + # 'WEARABLE_LOG_DEBUG', 'PPG_HX3695', # 'ACC_LIS2DOC', 'ENABLE_CYWEE', diff --git a/code/sdk/drivers/peripheral/touch/ft6x46_touch/ft6x46_ctrl.c b/code/sdk/drivers/peripheral/touch/ft6x46_touch/ft6x46_ctrl.c index 5bdfe1f94..f6a42fdb1 100644 --- a/code/sdk/drivers/peripheral/touch/ft6x46_touch/ft6x46_ctrl.c +++ b/code/sdk/drivers/peripheral/touch/ft6x46_touch/ft6x46_ctrl.c @@ -24,6 +24,8 @@ bool g_host_dev_init_flag = TD_FALSE; ft6x46_ctrl_attr g_ctrl_attr; touch_callback g_ft6x46_callback = NULL; +static uint8_t g_tp_recv_buf[FT6X46_INPUT_SIZE] = {0}; + static void ft6x46_gpio_isr_handle(pin_t pin, uintptr_t param) { unused(pin); @@ -98,7 +100,7 @@ ext_errno tp_i2c_data_read(uint8_t reg_addr, uint8_t *data_buf, uint32_t data_le errcode_t ret; uint32_t retry; i2c_data_t data; - //uint8_t tp_reg_addr[FT6X46_REG_BYTE_LEN]; + ret = tp_i2c_rd_wr_param_check(data_buf, data_len); if (ret != 0) { @@ -106,13 +108,14 @@ ext_errno tp_i2c_data_read(uint8_t reg_addr, uint8_t *data_buf, uint32_t data_le return ret; } - memset_s(data_buf, data_len, 0, data_len); - //tp_reg_addr[FT6X46_I2C_SEND_INDEX0] = reg_addr & 0xff; - //tp_reg_addr[FT6X46_I2C_SEND_INDEX1] = (reg_addr >> OFFSET_8_BITS) & 0xff; - - data.send_buf = ®_addr; + if (memset_s(g_tp_recv_buf, data_len, 0, data_len) != EOK) { + tp_err("tp read buff set fail! ret=0x%x", ret); + return EXT_ERR_FAILURE; + } + + data.send_buf = ®_addr; data.send_len = FT6X46_CMD_SEND_LEN; - data.receive_buf = data_buf; + data.receive_buf = g_tp_recv_buf; data.receive_len = data_len; for (retry = 0; retry < FT6X46_I2C_TIME_MAX; retry++) { @@ -125,7 +128,11 @@ ext_errno tp_i2c_data_read(uint8_t reg_addr, uint8_t *data_buf, uint32_t data_le tp_err("tp data read fail! ret=0x%x", ret); return ret; } - + ret = (uint32_t)memcpy_s(data_buf, data_len, g_tp_recv_buf, data_len); + if (ret != EOK) { + tp_err("tp data buf content copy fail! ret=0x%x", ret); + return ret; + } return EXT_ERR_SUCCESS; } @@ -226,6 +233,7 @@ ext_errno tp_i2c_data_write(uint8_t reg_addr, uint8_t *data_buf, uint16_t data_l ret = (uint32_t)memcpy_s(write_data + sizeof(uint8_t), send_len - sizeof(uint8_t), data_buf, data_len); if (ret != EOK) { tp_err("tp send_buf content copy fail! ret=0x%x", ret); + osal_kfree(write_data); return ret; } @@ -242,10 +250,11 @@ ext_errno tp_i2c_data_write(uint8_t reg_addr, uint8_t *data_buf, uint16_t data_l } if (ret != EXT_ERR_SUCCESS) { tp_err("tp data write fail! ret=0x%x", ret); + osal_kfree(write_data); return ret; } - tp_mem_free(write_data); + osal_kfree(write_data); return EXT_ERR_SUCCESS; } @@ -275,6 +284,7 @@ ext_errno tp_ft6x46_i2c_data_write(uint8_t reg_addr, uint8_t *data_buf, uint16_t ret = (uint32_t)memcpy_s(write_data + sizeof(uint8_t), send_len - sizeof(uint8_t), data_buf, data_len); if (ret != EOK) { tp_err("tp send_buf content copy fail! ret=0x%x", ret); + osal_kfree(write_data); return ret; } @@ -291,11 +301,11 @@ ext_errno tp_ft6x46_i2c_data_write(uint8_t reg_addr, uint8_t *data_buf, uint16_t } if (ret != EXT_ERR_SUCCESS) { tp_err("tp data write fail! ret=0x%x", ret); - tp_mem_free(write_data); + osal_kfree(write_data); return ret; } - tp_mem_free(write_data); + osal_kfree(write_data); return EXT_ERR_SUCCESS; } diff --git a/code/sdk/drivers/peripheral/touch/ft6x46_touch/ft6x46_ctrl.h b/code/sdk/drivers/peripheral/touch/ft6x46_touch/ft6x46_ctrl.h index ac23c5fce..24ef8f419 100644 --- a/code/sdk/drivers/peripheral/touch/ft6x46_touch/ft6x46_ctrl.h +++ b/code/sdk/drivers/peripheral/touch/ft6x46_touch/ft6x46_ctrl.h @@ -30,6 +30,7 @@ #define FT6X46_REG_DATA_LEN 2 #define FT6X46_I2C_TIME_MAX 3 +#define FT6X46_INPUT_SIZE 156 #define FT6X46_I2C_SEND_INDEX0 0 #define FT6X46_I2C_SEND_INDEX1 1 -- 2.17.1