Adding environment setup and instructions
This commit is contained in:
92
main/gui.c
92
main/gui.c
@@ -105,9 +105,9 @@ static void create_lvgl_demo(void)
|
||||
lvgl_port_lock(0);
|
||||
// Create a screen with black background
|
||||
lv_obj_t *scr = lv_scr_act();
|
||||
//create_menu(scr);
|
||||
|
||||
createBubble(scr);
|
||||
build_scrollable_menu();
|
||||
//build_scrollable_menu();
|
||||
|
||||
lvgl_port_unlock();
|
||||
|
||||
@@ -167,8 +167,8 @@ static void lvgl_init(void)
|
||||
#if 1
|
||||
const lvgl_port_cfg_t lvgl_cfg = {
|
||||
.task_priority = 4, // LVGL task priority
|
||||
.task_stack = 32768, // LVGL task stack size
|
||||
.task_affinity = -1, // LVGL task can run on any core
|
||||
.task_stack = 16384, // LVGL task stack size
|
||||
.task_affinity = 0, // LVGL task can run on any core
|
||||
.task_max_sleep_ms = 500, // Maximum sleep in LVGL task
|
||||
.timer_period_ms = 5 // LVGL timer period
|
||||
};
|
||||
@@ -180,7 +180,7 @@ static void lvgl_init(void)
|
||||
.io_handle = io_handle,
|
||||
.panel_handle = panel_handle,
|
||||
.buffer_size = LCD_H_RES * LCD_V_RES * 2,
|
||||
.double_buffer = true,
|
||||
.double_buffer = false,
|
||||
.hres = LCD_H_RES,
|
||||
.vres = LCD_V_RES,
|
||||
.monochrome = false,
|
||||
@@ -219,15 +219,10 @@ static void createBubble(lv_obj_t * scr)
|
||||
_bubble = level;
|
||||
}
|
||||
|
||||
void ui_test()
|
||||
{
|
||||
lv_obj_t *label = lv_label_create(lv_screen_active());
|
||||
lv_label_set_text(label, "Hello, LVGL 9.2!");
|
||||
lv_obj_center(label);
|
||||
}
|
||||
|
||||
void gui_start(void)
|
||||
{
|
||||
|
||||
// Initialize LCD
|
||||
lcd_init();
|
||||
|
||||
@@ -236,7 +231,6 @@ void gui_start(void)
|
||||
|
||||
// Create UI
|
||||
create_lvgl_demo();
|
||||
|
||||
|
||||
keypad_start();
|
||||
|
||||
@@ -333,21 +327,9 @@ static void refresh_highlight(void) {
|
||||
next = lv_obj_get_child(page, index);
|
||||
}
|
||||
|
||||
// for(int i = 0; i < ITEM_COUNT; i++) {
|
||||
// if(i == selected_idx) {
|
||||
// lv_obj_set_style_bg_color(btn_array[i], lv_color_hex(0xFF8800), 0);
|
||||
// lv_obj_set_style_text_color(lv_obj_get_child(btn_array[i],0),
|
||||
// lv_color_white(), 0);
|
||||
// } else {
|
||||
// lv_obj_set_style_bg_color(btn_array[i], lv_color_white(), 0);
|
||||
// lv_obj_set_style_text_color(lv_obj_get_child(btn_array[i],0),
|
||||
// lv_color_black(), 0);
|
||||
// }
|
||||
// }
|
||||
|
||||
if (selected)
|
||||
{
|
||||
lv_obj_scroll_to_view(selected, LV_ANIM_ON);
|
||||
lv_obj_scroll_to_view(selected, LV_ANIM_ON);
|
||||
}
|
||||
|
||||
lvgl_port_unlock();
|
||||
@@ -521,40 +503,7 @@ static void build_scrollable_menu(void) {
|
||||
addMenuItem(calMenu, "Exit");
|
||||
|
||||
_currentPage = main;
|
||||
|
||||
|
||||
|
||||
#if 0
|
||||
for(int i = 0; i < ITEM_COUNT; i++) {
|
||||
// create a full-width button in that section
|
||||
lv_obj_t * btn = lv_btn_create(main);
|
||||
lv_obj_set_size(btn, LV_PCT(100), ROW_H);
|
||||
|
||||
// style it just like your old list
|
||||
lv_obj_set_style_bg_color(btn, lv_color_white(), 0);
|
||||
lv_obj_set_style_radius(btn, 0, LV_PART_MAIN);
|
||||
lv_obj_set_style_border_width(btn, 0, LV_PART_MAIN);
|
||||
lv_obj_clear_flag(btn, LV_OBJ_FLAG_SCROLLABLE);
|
||||
|
||||
|
||||
// label & center
|
||||
lv_obj_t * lbl = lv_label_create(btn);
|
||||
lv_label_set_text(lbl, items[i]);
|
||||
lv_obj_set_style_radius(lbl, 0, LV_PART_MAIN | LV_STATE_ANY);
|
||||
lv_obj_set_style_border_width(lbl, 0, LV_PART_MAIN | LV_STATE_ANY);
|
||||
//lv_obj_center(lbl);
|
||||
|
||||
// click callback
|
||||
lv_obj_add_event_cb(btn, btn_click_cb, LV_EVENT_CLICKED, NULL);
|
||||
|
||||
// save for highlight/scroll
|
||||
btn_array[i] = btn;
|
||||
}
|
||||
|
||||
// lv_obj_t * content = lv_obj_get_child(page, 0);
|
||||
// lv_obj_set_style_radius(content, 0, LV_PART_MAIN | LV_STATE_ANY);
|
||||
// lv_obj_set_style_border_width(content, 0, LV_PART_MAIN | LV_STATE_ANY);
|
||||
#endif
|
||||
// 6) Initial highlight
|
||||
selected_idx = 0;
|
||||
refresh_highlight();
|
||||
@@ -563,6 +512,7 @@ static void build_scrollable_menu(void) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
static void gui_task(void)
|
||||
{
|
||||
system_subscribe(xTaskGetCurrentTaskHandle());
|
||||
@@ -571,8 +521,12 @@ static void gui_task(void)
|
||||
QueueHandle_t q = keypad_getQueue();
|
||||
uint32_t ev = 0;
|
||||
|
||||
LOCK();
|
||||
// _mode = GUI_MENU;
|
||||
// lv_obj_remove_flag(_menu, LV_OBJ_FLAG_HIDDEN);
|
||||
lv_obj_remove_flag(_bubble, LV_OBJ_FLAG_HIDDEN);
|
||||
lv_obj_add_flag(_menu, LV_OBJ_FLAG_HIDDEN);
|
||||
//lv_obj_add_flag(_menu, LV_OBJ_FLAG_HIDDEN);
|
||||
UNLOCK();
|
||||
|
||||
while (1)
|
||||
{
|
||||
@@ -581,6 +535,19 @@ static void gui_task(void)
|
||||
if (xQueueReceive(q, &ev, pdMS_TO_TICKS(10)) == pdTRUE)
|
||||
{
|
||||
switch (ev) {
|
||||
|
||||
case (KEY_UP << KEY_LONG_PRESS):
|
||||
{
|
||||
system_setZeroAngle();
|
||||
break;
|
||||
}
|
||||
|
||||
case (KEY_DOWN << KEY_LONG_PRESS):
|
||||
{
|
||||
system_clearZeroAngle();
|
||||
break;
|
||||
}
|
||||
#if 0
|
||||
case (KEY0 << KEY_SHORT_PRESS):
|
||||
|
||||
if (_mode == GUI_MENU)
|
||||
@@ -590,7 +557,9 @@ static void gui_task(void)
|
||||
ESP_LOGI(TAG, "MAIN: Button 1 SHORT");
|
||||
break;
|
||||
case (KEY0 << KEY_LONG_PRESS):
|
||||
{
|
||||
|
||||
|
||||
if (_mode != GUI_MENU)
|
||||
{
|
||||
_mode = GUI_MENU;
|
||||
@@ -605,8 +574,8 @@ static void gui_task(void)
|
||||
// lv_obj_remove_flag(_bubble, LV_OBJ_FLAG_HIDDEN);
|
||||
// lv_obj_add_flag(_menu, LV_OBJ_FLAG_HIDDEN);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case (KEY1 << KEY_SHORT_PRESS):
|
||||
{
|
||||
if (_mode == GUI_MENU)
|
||||
@@ -619,6 +588,7 @@ static void gui_task(void)
|
||||
ESP_LOGI(TAG, "MAIN: Button 2 LONG");
|
||||
gpio_set_level(PIN_NUM_nON, 0);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -633,7 +603,7 @@ static void gui_task(void)
|
||||
0xFFFFFFFF, // clear any old bits on entry
|
||||
0xFFFFFFFF, // clear bits on exit
|
||||
¬ifiedBits,
|
||||
pdMS_TO_TICKS(10));
|
||||
pdMS_TO_TICKS(100));
|
||||
|
||||
if (notifiedBits & EM_EVENT_NEW_DATA)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user