更新按键

This commit is contained in:
不吃油炸鸡
2025-12-02 19:24:02 +08:00
parent 1cec3aaa95
commit 29f531fb9f
6 changed files with 25 additions and 19 deletions

View File

@@ -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();
}
}

View File

@@ -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"*/

View File

@@ -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) {

View File

@@ -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

View File

@@ -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;

View File

@@ -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;