diff --git a/main.cpp b/main.cpp index ffe6d52..f565a8a 100644 --- a/main.cpp +++ b/main.cpp @@ -143,8 +143,8 @@ void setup() preferences->putBool(preference_lock_enabled, true); } -// const NetworkDeviceType networkDevice = NetworkDeviceType::WiFi; - const NetworkDeviceType networkDevice = digitalRead(NETWORK_SELECT) == HIGH ? NetworkDeviceType::WiFi : NetworkDeviceType::W5500; + const NetworkDeviceType networkDevice = NetworkDeviceType::WiFi; +// const NetworkDeviceType networkDevice = digitalRead(NETWORK_SELECT) == HIGH ? NetworkDeviceType::WiFi : NetworkDeviceType::W5500; network = new NetworkLock(networkDevice, preferences); network->initialize(); diff --git a/networkDevices/W5500Device.cpp b/networkDevices/W5500Device.cpp index cd570a6..53eaf6e 100644 --- a/networkDevices/W5500Device.cpp +++ b/networkDevices/W5500Device.cpp @@ -9,6 +9,7 @@ W5500Device::W5500Device(const String &hostname, Preferences* preferences) _preferences(preferences) { initializeMacAddress(_mac); + _restartOnDisconnect = _preferences->getBool(preference_restart_on_disconnect); Serial.print("MAC Adress: "); for(int i=0; i < 6; i++) @@ -46,6 +47,11 @@ void W5500Device::initialize() bool W5500Device::reconnect() { + if(_restartOnDisconnect && millis() > 60000) + { + ESP.restart(); + } + _hasDHCPAddress = false; // start the Ethernet connection: diff --git a/networkDevices/W5500Device.h b/networkDevices/W5500Device.h index a0ade7e..c27ff99 100644 --- a/networkDevices/W5500Device.h +++ b/networkDevices/W5500Device.h @@ -31,6 +31,7 @@ private: int _maintainResult = 0; bool _hasDHCPAddress = false; + bool _restartOnDisconnect = false; byte _mac[6]; }; \ No newline at end of file