Files
sprocket-core/src/WiFiNet.h

58 lines
1.6 KiB
C++

#ifndef __WIFI_NET_H__
#define __WIFI_NET_H__
#if defined(ESP8266)
#include <ESP8266WiFi.h> //https://github.com/esp8266/Arduino
#include <ESP8266mDNS.h>
#else
#include <WiFi.h>
#endif
#include <WebStack.h>
#include <DNSServer.h>
#include <ESPAsyncWebServer.h>
#include <ESPAsyncWiFiManager.h> //https://github.com/tzapu/WiFiManager
#include "Network.h"
class WiFiNet : public Network {
private:
AsyncWiFiManager* wifiManager;
AsyncWebServer* server;
DNSServer* dns;
const char* hostName = "foo";
public:
WiFiNet() : Network() {
//server = new AsyncWebServer(80);
dns = new DNSServer();
}
WiFiNet* use(AsyncWebServer* srv) {
server = srv;
return this;
}
WiFiNet* use(WebStack* stack) {
server = stack->server;
return this;
}
WiFiNet* init(){}
WiFiNet* connect(){
//server = new AsyncWebServer(80);
dns = new DNSServer();
wifiManager = new AsyncWiFiManager(server, dns);
wifiManager->autoConnect(/* apName, apPassword */);
Serial.println("Hostname: " + String(hostName));
WiFi.hostname(hostName);
startMDNS();
return this;
}
void startMDNS(){
if (!MDNS.begin(hostName)) {
Serial.println("Error setting up MDNS responder!");
} else {
Serial.println("mDNS responder started");
MDNS.addService("http", "tcp", 80);
}
}
};
#endif