105 const char *password,
106 const char *security,
radio_boot_mode_t radio_scheduler_get_boot_mode(void)
The persisted boot mode; with the shipped NULL hooks every boot loads as AUTO.
bool radio_scheduler_request_mode(radio_mode_t target)
Queue an asynchronous mode transition; confirm via the hook or by polling the mode.
void radio_scheduler_set_on_state(radio_scheduler_on_state_fn_t cb)
Install the state hook; must precede radio_scheduler_init() or the first transition is missed.
void radio_scheduler_set_boot_mode(radio_boot_mode_t mode)
Persist a boot preference through the persist hook; with NULL hooks nothing survives reboot.
void radio_scheduler_get_status(radio_status_t *out)
Full status snapshot under the scheduler mutex, 50 ms timeout; copy ssid out.
bool radio_scheduler_init(const radio_scheduler_config_t *cfg)
Create the arbiter (legal pre-scheduler); true on success or double-init.
radio_mode_t radio_scheduler_get_mode(void)
Lock-free mode read — the canonical single-RF Wi-Fi/BLE exclusivity guard.
bool radio_scheduler_set_wifi_creds(const char *ssid, const char *password, const char *security, bool auto_switch)
Save Wi-Fi credentials through the consumer's LFS hook, optionally queueing the switch.
const char * radio_mode_str(radio_mode_t m)
Pure mode-to-string map; static literal, out-of-range returns "invalid" — s is safe.
radio_mode_t
Definition radio_scheduler.h:34
@ RADIO_MODE_WIFI_FAILED
Definition radio_scheduler.h:41
@ RADIO_MODE_UNKNOWN
Definition radio_scheduler.h:35
@ RADIO_MODE_SWITCHING_TO_WIFI
Definition radio_scheduler.h:38
@ RADIO_MODE_SWITCHING_TO_BLE
Definition radio_scheduler.h:40
@ RADIO_MODE_WIFI_ACTIVE
Definition radio_scheduler.h:39
@ RADIO_MODE_BLE_ADV
Definition radio_scheduler.h:36
@ RADIO_MODE_BLE_PAIRED
Definition radio_scheduler.h:37
void(*) radio_scheduler_on_state_fn_t(const radio_status_t *st)
Definition radio_scheduler.h:129
bool(*) radio_boot_mode_load_fn_t(radio_boot_mode_t *out)
Definition radio_scheduler.h:69
struct radio_status_s radio_status_t
void(*) radio_boot_mode_persist_fn_t(radio_boot_mode_t mode)
Definition radio_scheduler.h:68
radio_boot_mode_t
Definition radio_scheduler.h:44
@ RADIO_BOOT_FORCE_WIFI
Definition radio_scheduler.h:51
@ RADIO_BOOT_FORCE_BLE
Definition radio_scheduler.h:48
@ RADIO_BOOT_AUTO
Definition radio_scheduler.h:46
Definition radio_scheduler.h:71
radio_boot_mode_load_fn_t load_boot_mode
Definition radio_scheduler.h:76
radio_boot_mode_persist_fn_t persist_boot_mode
Definition radio_scheduler.h:75
Definition radio_scheduler.h:57
uint8_t wifi_fail_count
Definition radio_scheduler.h:63
radio_mode_t mode
Definition radio_scheduler.h:58
const char * ssid
Definition radio_scheduler.h:60
bool ble_paired
Definition radio_scheduler.h:62
uint32_t ipv4
Definition radio_scheduler.h:61