2020-06-12 15:28:35 +02:00
|
|
|
#include "WifiInterface.h"
|
|
|
|
#include "Config.h"
|
|
|
|
#include "DIAG.h"
|
|
|
|
|
|
|
|
|
|
|
|
WiFiEspServer WifiInterface::server(WIFI_PORT);
|
|
|
|
WiFiEspClient WifiInterface::client;
|
|
|
|
bool WifiInterface::haveClient=false;
|
|
|
|
bool WifiInterface::connected=false;
|
|
|
|
|
|
|
|
void WifiInterface::setup()
|
|
|
|
{
|
|
|
|
Serial1.begin(WIFI_BAUD_RATE); // initialize serial for ESP module
|
|
|
|
WiFi.init(&Serial1); // initialize ESP module
|
|
|
|
|
|
|
|
// check for the presence of the shield
|
|
|
|
if (WiFi.status() == WL_NO_SHIELD) {
|
|
|
|
Serial.println("WiFi shield not present");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
// attempt to connect to WiFi network
|
|
|
|
int status = WiFi.begin(WIFI_SSID, WIFI_PASS);
|
|
|
|
|
|
|
|
|
|
|
|
if (status==WL_CONNECTED) {
|
|
|
|
connected=true;
|
|
|
|
|
|
|
|
// start the server on port WIFI_PORT
|
|
|
|
server.begin();
|
|
|
|
|
|
|
|
// print the SSID of the network you're attached to
|
|
|
|
DIAG(F("\nWifi Connected SSID: %s IP=%d.%d.%d.%d port %d\n "),
|
|
|
|
WiFi.SSID(), WiFi.localIP()[0],WiFi.localIP()[1],WiFi.localIP()[2],WiFi.localIP()[3],WIFI_PORT);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void WifiInterface::loop(DCCEXParser & parser) {
|
|
|
|
if (!connected) return;
|
|
|
|
|
|
|
|
WiFiEspClient xclient= server.available(); // listen for incoming clients
|
|
|
|
if (xclient.connected()) {
|
|
|
|
DIAG(F("\nNew Wifi Client connected\n"));
|
|
|
|
parser.loop(xclient);
|
|
|
|
xclient.stop();
|
|
|
|
}
|
|
|
|
}
|