Add serial interface for initial configuratio (#664)
* add SerialReader * fix SerialReader * add config upload script * add serial command to print ip address * update serial script to save configuration and reset after upload * fix updater * fix updater * serial config fixes * serial config fixes * fix wifi static example configuration * add readme for sendcfg.py
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
#define NUKI_HUB_VERSION "9.11"
|
||||
#define NUKI_HUB_VERSION_INT (uint32_t)911
|
||||
#define NUKI_HUB_BUILD "unknownbuildnr"
|
||||
#define NUKI_HUB_DATE "2025-04-06"
|
||||
#define NUKI_HUB_DATE "2025-04-19"
|
||||
|
||||
#define GITHUB_LATEST_RELEASE_URL (char*)"https://github.com/technyon/nuki_hub/releases/latest"
|
||||
#define GITHUB_OTA_MANIFEST_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/manifest.json"
|
||||
|
||||
@@ -4,6 +4,7 @@ enum class RestartReason
|
||||
{
|
||||
RequestedViaMqtt,
|
||||
RequestedViaWebServer,
|
||||
RequestedViaSerial,
|
||||
BLEError,
|
||||
BLEBeaconWatchdog,
|
||||
RestartOnDisconnectWatchdog,
|
||||
@@ -72,6 +73,8 @@ inline static String getRestartReason()
|
||||
return "RequestedViaMqtt";
|
||||
case RestartReason::RequestedViaWebServer:
|
||||
return "RequestedViaWebServer";
|
||||
case RestartReason::RequestedViaSerial:
|
||||
return "RequestedViaSerial";
|
||||
case RestartReason::ReconfigureWebServer:
|
||||
return "ReconfigureWebServer";
|
||||
case RestartReason::BLEError:
|
||||
|
||||
86
src/SerialReader.cpp
Normal file
86
src/SerialReader.cpp
Normal file
@@ -0,0 +1,86 @@
|
||||
#include "SerialReader.h"
|
||||
#include "RestartReason.h"
|
||||
#include "EspMillis.h"
|
||||
|
||||
SerialReader::SerialReader(ImportExport *importExport, NukiNetwork* network)
|
||||
: _importExport(importExport),
|
||||
_network(network)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void SerialReader::update()
|
||||
{
|
||||
if(Serial.available())
|
||||
{
|
||||
String line = Serial.readStringUntil('\n');
|
||||
// Serial.println(line);
|
||||
|
||||
int64_t ts = espMillis();
|
||||
|
||||
if(ts - _lastCommandTs > 3000)
|
||||
{
|
||||
_receivingConfig = false;
|
||||
}
|
||||
_lastCommandTs = ts;
|
||||
|
||||
|
||||
if(line == "reset")
|
||||
{
|
||||
restartEsp(RestartReason::RequestedViaSerial);
|
||||
}
|
||||
|
||||
if(line == "uptime")
|
||||
{
|
||||
Serial.print("Uptime (seconds): ");
|
||||
Serial.println(espMillis() / 1000);
|
||||
}
|
||||
|
||||
if(line == "printerror")
|
||||
{
|
||||
Serial.println(_deserializationError);
|
||||
}
|
||||
|
||||
if(line == "printcfgstr")
|
||||
{
|
||||
Serial.println();
|
||||
Serial.println(config);
|
||||
Serial.println();
|
||||
}
|
||||
|
||||
if(line == "printcfg")
|
||||
{
|
||||
Serial.println();
|
||||
serializeJsonPretty(json, Serial);
|
||||
Serial.println();
|
||||
}
|
||||
|
||||
if(line == "savecfg")
|
||||
{
|
||||
_importExport->importJson(json);
|
||||
Serial.println("Configuration saved");
|
||||
}
|
||||
|
||||
if(line == "-- NUKI HUB CONFIG END --")
|
||||
{
|
||||
Serial.println("Receive config end");
|
||||
_receivingConfig = false;
|
||||
json.clear();
|
||||
DeserializationError error = deserializeJson(json, config);
|
||||
_deserializationError = (int)error.code();
|
||||
}
|
||||
|
||||
if(_receivingConfig)
|
||||
{
|
||||
config = config + line;
|
||||
}
|
||||
|
||||
if(line == "-- NUKI HUB CONFIG START --")
|
||||
{
|
||||
Serial.println("Receive config start");
|
||||
config = "";
|
||||
_receivingConfig = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
24
src/SerialReader.h
Normal file
24
src/SerialReader.h
Normal file
@@ -0,0 +1,24 @@
|
||||
#pragma once
|
||||
|
||||
#include "Arduino.h"
|
||||
#include "ImportExport.h"
|
||||
#include "NukiNetwork.h"
|
||||
#include <ArduinoJson.h>
|
||||
|
||||
class SerialReader
|
||||
{
|
||||
public:
|
||||
explicit SerialReader(ImportExport* importExport, NukiNetwork* network);
|
||||
|
||||
void update();
|
||||
|
||||
private:
|
||||
String config = "";
|
||||
JsonDocument json;
|
||||
bool _receivingConfig = false;
|
||||
int64_t _lastCommandTs = 0;
|
||||
int _deserializationError = -1;
|
||||
|
||||
ImportExport* _importExport = nullptr;
|
||||
NukiNetwork* _network = nullptr;
|
||||
};
|
||||
11
src/main.cpp
11
src/main.cpp
@@ -20,6 +20,7 @@
|
||||
#endif
|
||||
|
||||
#ifndef NUKI_HUB_UPDATER
|
||||
#include "SerialReader.h"
|
||||
#include "NukiWrapper.h"
|
||||
#include "NukiNetworkLock.h"
|
||||
#include "NukiOpenerWrapper.h"
|
||||
@@ -50,6 +51,7 @@ NukiOpenerWrapper* nukiOpener = nullptr;
|
||||
NukiDeviceId* deviceIdLock = nullptr;
|
||||
NukiDeviceId* deviceIdOpener = nullptr;
|
||||
Gpio* gpio = nullptr;
|
||||
SerialReader* serialReader = nullptr;
|
||||
|
||||
bool lockEnabled = false;
|
||||
bool openerEnabled = false;
|
||||
@@ -250,6 +252,12 @@ void networkTask(void *pvParameters)
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef NUKI_HUB_UPDATER
|
||||
if(serialReader != nullptr)
|
||||
{
|
||||
serialReader->update();
|
||||
}
|
||||
#endif
|
||||
network->update();
|
||||
bool connected = network->isConnected();
|
||||
|
||||
@@ -877,6 +885,9 @@ void setup()
|
||||
doOta = false;
|
||||
lockEnabled = false;
|
||||
openerEnabled = false;
|
||||
#ifndef NUKI_HUB_UPDATER
|
||||
serialReader = new SerialReader(importExport, network);
|
||||
#endif
|
||||
}
|
||||
|
||||
if(lockEnabled || openerEnabled)
|
||||
|
||||
@@ -14,181 +14,181 @@ NetworkDevice *NetworkDeviceInstantiator::Create(NetworkDeviceType networkDevice
|
||||
|
||||
switch (networkDeviceType)
|
||||
{
|
||||
case NetworkDeviceType::W5500:
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, "Generic W5500",
|
||||
ETH_PHY_ADDR_W5500,
|
||||
ETH_PHY_CS_GENERIC_W5500,
|
||||
ETH_PHY_IRQ_GENERIC_W5500,
|
||||
ETH_PHY_RST_GENERIC_W5500,
|
||||
ETH_PHY_SPI_SCK_GENERIC_W5500,
|
||||
ETH_PHY_SPI_MISO_GENERIC_W5500,
|
||||
ETH_PHY_SPI_MOSI_GENERIC_W5500,
|
||||
ETH_PHY_W5500);
|
||||
break;
|
||||
case NetworkDeviceType::W5500M5:
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, "M5Stack Atom POE",
|
||||
ETH_PHY_ADDR_W5500,
|
||||
ETH_PHY_CS_M5_W5500,
|
||||
ETH_PHY_IRQ_M5_W5500,
|
||||
ETH_PHY_RST_M5_W5500,
|
||||
ETH_PHY_SPI_SCK_M5_W5500,
|
||||
ETH_PHY_SPI_MISO_M5_W5500,
|
||||
ETH_PHY_SPI_MOSI_M5_W5500,
|
||||
ETH_PHY_W5500);
|
||||
break;
|
||||
case NetworkDeviceType::W5500M5S3:
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, "M5Stack Atom POE S3",
|
||||
ETH_PHY_ADDR_W5500,
|
||||
ETH_PHY_CS_M5_W5500_S3,
|
||||
ETH_PHY_IRQ_M5_W5500,
|
||||
ETH_PHY_RST_M5_W5500,
|
||||
ETH_PHY_SPI_SCK_M5_W5500_S3,
|
||||
ETH_PHY_SPI_MISO_M5_W5500_S3,
|
||||
ETH_PHY_SPI_MOSI_M5_W5500_S3,
|
||||
ETH_PHY_W5500);
|
||||
break;
|
||||
case NetworkDeviceType::Waveshare_ESP32_S3_ETH:
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, "Waveshare ESP32-S3-ETH / ESP32-S3-ETH-POE",
|
||||
ETH_ADDR_WAVESHARE_ESP32_S3_ETH,
|
||||
ETH_PHY_SPI_CS_WAVESHARE_ESP32_S3_ETH,
|
||||
ETH_PHY_SPI_IRQ_WAVESHARE_ESP32_S3_ETH,
|
||||
ETH_PHY_SPI_RST_WAVESHARE_ESP32_S3_ETH,
|
||||
ETH_PHY_SPI_SCK_WAVESHARE_ESP32_S3_ETH,
|
||||
ETH_PHY_SPI_MISO_WAVESHARE_ESP32_S3_ETH,
|
||||
ETH_PHY_SPI_MOSI_WAVESHARE_ESP32_S3_ETH,
|
||||
ETH_PHY_W5500);
|
||||
break;
|
||||
case NetworkDeviceType::ETH01_Evo:
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, "ETH01-Evo",
|
||||
ETH_PHY_ADDR_ETH01EVO,
|
||||
ETH_PHY_CS_ETH01EVO,
|
||||
ETH_PHY_IRQ_ETH01EVO,
|
||||
ETH_PHY_RST_ETH01EVO,
|
||||
ETH_PHY_SPI_SCK_ETH01EVO,
|
||||
ETH_PHY_SPI_MISO_ETH01EVO,
|
||||
ETH_PHY_SPI_MOSI_ETH01EVO,
|
||||
ETH_PHY_TYPE_DM9051);
|
||||
break;
|
||||
case NetworkDeviceType::LilyGO_T_ETH_ELite:
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, "LilyGO T-ETH ELite",
|
||||
ETH_PHY_ADDR_W5500,
|
||||
ETH_PHY_CS_ELITE_W5500,
|
||||
ETH_PHY_IRQ_ELITE_W5500,
|
||||
ETH_PHY_RST_ELITE_W5500,
|
||||
ETH_PHY_SPI_SCK_ELITE_W5500,
|
||||
ETH_PHY_SPI_MISO_ELITE_W5500,
|
||||
ETH_PHY_SPI_MOSI_ELITE_W5500,
|
||||
ETH_PHY_W5500);
|
||||
break;
|
||||
case NetworkDeviceType::LilyGO_T_ETH_Lite_S3:
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, "LilyGO T-ETH-Lite-ESP32S3",
|
||||
ETH_PHY_ADDR_W5500,
|
||||
ETH_PHY_CS_ETHLITES3_W5500,
|
||||
ETH_PHY_IRQ_ETHLITES3_W5500,
|
||||
ETH_PHY_RST_ETHLITES3_W5500,
|
||||
ETH_PHY_SPI_SCK_ETHLITES3_W5500,
|
||||
ETH_PHY_SPI_MISO_ETHLITES3_W5500,
|
||||
ETH_PHY_SPI_MOSI_ETHLITES3_W5500,
|
||||
ETH_PHY_W5500);
|
||||
break;
|
||||
case NetworkDeviceType::W5500:
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, "Generic W5500",
|
||||
ETH_PHY_ADDR_W5500,
|
||||
ETH_PHY_CS_GENERIC_W5500,
|
||||
ETH_PHY_IRQ_GENERIC_W5500,
|
||||
ETH_PHY_RST_GENERIC_W5500,
|
||||
ETH_PHY_SPI_SCK_GENERIC_W5500,
|
||||
ETH_PHY_SPI_MISO_GENERIC_W5500,
|
||||
ETH_PHY_SPI_MOSI_GENERIC_W5500,
|
||||
ETH_PHY_W5500);
|
||||
break;
|
||||
case NetworkDeviceType::W5500M5:
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, "M5Stack Atom POE",
|
||||
ETH_PHY_ADDR_W5500,
|
||||
ETH_PHY_CS_M5_W5500,
|
||||
ETH_PHY_IRQ_M5_W5500,
|
||||
ETH_PHY_RST_M5_W5500,
|
||||
ETH_PHY_SPI_SCK_M5_W5500,
|
||||
ETH_PHY_SPI_MISO_M5_W5500,
|
||||
ETH_PHY_SPI_MOSI_M5_W5500,
|
||||
ETH_PHY_W5500);
|
||||
break;
|
||||
case NetworkDeviceType::W5500M5S3:
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, "M5Stack Atom POE S3",
|
||||
ETH_PHY_ADDR_W5500,
|
||||
ETH_PHY_CS_M5_W5500_S3,
|
||||
ETH_PHY_IRQ_M5_W5500,
|
||||
ETH_PHY_RST_M5_W5500,
|
||||
ETH_PHY_SPI_SCK_M5_W5500_S3,
|
||||
ETH_PHY_SPI_MISO_M5_W5500_S3,
|
||||
ETH_PHY_SPI_MOSI_M5_W5500_S3,
|
||||
ETH_PHY_W5500);
|
||||
break;
|
||||
case NetworkDeviceType::Waveshare_ESP32_S3_ETH:
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, "Waveshare ESP32-S3-ETH / ESP32-S3-ETH-POE",
|
||||
ETH_ADDR_WAVESHARE_ESP32_S3_ETH,
|
||||
ETH_PHY_SPI_CS_WAVESHARE_ESP32_S3_ETH,
|
||||
ETH_PHY_SPI_IRQ_WAVESHARE_ESP32_S3_ETH,
|
||||
ETH_PHY_SPI_RST_WAVESHARE_ESP32_S3_ETH,
|
||||
ETH_PHY_SPI_SCK_WAVESHARE_ESP32_S3_ETH,
|
||||
ETH_PHY_SPI_MISO_WAVESHARE_ESP32_S3_ETH,
|
||||
ETH_PHY_SPI_MOSI_WAVESHARE_ESP32_S3_ETH,
|
||||
ETH_PHY_W5500);
|
||||
break;
|
||||
case NetworkDeviceType::ETH01_Evo:
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, "ETH01-Evo",
|
||||
ETH_PHY_ADDR_ETH01EVO,
|
||||
ETH_PHY_CS_ETH01EVO,
|
||||
ETH_PHY_IRQ_ETH01EVO,
|
||||
ETH_PHY_RST_ETH01EVO,
|
||||
ETH_PHY_SPI_SCK_ETH01EVO,
|
||||
ETH_PHY_SPI_MISO_ETH01EVO,
|
||||
ETH_PHY_SPI_MOSI_ETH01EVO,
|
||||
ETH_PHY_TYPE_DM9051);
|
||||
break;
|
||||
case NetworkDeviceType::LilyGO_T_ETH_ELite:
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, "LilyGO T-ETH ELite",
|
||||
ETH_PHY_ADDR_W5500,
|
||||
ETH_PHY_CS_ELITE_W5500,
|
||||
ETH_PHY_IRQ_ELITE_W5500,
|
||||
ETH_PHY_RST_ELITE_W5500,
|
||||
ETH_PHY_SPI_SCK_ELITE_W5500,
|
||||
ETH_PHY_SPI_MISO_ELITE_W5500,
|
||||
ETH_PHY_SPI_MOSI_ELITE_W5500,
|
||||
ETH_PHY_W5500);
|
||||
break;
|
||||
case NetworkDeviceType::LilyGO_T_ETH_Lite_S3:
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, "LilyGO T-ETH-Lite-ESP32S3",
|
||||
ETH_PHY_ADDR_W5500,
|
||||
ETH_PHY_CS_ETHLITES3_W5500,
|
||||
ETH_PHY_IRQ_ETHLITES3_W5500,
|
||||
ETH_PHY_RST_ETHLITES3_W5500,
|
||||
ETH_PHY_SPI_SCK_ETHLITES3_W5500,
|
||||
ETH_PHY_SPI_MISO_ETHLITES3_W5500,
|
||||
ETH_PHY_SPI_MOSI_ETHLITES3_W5500,
|
||||
ETH_PHY_W5500);
|
||||
break;
|
||||
|
||||
case NetworkDeviceType::CUSTOM:
|
||||
{
|
||||
int custPHY = preferences->getInt(preference_network_custom_phy, 0);
|
||||
|
||||
if(custPHY >= 1 && custPHY <= 3)
|
||||
case NetworkDeviceType::CUSTOM:
|
||||
{
|
||||
std::string custName;
|
||||
eth_phy_type_t custEthtype;
|
||||
int custPHY = preferences->getInt(preference_network_custom_phy, 0);
|
||||
|
||||
switch(custPHY)
|
||||
if(custPHY >= 1 && custPHY <= 3)
|
||||
{
|
||||
case 1:
|
||||
custName = "Custom (W5500)";
|
||||
custEthtype = ETH_PHY_W5500;
|
||||
break;
|
||||
case 2:
|
||||
custName = "Custom (DN9051)";
|
||||
custEthtype = ETH_PHY_DM9051;
|
||||
break;
|
||||
case 3:
|
||||
custName = "Custom (KSZ8851SNL)";
|
||||
custEthtype = ETH_PHY_KSZ8851;
|
||||
break;
|
||||
default:
|
||||
custName = "Custom (W5500)";
|
||||
custEthtype = ETH_PHY_W5500;
|
||||
break;
|
||||
std::string custName;
|
||||
eth_phy_type_t custEthtype;
|
||||
|
||||
switch(custPHY)
|
||||
{
|
||||
case 1:
|
||||
custName = "Custom (W5500)";
|
||||
custEthtype = ETH_PHY_W5500;
|
||||
break;
|
||||
case 2:
|
||||
custName = "Custom (DN9051)";
|
||||
custEthtype = ETH_PHY_DM9051;
|
||||
break;
|
||||
case 3:
|
||||
custName = "Custom (KSZ8851SNL)";
|
||||
custEthtype = ETH_PHY_KSZ8851;
|
||||
break;
|
||||
default:
|
||||
custName = "Custom (W5500)";
|
||||
custEthtype = ETH_PHY_W5500;
|
||||
break;
|
||||
}
|
||||
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, custName,
|
||||
preferences->getInt(preference_network_custom_addr, -1),
|
||||
preferences->getInt(preference_network_custom_cs, -1),
|
||||
preferences->getInt(preference_network_custom_irq, -1),
|
||||
preferences->getInt(preference_network_custom_rst, -1),
|
||||
preferences->getInt(preference_network_custom_sck, -1),
|
||||
preferences->getInt(preference_network_custom_miso, -1),
|
||||
preferences->getInt(preference_network_custom_mosi, -1),
|
||||
custEthtype);
|
||||
}
|
||||
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, custName,
|
||||
preferences->getInt(preference_network_custom_addr, -1),
|
||||
preferences->getInt(preference_network_custom_cs, -1),
|
||||
preferences->getInt(preference_network_custom_irq, -1),
|
||||
preferences->getInt(preference_network_custom_rst, -1),
|
||||
preferences->getInt(preference_network_custom_sck, -1),
|
||||
preferences->getInt(preference_network_custom_miso, -1),
|
||||
preferences->getInt(preference_network_custom_mosi, -1),
|
||||
custEthtype);
|
||||
}
|
||||
#if defined(CONFIG_IDF_TARGET_ESP32) || defined(CONFIG_IDF_TARGET_ESP32P4)
|
||||
else if(custPHY >= 4 && custPHY <= 9)
|
||||
{
|
||||
int custCLKpref = preferences->getInt(preference_network_custom_clk, 0);
|
||||
else if(custPHY >= 4 && custPHY <= 9)
|
||||
{
|
||||
int custCLKpref = preferences->getInt(preference_network_custom_clk, 0);
|
||||
|
||||
std::string custName = NetworkUtil::GetCustomEthernetDeviceName(custPHY);
|
||||
eth_phy_type_t custEthtype = NetworkUtil::GetCustomEthernetType(custPHY);
|
||||
eth_clock_mode_t custCLK = NetworkUtil::GetCustomClock(custCLKpref);
|
||||
std::string custName = NetworkUtil::GetCustomEthernetDeviceName(custPHY);
|
||||
eth_phy_type_t custEthtype = NetworkUtil::GetCustomEthernetType(custPHY);
|
||||
eth_clock_mode_t custCLK = NetworkUtil::GetCustomClock(custCLKpref);
|
||||
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, custName,
|
||||
preferences->getInt(preference_network_custom_addr, -1),
|
||||
preferences->getInt(preference_network_custom_pwr, -1),
|
||||
preferences->getInt(preference_network_custom_mdc, -1),
|
||||
preferences->getInt(preference_network_custom_mdio, -1),
|
||||
custEthtype,
|
||||
custCLK);
|
||||
}
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, custName,
|
||||
preferences->getInt(preference_network_custom_addr, -1),
|
||||
preferences->getInt(preference_network_custom_pwr, -1),
|
||||
preferences->getInt(preference_network_custom_mdc, -1),
|
||||
preferences->getInt(preference_network_custom_mdio, -1),
|
||||
custEthtype,
|
||||
custCLK);
|
||||
}
|
||||
#endif
|
||||
#ifndef CONFIG_IDF_TARGET_ESP32H2
|
||||
else
|
||||
{
|
||||
device = new WifiDevice(hostname, preferences, ipConfiguration);
|
||||
}
|
||||
else
|
||||
{
|
||||
device = new WifiDevice(hostname, preferences, ipConfiguration);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
#if defined(CONFIG_IDF_TARGET_ESP32)
|
||||
case NetworkDeviceType::M5STACK_PoESP32_Unit:
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, "M5STACK PoESP32 Unit",
|
||||
ETH_PHY_ADDR_M5_POESP32,
|
||||
ETH_PHY_POWER_M5_POESP32,
|
||||
ETH_PHY_MDC_M5_POESP32,
|
||||
ETH_PHY_MDIO_M5_POESP32,
|
||||
ETH_CLK_MODE_M5_TYPE,
|
||||
ETH_CLK_MODE_M5_POESP32);
|
||||
break;
|
||||
case NetworkDeviceType::Olimex_LAN8720:
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, "Olimex (LAN8720)", ETH_PHY_ADDR_LAN8720, 12, ETH_PHY_MDC_LAN8720, ETH_PHY_MDIO_LAN8720, ETH_PHY_TYPE_LAN8720, ETH_CLOCK_GPIO17_OUT);
|
||||
break;
|
||||
case NetworkDeviceType::WT32_LAN8720:
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, "WT32-ETH01", 1, 16);
|
||||
break;
|
||||
case NetworkDeviceType::GL_S10:
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, "GL-S10", 1, 5, ETH_PHY_MDC_LAN8720, ETH_PHY_MDIO_LAN8720, ETH_PHY_IP101, ETH_CLOCK_GPIO0_IN);
|
||||
break;
|
||||
case NetworkDeviceType::LilyGO_T_ETH_POE:
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, "LilyGO T-ETH-POE", 0, -1, ETH_PHY_MDC_LAN8720, ETH_PHY_MDIO_LAN8720, ETH_PHY_TYPE_LAN8720, ETH_CLOCK_GPIO17_OUT);
|
||||
break;
|
||||
case NetworkDeviceType::M5STACK_PoESP32_Unit:
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, "M5STACK PoESP32 Unit",
|
||||
ETH_PHY_ADDR_M5_POESP32,
|
||||
ETH_PHY_POWER_M5_POESP32,
|
||||
ETH_PHY_MDC_M5_POESP32,
|
||||
ETH_PHY_MDIO_M5_POESP32,
|
||||
ETH_CLK_MODE_M5_TYPE,
|
||||
ETH_CLK_MODE_M5_POESP32);
|
||||
break;
|
||||
case NetworkDeviceType::Olimex_LAN8720:
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, "Olimex (LAN8720)", ETH_PHY_ADDR_LAN8720, 12, ETH_PHY_MDC_LAN8720, ETH_PHY_MDIO_LAN8720, ETH_PHY_TYPE_LAN8720, ETH_CLOCK_GPIO17_OUT);
|
||||
break;
|
||||
case NetworkDeviceType::WT32_LAN8720:
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, "WT32-ETH01", 1, 16);
|
||||
break;
|
||||
case NetworkDeviceType::GL_S10:
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, "GL-S10", 1, 5, ETH_PHY_MDC_LAN8720, ETH_PHY_MDIO_LAN8720, ETH_PHY_IP101, ETH_CLOCK_GPIO0_IN);
|
||||
break;
|
||||
case NetworkDeviceType::LilyGO_T_ETH_POE:
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, "LilyGO T-ETH-POE", 0, -1, ETH_PHY_MDC_LAN8720, ETH_PHY_MDIO_LAN8720, ETH_PHY_TYPE_LAN8720, ETH_CLOCK_GPIO17_OUT);
|
||||
break;
|
||||
#endif
|
||||
#ifndef CONFIG_IDF_TARGET_ESP32H2
|
||||
case NetworkDeviceType::WiFi:
|
||||
device = new WifiDevice(hostname, preferences, ipConfiguration);
|
||||
break;
|
||||
default:
|
||||
device = new WifiDevice(hostname, preferences, ipConfiguration);
|
||||
break;
|
||||
case NetworkDeviceType::WiFi:
|
||||
device = new WifiDevice(hostname, preferences, ipConfiguration);
|
||||
break;
|
||||
default:
|
||||
device = new WifiDevice(hostname, preferences, ipConfiguration);
|
||||
break;
|
||||
#else
|
||||
default:
|
||||
default:
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, "Custom (W5500)",
|
||||
preferences->getInt(preference_network_custom_addr, -1),
|
||||
preferences->getInt(preference_network_custom_cs, -1),
|
||||
|
||||
Reference in New Issue
Block a user