53 lines
1.1 KiB
C++
Executable File
53 lines
1.1 KiB
C++
Executable File
/*
|
|
* ProvisionSoftAP.h
|
|
*
|
|
* Created on: Apr 17, 2019
|
|
* Author: miro
|
|
*/
|
|
|
|
#ifndef MAIN_PROVISIONSOFTAP_H_
|
|
#define MAIN_PROVISIONSOFTAP_H_
|
|
|
|
#include <ESPAsyncWebServer.h>
|
|
#include <DNSServer.h>
|
|
#include <list>
|
|
#include "ReaderWriter.h"
|
|
#include "Settings.h"
|
|
|
|
class ProvisionSoftAP
|
|
{
|
|
private:
|
|
DNSServer m_dnsServer;
|
|
AsyncWebServer * m_webServer;
|
|
AsyncWebSocket * m_webSocket;
|
|
std::list<int> m_clients;
|
|
bool m_startWifiScan = false;
|
|
bool m_tryConnect = false;
|
|
|
|
ReaderWriter * m_rwriter = nullptr;
|
|
|
|
private:
|
|
char m_ssid[32] = {0};
|
|
char m_pwd[32] = {0};
|
|
|
|
private:
|
|
void parseWebsocketCommand(char *data, size_t len);
|
|
void tryConnect();
|
|
|
|
// callbacks
|
|
void wifiEvent(arduino_event_id_t event, arduino_event_info_t info);
|
|
void websocketEvent(AsyncWebSocket * server, AsyncWebSocketClient * client,
|
|
AwsEventType type, void * arg, uint8_t *data, size_t len);
|
|
void handlePortal(AsyncWebServerRequest* request);
|
|
void handleLogo(AsyncWebServerRequest *request);
|
|
void waitBufferEmpty();
|
|
|
|
public:
|
|
void init(const char * ssid, const char * password);
|
|
|
|
ProvisionSoftAP(int port = 80);
|
|
virtual ~ProvisionSoftAP();
|
|
};
|
|
|
|
#endif /* MAIN_PROVISIONSOFTAP_H_ */
|