Merge branch 'pr2333' into dev
This commit is contained in:
commit
eaa2f07cf3
@ -12,6 +12,7 @@
|
|||||||
|
|
||||||
struct PinMapping_t {
|
struct PinMapping_t {
|
||||||
char name[MAPPING_NAME_STRLEN + 1];
|
char name[MAPPING_NAME_STRLEN + 1];
|
||||||
|
|
||||||
int8_t nrf24_miso;
|
int8_t nrf24_miso;
|
||||||
int8_t nrf24_mosi;
|
int8_t nrf24_mosi;
|
||||||
int8_t nrf24_clk;
|
int8_t nrf24_clk;
|
||||||
@ -33,6 +34,7 @@ struct PinMapping_t {
|
|||||||
int8_t w5500_int;
|
int8_t w5500_int;
|
||||||
int8_t w5500_rst;
|
int8_t w5500_rst;
|
||||||
|
|
||||||
|
#if CONFIG_ETH_USE_ESP32_EMAC
|
||||||
int8_t eth_phy_addr;
|
int8_t eth_phy_addr;
|
||||||
bool eth_enabled;
|
bool eth_enabled;
|
||||||
int eth_power;
|
int eth_power;
|
||||||
@ -40,11 +42,14 @@ struct PinMapping_t {
|
|||||||
int eth_mdio;
|
int eth_mdio;
|
||||||
eth_phy_type_t eth_type;
|
eth_phy_type_t eth_type;
|
||||||
eth_clock_mode_t eth_clk_mode;
|
eth_clock_mode_t eth_clk_mode;
|
||||||
|
#endif
|
||||||
|
|
||||||
uint8_t display_type;
|
uint8_t display_type;
|
||||||
uint8_t display_data;
|
uint8_t display_data;
|
||||||
uint8_t display_clk;
|
uint8_t display_clk;
|
||||||
uint8_t display_cs;
|
uint8_t display_cs;
|
||||||
uint8_t display_reset;
|
uint8_t display_reset;
|
||||||
|
|
||||||
int8_t led[PINMAPPING_LED_COUNT];
|
int8_t led[PINMAPPING_LED_COUNT];
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -57,7 +62,9 @@ public:
|
|||||||
bool isValidNrf24Config() const;
|
bool isValidNrf24Config() const;
|
||||||
bool isValidCmt2300Config() const;
|
bool isValidCmt2300Config() const;
|
||||||
bool isValidW5500Config() const;
|
bool isValidW5500Config() const;
|
||||||
|
#if CONFIG_ETH_USE_ESP32_EMAC
|
||||||
bool isValidEthConfig() const;
|
bool isValidEthConfig() const;
|
||||||
|
#endif
|
||||||
|
|
||||||
private:
|
private:
|
||||||
PinMapping_t _pinMapping;
|
PinMapping_t _pinMapping;
|
||||||
|
|||||||
@ -39,7 +39,9 @@ void NetworkSettingsClass::init(Scheduler& scheduler)
|
|||||||
MessageOutput.println("W5500: Connection successful");
|
MessageOutput.println("W5500: Connection successful");
|
||||||
else
|
else
|
||||||
MessageOutput.println("W5500: Connection error!!");
|
MessageOutput.println("W5500: Connection error!!");
|
||||||
} else if (PinMapping.isValidEthConfig()) {
|
}
|
||||||
|
#if CONFIG_ETH_USE_ESP32_EMAC
|
||||||
|
else if (PinMapping.isValidEthConfig()) {
|
||||||
PinMapping_t& pin = PinMapping.get();
|
PinMapping_t& pin = PinMapping.get();
|
||||||
#if ESP_ARDUINO_VERSION_MAJOR < 3
|
#if ESP_ARDUINO_VERSION_MAJOR < 3
|
||||||
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);
|
||||||
@ -47,6 +49,7 @@ void NetworkSettingsClass::init(Scheduler& scheduler)
|
|||||||
ETH.begin(pin.eth_type, pin.eth_phy_addr, pin.eth_mdc, pin.eth_mdio, pin.eth_power, pin.eth_clk_mode);
|
ETH.begin(pin.eth_type, pin.eth_phy_addr, pin.eth_mdc, pin.eth_mdio, pin.eth_power, pin.eth_clk_mode);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
setupMode();
|
setupMode();
|
||||||
|
|
||||||
|
|||||||
@ -108,6 +108,8 @@
|
|||||||
#define W5500_RST -1
|
#define W5500_RST -1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if CONFIG_ETH_USE_ESP32_EMAC
|
||||||
|
|
||||||
#ifndef ETH_PHY_ADDR
|
#ifndef ETH_PHY_ADDR
|
||||||
#define ETH_PHY_ADDR -1
|
#define ETH_PHY_ADDR -1
|
||||||
#endif
|
#endif
|
||||||
@ -132,6 +134,8 @@
|
|||||||
#define ETH_CLK_MODE ETH_CLOCK_GPIO0_IN
|
#define ETH_CLK_MODE ETH_CLOCK_GPIO0_IN
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
PinMappingClass PinMapping;
|
PinMappingClass PinMapping;
|
||||||
|
|
||||||
PinMappingClass::PinMappingClass()
|
PinMappingClass::PinMappingClass()
|
||||||
@ -158,18 +162,19 @@ PinMappingClass::PinMappingClass()
|
|||||||
_pinMapping.w5500_int = W5500_INT;
|
_pinMapping.w5500_int = W5500_INT;
|
||||||
_pinMapping.w5500_rst = W5500_RST;
|
_pinMapping.w5500_rst = W5500_RST;
|
||||||
|
|
||||||
|
#if CONFIG_ETH_USE_ESP32_EMAC
|
||||||
#ifdef OPENDTU_ETHERNET
|
#ifdef OPENDTU_ETHERNET
|
||||||
_pinMapping.eth_enabled = true;
|
_pinMapping.eth_enabled = true;
|
||||||
#else
|
#else
|
||||||
_pinMapping.eth_enabled = false;
|
_pinMapping.eth_enabled = false;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
_pinMapping.eth_phy_addr = ETH_PHY_ADDR;
|
_pinMapping.eth_phy_addr = ETH_PHY_ADDR;
|
||||||
_pinMapping.eth_power = ETH_PHY_POWER;
|
_pinMapping.eth_power = ETH_PHY_POWER;
|
||||||
_pinMapping.eth_mdc = ETH_PHY_MDC;
|
_pinMapping.eth_mdc = ETH_PHY_MDC;
|
||||||
_pinMapping.eth_mdio = ETH_PHY_MDIO;
|
_pinMapping.eth_mdio = ETH_PHY_MDIO;
|
||||||
_pinMapping.eth_type = ETH_PHY_TYPE;
|
_pinMapping.eth_type = ETH_PHY_TYPE;
|
||||||
_pinMapping.eth_clk_mode = ETH_CLK_MODE;
|
_pinMapping.eth_clk_mode = ETH_CLK_MODE;
|
||||||
|
#endif
|
||||||
|
|
||||||
_pinMapping.display_type = DISPLAY_TYPE;
|
_pinMapping.display_type = DISPLAY_TYPE;
|
||||||
_pinMapping.display_data = DISPLAY_DATA;
|
_pinMapping.display_data = DISPLAY_DATA;
|
||||||
@ -226,18 +231,19 @@ bool PinMappingClass::init(const String& deviceMapping)
|
|||||||
_pinMapping.w5500_int = doc[i]["w5500"]["int"] | W5500_INT;
|
_pinMapping.w5500_int = doc[i]["w5500"]["int"] | W5500_INT;
|
||||||
_pinMapping.w5500_rst = doc[i]["w5500"]["rst"] | W5500_RST;
|
_pinMapping.w5500_rst = doc[i]["w5500"]["rst"] | W5500_RST;
|
||||||
|
|
||||||
|
#if CONFIG_ETH_USE_ESP32_EMAC
|
||||||
#ifdef OPENDTU_ETHERNET
|
#ifdef OPENDTU_ETHERNET
|
||||||
_pinMapping.eth_enabled = doc[i]["eth"]["enabled"] | true;
|
_pinMapping.eth_enabled = doc[i]["eth"]["enabled"] | true;
|
||||||
#else
|
#else
|
||||||
_pinMapping.eth_enabled = doc[i]["eth"]["enabled"] | false;
|
_pinMapping.eth_enabled = doc[i]["eth"]["enabled"] | false;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
_pinMapping.eth_phy_addr = doc[i]["eth"]["phy_addr"] | ETH_PHY_ADDR;
|
_pinMapping.eth_phy_addr = doc[i]["eth"]["phy_addr"] | ETH_PHY_ADDR;
|
||||||
_pinMapping.eth_power = doc[i]["eth"]["power"] | ETH_PHY_POWER;
|
_pinMapping.eth_power = doc[i]["eth"]["power"] | ETH_PHY_POWER;
|
||||||
_pinMapping.eth_mdc = doc[i]["eth"]["mdc"] | ETH_PHY_MDC;
|
_pinMapping.eth_mdc = doc[i]["eth"]["mdc"] | ETH_PHY_MDC;
|
||||||
_pinMapping.eth_mdio = doc[i]["eth"]["mdio"] | ETH_PHY_MDIO;
|
_pinMapping.eth_mdio = doc[i]["eth"]["mdio"] | ETH_PHY_MDIO;
|
||||||
_pinMapping.eth_type = doc[i]["eth"]["type"] | ETH_PHY_TYPE;
|
_pinMapping.eth_type = doc[i]["eth"]["type"] | ETH_PHY_TYPE;
|
||||||
_pinMapping.eth_clk_mode = doc[i]["eth"]["clk_mode"] | ETH_CLK_MODE;
|
_pinMapping.eth_clk_mode = doc[i]["eth"]["clk_mode"] | ETH_CLK_MODE;
|
||||||
|
#endif
|
||||||
|
|
||||||
_pinMapping.display_type = doc[i]["display"]["type"] | DISPLAY_TYPE;
|
_pinMapping.display_type = doc[i]["display"]["type"] | DISPLAY_TYPE;
|
||||||
_pinMapping.display_data = doc[i]["display"]["data"] | DISPLAY_DATA;
|
_pinMapping.display_data = doc[i]["display"]["data"] | DISPLAY_DATA;
|
||||||
@ -283,9 +289,11 @@ bool PinMappingClass::isValidW5500Config() const
|
|||||||
&& _pinMapping.w5500_rst >= 0;
|
&& _pinMapping.w5500_rst >= 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if CONFIG_ETH_USE_ESP32_EMAC
|
||||||
bool PinMappingClass::isValidEthConfig() const
|
bool PinMappingClass::isValidEthConfig() const
|
||||||
{
|
{
|
||||||
return _pinMapping.eth_enabled
|
return _pinMapping.eth_enabled
|
||||||
&& _pinMapping.eth_mdc >= 0
|
&& _pinMapping.eth_mdc >= 0
|
||||||
&& _pinMapping.eth_mdio >= 0;
|
&& _pinMapping.eth_mdio >= 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@ -58,6 +58,7 @@ void WebApiDeviceClass::onDeviceAdminGet(AsyncWebServerRequest* request)
|
|||||||
w5500PinObj["int"] = pin.w5500_int;
|
w5500PinObj["int"] = pin.w5500_int;
|
||||||
w5500PinObj["rst"] = pin.w5500_rst;
|
w5500PinObj["rst"] = pin.w5500_rst;
|
||||||
|
|
||||||
|
#if CONFIG_ETH_USE_ESP32_EMAC
|
||||||
auto ethPinObj = curPin["eth"].to<JsonObject>();
|
auto ethPinObj = curPin["eth"].to<JsonObject>();
|
||||||
ethPinObj["enabled"] = pin.eth_enabled;
|
ethPinObj["enabled"] = pin.eth_enabled;
|
||||||
ethPinObj["phy_addr"] = pin.eth_phy_addr;
|
ethPinObj["phy_addr"] = pin.eth_phy_addr;
|
||||||
@ -66,6 +67,7 @@ void WebApiDeviceClass::onDeviceAdminGet(AsyncWebServerRequest* request)
|
|||||||
ethPinObj["mdio"] = pin.eth_mdio;
|
ethPinObj["mdio"] = pin.eth_mdio;
|
||||||
ethPinObj["type"] = pin.eth_type;
|
ethPinObj["type"] = pin.eth_type;
|
||||||
ethPinObj["clk_mode"] = pin.eth_clk_mode;
|
ethPinObj["clk_mode"] = pin.eth_clk_mode;
|
||||||
|
#endif
|
||||||
|
|
||||||
auto displayPinObj = curPin["display"].to<JsonObject>();
|
auto displayPinObj = curPin["display"].to<JsonObject>();
|
||||||
displayPinObj["type"] = pin.display_type;
|
displayPinObj["type"] = pin.display_type;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user