SDK สำหรับ TESAIoT Dev Kit
คู่มืออ้างอิง API และ Tutorial (ModusToolbox)
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 ไม่มี slot ให้นิยามได้; 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() ชนะขาด รายการจับคู่ชื่อที่คอมไพล์มา (ai_engine.c:1146-1149) การคลี่หาสมาชิกถูกสร้างใหม่ทุกครั้งที่เข้าสู่ set นั้น ไม่มีการแคชไว้ โมเดลที่ init() ล้มเหลวไปครั้งหนึ่งจึงไม่ถูกตัดออกไปตลอดรอบการบูต ภายในหนึ่งรอบเรนเดอร์ ให้อ่านค่า ai_engine_active() เพียงครั้งเดียว แล้วส่งค่านั้นเข้ามาที่นี่ — deepcraft task อาจสั่ง start/stop จาก task อื่นกลางรอบเรนเดอร์ได้ และการอ่านซ้ำจะทำให้ set ที่ใช้ตั้งป้ายเลย์เอาต์ไม่ตรงกับ set ที่ใช้คำนวณจำนวนแถว
variant ที่ใช้ได้
mtb-mpy และ mtb-only
ที่มา
ยกมาจาก page_edge_ai.c:567-575 (read-once); deepcraft_task.c:259-269 (คอมไพล์รวมอยู่ใน archive สำเร็จรูป ไม่ได้ส่งมอบมาเป็นซอร์ส)

◆ 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 หน้านี้กำหนดให้ต้องมีสมาชิก nn >= 2 และ ต้องมีชื่อที่ไม่ใช่ NULL ก่อนจึงจะแสดงแถวดรอปดาวน์ — set ที่คลี่ออกมาแล้วได้สมาชิกน้อยกว่า 2 รายในอิมเมจนี้จะไม่ถูกนำเสนอ
variant ที่ใช้ได้
mtb-mpy และ mtb-only
ที่มา
ยกมาจาก page_edge_ai.c:1036-1040 (คอมไพล์รวมอยู่ใน archive สำเร็จรูป ไม่ได้ส่งมอบมาเป็นซอร์ส)

◆ 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() ก่อน นี่คือการกระจายเรียกที่เส้นทาง Q_RESULT ฝั่ง MicroPython ใช้ร่วมกับ ai_engine_snapshot_model() และ ai_result_top_positive() เพื่อรายงานสมาชิกที่เป็นผลบวกซึ่งมีค่าความเชื่อมั่นสูงสุด
variant ที่ใช้ได้
mtb-mpy และ mtb-only
ที่มา
ยกมาจาก deepcraft_task.c:451-467 (คอมไพล์รวมอยู่ใน archive สำเร็จรูป ไม่ได้ส่งมอบมาเป็นซอร์ส)

◆ 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. Undefined sets keep their compiled membership exactly.

ข้อกำหนดการเรียกใช้
กำหนดสมาชิกภาพแบบชัดแจ้ง ณ เวลาทำงานให้ set หนึ่ง แทนที่สมาชิกภาพที่คอมไพล์มา เรียกได้จาก task context เท่านั้น — ตัวฟังก์ชันจับ taskENTER_CRITICAL() คร่อมการเผยแพร่ค่า (ai_engine.c:1059-1075) สมาชิก 1..8 ราย ทั้งหมดหรือไม่เอาเลย: ทุกดัชนีถูกตรวจสอบ และดัชนีที่ผิดเพียงตัวเดียวทำให้ปฏิเสธการนิยามทั้งชุด AI_PARALLEL_ALL (252) ไม่มี slot — การเรียกจะคืนค่า -1 เสมอ สำหรับค่านั้น (set_slot(), ai_engine.c:1040-1048, จับคู่เฉพาะ INTRUDER/ROOM/MIC) ไม่มี ack event: การตอบรับอย่างเดียวที่มีคือการอ่านค่ากลับด้วย ai_engine_set_members_defined() ฝั่ง MicroPython edge_ai.set_define() ขับสิ่งนี้เป็นการสร้างด้วย 3 คำสั่ง (SET_BEGIN, SET_ADD หนึ่งครั้งต่อสมาชิกหนึ่งราย เว้นจังหวะที่ 5 ms, SET_COMMIT) แล้วนำไปใช้ทั้งชุดตอน commit — ADD ที่ตกหล่นจะถูกจับได้ด้วยการอ่านกลับ Q_SET เท่านั้น เหตุที่ต้องมีฟังก์ชันนี้: set ที่คอมไพล์มาจับคู่ด้วยชื่อ โมเดลที่ staged (อัปโหลดเข้ามา) จึงเข้าร่วมการเฝ้าระวังได้ทางการนิยามแบบชัดแจ้งเท่านั้น (ai_engine.c:1092-1127)
variant ที่ใช้ได้
mtb-mpy และ mtb-only
ที่มา
ยกมาจาก deepcraft_task.c:731-749 (คอมไพล์รวมอยู่ใน archive สำเร็จรูป ไม่ได้ส่งมอบมาเป็นซอร์ส)

◆ 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 ใด ๆ (เป็นการอ่านธรรมดา)
variant ที่ใช้ได้
mtb-mpy และ mtb-only
ที่มา
ยกมาจาก deepcraft_task.c:334-353 (Q_SET) (คอมไพล์รวมอยู่ใน archive สำเร็จรูป ไม่ได้ส่งมอบมาเป็นซอร์ส)