Skip to content
Snippets Groups Projects
Select Git revision
  • 0908d26be255548379142da9821e3070d24ecbd5
  • master default protected
2 results

network.cpp

Blame
  • network.cpp 1.58 KiB
    #include <Arduino.h>
    #include "config.h"
    #include "utils.h"
    #include "network.h"
    
    AsyncWebServer server(80);
    MDNSResponder mdns;
    
    void setupNetwork()
    {
      setupWifi();
      setupMDNS();
      setupOTA();
    }
    
    void setupWifi()
    {
      ESPConnect.autoConnect(HOSTNAME);
      if (ESPConnect.begin(&server))
      {
        logLine("Connected to WiFi: ", false);
        logLine(WiFi.localIP().toString());
      }
      else
      {
        logLine("Failed to connect to WiFi");
      }
    }
    
    void setupMDNS()
    {
      if (mdns.begin(HOSTNAME))
      {
        logLine("MDNS responder started");
        mdns.addService("http", "tcp", 80);
        mdns.addService("ws", "tcp", 81);
      }
      else
      {
        logLine("MDNS.begin failed");
      }
    }
    
    void setupOTA()
    {
      ArduinoOTA.onStart([]()
                         { 
        runGame = false;
        logLine("OTA Update Start"); });
      ArduinoOTA.onEnd([]()
                       { 
        logLine("OTA Update End"); 
        runGame = true; });
      ArduinoOTA.onProgress([](unsigned int progress, unsigned int total)
                            {
        char p[32];
        sprintf(p, "Progress: %u%%\n", (progress/(total/100)));
        logLine(p, false); });
      ArduinoOTA.onError([](ota_error_t error)
                         {
        if(error == OTA_AUTH_ERROR) logLine("OTA Auth Failed");
        else if(error == OTA_BEGIN_ERROR) logLine("OTA Begin Failed");
        else if(error == OTA_CONNECT_ERROR) logLine("OTA Connect Failed");
        else if(error == OTA_RECEIVE_ERROR) logLine("OTA Receive Failed");
        else if(error == OTA_END_ERROR) logLine("OTA End Failed");
        runGame = true; });
      ArduinoOTA.setHostname(HOSTNAME);
      ArduinoOTA.begin();
    }
    
    void networkLoop()
    {
      ArduinoOTA.handle();
    }