From aa64ed9994d84e8265aec5c42016898b2aadfb91 Mon Sep 17 00:00:00 2001 From: SnickerSun Date: Wed, 9 Oct 2024 11:10:35 +0800 Subject: [PATCH] =?utf8?q?=E4=BF=AE=E5=A4=8D=E9=95=BF=E6=8C=89=E8=BF=9B?= =?utf8?q?=E5=85=A5other=5Fclick=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=8C?= =?utf8?q?=E5=BD=93=E4=B8=8B=E6=94=AF=E6=8C=811~8=20click?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../brandy/brandy_standard/input_app.c | 54 ++++++++++++++++--- .../brandy/brandy_standard/input_app.h | 12 +++++ .../src/RebootAndShutdownModel.cpp | 6 +-- .../wstp/at_service/app/app_at_process.c | 5 ++ 4 files changed, 68 insertions(+), 9 deletions(-) diff --git a/code/sdk/application/brandy/brandy_standard/input_app.c b/code/sdk/application/brandy/brandy_standard/input_app.c index 8bd21d528..9e6ebc070 100755 --- a/code/sdk/application/brandy/brandy_standard/input_app.c +++ b/code/sdk/application/brandy/brandy_standard/input_app.c @@ -60,7 +60,19 @@ typedef enum { @else 按下一次 @endif */ BUTTON_DOUBLE_CLICK, /*!< @if Eng Click double time. @else 连续按下两次 @endif */ - BUTTON_OTHER_CLICK, /*!< @if Eng Click other time. + BUTTON_CLICK_3, /*!< @if Eng Click other time. + @else 连续按下3次 @endif */ + BUTTON_CLICK_4, /*!< @if Eng Click other time. + @else 连续按下4次 @endif */ + BUTTON_CLICK_5, /*!< @if Eng Click other time. + @else 连续按下5次 @endif */ + BUTTON_CLICK_6, /*!< @if Eng Click other time. + @else 连续按下6次 @endif */ + BUTTON_CLICK_7, /*!< @if Eng Click other time. + @else 连续按下7次 @endif */ + BUTTON_CLICK_8, /*!< @if Eng Click other time. + @else 连续按下8次 @endif */ + BUTTON_OTHER_CLICK, /*!< @if Eng Click other time. @else 其他连按次数 @endif */ BUTTON_CLICK_TIMES_INVALID, /*!< @if Eng Click times invilid. @else 异常连击次数 @endif */ @@ -282,7 +294,15 @@ static event_button_t button_event_get(button_id_t id, button_report_state_t sta event = BUTTON1_START; } - if ((state == BUTTON_PRESS) || (state == BUTTON_CLICK) || (state == BUTTON_DOUBLE_CLICK)|| (state == BUTTON_OTHER_CLICK)) { + if ((state == BUTTON_PRESS) || + (state == BUTTON_CLICK) || + (state == BUTTON_DOUBLE_CLICK)|| + (state == BUTTON_CLICK_3) || + (state == BUTTON_CLICK_4) || + (state == BUTTON_CLICK_5) || + (state == BUTTON_CLICK_6) || + (state == BUTTON_CLICK_7) || + (state == BUTTON_CLICK_8) ) { return (event + state + 1); } else { return (event + state - 1); @@ -380,12 +400,34 @@ static void button_report_click_state(button_id_t id) /* click more than two times */ if (g_button[id].click_cnt + 1 >= BUTTON_DEFAULT_MAX_CLICK_TIMES) { #if (CONFIG_SUPPORT_BUTTON_DOUBLE_CLICK == YES) - if ( (g_button[id].click_cnt +1) == 8) //连续按8次 - button_send_event_to_ui(id, BUTTON_OTHER_CLICK); - else if ( (g_button[id].click_cnt +1) == 2) + + switch((g_button[id].click_cnt +1)) + { + case 8: + button_send_event_to_ui(id, BUTTON_CLICK_8); //其他情况只报单击 break; + case 7: + button_send_event_to_ui(id, BUTTON_CLICK_7); //其他情况只报单击 + break; + case 6: + button_send_event_to_ui(id, BUTTON_CLICK_6); //其他情况只报单击 + break; + case 5: + button_send_event_to_ui(id, BUTTON_CLICK_5); //其他情况只报单击 + break; + case 4: + button_send_event_to_ui(id, BUTTON_CLICK_4); //其他情况只报单击 + break; + case 3: + button_send_event_to_ui(id, BUTTON_CLICK_3); //其他情况只报单击 + break; + case 2: button_send_event_to_ui(id, BUTTON_DOUBLE_CLICK); //双击 - else + break; + case 1: + default: button_send_event_to_ui(id, BUTTON_CLICK); //其他情况只报单击 + break; + } #else button_send_event_to_ui(id, BUTTON_CLICK); #endif diff --git a/code/sdk/application/brandy/brandy_standard/input_app.h b/code/sdk/application/brandy/brandy_standard/input_app.h index 8f9231bc0..0ddd8a28f 100755 --- a/code/sdk/application/brandy/brandy_standard/input_app.h +++ b/code/sdk/application/brandy/brandy_standard/input_app.h @@ -52,6 +52,12 @@ typedef enum { BUTTON_PWR_PRESS, BUTTON_PWR_CLICKUP, BUTTON_PWR_CLICKUP_2, + BUTTON_PWR_CLICKUP_3, + BUTTON_PWR_CLICKUP_4, + BUTTON_PWR_CLICKUP_5, + BUTTON_PWR_CLICKUP_6, + BUTTON_PWR_CLICKUP_7, + BUTTON_PWR_CLICKUP_8, BUTTON_PWR_LONGPRESS_1S, BUTTON_PWR_LONGPRESS_2S, BUTTON_PWR_LONGPRESS_3S, @@ -77,6 +83,12 @@ typedef enum { BUTTON1_PRESS, BUTTON1_CLICKUP, BUTTON1_CLICKUP_2, + BUTTON1_CLICKUP_3, + BUTTON1_CLICKUP_4, + BUTTON1_CLICKUP_5, + BUTTON1_CLICKUP_6, + BUTTON1_CLICKUP_7, + BUTTON1_CLICKUP_8, BUTTON1_CLICKUP_OTHER, BUTTON1_LONGPRESS_1S, BUTTON1_LONGPRESS_2S, diff --git a/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/RebootAndShutdownModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/RebootAndShutdownModel.cpp index 1964d6855..e6750e0ca 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/RebootAndShutdownModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/RebootAndShutdownModel.cpp @@ -1,8 +1,8 @@ /* * @Author: luozheng 1732036298@qq.com * @Date: 2024-07-18 14:55:27 - * @LastEditors: luozheng 1732036298@qq.com - * @LastEditTime: 2024-10-05 15:29:35 + * @LastEditors: SnickerSun snickersun@163.com + * @LastEditTime: 2024-10-09 10:43:18 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/RebootAndShutdownModel.cpp */ @@ -545,7 +545,7 @@ namespace OHOS bool RebootAndShutdownModel::RegisterFuncKeyOtherOnClickEvent(void) { // 注册按键按下8次事件 - int32_t powerret = uapi_button_register_event_cb(HandFuncKeyOtherOnClickEvent, BUTTON1_CLICKUP_OTHER); + int32_t powerret = uapi_button_register_event_cb(HandFuncKeyOtherOnClickEvent, BUTTON1_CLICKUP_8); if (powerret != ERRCODE_SUCC) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to register Power Button Press Event, ret = %d", powerret); 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 b466ff2bb..51c92af13 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 @@ -2129,6 +2129,10 @@ static void button1_callback_click_2(void) { PRINT("function key click double."NEWLINE); } +static void button1_callback_click_8(void) +{ + PRINT("function key click 8."NEWLINE); +} static void button1_callback1(void) { PRINT("function key long press 1s over."NEWLINE); @@ -2166,6 +2170,7 @@ uint32_t mcu_button_sample(uint8_t *para, uint32_t para_len) uapi_button_register_event_cb(button1_callback_press, BUTTON1_PRESS); uapi_button_register_event_cb(button1_callback_click, BUTTON1_CLICKUP); uapi_button_register_event_cb(button1_callback_click_2, BUTTON1_CLICKUP_2); + uapi_button_register_event_cb(button1_callback_click_8, BUTTON1_CLICKUP_8); uapi_button_register_event_cb(button1_callback1, BUTTON1_LONGPRESS_1S); -- 2.17.1