From a57850afd6a6170c0b00e0e6fae1d5ce5b511119 Mon Sep 17 00:00:00 2001 From: E2D Date: Wed, 12 Mar 2025 15:00:40 +0800 Subject: [PATCH] Fixed the issue where Ethernet static IP cannot be set. (#1080) --- esp3d/src/include/esp3d_defines.h | 8 ++++---- esp3d/src/modules/ethernet/ethconfig.cpp | 9 ++++++++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/esp3d/src/include/esp3d_defines.h b/esp3d/src/include/esp3d_defines.h index 612e7578..2d30a7db 100644 --- a/esp3d/src/include/esp3d_defines.h +++ b/esp3d/src/include/esp3d_defines.h @@ -137,10 +137,10 @@ typedef uint ESP3DSettingIndex; #define ESP_SERIAL_BRIDGE_BAUD 1225 // 4 bytes= int #define ESP_TIME_ZONE 1229 // 7 bytes 6+1 = string #define ESP_ETH_STA_IP_VALUE 1237 // 4 bytes xxx.xxx.xxx.xxx -#define ESP_ETH_STA_MASK_VALUE 1240 // 4 bytes xxx.xxx.xxx.xxx -#define ESP_ETH_STA_GATEWAY_VALUE 1244 // 4 bytes xxx.xxx.xxx.xxx -#define ESP_ETH_STA_DNS_VALUE 1248 // 4 bytes xxx.xxx.xxx.xxx -#define ESP_USB_SERIAL_BAUD_RATE 1252 // 4 bytes= int +#define ESP_ETH_STA_MASK_VALUE 1241 // 4 bytes xxx.xxx.xxx.xxx +#define ESP_ETH_STA_GATEWAY_VALUE 1245 // 4 bytes xxx.xxx.xxx.xxx +#define ESP_ETH_STA_DNS_VALUE 1249 // 4 bytes xxx.xxx.xxx.xxx +#define ESP_USB_SERIAL_BAUD_RATE 1253 // 4 bytes= int // Hidden password #define HIDDEN_PASSWORD "********" diff --git a/esp3d/src/modules/ethernet/ethconfig.cpp b/esp3d/src/modules/ethernet/ethconfig.cpp index 03def790..be85eea9 100644 --- a/esp3d/src/modules/ethernet/ethconfig.cpp +++ b/esp3d/src/modules/ethernet/ethconfig.cpp @@ -161,7 +161,14 @@ bool EthConfig::begin(int8_t& espMode) { } if (res) { // Static IP or DHCP client ? - if ((ESP3DSettings::readByte(ESP_ETH_STA_IP_MODE) == DHCP_MODE)) { + if ((ESP3DSettings::readByte(ESP_ETH_STA_IP_MODE) != DHCP_MODE)) { + int32_t IP = ESP3DSettings::read_IP(ESP_ETH_STA_IP_VALUE); + int32_t GW = ESP3DSettings::read_IP(ESP_ETH_STA_GATEWAY_VALUE); + int32_t MK = ESP3DSettings::read_IP(ESP_ETH_STA_MASK_VALUE); + int32_t DNS = ESP3DSettings::read_IP(ESP_ETH_STA_DNS_VALUE); + IPAddress ip(IP), mask(MK), gateway(GW), dns(DNS); + ETH.config(ip, gateway, mask, dns); + } else { uint64_t start = millis(); String ip = ETH.localIP().toString(); esp3d_log("IP");