SDK สำหรับ TESAIoT Dev Kit
คู่มืออ้างอิง API และ Tutorial (MTB & µPython)
Loading...
Searching...
No Matches

Functions

uint32_t ai_engine_set_models (uint32_t set_index, uint8_t *idx, uint32_t max)
 สมาชิกของ set ใด ๆ ตามลำดับใน registry; สมาชิกภาพที่กำหนดชัดแจ้งใช้แทนรายการที่คอมไพล์มา
const char * ai_engine_set_name (uint32_t set_index)
 ชื่อที่มนุษย์อ่านได้ของ set; คืน NULL สำหรับดัชนีที่ไม่ใช่ set
uint32_t ai_engine_set_members (uint8_t *idx, uint32_t max)
 ดัชนีใน registry ของสมาชิกใน set ที่ ACTIVE อยู่; ต้องตรวจเซนเซอร์ของสมาชิกแต่ละราย
int ai_engine_set_define (uint32_t set_index, const uint8_t *members, uint32_t n)
 กำหนดสมาชิกภาพแบบชัดแจ้งให้ set ณ เวลาทำงาน; ต้องอยู่ใน task context และเป็นแบบทั้งหมดหรือไม่เอาเลย
uint32_t ai_engine_set_members_defined (uint32_t set_index, uint8_t *out, uint32_t max)
 สมาชิกภาพแบบชัดแจ้งหากมีการนิยามไว้ มิฉะนั้นได้ 0 — เป็น ack เดียวของ set_define

Detailed Description

ฟังก์ชัน 5 ตัวสำหรับ set — คือกลุ่มโมเดลที่มีชื่อและทำงานพร้อมกัน ส่วนค่าคงที่ การแปลงค่ารูปเดิม 13/14/15 และข้อเท็จจริงที่หลีกไม่ได้ 2 ข้อ (ALL นิยามสมาชิกใหม่ไม่ได้; ai_engine_snapshot() ทำให้การตรวจพบหายไปเมื่ออยู่ใน set) อยู่ที่ ดัชนีเทียมของ set และการแปลงค่ารูปเดิม

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

Function Documentation

◆ ai_engine_set_models()

uint32_t ai_engine_set_models ( uint32_t set_index,
uint8_t * idx,
uint32_t max )

สมาชิกของ set ใด ๆ ตามลำดับใน registry; สมาชิกภาพที่กำหนดชัดแจ้งใช้แทนรายการที่คอมไพล์มา

Members of a set, in registry order. Returns how many were written.

ข้อกำหนดการเรียกใช้
เขียนรายชื่อสมาชิกที่มีผลอยู่ของ set ใด ๆ ตามลำดับใน registry และคืนค่าเป็นจำนวนที่เขียนได้ (คืน 0 สำหรับดัชนีที่ไม่ใช่ set) สมาชิกภาพที่กำหนดไว้อย่างชัดแจ้งผ่าน ai_engine_set_define() ใช้แทนรายการที่คอมไพล์มา มิฉะนั้นจึงใช้รายการที่คอมไพล์มา โมเดลที่ init() ล้มเหลวไปครั้งหนึ่งไม่ถูกตัดออกจาก set ตลอดรอบการบูต ภายในหนึ่งรอบเรนเดอร์ ให้อ่านค่า ai_engine_active() เพียงครั้งเดียว แล้วส่งค่านั้นเข้ามาที่นี่ — การเชื่อมโมเดลอาจสั่ง start/stop จาก task อื่นกลางรอบเรนเดอร์ได้ และการอ่านซ้ำจะทำให้ set ที่ใช้ตั้งป้ายเลย์เอาต์ไม่ตรงกับ set ที่ใช้คำนวณจำนวนแถว
const int a = ai_engine_active(); /* read ONCE per render */
uint8_t idx[8];
uint32_t n = (a >= (int)AI_PARALLEL_FIRST)
? ai_engine_set_models((uint32_t)a, idx, 8u) : 0u;
#define AI_PARALLEL_FIRST
Definition ai_engine.h:114
int ai_engine_active(void)
โมเดลที่ LOADED แล้ว หรือ -1; ตามหลัง requested อยู่หนึ่งช่วง cold-init
uint32_t ai_engine_set_models(uint32_t set_index, uint8_t *idx, uint32_t max)
สมาชิกของ set ใด ๆ ตามลำดับใน registry; สมาชิกภาพที่กำหนดชัดแจ้งใช้แทนรายการที่คอมไพล์มา
variant ที่ใช้ได้
mtb-mpy และ mtb-only

