SDK สำหรับ TESAIoT Dev Kit
คู่มืออ้างอิง API และ Tutorial (MTB & µPython)
Loading...
Searching...
No Matches
ดัชนีเทียมของ set และการแปลงค่ารูปเดิม

set คือกลุ่มโมเดลที่มีชื่อและทำงานพร้อมกัน set อยู่ที่ปลายบนสุดของช่วงค่า uint8 ไม่ใช่แค่เหนือ registry ขึ้นไป:

ค่าคงที่ ค่า สมาชิก
AI_PARALLEL_MIC 255 โมเดลไมโครโฟนทุกตัว
AI_PARALLEL_ROOM 254 radar บวกกับโมเดลไมโครโฟนที่เหมาะกับห้อง
AI_PARALLEL_INTRUDER 253 motion, radar และโมเดลแจ้งเตือน (มีโมเดล IMU อยู่ด้วย — จึงยกอัตราการ push เซนเซอร์ของ CM33 ขึ้น)
AI_PARALLEL_ALL 252 โมเดลที่ลงทะเบียนไว้ทุกตัว — เป็นการเฝ้าระวังที่กว้างที่สุด
AI_PARALLEL_FIRST = AI_PARALLEL_ALL ค่าใดที่เท่ากับหรือมากกว่านี้คือ set ไม่ใช่โมเดล

รูปเดิม 13 / 14 / 15 (INTRUDER / ROOM / MIC) ยังใช้ได้อยู่: เฟิร์มแวร์แปลงค่าให้ และ ai_engine_active() ตอบกลับด้วยค่าในตารางข้างต้น ดังนั้น edge_ai.select(13) แล้วตามด้วย active() == 253 จึง ถูกต้อง ไม่ใช่ความไม่ตรงกัน ทั้งฝั่ง MicroPython และฝั่ง CM55 แปลงค่าด้วย model_link_resolve_set() ตัวเดียวกันใน ipc_model_link_defs.h และ ai_engine.h ตรวจด้วย _Static_assert ว่าค่าคงที่ของตนตรงกับนิยามนั้น set ใช้ได้เฉพาะในอิมเมจที่ build พร้อมโมเดลไมโครโฟนอย่างน้อยหนึ่งตัว

ข้อเท็จจริงที่หลีกไม่ได้ 2 ข้อเกี่ยวกับ set:

  • AI_PARALLEL_ALL (252) นิยามสมาชิกใหม่ไม่ได้ — ai_engine_set_define() คืนค่า -1 ให้ค่านี้โดยไม่มีเงื่อนไข กำหนดได้เฉพาะ INTRUDER, ROOM และ MIC
  • ai_engine_snapshot() ใช้ไม่ได้ภายใน set: มันคืนผลตัดสินล่าสุดจากโมเดลตัวใดก็ได้ สมาชิกที่เงียบอยู่ 3 รายจึงกลบการตรวจพบหนึ่งครั้งไปก่อนที่จะมีใครอ่านค่า การตรวจพบนั้นไม่ได้มาช้า แต่หายไปแล้ว ให้ใช้ ai_engine_snapshot_model() ทีละสมาชิก