SDK for TESAIoT Dev Kit
API reference & tutorials (ModusToolbox)
Loading...
Searching...
No Matches

Functions

lv_obj_t * page_edge_ai_create (void)
 Never called directly — registered via pm_register() as the page's create callback.
void page_edge_ai_render (sensorhub_snapshot_t *snap)
 Receives the page manager's one 33 ms snapshot.
void page_edge_ai_destroy (void)
 Page-manager destroy callback on navigate-away.

Detailed Description

Header: page_edge_ai.h (compiled only when BENTO_HAS_EDGE_AI = 1). Implementation: archived page_edge_ai.c (libbento_cm55.a). One page for every compiled-in DEEPCRAFT model — a hard requirement, not a style choice: PM_MAX_PAGES is 20 and the project already registers 18, so per-model pages would silently fail to register and produce dead cards.

Variant
mtb-mpy and mtb-only

Function Documentation

◆ page_edge_ai_create()

lv_obj_t * page_edge_ai_create ( void )

Never called directly — registered via pm_register() as the page's create callback.

Contract
Never called directly. Registered as one member of a page_def_t callback triple via pm_register(&s_pm, PAGE_ID_EDGE_AI, &def), inside a BENTO_HAS_EDGE_AI guard. The page manager owns the lifecycle and invokes it in GFX-task context on navigation. Per the dual-file rule, the registration in sensorhub_ui.c needs a matching card in page_home.c or the page exists but cannot be reached.
Variant
mtb-mpy and 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)

Receives the page manager's one 33 ms snapshot.

Contract
Receives the sensorhub_snapshot_t the page manager took on its 33 ms tick — the one snapshot per tick that ipc_sensorhub_snapshot() permits. Invoked by the page manager only; GFX-task context.
Variant
mtb-mpy and 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 )

Page-manager destroy callback on navigate-away.

Contract
Invoked by the page manager on navigate-away, GFX-task context, while the LVGL objects are still valid.
Variant
mtb-mpy and 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);
}