SDK สำหรับ TESAIoT Dev Kit
คู่มืออ้างอิง API และ Tutorial (ModusToolbox)
Loading...
Searching...
No Matches
callback ของหน้า Edge AI

Functions

lv_obj_t * page_edge_ai_create (void)
 ห้ามเรียกโดยตรง — ให้ลงทะเบียนผ่าน pm_register() เป็น create callback ของหน้านั้น
void page_edge_ai_render (sensorhub_snapshot_t *snap)
 รับ snapshot หนึ่งชุดต่อ 33 ms ที่ page manager เก็บมา
void page_edge_ai_destroy (void)
 destroy callback ที่ page manager เรียกเมื่อออกจากหน้านี้

Detailed Description

Header: page_edge_ai.h (คอมไพล์เฉพาะเมื่อ BENTO_HAS_EDGE_AI = 1) ตัวโค้ดจริง: page_edge_ai.c ที่อยู่ใน archive (libbento_cm55.a) ใช้หน้าเดียวสำหรับโมเดล DEEPCRAFT ทุกตัวที่คอมไพล์เข้ามา — เป็นข้อบังคับ ไม่ใช่ทางเลือกเชิงรูปแบบ เพราะ PM_MAX_PAGES เท่ากับ 20 และโปรเจกต์ลงทะเบียนไปแล้ว 18 หน้า การแยกหน้าต่อหนึ่งโมเดลจึงจะลงทะเบียนไม่สำเร็จอย่างเงียบ ๆ และได้การ์ดที่ใช้งานไม่ได้

variant ที่ใช้ได้
mtb-mpy และ mtb-only

Function Documentation

◆ page_edge_ai_create()

lv_obj_t * page_edge_ai_create ( void )

ห้ามเรียกโดยตรง — ให้ลงทะเบียนผ่าน pm_register() เป็น create callback ของหน้านั้น

ข้อกำหนดการเรียกใช้
ห้ามเรียกโดยตรง ให้ลงทะเบียนเป็นหนึ่งใน callback 3 ตัวของ page_def_t ผ่าน pm_register(&s_pm, PAGE_ID_EDGE_AI, &def) ภายในตัวกัน (guard) BENTO_HAS_EDGE_AI page manager เป็นเจ้าของวงจรชีวิต (lifecycle) และเป็นผู้เรียกฟังก์ชันนี้ใน GFX-task context เมื่อมีการเปลี่ยนหน้า ตามกฎสองไฟล์ การลงทะเบียนใน sensorhub_ui.c ต้องมีการ์ดที่ตรงกันใน page_home.c ด้วย มิฉะนั้นหน้านั้นจะมีอยู่แต่เข้าถึงไม่ได้
variant ที่ใช้ได้
mtb-mpy และ mtb-only
/* ...context: inside sensorhub_ui_init() page registration ... */
#if defined(BENTO_HAS_EDGE_AI) && (BENTO_HAS_EDGE_AI == 1)
/* Edge AI hub — ONE page hosting every compiled-in DEEPCRAFT model. */
{
page_def_t def = {
.name = "Edge AI",
.subtitle = "On-device inference",
.accent_color = UI_COLOR_ACCENT_PURPLE,
.create_cb = page_edge_ai_create,
.render_cb = page_edge_ai_render,
.destroy_cb = page_edge_ai_destroy,
};
pm_register(&s_pm, PAGE_ID_EDGE_AI, &def);
}

◆ page_edge_ai_render()

void page_edge_ai_render ( sensorhub_snapshot_t * snap)

รับ snapshot หนึ่งชุดต่อ 33 ms ที่ page manager เก็บมา

ข้อกำหนดการเรียกใช้
รับ sensorhub_snapshot_t ที่ page manager เก็บมาใน tick ขนาด 33 ms ของมัน — เป็น snapshot หนึ่งชุดต่อหนึ่ง tick ตามที่ ipc_sensorhub_snapshot() อนุญาต ถูกเรียกโดย page manager เท่านั้น ทำงานใน GFX-task context
variant ที่ใช้ได้
mtb-mpy และ mtb-only
/* ...context: inside sensorhub_ui_init() page registration ... */
#if defined(BENTO_HAS_EDGE_AI) && (BENTO_HAS_EDGE_AI == 1)
/* Edge AI hub — ONE page hosting every compiled-in DEEPCRAFT model. */
{
page_def_t def = {
.name = "Edge AI",
.subtitle = "On-device inference",
.accent_color = UI_COLOR_ACCENT_PURPLE,
.create_cb = page_edge_ai_create,
.render_cb = page_edge_ai_render,
.destroy_cb = page_edge_ai_destroy,
};
pm_register(&s_pm, PAGE_ID_EDGE_AI, &def);
}

◆ page_edge_ai_destroy()

void page_edge_ai_destroy ( void )

destroy callback ที่ page manager เรียกเมื่อออกจากหน้านี้

ข้อกำหนดการเรียกใช้
ถูกเรียกโดย page manager เมื่อออกจากหน้านี้ไปหน้าอื่น ใน GFX-task context ขณะที่อ็อบเจ็กต์ LVGL ยังใช้งานได้อยู่
variant ที่ใช้ได้
mtb-mpy และ mtb-only
/* ...context: inside sensorhub_ui_init() page registration ... */
#if defined(BENTO_HAS_EDGE_AI) && (BENTO_HAS_EDGE_AI == 1)
/* Edge AI hub — ONE page hosting every compiled-in DEEPCRAFT model. */
{
page_def_t def = {
.name = "Edge AI",
.subtitle = "On-device inference",
.accent_color = UI_COLOR_ACCENT_PURPLE,
.create_cb = page_edge_ai_create,
.render_cb = page_edge_ai_render,
.destroy_cb = page_edge_ai_destroy,
};
pm_register(&s_pm, PAGE_ID_EDGE_AI, &def);
}