◆ ai_engine_set_name()

const char * ai_engine_set_name ( uint32_t set_index)

ชื่อที่มนุษย์อ่านได้ของ set; คืน NULL สำหรับดัชนีที่ไม่ใช่ set

Human name for a set, or NULL if that index is not one.

ข้อกำหนดการเรียกใช้
ชื่อที่มนุษย์อ่านได้ของ set; คืน NULL สำหรับดัชนีที่ไม่ใช่ set หน้า Edge AI กำหนดให้ต้องมีสมาชิก nn >= 2 และ ต้องมีชื่อที่ไม่ใช่ NULL ก่อนจึงจะแสดงแถวดรอปดาวน์ — set ที่มีสมาชิกน้อยกว่า 2 รายในอิมเมจนี้จะไม่ถูกนำเสนอ
variant ที่ใช้ได้
mtb-mpy และ mtb-only

◆ ai_engine_set_members()

uint32_t ai_engine_set_members ( uint8_t * idx,
uint32_t max )

ดัชนีใน registry ของสมาชิกใน set ที่ ACTIVE อยู่; ต้องตรวจเซนเซอร์ของสมาชิกแต่ละราย

Registry indices of the ACTIVE SET's members, up to max, whatever sensor each one reads – not microphone models. Returns the count. Callers that iterate this must test desc->sensor before doing anything sensor-specific with an entry.

ข้อกำหนดการเรียกใช้
ดัชนีใน registry ของสมาชิก เฉพาะ set ที่ ACTIVE อยู่ เท่านั้น สูงสุด max รายการ; คืนค่าเป็นจำนวนที่ได้ สมาชิกอาจอ่านเซนเซอร์ ตัวใดก็ได้ — ไม่ใช่เฉพาะไมโครโฟน — ผู้เรียกที่ทำสิ่งใดก็ตามที่ขึ้นกับชนิดของเซนเซอร์จึงต้องตรวจ desc->sensor ของแต่ละรายการที่ได้จาก ai_engine_model() ก่อน ใช้ร่วมกับ ai_engine_snapshot_model() และ ai_result_top_positive() เพื่อหาสมาชิกที่เป็นผลบวกซึ่งมีค่าความเชื่อมั่นสูงสุด ซึ่งเป็นสิ่งที่ edge_ai.result() รายงานเมื่ออยู่ใน set
uint8_t idx[8];
uint32_t n = ai_engine_set_members(idx, 8u);
for (uint32_t i = 0u; i < n; i++) {
const ai_model_desc_t *d = ai_engine_model(idx[i]);
if ((d == NULL) || !ai_engine_snapshot_model(idx[i], &r)) {
continue;
}
uint8_t cls;
int pct = ai_result_top_positive(&r, &cls); /* 0..100 */
}
const ai_model_desc_t * ai_engine_model(uint32_t index)
รายการใน registry คืน NULL หากอยู่นอกช่วง — และคืน NULL สำหรับดัชนีเทียมของ set
bool ai_engine_snapshot_model(uint32_t index, ai_result_t *out)
ผลตัดสินล่าสุดของโมเดลหนึ่งตัว — เป็นตัวอ่านที่ต้องใช้ภายใน set
uint32_t ai_engine_set_members(uint8_t *idx, uint32_t max)
ดัชนีใน registry ของสมาชิกใน set ที่ ACTIVE อยู่; ต้องตรวจเซนเซอร์ของสมาชิกแต่ละราย
Definition ai_engine.h:45
Definition ai_engine.h:74
variant ที่ใช้ได้
mtb-mpy และ mtb-only

