Fork of the excellent esp8266-react - https://github.com/rjwats/esp8266-react
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.6 KiB

6 years ago
  1. #ifndef WiFiStatus_h
  2. #define WiFiStatus_h
  3. #if defined(ESP8266)
  4. #include <ESP8266WiFi.h>
  5. #include <ESPAsyncTCP.h>
  6. #elif defined(ESP_PLATFORM)
  7. #include <WiFi.h>
  8. #include <AsyncTCP.h>
  9. #endif
  10. #include <ESPAsyncWebServer.h>
  11. #include <ArduinoJson.h>
  12. #include <AsyncArduinoJson6.h>
  13. #include <IPAddress.h>
  14. #include <SecurityManager.h>
  15. #define MAX_WIFI_STATUS_SIZE 1024
  16. #define WIFI_STATUS_SERVICE_PATH "/rest/wifiStatus"
  17. class WiFiStatus {
  18. public:
  19. WiFiStatus(AsyncWebServer *server, SecurityManager* securityManager);
  20. private:
  21. AsyncWebServer* _server;
  22. SecurityManager* _securityManager;
  23. #if defined(ESP8266)
  24. // handler refrences for logging important WiFi events over serial
  25. WiFiEventHandler _onStationModeConnectedHandler;
  26. WiFiEventHandler _onStationModeDisconnectedHandler;
  27. WiFiEventHandler _onStationModeGotIPHandler;
  28. // static functions for logging WiFi events to the UART
  29. static void onStationModeConnected(const WiFiEventStationModeConnected& event);
  30. static void onStationModeDisconnected(const WiFiEventStationModeDisconnected& event);
  31. static void onStationModeGotIP(const WiFiEventStationModeGotIP& event);
  32. #elif defined(ESP_PLATFORM)
  33. // static functions for logging WiFi events to the UART
  34. static void onStationModeConnected(WiFiEvent_t event, WiFiEventInfo_t info);
  35. static void onStationModeDisconnected(WiFiEvent_t event, WiFiEventInfo_t info);
  36. static void onStationModeGotIP(WiFiEvent_t event, WiFiEventInfo_t info);
  37. #endif
  38. void wifiStatus(AsyncWebServerRequest *request);
  39. };
  40. #endif // end WiFiStatus_h