From 29f531fb9fafcc4fd8ee8f299b6df9de79433b71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=8D=E5=90=83=E6=B2=B9=E7=82=B8=E9=B8=A1?= <1425962791@qq.com> Date: Tue, 2 Dec 2025 19:24:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=8C=89=E9=94=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Power_Pico/User/GUI/screens/ui_ChartPage.c | 6 ++++-- Power_Pico/User/GUI/screens/ui_ChartPage.h | 2 +- Power_Pico/User/GUI/screens/ui_SetPage.c | 22 ++++++++++++---------- Power_Pico/User/GUI/screens/ui_SetPage.h | 2 +- Power_Pico/User/GUI/screens/ui_mainPage.c | 10 ++++++---- Power_Pico/User/GUI/screens/ui_mainPage.h | 2 +- 6 files changed, 25 insertions(+), 19 deletions(-) diff --git a/Power_Pico/User/GUI/screens/ui_ChartPage.c b/Power_Pico/User/GUI/screens/ui_ChartPage.c index 788e947..f0f4ad4 100644 --- a/Power_Pico/User/GUI/screens/ui_ChartPage.c +++ b/Power_Pico/User/GUI/screens/ui_ChartPage.c @@ -59,9 +59,11 @@ static void _chart_update_cb(lv_timer_t * timer) { } #include "key.h" -void ui_chart_page_key_handler(uint8_t key_id) +void ui_chart_page_key_handler(void* key_event) { - if(key_id == KEYB_NUM) { + if(((key_event_t*)key_event)->id == KEY_ID_B && + ((key_event_t*)key_event)->type == KEY_EVT_CLICK) + { lv_lib_pm_next(); } } diff --git a/Power_Pico/User/GUI/screens/ui_ChartPage.h b/Power_Pico/User/GUI/screens/ui_ChartPage.h index 73afc98..0c748d2 100644 --- a/Power_Pico/User/GUI/screens/ui_ChartPage.h +++ b/Power_Pico/User/GUI/screens/ui_ChartPage.h @@ -14,7 +14,7 @@ extern "C" { extern void ui_ChartPage_screen_init(void); extern void ui_ChartPage_screen_destroy(void); extern lv_obj_t * ui_ChartPage; -void ui_chart_page_key_handler(uint8_t key_id); +void ui_chart_page_key_handler(void *key_event); #ifdef __cplusplus } /*extern "C"*/ diff --git a/Power_Pico/User/GUI/screens/ui_SetPage.c b/Power_Pico/User/GUI/screens/ui_SetPage.c index 5ec9978..e90ef6c 100644 --- a/Power_Pico/User/GUI/screens/ui_SetPage.c +++ b/Power_Pico/User/GUI/screens/ui_SetPage.c @@ -32,17 +32,17 @@ static int current_panel_index = 0; // 当前选中的 panel 索引 // event funtions #include "key.h" -void ui_set_page_key_handler(uint8_t key_id) +void ui_set_page_key_handler(void *key_event) { int panel_count = sizeof(panels) / sizeof(panels[0]); - if(key_id == KEYB_NUM) { // key boot + if(((key_event_t*)key_event)->id == KEY_ID_B && ((key_event_t*)key_event)->type == KEY_EVT_CLICK) { // key boot lv_lib_pm_next(); - } if (key_id == KEYL_NUM) { // key left + } if (((key_event_t*)key_event)->id == KEY_ID_L && ((key_event_t*)key_event)->type == KEY_EVT_CLICK) { // key left lv_obj_clear_state(panels[current_panel_index], LV_STATE_CHECKED); current_panel_index = (current_panel_index - 1 + panel_count) % panel_count; lv_obj_add_state(panels[current_panel_index], LV_STATE_CHECKED); lv_obj_scroll_to_view(panels[current_panel_index], LV_ANIM_ON); - } else if (key_id == KEYR_NUM) { // key right + } else if (((key_event_t*)key_event)->id == KEY_ID_R && ((key_event_t*)key_event)->type == KEY_EVT_CLICK) { // key right lv_obj_clear_state(panels[current_panel_index], LV_STATE_CHECKED); current_panel_index = (current_panel_index + 1) % panel_count; lv_obj_add_state(panels[current_panel_index], LV_STATE_CHECKED); @@ -51,13 +51,15 @@ void ui_set_page_key_handler(uint8_t key_id) switch(current_panel_index) { // Screen Brightness case 0: - if (key_id == KEYY_NUM) { + if (((key_event_t*)key_event)->id == KEY_ID_Y && + (((key_event_t*)key_event)->type == KEY_EVT_CLICK || ((key_event_t*)key_event)->type == KEY_EVT_REPEAT)) { // key yes int16_t slider_value = lv_slider_get_value(ui_SliderBL); slider_value += 10; if(slider_value > 100) slider_value = 100; lv_slider_set_value(ui_SliderBL, slider_value, LV_ANIM_ON); ui_set_back_light_level(slider_value); - } else if (key_id == KEYN_NUM) { + } else if (((key_event_t*)key_event)->id == KEY_ID_N && + (((key_event_t*)key_event)->type == KEY_EVT_CLICK || ((key_event_t*)key_event)->type == KEY_EVT_REPEAT)) { // key neg int16_t slider_value = lv_slider_get_value(ui_SliderBL); slider_value -= 10; if(slider_value < 10) slider_value = 10; @@ -67,10 +69,10 @@ void ui_set_page_key_handler(uint8_t key_id) break; // key sound case 1: - if (key_id == KEYY_NUM) { + if (((key_event_t*)key_event)->id == KEY_ID_Y && ((key_event_t*)key_event)->type == KEY_EVT_CLICK) { // key yes lv_obj_add_state(ui_SwitchKS, LV_STATE_CHECKED); ui_set_key_sound_enable(1); - } else if(key_id == KEYN_NUM) { + } else if (((key_event_t*)key_event)->id == KEY_ID_N && ((key_event_t*)key_event)->type == KEY_EVT_CLICK) { // key neg lv_obj_clear_state(ui_SwitchKS, LV_STATE_CHECKED); ui_set_key_sound_enable(0); } @@ -84,9 +86,9 @@ void ui_set_page_key_handler(uint8_t key_id) // chose rotation case 3: uint16_t rotation = ui_get_display_rotation(); - if (key_id == KEYY_NUM) { + if (((key_event_t*)key_event)->id == KEY_ID_Y && ((key_event_t*)key_event)->type == KEY_EVT_CLICK) { // key yes rotation = (rotation + 360 + 90) % 360; - } else if(key_id == KEYN_NUM) { + } else if (((key_event_t*)key_event)->id == KEY_ID_N && ((key_event_t*)key_event)->type == KEY_EVT_CLICK) { // key neg rotation = (rotation + 360 - 90) % 360; } if (rotation == 0) { diff --git a/Power_Pico/User/GUI/screens/ui_SetPage.h b/Power_Pico/User/GUI/screens/ui_SetPage.h index beb4a85..73b994a 100644 --- a/Power_Pico/User/GUI/screens/ui_SetPage.h +++ b/Power_Pico/User/GUI/screens/ui_SetPage.h @@ -14,7 +14,7 @@ extern "C" { extern void ui_SetPage_screen_init(void); extern void ui_SetPage_screen_destroy(void); extern lv_obj_t * ui_SetPage; -void ui_set_page_key_handler(uint8_t key_id); +void ui_set_page_key_handler(void *key_event); // CUSTOM VARIABLES diff --git a/Power_Pico/User/GUI/screens/ui_mainPage.c b/Power_Pico/User/GUI/screens/ui_mainPage.c index 0cbb5c2..230bdd8 100644 --- a/Power_Pico/User/GUI/screens/ui_mainPage.c +++ b/Power_Pico/User/GUI/screens/ui_mainPage.c @@ -27,11 +27,12 @@ static uint8_t timecount = 0; // other funtions #include "key.h" -void ui_main_page_key_handler(uint8_t key_id) +void ui_main_page_key_handler(void* key_event) { - if(key_id == KEYB_NUM) { + if(((key_event_t*)key_event)->id == KEY_ID_B) { lv_lib_pm_next(); - } else if (key_id == KEYL_NUM) { + } else if (((key_event_t*)key_event)->id == KEY_ID_L && + ((key_event_t*)key_event)->type == KEY_EVT_CLICK) { // rotation - 90 degrees // rotation – LV_DISPLAY_ROTATION_0/90/180/270 uint16_t rotation = ui_get_display_rotation(); @@ -41,7 +42,8 @@ void ui_main_page_key_handler(uint8_t key_id) // save settings to eeprom ui_system_settings_save(); ui_full_screen_refresh(ui_HomeScreen); - } else if (key_id == KEYR_NUM) { + } else if (((key_event_t*)key_event)->id == KEY_ID_R && + ((key_event_t*)key_event)->type == KEY_EVT_CLICK) { // rotation + 90 degrees uint16_t rotation = ui_get_display_rotation(); rotation = (rotation + 360 + 90) % 360; diff --git a/Power_Pico/User/GUI/screens/ui_mainPage.h b/Power_Pico/User/GUI/screens/ui_mainPage.h index c78f3ad..e5941cf 100644 --- a/Power_Pico/User/GUI/screens/ui_mainPage.h +++ b/Power_Pico/User/GUI/screens/ui_mainPage.h @@ -8,7 +8,7 @@ extern "C" { // SCREEN: ui_Screen1 void ui_main_screen_init(void); void ui_main_screen_destroy(void); -void ui_main_page_key_handler(uint8_t key_id); +void ui_main_page_key_handler(void *key_event); extern lv_obj_t * ui_HomeScreen;