46 lines
1.4 KiB
C++
46 lines
1.4 KiB
C++
#ifndef WiFiStatus_h
|
|
#define WiFiStatus_h
|
|
|
|
#ifdef ESP32
|
|
#include <WiFi.h>
|
|
#include <AsyncTCP.h>
|
|
#elif defined(ESP8266)
|
|
#include <ESP8266WiFi.h>
|
|
#include <ESPAsyncTCP.h>
|
|
#endif
|
|
|
|
#include <ArduinoJson.h>
|
|
#include <AsyncJson.h>
|
|
#include <ESPAsyncWebServer.h>
|
|
#include <IPUtils.h>
|
|
#include <SecurityManager.h>
|
|
|
|
#define MAX_WIFI_STATUS_SIZE 1024
|
|
#define WIFI_STATUS_SERVICE_PATH "/rest/wifiStatus"
|
|
|
|
class WiFiStatus {
|
|
public:
|
|
WiFiStatus(AsyncWebServer* server, SecurityManager* securityManager);
|
|
|
|
private:
|
|
#ifdef ESP32
|
|
// static functions for logging WiFi events to the UART
|
|
static void onStationModeConnected(WiFiEvent_t event, WiFiEventInfo_t info);
|
|
static void onStationModeDisconnected(WiFiEvent_t event, WiFiEventInfo_t info);
|
|
static void onStationModeGotIP(WiFiEvent_t event, WiFiEventInfo_t info);
|
|
#elif defined(ESP8266)
|
|
// handler refrences for logging important WiFi events over serial
|
|
WiFiEventHandler _onStationModeConnectedHandler;
|
|
WiFiEventHandler _onStationModeDisconnectedHandler;
|
|
WiFiEventHandler _onStationModeGotIPHandler;
|
|
// static functions for logging WiFi events to the UART
|
|
static void onStationModeConnected(const WiFiEventStationModeConnected& event);
|
|
static void onStationModeDisconnected(const WiFiEventStationModeDisconnected& event);
|
|
static void onStationModeGotIP(const WiFiEventStationModeGotIP& event);
|
|
#endif
|
|
|
|
void wifiStatus(AsyncWebServerRequest* request);
|
|
};
|
|
|
|
#endif // end WiFiStatus_h
|