SDK สำหรับ TESAIoT Dev Kit
คู่มืออ้างอิง API และ Tutorial (ModusToolbox)
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 จึง ถูกต้อง ไม่ใช่ความไม่ตรงกัน การแปลงค่านี้มีอยู่สองที่ — model_link_resolve_set() ฝั่ง MicroPython และเส้นทางรับค่าฝั่ง CM55 ที่ deepcraft_task.c:785-787 — ซึ่งถูกทำให้ตรงกันด้วยบล็อก _Static_assert ที่ ai_engine.h:121-126; ครั้งที่ทั้งสองที่เคลื่อนออกจากกัน การ select ของ Sound Watch ทุกครั้งรายงานว่า "not confirmed" ทั้งที่บอร์ดสลับโมเดลไปแล้วจริง ๆ

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

  • AI_PARALLEL_ALL (252) ไม่มี slot ที่นิยามได้ai_engine_set_define() คืนค่า -1 ให้ค่านี้โดยไม่มีเงื่อนไข archive รุ่นที่มีมาก่อน ALL เคยปฏิเสธ 252 บนฮาร์ดแวร์; archive ที่ส่งมอบจริงถูกตัดใหม่เมื่อ 2026-08-28 และรองรับค่านี้แล้ว
  • ai_engine_snapshot() ใช้ไม่ได้ภายใน set: มันเป็นแบบ last-writer-wins สมาชิกที่เงียบอยู่ 3 รายจึงกลบการตรวจพบหนึ่งครั้งไปก่อนที่จะมีใครอ่านค่า การตรวจพบนั้นไม่ได้มาช้า แต่หายไปแล้ว ให้ใช้ ai_engine_snapshot_model() ทีละสมาชิก