Include ethernet handling in every build to enable it at runtime

This commit is contained in:
Thomas Basler 2023-01-17 18:44:52 +01:00
parent 8377d5bb73
commit c85b99ffc1

View File

@ -8,9 +8,7 @@
#include "PinMapping.h" #include "PinMapping.h"
#include "Utils.h" #include "Utils.h"
#include "defaults.h" #include "defaults.h"
#ifdef OPENDTU_ETHERNET
#include <ETH.h> #include <ETH.h>
#endif
NetworkSettingsClass::NetworkSettingsClass() NetworkSettingsClass::NetworkSettingsClass()
: apIp(192, 168, 4, 1) : apIp(192, 168, 4, 1)
@ -30,7 +28,6 @@ void NetworkSettingsClass::init()
void NetworkSettingsClass::NetworkEvent(WiFiEvent_t event) void NetworkSettingsClass::NetworkEvent(WiFiEvent_t event)
{ {
switch (event) { switch (event) {
#ifdef OPENDTU_ETHERNET
case ARDUINO_EVENT_ETH_START: case ARDUINO_EVENT_ETH_START:
MessageOutput.println(F("ETH start")); MessageOutput.println(F("ETH start"));
if (_networkMode == network_mode::Ethernet) { if (_networkMode == network_mode::Ethernet) {
@ -61,7 +58,6 @@ void NetworkSettingsClass::NetworkEvent(WiFiEvent_t event)
raiseEvent(network_event::NETWORK_DISCONNECTED); raiseEvent(network_event::NETWORK_DISCONNECTED);
} }
break; break;
#endif
case ARDUINO_EVENT_WIFI_STA_CONNECTED: case ARDUINO_EVENT_WIFI_STA_CONNECTED:
MessageOutput.println(F("WiFi connected")); MessageOutput.println(F("WiFi connected"));
if (_networkMode == network_mode::WiFi) { if (_networkMode == network_mode::WiFi) {
@ -130,12 +126,11 @@ void NetworkSettingsClass::setupMode()
WiFi.mode(WIFI_MODE_NULL); WiFi.mode(WIFI_MODE_NULL);
} }
} }
#ifdef OPENDTU_ETHERNET
if (PinMapping.isValidEthConfig()) { if (PinMapping.isValidEthConfig()) {
PinMapping_t& pin = PinMapping.get(); PinMapping_t& pin = PinMapping.get();
ETH.begin(pin.eth_phy_addr, pin.eth_power, pin.eth_mdc, pin.eth_mdio, pin.eth_type, pin.eth_clk_mode); ETH.begin(pin.eth_phy_addr, pin.eth_power, pin.eth_mdc, pin.eth_mdio, pin.eth_type, pin.eth_clk_mode);
} }
#endif
} }
void NetworkSettingsClass::enableAdminMode() void NetworkSettingsClass::enableAdminMode()
@ -152,7 +147,6 @@ String NetworkSettingsClass::getApName()
void NetworkSettingsClass::loop() void NetworkSettingsClass::loop()
{ {
#ifdef OPENDTU_ETHERNET
if (_ethConnected) { if (_ethConnected) {
if (_networkMode != network_mode::Ethernet) { if (_networkMode != network_mode::Ethernet) {
// Do stuff when switching to Ethernet mode // Do stuff when switching to Ethernet mode
@ -163,7 +157,6 @@ void NetworkSettingsClass::loop()
setHostname(); setHostname();
} }
} else } else
#endif
if (_networkMode != network_mode::WiFi) { if (_networkMode != network_mode::WiFi) {
// Do stuff when switching to Ethernet mode // Do stuff when switching to Ethernet mode
MessageOutput.println(F("Switch to WiFi mode")); MessageOutput.println(F("Switch to WiFi mode"));
@ -254,7 +247,6 @@ void NetworkSettingsClass::setHostname()
WiFi.mode(WIFI_MODE_STA); WiFi.mode(WIFI_MODE_STA);
setupMode(); setupMode();
} }
#ifdef OPENDTU_ETHERNET
else if (_networkMode == network_mode::Ethernet) { else if (_networkMode == network_mode::Ethernet) {
if (ETH.setHostname(getHostname().c_str())) { if (ETH.setHostname(getHostname().c_str())) {
MessageOutput.println(F("done")); MessageOutput.println(F("done"));
@ -262,7 +254,6 @@ void NetworkSettingsClass::setHostname()
MessageOutput.println(F("failed")); MessageOutput.println(F("failed"));
} }
} }
#endif
} }
void NetworkSettingsClass::setStaticIp() void NetworkSettingsClass::setStaticIp()
@ -283,7 +274,6 @@ void NetworkSettingsClass::setStaticIp()
MessageOutput.println(F("done")); MessageOutput.println(F("done"));
} }
} }
#ifdef OPENDTU_ETHERNET
else if (_networkMode == network_mode::Ethernet) { else if (_networkMode == network_mode::Ethernet) {
if (Configuration.get().WiFi_Dhcp) { if (Configuration.get().WiFi_Dhcp) {
MessageOutput.print(F("Configuring Ethernet DHCP IP... ")); MessageOutput.print(F("Configuring Ethernet DHCP IP... "));
@ -300,17 +290,14 @@ void NetworkSettingsClass::setStaticIp()
MessageOutput.println(F("done")); MessageOutput.println(F("done"));
} }
} }
#endif
} }
IPAddress NetworkSettingsClass::localIP() IPAddress NetworkSettingsClass::localIP()
{ {
switch (_networkMode) { switch (_networkMode) {
#ifdef OPENDTU_ETHERNET
case network_mode::Ethernet: case network_mode::Ethernet:
return ETH.localIP(); return ETH.localIP();
break; break;
#endif
case network_mode::WiFi: case network_mode::WiFi:
return WiFi.localIP(); return WiFi.localIP();
break; break;
@ -322,11 +309,9 @@ IPAddress NetworkSettingsClass::localIP()
IPAddress NetworkSettingsClass::subnetMask() IPAddress NetworkSettingsClass::subnetMask()
{ {
switch (_networkMode) { switch (_networkMode) {
#ifdef OPENDTU_ETHERNET
case network_mode::Ethernet: case network_mode::Ethernet:
return ETH.subnetMask(); return ETH.subnetMask();
break; break;
#endif
case network_mode::WiFi: case network_mode::WiFi:
return WiFi.subnetMask(); return WiFi.subnetMask();
break; break;
@ -338,11 +323,9 @@ IPAddress NetworkSettingsClass::subnetMask()
IPAddress NetworkSettingsClass::gatewayIP() IPAddress NetworkSettingsClass::gatewayIP()
{ {
switch (_networkMode) { switch (_networkMode) {
#ifdef OPENDTU_ETHERNET
case network_mode::Ethernet: case network_mode::Ethernet:
return ETH.gatewayIP(); return ETH.gatewayIP();
break; break;
#endif
case network_mode::WiFi: case network_mode::WiFi:
return WiFi.gatewayIP(); return WiFi.gatewayIP();
break; break;
@ -354,11 +337,9 @@ IPAddress NetworkSettingsClass::gatewayIP()
IPAddress NetworkSettingsClass::dnsIP(uint8_t dns_no) IPAddress NetworkSettingsClass::dnsIP(uint8_t dns_no)
{ {
switch (_networkMode) { switch (_networkMode) {
#ifdef OPENDTU_ETHERNET
case network_mode::Ethernet: case network_mode::Ethernet:
return ETH.dnsIP(dns_no); return ETH.dnsIP(dns_no);
break; break;
#endif
case network_mode::WiFi: case network_mode::WiFi:
return WiFi.dnsIP(dns_no); return WiFi.dnsIP(dns_no);
break; break;
@ -370,11 +351,9 @@ IPAddress NetworkSettingsClass::dnsIP(uint8_t dns_no)
String NetworkSettingsClass::macAddress() String NetworkSettingsClass::macAddress()
{ {
switch (_networkMode) { switch (_networkMode) {
#ifdef OPENDTU_ETHERNET
case network_mode::Ethernet: case network_mode::Ethernet:
return ETH.macAddress(); return ETH.macAddress();
break; break;
#endif
case network_mode::WiFi: case network_mode::WiFi:
return WiFi.macAddress(); return WiFi.macAddress();
break; break;
@ -424,11 +403,7 @@ String NetworkSettingsClass::getHostname()
bool NetworkSettingsClass::isConnected() bool NetworkSettingsClass::isConnected()
{ {
#ifndef OPENDTU_ETHERNET
return WiFi.localIP()[0] != 0;
#else
return WiFi.localIP()[0] != 0 || ETH.localIP()[0] != 0; return WiFi.localIP()[0] != 0 || ETH.localIP()[0] != 0;
#endif
} }
network_mode NetworkSettingsClass::NetworkMode() network_mode NetworkSettingsClass::NetworkMode()