◆ ai_engine_set_define()

int ai_engine_set_define ( uint32_t set_index,
const uint8_t * members,
uint32_t n )

กำหนดสมาชิกภาพแบบชัดแจ้งให้ set ณ เวลาทำงาน; ต้องอยู่ใน task context และเป็นแบบทั้งหมดหรือไม่เอาเลย

Give a set an explicit membership at run time, replacing the compiled one. Task context only. 1..8 members, all-or-nothing: one bad index refuses the whole definition. INTRUDER, ROOM and MIC only; returns -1 for AI_PARALLEL_ALL. Undefined sets keep their compiled membership exactly. Read the result back with ai_engine_set_members_defined().

ข้อกำหนดการเรียกใช้
กำหนดสมาชิกภาพแบบชัดแจ้ง ณ เวลาทำงานให้ set หนึ่ง แทนที่สมาชิกภาพที่คอมไพล์มา เรียกได้จาก task context เท่านั้น ห้ามเรียกจาก ISR หรือ callback ของ pipe สมาชิก 1..8 ราย ทั้งหมดหรือไม่เอาเลย: ทุกดัชนีถูกตรวจสอบ และดัชนีที่ผิดเพียงตัวเดียวทำให้ปฏิเสธการนิยามทั้งชุด ผู้อ่านที่อ่านอยู่ระหว่างการเรียกจะเห็นสมาชิกภาพเดิมหรือสมาชิกภาพใหม่ทั้งชุด ไม่เคยเห็นครึ่งหนึ่งของแต่ละแบบ กำหนดได้เฉพาะ INTRUDER, ROOM และ MIC AI_PARALLEL_ALL (252) คือโมเดลทุกตัวโดยนิยาม — การเรียกจะคืนค่า -1 เสมอ สำหรับค่านั้น เมื่อสำเร็จคืนค่าเป็นจำนวนสมาชิก ไม่มี ack event: การตอบรับอย่างเดียวที่มีคือการอ่านค่ากลับด้วย ai_engine_set_members_defined() ฝั่ง MicroPython edge_ai.set_define() ขับสิ่งนี้เป็นการสร้างด้วย 3 คำสั่ง (SET_BEGIN, SET_ADD หนึ่งครั้งต่อสมาชิกหนึ่งราย, SET_COMMIT) แล้วนำไปใช้ทั้งชุดตอน commit — ADD ที่ตกหล่นจะถูกจับได้ด้วยการอ่านกลับ Q_SET เท่านั้น นี่คือวิธีที่รองรับในการนำโมเดลที่ลงทะเบียนหรือ staged เข้ามาตอนทำงานไปไว้ใน set โดยใช้ดัชนีใน registry ของมัน
variant ที่ใช้ได้
mtb-mpy และ mtb-only

◆ ai_engine_set_members_defined()

uint32_t ai_engine_set_members_defined ( uint32_t set_index,
uint8_t * out,
uint32_t max )

สมาชิกภาพแบบชัดแจ้งหากมีการนิยามไว้ มิฉะนั้นได้ 0 — เป็น ack เดียวของ set_define

Explicit membership if one was defined, else 0.

ข้อกำหนดการเรียกใช้
สมาชิกภาพแบบชัดแจ้งหากเคยนิยามไว้ มิฉะนั้นได้ 0 = ไม่มีการเขียนทับ — ผู้เรียกจึงย้อนไปใช้ ai_engine_set_models() เพื่อเอาสมาชิกภาพที่มีผลอยู่ การอ่านกลับนี้เป็น ack เดียว ของ ai_engine_set_define() เรียกได้จาก CM55 context ใด ๆ (เป็นการอ่านธรรมดา) ฝั่ง MicroPython อ่านค่าเดียวกันผ่าน Q_SET
variant ที่ใช้ได้
mtb-mpy และ mtb-only