feat(wifi): Standalone-AP im Treiber und im Startpfad
This commit is contained in:
+26
-3
@@ -111,6 +111,19 @@ int nl_app_set_wifi_credentials(const char *ssid, const char *pass)
|
||||
return nl_app_save_settings();
|
||||
}
|
||||
|
||||
int nl_app_clear_standalone(void)
|
||||
{
|
||||
bool was_set;
|
||||
|
||||
nl_app_lock();
|
||||
was_set = s_settings.standalone != 0;
|
||||
s_settings.standalone = 0;
|
||||
nl_app_unlock();
|
||||
if (!was_set)
|
||||
return 0; /* nichts zu schreiben - der Flash-Satz steht schon richtig */
|
||||
return nl_app_save_settings();
|
||||
}
|
||||
|
||||
void nl_app_factory_reset(void)
|
||||
{
|
||||
printf("factory reset\r\n");
|
||||
@@ -228,10 +241,20 @@ static void app_task(void *arg)
|
||||
boot = s_settings;
|
||||
nl_app_unlock();
|
||||
nl_mdns_set_name(boot.name);
|
||||
if (boot.wifi_ssid[0])
|
||||
nl_wifi_start(boot.wifi_ssid, boot.wifi_pass, NINLIGHT_AP_PASSWORD);
|
||||
if (boot.standalone)
|
||||
/* Kein Verbindungsversuch: die Lampe steht ausdruecklich allein. Die gespeicherten
|
||||
* Zugangsdaten gehen trotzdem mit - der Standalone-Zweig der Zustandsmaschine
|
||||
* verbindet nicht, aber sie zaehlen wieder, sobald der Modus ueber die API
|
||||
* zurueckgenommen wird; ohne sie landete die Lampe dann im offenen
|
||||
* Onboarding-AP, obwohl ihr WLAN bekannt ist. */
|
||||
nl_wifi_start(boot.wifi_ssid, boot.wifi_pass,
|
||||
boot.ap_pass[0] ? boot.ap_pass : NINLIGHT_AP_PASSWORD,
|
||||
boot.ap_ssid, boot.ap_channel, true, boot.standalone_pulse != 0);
|
||||
else if (boot.wifi_ssid[0])
|
||||
nl_wifi_start(boot.wifi_ssid, boot.wifi_pass, NINLIGHT_AP_PASSWORD, "", 0, false, false);
|
||||
else
|
||||
nl_wifi_start(NINLIGHT_WIFI_SSID, NINLIGHT_WIFI_PASSWORD, NINLIGHT_AP_PASSWORD);
|
||||
nl_wifi_start(NINLIGHT_WIFI_SSID, NINLIGHT_WIFI_PASSWORD, NINLIGHT_AP_PASSWORD,
|
||||
"", 0, false, false);
|
||||
}
|
||||
|
||||
nl_http_server_start(nl_app_api_ctx());
|
||||
|
||||
Reference in New Issue
Block a user