Adding environment setup and instructions

This commit is contained in:
Brent Perteet
2025-07-22 14:04:27 -05:00
parent 311981ceb4
commit dc2885e02e
23 changed files with 3741 additions and 114 deletions

View File

@@ -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
&notifiedBits,
pdMS_TO_TICKS(10));
pdMS_TO_TICKS(100));
if (notifiedBits & EM_EVENT_NEW_DATA)
{