From 23174359f84d3b2bde0177aa63bd3092a653fee0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E9=A9=AC=5F666?= <13089258+pony-six-hundred-and-sixty-six@user.noreply.gitee.com> Date: Thu, 29 May 2025 10:07:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8C=89=E9=94=AE=E6=8E=A7=E5=88=B6=E6=B8=85?= =?UTF-8?q?=E7=A9=BA=E6=9C=AC=E5=9C=B0=E9=98=80=E9=97=A8=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bsp/src/bsp_button.c | 2 +- .../FlexibleButton-2.0.1/flexible_button.h | 53 ++++++++++--------- 2 files changed, 28 insertions(+), 27 deletions(-) diff --git a/bsp/src/bsp_button.c b/bsp/src/bsp_button.c index d4e55c1..7d74201 100644 --- a/bsp/src/bsp_button.c +++ b/bsp/src/bsp_button.c @@ -94,7 +94,7 @@ static void _CommonBtnEvtCb (void *arg) // } // button_cnt++; } - else if ((flex_button_event_read(&user_button[USER_BUTTON_1]) == FLEX_BTN_PRESS_LONG_HOLD)&&(flex_button_event_read(&user_button[USER_BUTTON_0]) == FLEX_BTN_PRESS_REPEAT_CLICK)) + else if ((flex_button_event_read(&user_button[USER_BUTTON_1]) == FLEX_BTN_PRESS_LONG_HOLD)&&(flex_button_event_read(&user_button[USER_BUTTON_0]) == FLEX_BTN_PRESS_DOUBLE_CLICK)) { LOG_I("本地清除阀门信息"); rt_uint8_t mac_addr[6] = {0}; diff --git a/packages/FlexibleButton-2.0.1/flexible_button.h b/packages/FlexibleButton-2.0.1/flexible_button.h index f53c8e5..9d8173b 100644 --- a/packages/FlexibleButton-2.0.1/flexible_button.h +++ b/packages/FlexibleButton-2.0.1/flexible_button.h @@ -36,34 +36,34 @@ * 2019-08-02 MurphyZhao Migrate code to github.com/murphyzhao account * 2019-12-26 MurphyZhao Refactor code and implement multiple clicks * -*/ + */ #ifndef __FLEXIBLE_BUTTON_H__ #define __FLEXIBLE_BUTTON_H__ #include "stdint.h" -#define FLEX_BTN_SCAN_FREQ_HZ 40 // How often flex_button_scan () is called +#define FLEX_BTN_SCAN_FREQ_HZ 40 // How often flex_button_scan () is called #define FLEX_MS_TO_SCAN_CNT(ms) (ms / (1000 / FLEX_BTN_SCAN_FREQ_HZ)) // /* Multiple clicks interval, default 300ms */ -#define MAX_MULTIPLE_CLICKS_INTERVAL (FLEX_MS_TO_SCAN_CNT(300)) +#define MAX_MULTIPLE_CLICKS_INTERVAL (FLEX_MS_TO_SCAN_CNT(500)) -typedef void (*flex_button_response_callback)(void*); +typedef void (*flex_button_response_callback)(void *); typedef enum { - FLEX_BTN_PRESS_DOWN = 0, - FLEX_BTN_PRESS_CLICK, - FLEX_BTN_PRESS_DOUBLE_CLICK,// - FLEX_BTN_PRESS_REPEAT_CLICK, - FLEX_BTN_PRESS_SHORT_START, - FLEX_BTN_PRESS_SHORT_UP, - FLEX_BTN_PRESS_LONG_START, - FLEX_BTN_PRESS_LONG_UP, - FLEX_BTN_PRESS_LONG_HOLD,// 长按 - FLEX_BTN_PRESS_LONG_HOLD_UP, - FLEX_BTN_PRESS_MAX, - FLEX_BTN_PRESS_NONE, + FLEX_BTN_PRESS_DOWN = 0, // 按钮按下开始 + FLEX_BTN_PRESS_CLICK, // 单击事件(按下后释放) + FLEX_BTN_PRESS_DOUBLE_CLICK, // 双击事件(两次快速单击) + FLEX_BTN_PRESS_REPEAT_CLICK, // 连续点击事件(多次点击) + FLEX_BTN_PRESS_SHORT_START, // 短按开始 + FLEX_BTN_PRESS_SHORT_UP, // 短按结束(释放) + FLEX_BTN_PRESS_LONG_START, // 长按开始 + FLEX_BTN_PRESS_LONG_UP, // 长按结束(释放) + FLEX_BTN_PRESS_LONG_HOLD, // 持续长按事件 + FLEX_BTN_PRESS_LONG_HOLD_UP, // 持续长按结束(释放) + FLEX_BTN_PRESS_MAX, // 事件总数,用于边界检查 + FLEX_BTN_PRESS_NONE // 无事件 } flex_button_event_t; /** @@ -127,13 +127,13 @@ typedef enum * Internal use, user unavailable. * Used to record the current state of buttons. * -*/ + */ typedef struct flex_button { - struct flex_button* next; + struct flex_button *next; - uint8_t (*usr_button_read)(void *); - flex_button_response_callback cb; + uint8_t (*usr_button_read)(void *); + flex_button_response_callback cb; uint16_t scan_cnt; uint16_t click_cnt; @@ -146,17 +146,18 @@ typedef struct flex_button uint8_t id; uint8_t pressed_logic_level : 1; - uint8_t event : 4; - uint8_t status : 3; + uint8_t event : 4; + uint8_t status : 3; } flex_button_t; #ifdef __cplusplus -extern "C" { +extern "C" +{ #endif -int8_t flex_button_register(flex_button_t *button); -flex_button_event_t flex_button_event_read(flex_button_t* button); -void flex_button_scan(void); + int8_t flex_button_register(flex_button_t *button); + flex_button_event_t flex_button_event_read(flex_button_t *button); + void flex_button_scan(void); #ifdef __cplusplus }