|
SDK สำหรับ TESAIoT Dev Kit
คู่มืออ้างอิง API และ Tutorial (MTB & µPython)
|
Functions | |
| void | radio_scheduler_set_on_state (radio_scheduler_on_state_fn_t cb) |
| ติดตั้ง hook ของสถานะ ต้องเรียกก่อน radio_scheduler_init() มิฉะนั้นจะพลาดการเปลี่ยนสถานะครั้งแรก | |
| bool | radio_scheduler_init (const radio_scheduler_config_t *cfg) |
| สร้างตัวชี้ขาด (arbiter) เรียกก่อน scheduler เริ่มทำงานได้ คืน true ทั้งเมื่อสำเร็จและเมื่อ init ซ้ำ | |
| void | nus_radio_emit_state_event (const struct radio_status_s *st) |
| hook on_state ที่ส่งมอบจริง — ใช้เป็นพอยน์เตอร์ฟังก์ชันเท่านั้น ห้ามเรียกโดยตรง | |
| radio_mode_t | radio_scheduler_get_mode (void) |
| อ่านโหมดโดยไม่ต้องจับ lock — เป็นตัวกัน (guard) มาตรฐานของความเป็นเอกสิทธิ์ระหว่าง Wi-Fi กับ BLE บน RF เดียว | |
| void | radio_scheduler_get_status (radio_status_t *out) |
| snapshot สถานะเต็มชุดภายใต้ mutex ของ scheduler มี timeout 50 ms ต้องคัดลอก ssid ออกมา | |
| bool | radio_scheduler_request_mode (radio_mode_t target) |
| จัดคิวการเปลี่ยนโหมดแบบอะซิงโครนัส ให้ยืนยันผลผ่าน hook หรือด้วยการวนถามค่าโหมด | |
| bool | radio_scheduler_set_wifi_creds (const char *ssid, const char *password, const char *security, bool auto_switch) |
| บันทึกข้อมูลรับรอง Wi-Fi ผ่าน hook LFS ของผู้ใช้ไลบรารี และจัดคิวการสลับโหมดต่อไปด้วยก็ได้ | |
| void | radio_scheduler_set_boot_mode (radio_boot_mode_t mode) |
| คงค่าโหมดบูตที่ต้องการไว้ผ่าน hook สำหรับการคงค่า ถ้า hook เป็น NULL จะไม่มีอะไรรอดข้ามการบูตใหม่ | |
| radio_boot_mode_t | radio_scheduler_get_boot_mode (void) |
| โหมดบูตที่คงค่าไว้ เมื่อ hook เป็น NULL ตามที่ส่งมอบจริง ทุกการบูตจะโหลดเป็น AUTO | |
| const char * | radio_mode_str (radio_mode_t m) |
| ตารางแปลงโหมดเป็นสตริงล้วน ๆ คืน literal แบบ static ค่านอกช่วงคืน "invalid" — ใช้กับ s ได้อย่างปลอดภัย | |
สิบ symbol: ตัวชี้ขาด (arbiter) ระหว่าง BLE กับ Wi-Fi บน RF เดียว (radio_scheduler_*, radio_mode_str) และตัวส่ง event สถานะของมัน (nus_radio_emit_state_event) คอมไพล์เฉพาะเมื่อ ENABLE_PAGE_BENTO_BUDDY=1 (ค่าตั้งต้นคือ 0, proj_cm33_ns/Makefile:64, :305) ให้ build ใหม่หลังจาก make getlibs — ดู Flag gate (อ่านก่อน)
การประกาศ: radio_scheduler.h (radio_scheduler_* ทั้งหมด, radio_mode_str และชนิด radio_status_t / radio_scheduler_config_t) กับ nus_commands.h (nus_radio_emit_state_event) ส่วนการนำไปสร้างจริงใน radio_scheduler.c / nus_commands.c ถูกเก็บไว้ใน libbento_secure.a
symbol 3 ตัวคือ radio_scheduler_set_on_state(), radio_scheduler_init() และ nus_radio_emit_state_event() ปรากฏอยู่ในบล็อกเดียวกันของที่ส่งมอบจริง (proj_cm33_ns/main.c:325-357) การบันทึกทั้งสามไว้ด้วยกันจึงตรงกับสิ่งที่เฟิร์มแวร์ทำ บล็อกนั้นเรนเดอร์ไว้ครั้งเดียวดังนี้:
| void radio_scheduler_set_on_state | ( | radio_scheduler_on_state_fn_t | cb | ) |
ติดตั้ง hook ของสถานะ ต้องเรียกก่อน radio_scheduler_init() มิฉะนั้นจะพลาดการเปลี่ยนสถานะครั้งแรก
| bool radio_scheduler_init | ( | const radio_scheduler_config_t * | cfg | ) |
สร้างตัวชี้ขาด (arbiter) เรียกก่อน scheduler เริ่มทำงานได้ คืน true ทั้งเมื่อสำเร็จและเมื่อ init ซ้ำ
| void nus_radio_emit_state_event | ( | const struct radio_status_s * | st | ) |
hook on_state ที่ส่งมอบจริง — ใช้เป็นพอยน์เตอร์ฟังก์ชันเท่านั้น ห้ามเรียกโดยตรง
| radio_mode_t radio_scheduler_get_mode | ( | void | ) |
อ่านโหมดโดยไม่ต้องจับ lock — เป็นตัวกัน (guard) มาตรฐานของความเป็นเอกสิทธิ์ระหว่าง Wi-Fi กับ BLE บน RF เดียว
ตัวนิยามที่อยู่ใน archive (เรนเดอร์ไว้พร้อมกับ radio_scheduler_get_status()) แสดงการอ่านที่ไม่ต้องใช้ mutex
| void radio_scheduler_get_status | ( | radio_status_t * | out | ) |
snapshot สถานะเต็มชุดภายใต้ mutex ของ scheduler มี timeout 50 ms ต้องคัดลอก ssid ออกมา
| bool radio_scheduler_request_mode | ( | radio_mode_t | target | ) |
จัดคิวการเปลี่ยนโหมดแบบอะซิงโครนัส ให้ยืนยันผลผ่าน hook หรือด้วยการวนถามค่าโหมด
| bool radio_scheduler_set_wifi_creds | ( | const char * | ssid, |
| const char * | password, | ||
| const char * | security, | ||
| bool | auto_switch ) |
บันทึกข้อมูลรับรอง Wi-Fi ผ่าน hook LFS ของผู้ใช้ไลบรารี และจัดคิวการสลับโหมดต่อไปด้วยก็ได้
| void radio_scheduler_set_boot_mode | ( | radio_boot_mode_t | mode | ) |
คงค่าโหมดบูตที่ต้องการไว้ผ่าน hook สำหรับการคงค่า ถ้า hook เป็น NULL จะไม่มีอะไรรอดข้ามการบูตใหม่
| radio_boot_mode_t radio_scheduler_get_boot_mode | ( | void | ) |
โหมดบูตที่คงค่าไว้ เมื่อ hook เป็น NULL ตามที่ส่งมอบจริง ทุกการบูตจะโหลดเป็น AUTO
| const char * radio_mode_str | ( | radio_mode_t | m | ) |
ตารางแปลงโหมดเป็นสตริงล้วน ๆ คืน literal แบบ static ค่านอกช่วงคืน "invalid" — ใช้กับ s ได้อย่างปลอดภัย