SDK สำหรับ TESAIoT Dev Kit
คู่มืออ้างอิง API และ Tutorial (MTB & µPython)
Toggle main menu visibility
Loading...
Searching...
No Matches
ui_widget_mgr.h
Go to the documentation of this file.
1
/*******************************************************************************
2
* File Name: ui_widget_mgr.h
3
*
4
* Description: Widget handle table and LVGL widget lifecycle manager.
5
* Maps handle IDs (0-31) to lv_obj_t* pointers.
6
* Creates, modifies, deletes LVGL widgets in GFX task context.
7
*
8
*******************************************************************************/
9
10
#ifndef UI_WIDGET_MGR_H
11
#define UI_WIDGET_MGR_H
12
13
#include "ipc_ui_protocol.h"
14
#include "lvgl.h"
15
#include <stdbool.h>
16
#include <stdint.h>
17
22
void
ui_widget_mgr_init
(lv_obj_t *parent);
23
30
void
ui_widget_mgr_set_parent
(lv_obj_t *parent);
31
36
bool
ui_widget_mgr_needs_container
(
void
);
37
43
int
ui_widget_mgr_create
(
const
ipc_ui_create_t *cfg);
44
51
int
ui_widget_mgr_create_sprite
(
const
lv_image_dsc_t *dsc, int16_t x, int16_t y);
52
57
void
ui_widget_mgr_set_sprite_image
(
int
handle,
const
lv_image_dsc_t *dsc);
58
63
void
ui_widget_mgr_delete
(
int
handle);
64
68
void
ui_widget_mgr_clear_all
(
void
);
69
73
void
ui_widget_mgr_set_text
(
int
handle,
const
char
*text);
74
78
void
ui_widget_mgr_set_value
(
int
handle, int32_t value);
79
83
void
ui_widget_mgr_set_position
(
int
handle, int16_t x, int16_t y);
84
88
void
ui_widget_mgr_set_size
(
int
handle, int16_t w, int16_t h);
89
93
void
ui_widget_mgr_set_color
(
int
handle, uint32_t color);
94
98
void
ui_widget_mgr_set_visible
(
int
handle,
bool
visible);
99
104
void
ui_widget_mgr_set_all_visible
(
bool
visible);
105
110
int32_t
ui_widget_mgr_get_value
(
int
handle);
111
115
void
ui_widget_mgr_set_dotmatrix
(
int
handle,
const
uint8_t *bitmap, uint8_t len);
116
124
void
ui_widget_mgr_set_image
(
int
handle, uint16_t offset,
const
uint8_t *data, uint8_t len);
125
129
void
ui_widget_mgr_event_push
(uint8_t handle, uint8_t event_type, int32_t value);
130
137
int
ui_widget_mgr_event_drain
(ipc_ui_event_t *out,
int
max_events);
138
142
int
ui_widget_mgr_count
(
void
);
143
150
int
ui_widget_mgr_list
(ipc_ui_widget_info_t *out,
int
max_items);
151
156
lv_obj_t *
ui_widget_mgr_get_parent
(
void
);
157
163
void
ui_widget_mgr_set_screen
(int16_t width, int16_t height);
164
171
int
ui_widget_mgr_chart_add_series
(
int
handle, uint32_t color);
172
179
void
ui_widget_mgr_chart_set_next
(
int
handle, uint8_t series_idx, int32_t value);
180
181
182
/*******************************************************************************
183
* Collections and containers (IPC_CMD_UI_ITEM_ADD / _ITEM_CLEAR / _SET_PROP)
184
*
185
* These three functions MUST exist, and behave the same way for the same widget
186
* type, in BOTH ui_widget_mgr.c implementations — claw's and game's. The two
187
* Infineon Game kits compile claw's ipc_ui.c against game's ui_widget_mgr.c, so
188
* a type served here and not there renders on some boards and returns
189
* UI_STATUS_INVALID_TYPE on others, with no build error anywhere.
190
*******************************************************************************/
191
194
#define UI_ITEM_ADD_OK_NO_CHILD (-3)
195
208
int
ui_widget_mgr_item_add
(
const
ipc_ui_item_add_t *it);
209
214
void
ui_widget_mgr_item_clear
(
int
handle);
215
222
void
ui_widget_mgr_set_prop
(
int
handle, uint8_t prop_id, int32_t value);
223
232
lv_obj_t *
ui_widget_mgr_get_object
(
int
handle);
233
234
#endif
/* UI_WIDGET_MGR_H */
ui_widget_mgr_set_prop
void ui_widget_mgr_set_prop(int handle, uint8_t prop_id, int32_t value)
ตั้งคุณสมบัติ UI_PROP_* หนึ่งรายการ; เป็นกลไกที่ .listen() ใช้สมัครรับ event
ui_widget_mgr_init
void ui_widget_mgr_init(lv_obj_t *parent)
ipc_ui_init() เรียกฟังก์ชันนี้เอง — ห้ามเรียกโดยตรง
ui_widget_mgr_set_parent
void ui_widget_mgr_set_parent(lv_obj_t *parent)
เคลียร์ widget ทั้งหมดแล้วตั้ง parent ใหม่; ถูกเรียกผ่าน ipc_ui_set_container() เท่านั้น
ui_widget_mgr_event_drain
int ui_widget_mgr_event_drain(ipc_ui_event_t *out, int max_events)
ระบาย event ออกให้ POLL_EVENTS — เป็น backend ของ ui.poll()
ui_widget_mgr_item_clear
void ui_widget_mgr_item_clear(int handle)
ล้าง widget ชนิดคอลเล็กชันให้ว่าง
ui_widget_mgr_create_sprite
int ui_widget_mgr_create_sprite(const lv_image_dsc_t *dsc, int16_t x, int16_t y)
สร้าง sprite ชนิดภาพลงใน handle table เดียวกัน
ui_widget_mgr_set_position
void ui_widget_mgr_set_position(int handle, int16_t x, int16_t y)
ย้ายตำแหน่ง widget; ตั้ง fast drain ให้พร้อมทำงานเพื่ออัตราเฟรมระหว่างเล่นเกม
ui_widget_mgr_clear_all
void ui_widget_mgr_clear_all(void)
ลบ widget ทุกตัวและรีเซ็ต handle table
ui_widget_mgr_set_value
void ui_widget_mgr_set_value(int handle, int32_t value)
ตั้งค่าตัวเลข; ตั้ง fast drain ให้พร้อมทำงานเพื่อไม่ให้แดชบอร์ดถูกตรึงไว้ที่ 5 FPS
ui_widget_mgr_set_dotmatrix
void ui_widget_mgr_set_dotmatrix(int handle, const uint8_t *bitmap, uint8_t len)
โหลดบิตแมปเข้าไปใน widget ชนิด DotMatrix
ui_widget_mgr_set_screen
void ui_widget_mgr_set_screen(int16_t width, int16_t height)
ตั้งขนาดหน้าจอและรีเซ็ตกริดของ auto-layout
ui_widget_mgr_set_text
void ui_widget_mgr_set_text(int handle, const char *text)
ตั้งข้อความของ widget; switch จะตั้ง fast drain ให้พร้อมทำงานหลังจากนั้น
ui_widget_mgr_item_add
int ui_widget_mgr_item_add(const ipc_ui_item_add_t *it)
ต่อรายการหนึ่งรายการ; ค่าที่คืนมีหลายความหมาย และมีกฎเรื่องตัวโค้ดที่ทำงานจริง 2 ชุด
ui_widget_mgr_event_push
void ui_widget_mgr_event_push(uint8_t handle, uint8_t event_type, int32_t value)
ฝั่งผู้ผลิตข้อมูลของ event ring; เฉพาะ LVGL event callback ภายในเท่านั้น
ui_widget_mgr_set_visible
void ui_widget_mgr_set_visible(int handle, bool visible)
แสดงหรือซ่อน widget หนึ่งตัว
ui_widget_mgr_chart_set_next
void ui_widget_mgr_chart_set_next(int handle, uint8_t series_idx, int32_t value)
ต่อค่าถัดไปเข้าไปในชุดข้อมูลของ chart ชุดหนึ่ง
ui_widget_mgr_get_value
int32_t ui_widget_mgr_get_value(int handle)
อ่านค่าปัจจุบันของ widget; ค่า 0 หมายถึง handle ไม่ถูกต้องได้ด้วย
ui_widget_mgr_create
int ui_widget_mgr_create(const ipc_ui_create_t *cfg)
สร้าง widget จาก config; คืน handle 0-31, -1 เมื่อตารางเต็ม, -2 เมื่อชนิดไม่ถูกต้อง
ui_widget_mgr_set_size
void ui_widget_mgr_set_size(int handle, int16_t w, int16_t h)
เปลี่ยนขนาดของ widget
ui_widget_mgr_chart_add_series
int ui_widget_mgr_chart_add_series(int handle, uint32_t color)
เพิ่มชุดข้อมูลให้ Chart; คืนดัชนี 0-3 หรือ -1
ui_widget_mgr_needs_container
bool ui_widget_mgr_needs_container(void)
คืน true ขณะที่ parent เป็น NULL; ไม่มีผู้เรียกที่ใดเลย
ui_widget_mgr_get_object
lv_obj_t * ui_widget_mgr_get_object(int handle)
อ็อบเจ็กต์ LVGL ที่อยู่หลัง handle; เป็นเส้นทาง GET_TEXT สำหรับข้อความที่ผู้ใช้พิมพ์
ui_widget_mgr_list
int ui_widget_mgr_list(ipc_ui_widget_info_t *out, int max_items)
handle และชนิดของ widget ที่ทำงานอยู่ทุกตัว — เป็น backend ของ ui.list()
ui_widget_mgr_set_color
void ui_widget_mgr_set_color(int handle, uint32_t color)
ตั้งสีหลัก 0xRRGGBB
ui_widget_mgr_delete
void ui_widget_mgr_delete(int handle)
ลบ widget หนึ่งตัวและปล่อย handle ของมันคืน
ui_widget_mgr_set_all_visible
void ui_widget_mgr_set_all_visible(bool visible)
แสดงหรือซ่อน widget ที่จัดการอยู่ทุกตัว; เป็นตัวสลับมุมมองของการสลับคอนโซลบนหน้า Playground
ui_widget_mgr_set_sprite_image
void ui_widget_mgr_set_sprite_image(int handle, const lv_image_dsc_t *dsc)
สลับภาพของ sprite; descriptor มาจาก game_sprite_lookup()
ui_widget_mgr_get_parent
lv_obj_t * ui_widget_mgr_get_parent(void)
parent ปัจจุบันที่เป็น null ได้; ทุก call site ตรวจ null ของค่านี้
ui_widget_mgr_set_image
void ui_widget_mgr_set_image(int handle, uint16_t offset, const uint8_t *data, uint8_t len)
การส่ง RGB565 เป็นก้อน ๆ เข้าไปใน canvas ของ widget ชนิด Image
ui_widget_mgr_count
int ui_widget_mgr_count(void)
จำนวน handle ที่ยังใช้งานอยู่; ไม่มีผู้เรียกเลยที่ใด
dist
ipc_core
include
ui_widget_mgr.h
Generated by
1.18.0