I use the following to turn AP on and off.
Took me a while to work out that the device config ap state does not change when you turn AP on/off, so Iām doing it explicitly. Probably means that this is not the right way to do it
static void enable_ap(void)
{
struct mgos_config_wifi_ap ap_cfg;
memcpy(&ap_cfg, mgos_sys_config_get_wifi_ap(), sizeof(ap_cfg));
ap_cfg.enable = true;
int result = mgos_wifi_setup_ap(&ap_cfg);
// Seems to be the easiest way to track AP enabled/disabled but it's not
// updated when the AP is turned on like your would expect
mgos_sys_config_set_wifi_ap_enable(true);
LOG(LL_INFO, ("Enabling AP"));
}
static void disable_ap(void)
{
struct mgos_config_wifi_ap ap_cfg;
memcpy(&ap_cfg, mgos_sys_config_get_wifi_ap(), sizeof(ap_cfg));
ap_cfg.enable = false;
int result = mgos_wifi_setup_ap(&ap_cfg);
// Seems to be the easiest way to track AP enabled/disabled but it's not
// updated when the AP is turned on like your would expect
mgos_sys_config_set_wifi_ap_enable(false);
LOG(LL_INFO, ("Disabling AP"));
}