mirror of
https://github.com/tbnobody/OpenDTU.git
synced 2025-12-19 00:31:59 +01:00
Implement W5500 support
This commit is contained in:
@@ -31,6 +31,15 @@ void NetworkSettingsClass::init(Scheduler& scheduler)
|
||||
WiFi.disconnect(true, true);
|
||||
|
||||
WiFi.onEvent(std::bind(&NetworkSettingsClass::NetworkEvent, this, _1, _2));
|
||||
|
||||
if (PinMapping.isValidW5500Config()) {
|
||||
PinMapping_t& pin = PinMapping.get();
|
||||
_w5500 = std::make_unique<W5500>(pin.w5500_mosi, pin.w5500_miso, pin.w5500_sclk, pin.w5500_cs, pin.w5500_int, pin.w5500_rst);
|
||||
} else if (PinMapping.isValidEthConfig()) {
|
||||
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);
|
||||
}
|
||||
|
||||
setupMode();
|
||||
|
||||
scheduler.addTask(_loopTask);
|
||||
@@ -169,11 +178,6 @@ void NetworkSettingsClass::setupMode()
|
||||
WiFi.mode(WIFI_MODE_NULL);
|
||||
}
|
||||
}
|
||||
|
||||
if (PinMapping.isValidEthConfig()) {
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
void NetworkSettingsClass::enableAdminMode()
|
||||
@@ -401,6 +405,8 @@ String NetworkSettingsClass::macAddress() const
|
||||
{
|
||||
switch (_networkMode) {
|
||||
case network_mode::Ethernet:
|
||||
if (_w5500)
|
||||
return _w5500->macAddress();
|
||||
return ETH.macAddress();
|
||||
break;
|
||||
case network_mode::WiFi:
|
||||
|
||||
Reference in New Issue
Block a user