mirror of
https://gitlab.com/wirelos/sprocket-lib.git
synced 2025-12-15 05:02:21 +01:00
58 lines
1.6 KiB
C++
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 |