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

Functions

void ai_engine_set_sensor_rate (uint32_t interval_ms)
 ตั้งช่วงเวลาการป้อนข้อมูลของเซนเซอร์วัดความเร่ง; ให้เรียกเดี่ยว ๆ และมีเจ้าของรายเดียว
void ai_engine_resume_sensor (void)
 resume จังหวะค่าเริ่มต้นแบบยืนเดี่ยว; ห้ามเรียกติดกันกับการตั้งอัตรา

Detailed Description

ฟังก์ชัน 2 ตัวที่ส่งคำขอเรื่องอัตราเซนเซอร์ไปยัง CM33 แบบอะซิงโครนัส หากส่งติดกัน resume อาจยกเลิกการเปลี่ยนอัตรา ข้อเท็จจริงข้อเดียวนั้นคือข้อกำหนดการเรียกใช้ทั้งหมดของหัวข้อนี้

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

Function Documentation

◆ ai_engine_set_sensor_rate()

void ai_engine_set_sensor_rate ( uint32_t interval_ms)

ตั้งช่วงเวลาการป้อนข้อมูลของเซนเซอร์วัดความเร่ง; ให้เรียกเดี่ยว ๆ และมีเจ้าของรายเดียว

Set the accelerometer feed interval (20 = 50 Hz model rate, 100 = 10 Hz dashboard). Callable from any CM55 task; it also resumes the sensor push. Call it on its own: an ai_engine_resume_sensor() issued right after it can cancel it.

ข้อกำหนดการเรียกใช้
ตั้งช่วงเวลาการป้อนข้อมูลของเซนเซอร์วัดความเร่ง (accelerometer) — เป็น 20 (อัตราของโมเดลที่ 50 Hz) หรือ 100 (dashboard ที่ 10 Hz) คำขอนี้ถูกส่งไปยัง CM33 แบบอะซิงโครนัส และยังทำให้การส่งข้อมูลเซนเซอร์กลับมาทำงานต่อด้วย เรียกได้จาก CM55 task ใด ๆ ห้ามเรียกติดกันกับ ai_engine_resume_sensor(): resume ที่ออกไปขณะที่คำขอนี้ยังค้างอยู่อาจยกเลิกมัน แล้ว CM33 จะหยุดการส่งข้อมูลเซนเซอร์แทนการเปลี่ยนอัตรา ให้การเปลี่ยนอัตรามีเจ้าของรายเดียว — เฟิร์มแวร์ที่ส่งมอบตัดสินอัตราจากจุดเดียว: ยกขึ้นเป็น 50 Hz เมื่อโมเดลที่เริ่มทำงาน (หรือสมาชิกรายใดก็ตามของ set ที่เริ่มทำงาน) เป็น AI_SENSOR_IMU หลังจาก ai_engine_start() คืนค่า true แล้วเท่านั้น และลดลงทุกครั้งที่ ai_engine_stop()
variant ที่ใช้ได้
mtb-mpy และ mtb-only

◆ ai_engine_resume_sensor()

void ai_engine_resume_sensor ( void )

resume จังหวะค่าเริ่มต้นแบบยืนเดี่ยว; ห้ามเรียกติดกันกับการตั้งอัตรา

Restore the default sensor cadence after a model session. Use it on its own, not in the same breath as ai_engine_set_sensor_rate().

ข้อกำหนดการเรียกใช้
คืนจังหวะเซนเซอร์ค่าเริ่มต้นหลังจบเซสชันของโมเดล ด้วยการส่งคำขอ resume ไม่มีผู้เรียกอยู่ที่ใดเลยในเฟิร์มแวร์ที่ส่งมอบจริง (ไม่ปรากฏใน consumer_must_provide.txt) กฎห้ามใช้อย่างชัดแจ้ง: ห้ามเรียกทันทีหลัง ai_engine_set_sensor_rate() — คำขอทั้งสองเป็นแบบอะซิงโครนัส และ resume อาจยกเลิกคำขอเปลี่ยนอัตราที่ยังค้างอยู่ ซึ่งเคยทำให้การป้อนข้อมูล Edge AI ฝั่ง MicroPython ล้วนค้างไป (result() == None) บนฮาร์ดแวร์จริง อีกทั้งยังไม่จำเป็นต้องเรียกหลังการเปลี่ยนอัตรา: set_sensor_rate() ทำให้การส่งข้อมูลเซนเซอร์กลับมาทำงานต่ออยู่แล้ว การใช้ที่ถูกต้องคือการส่งแบบยืนเดี่ยว โดยไม่มีคำขอเปลี่ยนอัตราค้างอยู่ (เช่น เส้นทางออกจากหน้าที่ไม่ต้องการเปลี่ยนอัตรา) เรียกจาก CM55 task context
variant ที่ใช้ได้
mtb-mpy และ mtb-only
ตัวอย่าง (เขียนขึ้นเอง — ไม่มี call site ในของที่ส่งมอบจริง)

ตัวอย่างด้านล่างแสดง anti-pattern: ลำดับที่กำกับว่า WRONG ไว้ในกรอบคือสิ่งที่ห้ามเขียน ส่วนการเรียกเดี่ยว ๆ ที่ตามมาคือรูปแบบเดียวที่ถูกต้อง

static void bento_ex_ai_engine_resume_sensor(void)
{
/* WRONG — the two requests can cancel each other (see the box):
*
* ai_engine_set_sensor_rate(100u); // rate request, in flight...
* ai_engine_resume_sensor(); // ...can cancel it -> PAUSE
*
* RIGHT — set_sensor_rate alone already resumes the sensor push:
*
* ai_engine_set_sensor_rate(100u); // walk down to dashboard rate
*
* RIGHT — resume on its own, with no rate change in flight
* (page-leave path, no rate change wanted): */
}