修复长按进入other_click的问题,当下支持1~8 click 1131/1 1131/head 1132/target/1
authorSnickerSun <snickersun@163.com>
Wed, 9 Oct 2024 03:10:35 +0000 (11:10 +0800)
committerSnickerSun <snickersun@163.com>
Wed, 9 Oct 2024 03:10:35 +0000 (11:10 +0800)
code/sdk/application/brandy/brandy_standard/input_app.c
code/sdk/application/brandy/brandy_standard/input_app.h
code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/RebootAndShutdownModel.cpp
code/sdk/application/wstp/at_service/app/app_at_process.c

index 8bd21d5..9e6ebc0 100755 (executable)
@@ -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
index 8f9231b..0ddd8a2 100755 (executable)
@@ -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,
index 1964d68..e6750e0 100644 (file)
@@ -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);
index b466ff2..51c92af 100755 (executable)
@@ -2129,6 +2129,10 @@ static void button1_callback_click_2(void)
 {\r
     PRINT("function key click double."NEWLINE);\r
 }\r
+static void button1_callback_click_8(void)\r
+{\r
+    PRINT("function key click 8."NEWLINE);\r
+}\r
 static void button1_callback1(void)\r
 {\r
     PRINT("function key long press 1s over."NEWLINE);\r
@@ -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);\r
     uapi_button_register_event_cb(button1_callback_click, BUTTON1_CLICKUP);\r
     uapi_button_register_event_cb(button1_callback_click_2, BUTTON1_CLICKUP_2);\r
+    uapi_button_register_event_cb(button1_callback_click_8, BUTTON1_CLICKUP_8);\r
 \r
     uapi_button_register_event_cb(button1_callback1, BUTTON1_LONGPRESS_1S);\r
     \r