SDK สำหรับ TESAIoT Dev Kit
คู่มืออ้างอิง API และ Tutorial (MTB & µPython)
Loading...
Searching...
No Matches
radio_scheduler.h File Reference
#include <stdbool.h>
#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  radio_status_s
struct  radio_scheduler_config_t

Typedefs

typedef struct radio_status_s radio_status_t
typedef void(*) radio_boot_mode_persist_fn_t(radio_boot_mode_t mode)
typedef bool(*) radio_boot_mode_load_fn_t(radio_boot_mode_t *out)
typedef void(*) radio_scheduler_on_state_fn_t(const radio_status_t *st)

Enumerations

enum  radio_mode_t {
  RADIO_MODE_UNKNOWN = 0 , RADIO_MODE_BLE_ADV , RADIO_MODE_BLE_PAIRED , RADIO_MODE_SWITCHING_TO_WIFI ,
  RADIO_MODE_WIFI_ACTIVE , RADIO_MODE_SWITCHING_TO_BLE , RADIO_MODE_WIFI_FAILED
}
enum  radio_boot_mode_t { RADIO_BOOT_AUTO = 0 , RADIO_BOOT_FORCE_BLE = 1 , RADIO_BOOT_FORCE_WIFI = 2 }

Functions

bool radio_scheduler_init (const radio_scheduler_config_t *cfg)
 สร้างตัวชี้ขาด (arbiter) เรียกก่อน scheduler เริ่มทำงานได้ คืน true ทั้งเมื่อสำเร็จและเมื่อ init ซ้ำ
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 ของผู้ใช้ไลบรารี และจัดคิวการสลับโหมดต่อไปด้วยก็ได้
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 ออกมา
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
void radio_scheduler_set_on_state (radio_scheduler_on_state_fn_t cb)
 ติดตั้ง hook ของสถานะ ต้องเรียกก่อน radio_scheduler_init() มิฉะนั้นจะพลาดการเปลี่ยนสถานะครั้งแรก
const char * radio_mode_str (radio_mode_t m)
 ตารางแปลงโหมดเป็นสตริงล้วน ๆ คืน literal แบบ static ค่านอกช่วงคืน "invalid" — ใช้กับ s ได้อย่างปลอดภัย

Typedef Documentation

◆ radio_status_t

◆ radio_boot_mode_persist_fn_t

typedef void(*) radio_boot_mode_persist_fn_t(radio_boot_mode_t mode)

◆ radio_boot_mode_load_fn_t

typedef bool(*) radio_boot_mode_load_fn_t(radio_boot_mode_t *out)

◆ radio_scheduler_on_state_fn_t

typedef void(*) radio_scheduler_on_state_fn_t(const radio_status_t *st)

Enumeration Type Documentation

◆ radio_mode_t

Enumerator
RADIO_MODE_UNKNOWN 
RADIO_MODE_BLE_ADV 
RADIO_MODE_BLE_PAIRED 
RADIO_MODE_SWITCHING_TO_WIFI 
RADIO_MODE_WIFI_ACTIVE 
RADIO_MODE_SWITCHING_TO_BLE 
RADIO_MODE_WIFI_FAILED 

◆ radio_boot_mode_t

Enumerator
RADIO_BOOT_AUTO 
RADIO_BOOT_FORCE_BLE 
RADIO_BOOT_FORCE_WIFI