max80_web.cpp 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #include <Arduino.h>
  2. #include <WiFi.h>
  3. #include <AsyncTCP.h>
  4. #include <ESPAsyncWebServer.h>
  5. #include <AsyncElegantOTA.h>
  6. #include "max80_config.h"
  7. #include "max80_web.h"
  8. #include "max80_func.h"
  9. #include "max80_webcontent.h"
  10. #include "max80_gpio.h"
  11. static const char TAG[] = __FILE__;
  12. extern WiFiClass WiFi;
  13. extern AsyncWebServer webserver;
  14. extern max80::web max80_web;
  15. extern max80::std_max80 max80_std;
  16. extern TaskHandle_t OTA_Task ;
  17. extern AsyncElegantOtaClass AsyncElegantOTA;
  18. extern TaskHandle_t OTA_Task ;
  19. extern AsyncWebServer webserver;
  20. extern AsyncWebSocket ws("/ws");
  21. static void web_onEvent(AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventType type,void *arg, uint8_t *data, size_t len) {
  22. switch (type) {
  23. case WS_EVT_CONNECT:
  24. ESP_LOGI(TAG,"WebSocket client #%u connected from %s\n", client->id(), client->remoteIP().toString().c_str());
  25. break;
  26. case WS_EVT_DISCONNECT:
  27. ESP_LOGI(TAG,"WebSocket client #%u disconnected\n", client->id());
  28. break;
  29. case WS_EVT_DATA:
  30. ESP_LOGI(TAG,"Handle data");
  31. break;
  32. case WS_EVT_PONG:
  33. case WS_EVT_ERROR:
  34. break;
  35. }
  36. }
  37. namespace max80
  38. {
  39. void OTAtask(void * parameter){
  40. AsyncElegantOTA.loop();
  41. ws.cleanupClients();
  42. }
  43. void web::initWebSocket() {
  44. ws.onEvent(web_onEvent);
  45. webserver.addHandler(&ws);
  46. }
  47. void web::init(){
  48. initWebSocket();
  49. webserver.begin();
  50. AsyncElegantOTA.begin(&webserver);
  51. }
  52. }