2023-01-18 21:37:23 +00:00
|
|
|
#include "mesh/http/WiFiAPClient.h"
|
2020-09-18 17:48:39 +00:00
|
|
|
#include "NodeDB.h"
|
2022-01-04 01:35:20 +00:00
|
|
|
#include "RTC.h"
|
2021-08-02 18:28:57 +00:00
|
|
|
#include "concurrency/Periodic.h"
|
2020-09-13 04:43:41 +00:00
|
|
|
#include "configuration.h"
|
|
|
|
#include "main.h"
|
2023-01-09 22:26:47 +00:00
|
|
|
#include "mesh/api/WiFiServerAPI.h"
|
2023-01-18 21:37:23 +00:00
|
|
|
#include "mesh/http/WebServer.h"
|
2022-01-02 07:10:37 +00:00
|
|
|
#include "mqtt/MQTT.h"
|
2020-09-27 07:55:41 +00:00
|
|
|
#include "target_specific.h"
|
2020-10-19 04:39:02 +00:00
|
|
|
#include <ESPmDNS.h>
|
2020-09-19 01:51:42 +00:00
|
|
|
#include <WiFi.h>
|
2021-12-29 03:24:10 +00:00
|
|
|
#include <WiFiUdp.h>
|
2023-01-18 21:37:23 +00:00
|
|
|
#include <esp_wifi.h>
|
2020-09-18 17:48:39 +00:00
|
|
|
|
2022-04-14 02:23:35 +00:00
|
|
|
#ifndef DISABLE_NTP
|
|
|
|
#include <NTPClient.h>
|
|
|
|
#endif
|
|
|
|
|
2021-08-02 18:28:57 +00:00
|
|
|
using namespace concurrency;
|
|
|
|
|
2020-09-18 17:48:39 +00:00
|
|
|
static void WiFiEvent(WiFiEvent_t event);
|
2020-09-13 04:43:41 +00:00
|
|
|
|
2021-12-29 03:24:10 +00:00
|
|
|
// NTP
|
|
|
|
WiFiUDP ntpUDP;
|
2022-04-14 02:23:35 +00:00
|
|
|
|
|
|
|
#ifndef DISABLE_NTP
|
2022-09-09 10:51:41 +00:00
|
|
|
NTPClient timeClient(ntpUDP, config.network.ntp_server);
|
2022-04-14 02:23:35 +00:00
|
|
|
#endif
|
2021-12-29 03:24:10 +00:00
|
|
|
|
2020-09-20 04:58:21 +00:00
|
|
|
uint8_t wifiDisconnectReason = 0;
|
|
|
|
|
2020-10-12 03:38:09 +00:00
|
|
|
// Stores our hostname
|
2020-10-19 04:39:02 +00:00
|
|
|
char ourHost[16];
|
2020-09-27 07:55:41 +00:00
|
|
|
|
2020-12-13 06:37:07 +00:00
|
|
|
bool APStartupComplete = 0;
|
|
|
|
|
2022-11-17 19:09:08 +00:00
|
|
|
unsigned long lastrun_ntp = 0;
|
|
|
|
|
2022-12-16 19:28:28 +00:00
|
|
|
bool needReconnect = true; // If we create our reconnector, run it once at the beginning
|
2021-08-02 18:28:57 +00:00
|
|
|
|
2023-01-18 20:35:51 +00:00
|
|
|
WiFiUDP syslogClient;
|
|
|
|
Syslog syslog(syslogClient);
|
|
|
|
|
2022-12-16 19:28:28 +00:00
|
|
|
Periodic *wifiReconnect;
|
2022-11-18 17:03:30 +00:00
|
|
|
|
2021-08-02 18:28:57 +00:00
|
|
|
static int32_t reconnectWiFi()
|
|
|
|
{
|
2022-09-09 10:51:41 +00:00
|
|
|
const char *wifiName = config.network.wifi_ssid;
|
|
|
|
const char *wifiPsw = config.network.wifi_psk;
|
2021-12-29 03:24:10 +00:00
|
|
|
|
2022-11-17 16:48:46 +00:00
|
|
|
if (config.network.wifi_enabled && needReconnect) {
|
2023-01-18 21:37:23 +00:00
|
|
|
|
2021-08-02 18:28:57 +00:00
|
|
|
if (!*wifiPsw) // Treat empty password as no password
|
|
|
|
wifiPsw = NULL;
|
|
|
|
|
2022-11-17 16:48:46 +00:00
|
|
|
needReconnect = false;
|
2021-08-02 18:28:57 +00:00
|
|
|
|
2022-11-17 16:48:46 +00:00
|
|
|
// Make sure we clear old connection credentials
|
|
|
|
WiFi.disconnect(false, true);
|
2023-01-18 21:37:23 +00:00
|
|
|
LOG_INFO("Reconnecting to WiFi access point %s\n", wifiName);
|
2022-11-23 22:47:50 +00:00
|
|
|
|
2023-01-09 22:26:47 +00:00
|
|
|
delay(5000);
|
|
|
|
|
|
|
|
if (!WiFi.isConnected()) {
|
|
|
|
WiFi.begin(wifiName, wifiPsw);
|
|
|
|
}
|
2021-08-02 18:28:57 +00:00
|
|
|
}
|
|
|
|
|
2022-04-14 02:23:35 +00:00
|
|
|
#ifndef DISABLE_NTP
|
2022-11-22 16:19:24 +00:00
|
|
|
if (WiFi.isConnected() && (((millis() - lastrun_ntp) > 43200000) || (lastrun_ntp == 0))) { // every 12 hours
|
2023-01-18 21:37:23 +00:00
|
|
|
LOG_DEBUG("Updating NTP time from %s\n", config.network.ntp_server);
|
2022-01-04 01:35:20 +00:00
|
|
|
if (timeClient.update()) {
|
2022-12-30 02:41:37 +00:00
|
|
|
LOG_DEBUG("NTP Request Success - Setting RTCQualityNTP if needed\n");
|
2022-01-04 01:35:20 +00:00
|
|
|
|
|
|
|
struct timeval tv;
|
|
|
|
tv.tv_sec = timeClient.getEpochTime();
|
|
|
|
tv.tv_usec = 0;
|
|
|
|
|
|
|
|
perhapsSetRTC(RTCQualityNTP, &tv);
|
2022-11-17 19:09:08 +00:00
|
|
|
lastrun_ntp = millis();
|
2021-12-29 03:24:10 +00:00
|
|
|
|
2022-01-04 01:35:20 +00:00
|
|
|
} else {
|
2022-12-30 02:41:37 +00:00
|
|
|
LOG_DEBUG("NTP Update failed\n");
|
2022-01-04 01:35:20 +00:00
|
|
|
}
|
2021-12-29 03:24:10 +00:00
|
|
|
}
|
2022-04-14 02:23:35 +00:00
|
|
|
#endif
|
2021-12-29 03:24:10 +00:00
|
|
|
|
2022-11-17 19:09:08 +00:00
|
|
|
if (config.network.wifi_enabled && !WiFi.isConnected()) {
|
|
|
|
return 1000; // check once per second
|
|
|
|
} else {
|
|
|
|
return 300000; // every 5 minutes
|
|
|
|
}
|
2021-08-02 18:28:57 +00:00
|
|
|
}
|
|
|
|
|
2020-09-19 01:51:42 +00:00
|
|
|
bool isWifiAvailable()
|
2020-09-17 03:15:00 +00:00
|
|
|
{
|
2020-12-13 02:33:52 +00:00
|
|
|
|
2022-10-25 09:53:22 +00:00
|
|
|
if (config.network.wifi_enabled && (config.network.wifi_ssid[0])) {
|
2021-05-24 01:42:25 +00:00
|
|
|
return true;
|
2020-09-17 03:15:00 +00:00
|
|
|
} else {
|
2021-05-24 01:42:25 +00:00
|
|
|
return false;
|
2020-09-17 03:15:00 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Disable WiFi
|
2020-09-15 03:27:49 +00:00
|
|
|
void deinitWifi()
|
|
|
|
{
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("WiFi deinit\n");
|
2021-12-24 02:18:07 +00:00
|
|
|
|
2020-11-27 22:49:44 +00:00
|
|
|
if (isWifiAvailable()) {
|
2022-11-18 17:03:30 +00:00
|
|
|
WiFi.disconnect(true);
|
2020-11-27 22:49:44 +00:00
|
|
|
WiFi.mode(WIFI_MODE_NULL);
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("WiFi Turned Off\n");
|
2020-11-27 22:49:44 +00:00
|
|
|
// WiFi.printDiag(Serial);
|
|
|
|
}
|
2020-09-15 03:27:49 +00:00
|
|
|
}
|
|
|
|
|
2021-08-18 02:59:56 +00:00
|
|
|
static void onNetworkConnected()
|
2021-08-18 00:04:09 +00:00
|
|
|
{
|
|
|
|
if (!APStartupComplete) {
|
|
|
|
// Start web server
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("Starting network services\n");
|
2021-08-18 00:04:09 +00:00
|
|
|
|
|
|
|
// start mdns
|
|
|
|
if (!MDNS.begin("Meshtastic")) {
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_ERROR("Error setting up MDNS responder!\n");
|
2021-08-18 00:04:09 +00:00
|
|
|
} else {
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("mDNS responder started\n");
|
|
|
|
LOG_INFO("mDNS Host: Meshtastic.local\n");
|
2021-08-18 00:04:09 +00:00
|
|
|
MDNS.addService("http", "tcp", 80);
|
|
|
|
MDNS.addService("https", "tcp", 443);
|
|
|
|
}
|
|
|
|
|
2022-04-14 02:23:35 +00:00
|
|
|
#ifndef DISABLE_NTP
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("Starting NTP time client\n");
|
2021-12-29 03:24:10 +00:00
|
|
|
timeClient.begin();
|
2022-04-14 02:23:35 +00:00
|
|
|
timeClient.setUpdateInterval(60 * 60); // Update once an hour
|
|
|
|
#endif
|
2021-12-29 03:24:10 +00:00
|
|
|
|
2023-01-18 21:37:23 +00:00
|
|
|
if (config.network.rsyslog_server[0]) {
|
2023-01-18 20:35:51 +00:00
|
|
|
LOG_INFO("Starting Syslog client\n");
|
|
|
|
// Defaults
|
|
|
|
int serverPort = 514;
|
2023-02-04 23:11:00 +00:00
|
|
|
const char *serverAddr = config.network.rsyslog_server;
|
2023-01-18 20:35:51 +00:00
|
|
|
String server = String(serverAddr);
|
|
|
|
int delimIndex = server.indexOf(':');
|
|
|
|
if (delimIndex > 0) {
|
|
|
|
String port = server.substring(delimIndex + 1, server.length());
|
|
|
|
server[delimIndex] = 0;
|
|
|
|
serverPort = port.toInt();
|
|
|
|
serverAddr = server.c_str();
|
|
|
|
}
|
|
|
|
syslog.server(serverAddr, serverPort);
|
2023-01-31 13:20:04 +00:00
|
|
|
syslog.deviceHostname(getDeviceName());
|
2023-01-18 20:35:51 +00:00
|
|
|
syslog.appName("Meshtastic");
|
|
|
|
syslog.defaultPriority(LOGLEVEL_USER);
|
|
|
|
syslog.enable();
|
|
|
|
}
|
|
|
|
|
2021-08-18 00:04:09 +00:00
|
|
|
initWebServer();
|
|
|
|
initApiServer();
|
|
|
|
|
|
|
|
APStartupComplete = true;
|
2022-01-02 07:10:37 +00:00
|
|
|
}
|
2021-08-18 02:59:56 +00:00
|
|
|
|
|
|
|
// FIXME this is kinda yucky, instead we should just have an observable for 'wifireconnected'
|
2022-01-02 07:10:37 +00:00
|
|
|
if (mqtt)
|
2021-08-18 02:59:56 +00:00
|
|
|
mqtt->reconnect();
|
2021-08-18 00:04:09 +00:00
|
|
|
}
|
|
|
|
|
2020-09-17 03:15:00 +00:00
|
|
|
// Startup WiFi
|
2022-10-25 09:53:22 +00:00
|
|
|
bool initWifi()
|
2020-09-13 04:43:41 +00:00
|
|
|
{
|
2022-10-25 09:53:22 +00:00
|
|
|
if (config.network.wifi_enabled && config.network.wifi_ssid[0]) {
|
2020-12-13 02:33:52 +00:00
|
|
|
|
2022-09-09 10:51:41 +00:00
|
|
|
const char *wifiName = config.network.wifi_ssid;
|
|
|
|
const char *wifiPsw = config.network.wifi_psk;
|
2020-09-18 22:33:03 +00:00
|
|
|
|
2021-08-17 23:58:21 +00:00
|
|
|
createSSLCert();
|
|
|
|
|
2022-12-16 19:28:28 +00:00
|
|
|
esp_wifi_set_storage(WIFI_STORAGE_RAM); // Disable flash storage for WiFi credentials
|
|
|
|
|
2021-05-24 01:21:52 +00:00
|
|
|
if (!*wifiPsw) // Treat empty password as no password
|
|
|
|
wifiPsw = NULL;
|
|
|
|
|
2022-10-25 09:53:22 +00:00
|
|
|
if (*wifiName) {
|
|
|
|
uint8_t dmac[6];
|
|
|
|
getMacAddr(dmac);
|
2023-01-16 09:55:40 +00:00
|
|
|
snprintf(ourHost, sizeof(ourHost), "Meshtastic-%02x%02x", dmac[4], dmac[5]);
|
2022-10-25 09:53:22 +00:00
|
|
|
|
|
|
|
WiFi.mode(WIFI_MODE_STA);
|
|
|
|
WiFi.setHostname(ourHost);
|
|
|
|
WiFi.onEvent(WiFiEvent);
|
2023-01-09 22:26:47 +00:00
|
|
|
WiFi.setAutoReconnect(true);
|
2022-11-05 14:02:06 +00:00
|
|
|
WiFi.setSleep(false);
|
2023-01-21 17:39:58 +00:00
|
|
|
if (config.network.address_mode == meshtastic_Config_NetworkConfig_AddressMode_STATIC &&
|
|
|
|
config.network.ipv4_config.ip != 0) {
|
2023-01-18 21:37:23 +00:00
|
|
|
WiFi.config(config.network.ipv4_config.ip, config.network.ipv4_config.gateway, config.network.ipv4_config.subnet,
|
|
|
|
config.network.ipv4_config.dns,
|
2022-11-08 20:53:44 +00:00
|
|
|
config.network.ipv4_config.dns); // Wifi wants two DNS servers... set both to the same value
|
2022-11-05 14:02:06 +00:00
|
|
|
}
|
2022-10-25 09:53:22 +00:00
|
|
|
|
|
|
|
// This is needed to improve performance.
|
|
|
|
esp_wifi_set_ps(WIFI_PS_NONE); // Disable radio power saving
|
|
|
|
|
|
|
|
WiFi.onEvent(
|
|
|
|
[](WiFiEvent_t event, WiFiEventInfo_t info) {
|
2023-01-09 22:26:47 +00:00
|
|
|
LOG_WARN("WiFi lost connection. Reason: %d\n", info.wifi_sta_disconnected.reason);
|
2022-10-25 09:53:22 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
If we are disconnected from the AP for some reason,
|
|
|
|
save the error code.
|
|
|
|
|
|
|
|
For a reference to the codes:
|
|
|
|
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/wifi.html#wi-fi-reason-code
|
|
|
|
*/
|
|
|
|
wifiDisconnectReason = info.wifi_sta_disconnected.reason;
|
|
|
|
},
|
|
|
|
WiFiEvent_t::ARDUINO_EVENT_WIFI_STA_DISCONNECTED);
|
|
|
|
|
2022-12-30 02:41:37 +00:00
|
|
|
LOG_DEBUG("JOINING WIFI soon: ssid=%s\n", wifiName);
|
2022-10-25 09:53:22 +00:00
|
|
|
wifiReconnect = new Periodic("WifiConnect", reconnectWiFi);
|
2020-09-13 04:43:41 +00:00
|
|
|
}
|
2021-08-17 23:58:21 +00:00
|
|
|
return true;
|
|
|
|
} else {
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("Not using WIFI\n");
|
2021-08-17 23:58:21 +00:00
|
|
|
return false;
|
|
|
|
}
|
2020-09-13 04:43:41 +00:00
|
|
|
}
|
|
|
|
|
2020-09-26 07:01:02 +00:00
|
|
|
// Called by the Espressif SDK to
|
2020-09-18 17:48:39 +00:00
|
|
|
static void WiFiEvent(WiFiEvent_t event)
|
2020-09-13 04:43:41 +00:00
|
|
|
{
|
2022-12-30 02:41:37 +00:00
|
|
|
LOG_DEBUG("WiFi-Event %d: ", event);
|
2020-09-13 04:43:41 +00:00
|
|
|
|
|
|
|
switch (event) {
|
2022-12-16 19:28:28 +00:00
|
|
|
case ARDUINO_EVENT_WIFI_READY:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("WiFi interface ready\n");
|
2020-09-18 17:48:39 +00:00
|
|
|
break;
|
2022-12-16 19:28:28 +00:00
|
|
|
case ARDUINO_EVENT_WIFI_SCAN_DONE:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("Completed scan for access points\n");
|
2020-09-18 17:48:39 +00:00
|
|
|
break;
|
2022-12-16 19:28:28 +00:00
|
|
|
case ARDUINO_EVENT_WIFI_STA_START:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("WiFi station started\n");
|
2020-09-18 17:48:39 +00:00
|
|
|
break;
|
2022-12-16 19:28:28 +00:00
|
|
|
case ARDUINO_EVENT_WIFI_STA_STOP:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("WiFi station stopped\n");
|
2023-01-18 20:35:51 +00:00
|
|
|
syslog.disable();
|
2020-09-18 17:48:39 +00:00
|
|
|
break;
|
2022-12-16 19:28:28 +00:00
|
|
|
case ARDUINO_EVENT_WIFI_STA_CONNECTED:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("Connected to access point\n");
|
2020-09-18 17:48:39 +00:00
|
|
|
break;
|
2022-12-16 19:28:28 +00:00
|
|
|
case ARDUINO_EVENT_WIFI_STA_DISCONNECTED:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("Disconnected from WiFi access point\n");
|
2022-11-17 16:48:46 +00:00
|
|
|
WiFi.disconnect(false, true);
|
2023-01-18 20:35:51 +00:00
|
|
|
syslog.disable();
|
2021-08-02 18:28:57 +00:00
|
|
|
needReconnect = true;
|
2022-11-17 19:09:08 +00:00
|
|
|
wifiReconnect->setIntervalFromNow(1000);
|
2020-09-18 17:48:39 +00:00
|
|
|
break;
|
2022-12-16 19:28:28 +00:00
|
|
|
case ARDUINO_EVENT_WIFI_STA_AUTHMODE_CHANGE:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("Authentication mode of access point has changed\n");
|
2020-09-18 17:48:39 +00:00
|
|
|
break;
|
2022-12-16 19:28:28 +00:00
|
|
|
case ARDUINO_EVENT_WIFI_STA_GOT_IP:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("Obtained IP address: ", WiFi.localIPv6());
|
2021-08-18 02:59:56 +00:00
|
|
|
onNetworkConnected();
|
2020-09-18 17:48:39 +00:00
|
|
|
break;
|
2022-12-16 19:28:28 +00:00
|
|
|
case ARDUINO_EVENT_WIFI_STA_GOT_IP6:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("Obtained IP6 address: %s", WiFi.localIPv6());
|
2022-12-16 19:28:28 +00:00
|
|
|
break;
|
|
|
|
case ARDUINO_EVENT_WIFI_STA_LOST_IP:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("Lost IP address and IP address is reset to 0\n");
|
2022-11-17 16:48:46 +00:00
|
|
|
WiFi.disconnect(false, true);
|
2023-01-18 20:35:51 +00:00
|
|
|
syslog.disable();
|
2022-11-05 14:02:06 +00:00
|
|
|
needReconnect = true;
|
2022-11-17 19:09:08 +00:00
|
|
|
wifiReconnect->setIntervalFromNow(1000);
|
2020-09-18 17:48:39 +00:00
|
|
|
break;
|
2022-12-16 19:28:28 +00:00
|
|
|
case ARDUINO_EVENT_WPS_ER_SUCCESS:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("WiFi Protected Setup (WPS): succeeded in enrollee mode\n");
|
2020-09-18 17:48:39 +00:00
|
|
|
break;
|
2022-12-16 19:28:28 +00:00
|
|
|
case ARDUINO_EVENT_WPS_ER_FAILED:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("WiFi Protected Setup (WPS): failed in enrollee mode\n");
|
2020-09-18 17:48:39 +00:00
|
|
|
break;
|
2022-12-16 19:28:28 +00:00
|
|
|
case ARDUINO_EVENT_WPS_ER_TIMEOUT:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("WiFi Protected Setup (WPS): timeout in enrollee mode\n");
|
2020-09-18 17:48:39 +00:00
|
|
|
break;
|
2022-12-16 19:28:28 +00:00
|
|
|
case ARDUINO_EVENT_WPS_ER_PIN:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("WiFi Protected Setup (WPS): pin code in enrollee mode\n");
|
2020-09-18 17:48:39 +00:00
|
|
|
break;
|
2022-12-16 19:28:28 +00:00
|
|
|
case ARDUINO_EVENT_WPS_ER_PBC_OVERLAP:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("WiFi Protected Setup (WPS): push button overlap in enrollee mode\n");
|
2022-12-16 19:28:28 +00:00
|
|
|
break;
|
|
|
|
case ARDUINO_EVENT_WIFI_AP_START:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("WiFi access point started\n");
|
2020-09-18 17:48:39 +00:00
|
|
|
break;
|
2022-12-16 19:28:28 +00:00
|
|
|
case ARDUINO_EVENT_WIFI_AP_STOP:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("WiFi access point stopped\n");
|
2020-09-18 17:48:39 +00:00
|
|
|
break;
|
2022-12-16 19:28:28 +00:00
|
|
|
case ARDUINO_EVENT_WIFI_AP_STACONNECTED:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("Client connected\n");
|
2020-09-18 17:48:39 +00:00
|
|
|
break;
|
2022-12-16 19:28:28 +00:00
|
|
|
case ARDUINO_EVENT_WIFI_AP_STADISCONNECTED:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("Client disconnected\n");
|
2020-09-18 17:48:39 +00:00
|
|
|
break;
|
2022-12-16 19:28:28 +00:00
|
|
|
case ARDUINO_EVENT_WIFI_AP_STAIPASSIGNED:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("Assigned IP address to client\n");
|
2020-09-18 17:48:39 +00:00
|
|
|
break;
|
2022-12-16 19:28:28 +00:00
|
|
|
case ARDUINO_EVENT_WIFI_AP_PROBEREQRECVED:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("Received probe request\n");
|
2020-09-18 17:48:39 +00:00
|
|
|
break;
|
2022-12-16 19:28:28 +00:00
|
|
|
case ARDUINO_EVENT_WIFI_AP_GOT_IP6:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("IPv6 is preferred\n");
|
2020-09-18 17:48:39 +00:00
|
|
|
break;
|
2022-12-16 19:28:28 +00:00
|
|
|
case ARDUINO_EVENT_WIFI_FTM_REPORT:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("Fast Transition Management report\n");
|
2022-12-16 19:28:28 +00:00
|
|
|
break;
|
|
|
|
case ARDUINO_EVENT_ETH_START:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("Ethernet started\n");
|
2020-09-18 17:48:39 +00:00
|
|
|
break;
|
2022-12-16 19:28:28 +00:00
|
|
|
case ARDUINO_EVENT_ETH_STOP:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("Ethernet stopped\n");
|
2020-09-18 17:48:39 +00:00
|
|
|
break;
|
2022-12-16 19:28:28 +00:00
|
|
|
case ARDUINO_EVENT_ETH_CONNECTED:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("Ethernet connected\n");
|
2020-09-18 17:48:39 +00:00
|
|
|
break;
|
2022-12-16 19:28:28 +00:00
|
|
|
case ARDUINO_EVENT_ETH_DISCONNECTED:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("Ethernet disconnected\n");
|
2020-09-18 17:48:39 +00:00
|
|
|
break;
|
2022-12-16 19:28:28 +00:00
|
|
|
case ARDUINO_EVENT_ETH_GOT_IP:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("Obtained IP address (ARDUINO_EVENT_ETH_GOT_IP)\n");
|
2022-12-16 19:28:28 +00:00
|
|
|
break;
|
|
|
|
case ARDUINO_EVENT_ETH_GOT_IP6:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("Obtained IP6 address (ARDUINO_EVENT_ETH_GOT_IP6)\n");
|
2022-12-16 19:28:28 +00:00
|
|
|
break;
|
|
|
|
case ARDUINO_EVENT_SC_SCAN_DONE:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("SmartConfig: Scan done\n");
|
2022-12-16 19:28:28 +00:00
|
|
|
break;
|
|
|
|
case ARDUINO_EVENT_SC_FOUND_CHANNEL:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("SmartConfig: Found channel\n");
|
2022-12-16 19:28:28 +00:00
|
|
|
break;
|
|
|
|
case ARDUINO_EVENT_SC_GOT_SSID_PSWD:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("SmartConfig: Got SSID and password\n");
|
2022-12-16 19:28:28 +00:00
|
|
|
break;
|
|
|
|
case ARDUINO_EVENT_SC_SEND_ACK_DONE:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("SmartConfig: Send ACK done\n");
|
2022-12-16 19:28:28 +00:00
|
|
|
break;
|
|
|
|
case ARDUINO_EVENT_PROV_INIT:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("Provisioning: Init\n");
|
2022-12-16 19:28:28 +00:00
|
|
|
break;
|
|
|
|
case ARDUINO_EVENT_PROV_DEINIT:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("Provisioning: Stopped\n");
|
2022-12-16 19:28:28 +00:00
|
|
|
break;
|
|
|
|
case ARDUINO_EVENT_PROV_START:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("Provisioning: Started\n");
|
2022-12-16 19:28:28 +00:00
|
|
|
break;
|
|
|
|
case ARDUINO_EVENT_PROV_END:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("Provisioning: End\n");
|
2022-12-16 19:28:28 +00:00
|
|
|
break;
|
|
|
|
case ARDUINO_EVENT_PROV_CRED_RECV:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("Provisioning: Credentials received\n");
|
2022-12-16 19:28:28 +00:00
|
|
|
break;
|
|
|
|
case ARDUINO_EVENT_PROV_CRED_FAIL:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("Provisioning: Credentials failed\n");
|
2022-12-16 19:28:28 +00:00
|
|
|
break;
|
|
|
|
case ARDUINO_EVENT_PROV_CRED_SUCCESS:
|
2022-12-30 16:27:07 +00:00
|
|
|
LOG_INFO("Provisioning: Credentials success\n");
|
2020-09-18 17:48:39 +00:00
|
|
|
break;
|
|
|
|
default:
|
|
|
|
break;
|
2020-09-13 04:43:41 +00:00
|
|
|
}
|
2020-09-18 22:33:03 +00:00
|
|
|
}
|
|
|
|
|
2020-09-26 07:01:02 +00:00
|
|
|
uint8_t getWifiDisconnectReason()
|
2020-09-20 04:58:21 +00:00
|
|
|
{
|
|
|
|
return wifiDisconnectReason;
|
2022-03-14 19:31:13 +00:00
|
|
|
}
|