From 68318ea7f0f2e76251a9bb10e6f1db38ca96584a Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Thu, 24 Jun 2021 21:46:28 +0200 Subject: [PATCH 01/12] version bump --- src/LoRa_APRS_iGate.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/LoRa_APRS_iGate.cpp b/src/LoRa_APRS_iGate.cpp index d6ede91..08d2912 100644 --- a/src/LoRa_APRS_iGate.cpp +++ b/src/LoRa_APRS_iGate.cpp @@ -18,7 +18,7 @@ #include "TaskWifi.h" #include "project_configuration.h" -#define VERSION "21.25.0" +#define VERSION "21.25.0-dev" String create_lat_aprs(double lat); String create_long_aprs(double lng); From 1b33b0caecba16b424c8d616e00e24f3bfc95fbe Mon Sep 17 00:00:00 2001 From: Christoph Kottke Date: Thu, 15 Jul 2021 11:21:01 +0200 Subject: [PATCH 02/12] stupid logical mistake Close #99 --- src/TaskRouter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TaskRouter.cpp b/src/TaskRouter.cpp index 210ed7e..ec8f485 100644 --- a/src/TaskRouter.cpp +++ b/src/TaskRouter.cpp @@ -64,7 +64,7 @@ bool RouterTask::loop(System &system) { String path = digiMsg->getPath(); // simple loop check - if (path.indexOf("WIDE1-1") >= 0 || path.indexOf(system.getUserConfig()->callsign) == -1) { + if (path.indexOf("WIDE1-1") >= 0 && path.indexOf(system.getUserConfig()->callsign) == -1) { // fixme digiMsg->setPath(system.getUserConfig()->callsign + "*"); From fab7f0a5bd8231ee9658d6ec677eacb03367a072 Mon Sep 17 00:00:00 2001 From: Christoph Kottke Date: Fri, 16 Jul 2021 09:59:11 +0200 Subject: [PATCH 03/12] remove DEBUG Flags from release build --- platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index d0aa3c4..c955992 100644 --- a/platformio.ini +++ b/platformio.ini @@ -24,7 +24,7 @@ check_skip_packages = yes [env:lora_board] board = esp32doit-devkit-v1 -build_flags = -Werror -Wall -DCORE_DEBUG_LEVEL=5 +build_flags = -Werror -Wall [env:lora_board_debug] board = esp32doit-devkit-v1 From 4c711921322c5105c96829044e1069bd3a73263a Mon Sep 17 00:00:00 2001 From: Christoph Kottke Date: Thu, 15 Jul 2021 16:36:33 +0200 Subject: [PATCH 04/12] * add parameter for static IP config --- src/project_configuration.cpp | 39 ++++++++++++++++++++++++++++++++++- src/project_configuration.h | 23 +++++++++++++++++++++ 2 files changed, 61 insertions(+), 1 deletion(-) diff --git a/src/project_configuration.cpp b/src/project_configuration.cpp index 4bce038..4fe0d29 100644 --- a/src/project_configuration.cpp +++ b/src/project_configuration.cpp @@ -8,13 +8,31 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen if (data.containsKey("callsign")) conf.callsign = data["callsign"].as(); + if (data.containsKey("eth") && data["eth"].containsKey("DHCP")) { + conf.eth.DHCP = data["eth"]["DHCP"]; + conf.eth.IP = data["eth"]["IP"].as(); + conf.eth.Netmask = data["eth"]["Netmask"].as(); + conf.eth.Gateway = data["eth"]["Gateway"].as(); + conf.eth.DNS1 = data["eth"]["DNS1"].as(); + conf.eth.DNS2 = data["eth"]["DNS2"].as(); + } + JsonArray aps = data["wifi"]["AP"].as(); for (JsonVariant v : aps) { Configuration::Wifi::AP ap; ap.SSID = v["SSID"].as(); ap.password = v["password"].as(); + if (v.containsKey("DHCP")) { + ap.DHCP = v["DHCP"]; + ap.IP = v["IP"].as(); + ap.Netmask = v["Netmask"].as(); + ap.Gateway = v["Gateway"].as(); + ap.DNS1 = v["DNS1"].as(); + ap.DNS2 = v["DNS2"].as(); + } conf.wifi.APs.push_back(ap); } + if (data.containsKey("beacon") && data["beacon"].containsKey("message")) conf.beacon.message = data["beacon"]["message"].as(); conf.beacon.positionLatitude = data["beacon"]["position"]["latitude"] | 0.0; @@ -63,12 +81,31 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen void ProjectConfigurationManagement::writeProjectConfiguration(Configuration &conf, DynamicJsonDocument &data) { data["callsign"] = conf.callsign; - JsonArray aps = data["wifi"].createNestedArray("AP"); + + if (conf.eth.DHCP == false) { + data["eth"]["DHCP"] = conf.eth.DHCP; + data["eth"]["IP"] = conf.eth.IP; + data["eth"]["Netmask"] = conf.eth.Netmask; + data["eth"]["Gateway"] = conf.eth.Gateway; + data["eth"]["DNS1"] = conf.eth.DNS1; + data["eth"]["DNS2"] = conf.eth.DNS2; + } + + JsonArray aps = data["wifi"].createNestedArray("AP"); for (Configuration::Wifi::AP ap : conf.wifi.APs) { JsonObject v = aps.createNestedObject(); v["SSID"] = ap.SSID; v["password"] = ap.password; + if (ap.DHCP == false) { + v["DHCP"] = ap.DHCP; + v["IP"] = ap.IP; + v["Netmask"] = ap.Netmask; + v["Gateway"] = ap.Gateway; + v["DNS1"] = ap.DNS1; + v["DNS2"] = ap.DNS2; + } } + data["beacon"]["message"] = conf.beacon.message; data["beacon"]["position"]["latitude"] = conf.beacon.positionLatitude; data["beacon"]["position"]["longitude"] = conf.beacon.positionLongitude; diff --git a/src/project_configuration.h b/src/project_configuration.h index e1e1686..7679501 100644 --- a/src/project_configuration.h +++ b/src/project_configuration.h @@ -6,12 +6,34 @@ class Configuration { public: + class ETH { + public: + ETH() : DHCP(true) { + } + + bool DHCP; + String IP; + String Netmask; + String Gateway; + String DNS1; + String DNS2; + }; + class Wifi { public: class AP { public: + AP() : DHCP(true) { + } + String SSID; String password; + bool DHCP; + String IP; + String Netmask; + String Gateway; + String DNS1; + String DNS2; }; Wifi() { @@ -93,6 +115,7 @@ public: Configuration() : callsign("NOCALL-10"), board(""), ntpServer("pool.ntp.org"){}; String callsign; + ETH eth; Wifi wifi; Beacon beacon; APRS_IS aprs_is; From 53a3f05a32e4c2e401836734740069fda76b2cbb Mon Sep 17 00:00:00 2001 From: Christoph Kottke Date: Thu, 15 Jul 2021 20:18:37 +0200 Subject: [PATCH 05/12] + after digging in the framework and think twice reword and use IPAddress class --- src/project_configuration.cpp | 48 +++++++++++++++++------------------ src/project_configuration.h | 28 ++++++++++---------- 2 files changed, 38 insertions(+), 38 deletions(-) diff --git a/src/project_configuration.cpp b/src/project_configuration.cpp index 4fe0d29..950a064 100644 --- a/src/project_configuration.cpp +++ b/src/project_configuration.cpp @@ -9,12 +9,12 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen conf.callsign = data["callsign"].as(); if (data.containsKey("eth") && data["eth"].containsKey("DHCP")) { - conf.eth.DHCP = data["eth"]["DHCP"]; - conf.eth.IP = data["eth"]["IP"].as(); - conf.eth.Netmask = data["eth"]["Netmask"].as(); - conf.eth.Gateway = data["eth"]["Gateway"].as(); - conf.eth.DNS1 = data["eth"]["DNS1"].as(); - conf.eth.DNS2 = data["eth"]["DNS2"].as(); + conf.eth.DHCP = data["eth"]["DHCP"]; + conf.eth.staticIP.fromString(data["eth"]["staticIP"].as()); + conf.eth.subnet.fromString(data["eth"]["subnet"].as()); + conf.eth.gateway.fromString(data["eth"]["gateway"].as()); + conf.eth.dns1.fromString(data["eth"]["dns1"].as()); + conf.eth.dns2.fromString(data["eth"]["dns2"].as()); } JsonArray aps = data["wifi"]["AP"].as(); @@ -23,12 +23,12 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen ap.SSID = v["SSID"].as(); ap.password = v["password"].as(); if (v.containsKey("DHCP")) { - ap.DHCP = v["DHCP"]; - ap.IP = v["IP"].as(); - ap.Netmask = v["Netmask"].as(); - ap.Gateway = v["Gateway"].as(); - ap.DNS1 = v["DNS1"].as(); - ap.DNS2 = v["DNS2"].as(); + ap.DHCP = v["DHCP"]; + ap.staticIP.fromString(v["staticIP"].as()); + ap.subnet.fromString(v["subnet"].as()); + ap.gateway.fromString(v["Gateway"].as()); + ap.dns1.fromString(v["dns1"].as()); + ap.dns2.fromString(v["dns2"].as()); } conf.wifi.APs.push_back(ap); } @@ -83,12 +83,12 @@ void ProjectConfigurationManagement::writeProjectConfiguration(Configuration &co data["callsign"] = conf.callsign; if (conf.eth.DHCP == false) { - data["eth"]["DHCP"] = conf.eth.DHCP; - data["eth"]["IP"] = conf.eth.IP; - data["eth"]["Netmask"] = conf.eth.Netmask; - data["eth"]["Gateway"] = conf.eth.Gateway; - data["eth"]["DNS1"] = conf.eth.DNS1; - data["eth"]["DNS2"] = conf.eth.DNS2; + data["eth"]["DHCP"] = conf.eth.DHCP; + data["eth"]["staticIP"] = conf.eth.staticIP.toString(); + data["eth"]["subnet"] = conf.eth.subnet.toString(); + data["eth"]["gateway"] = conf.eth.gateway.toString(); + data["eth"]["dns1"] = conf.eth.dns1.toString(); + data["eth"]["dns2"] = conf.eth.dns2.toString(); } JsonArray aps = data["wifi"].createNestedArray("AP"); @@ -97,12 +97,12 @@ void ProjectConfigurationManagement::writeProjectConfiguration(Configuration &co v["SSID"] = ap.SSID; v["password"] = ap.password; if (ap.DHCP == false) { - v["DHCP"] = ap.DHCP; - v["IP"] = ap.IP; - v["Netmask"] = ap.Netmask; - v["Gateway"] = ap.Gateway; - v["DNS1"] = ap.DNS1; - v["DNS2"] = ap.DNS2; + v["DHCP"] = ap.DHCP; + v["staticIP"] = ap.staticIP.toString(); + v["subnet"] = ap.subnet.toString(); + v["gateway"] = ap.gateway.toString(); + v["dns1"] = ap.dns1.toString(); + v["dns2"] = ap.dns2.toString(); } } diff --git a/src/project_configuration.h b/src/project_configuration.h index 7679501..8eafd2f 100644 --- a/src/project_configuration.h +++ b/src/project_configuration.h @@ -11,12 +11,12 @@ public: ETH() : DHCP(true) { } - bool DHCP; - String IP; - String Netmask; - String Gateway; - String DNS1; - String DNS2; + bool DHCP; + IPAddress staticIP; + IPAddress subnet; + IPAddress gateway; + IPAddress dns1; + IPAddress dns2; }; class Wifi { @@ -26,14 +26,14 @@ public: AP() : DHCP(true) { } - String SSID; - String password; - bool DHCP; - String IP; - String Netmask; - String Gateway; - String DNS1; - String DNS2; + String SSID; + String password; + bool DHCP; + IPAddress staticIP; + IPAddress subnet; + IPAddress gateway; + IPAddress dns1; + IPAddress dns2; }; Wifi() { From d69e014beb3658bf9848faba1d4c93b2eb64a7df Mon Sep 17 00:00:00 2001 From: Christoph Kottke Date: Thu, 15 Jul 2021 20:59:51 +0200 Subject: [PATCH 06/12] + after reading: https://github.com/espressif/arduino-esp32/issues/1202 rethink implementation overall --- src/project_configuration.cpp | 44 ++++++++++------------------------- src/project_configuration.h | 22 +++++------------- 2 files changed, 18 insertions(+), 48 deletions(-) diff --git a/src/project_configuration.cpp b/src/project_configuration.cpp index 950a064..a523662 100644 --- a/src/project_configuration.cpp +++ b/src/project_configuration.cpp @@ -8,13 +8,12 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen if (data.containsKey("callsign")) conf.callsign = data["callsign"].as(); - if (data.containsKey("eth") && data["eth"].containsKey("DHCP")) { - conf.eth.DHCP = data["eth"]["DHCP"]; - conf.eth.staticIP.fromString(data["eth"]["staticIP"].as()); - conf.eth.subnet.fromString(data["eth"]["subnet"].as()); - conf.eth.gateway.fromString(data["eth"]["gateway"].as()); - conf.eth.dns1.fromString(data["eth"]["dns1"].as()); - conf.eth.dns2.fromString(data["eth"]["dns2"].as()); + if (data.containsKey("network") && data["network"].containsKey("DHCP")) { + conf.network.DHCP = data["network"]["DHCP"]; + conf.network.staticIP.fromString(data["network"]["staticIP"].as()); + conf.network.subnet.fromString(data["network"]["subnet"].as()); + conf.network.gateway.fromString(data["network"]["gateway"].as()); + conf.network.dns.fromString(data["network"]["dns"].as()); } JsonArray aps = data["wifi"]["AP"].as(); @@ -22,17 +21,8 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen Configuration::Wifi::AP ap; ap.SSID = v["SSID"].as(); ap.password = v["password"].as(); - if (v.containsKey("DHCP")) { - ap.DHCP = v["DHCP"]; - ap.staticIP.fromString(v["staticIP"].as()); - ap.subnet.fromString(v["subnet"].as()); - ap.gateway.fromString(v["Gateway"].as()); - ap.dns1.fromString(v["dns1"].as()); - ap.dns2.fromString(v["dns2"].as()); - } conf.wifi.APs.push_back(ap); } - if (data.containsKey("beacon") && data["beacon"].containsKey("message")) conf.beacon.message = data["beacon"]["message"].as(); conf.beacon.positionLatitude = data["beacon"]["position"]["latitude"] | 0.0; @@ -82,13 +72,12 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen void ProjectConfigurationManagement::writeProjectConfiguration(Configuration &conf, DynamicJsonDocument &data) { data["callsign"] = conf.callsign; - if (conf.eth.DHCP == false) { - data["eth"]["DHCP"] = conf.eth.DHCP; - data["eth"]["staticIP"] = conf.eth.staticIP.toString(); - data["eth"]["subnet"] = conf.eth.subnet.toString(); - data["eth"]["gateway"] = conf.eth.gateway.toString(); - data["eth"]["dns1"] = conf.eth.dns1.toString(); - data["eth"]["dns2"] = conf.eth.dns2.toString(); + if (conf.network.DHCP == false) { + data["network"]["DHCP"] = conf.network.DHCP; + data["network"]["staticIP"] = conf.network.staticIP.toString(); + data["network"]["subnet"] = conf.network.subnet.toString(); + data["network"]["gateway"] = conf.network.gateway.toString(); + data["network"]["dns"] = conf.network.dns.toString(); } JsonArray aps = data["wifi"].createNestedArray("AP"); @@ -96,16 +85,7 @@ void ProjectConfigurationManagement::writeProjectConfiguration(Configuration &co JsonObject v = aps.createNestedObject(); v["SSID"] = ap.SSID; v["password"] = ap.password; - if (ap.DHCP == false) { - v["DHCP"] = ap.DHCP; - v["staticIP"] = ap.staticIP.toString(); - v["subnet"] = ap.subnet.toString(); - v["gateway"] = ap.gateway.toString(); - v["dns1"] = ap.dns1.toString(); - v["dns2"] = ap.dns2.toString(); - } } - data["beacon"]["message"] = conf.beacon.message; data["beacon"]["position"]["latitude"] = conf.beacon.positionLatitude; data["beacon"]["position"]["longitude"] = conf.beacon.positionLongitude; diff --git a/src/project_configuration.h b/src/project_configuration.h index 8eafd2f..32db01d 100644 --- a/src/project_configuration.h +++ b/src/project_configuration.h @@ -6,34 +6,24 @@ class Configuration { public: - class ETH { + class NETWORK { public: - ETH() : DHCP(true) { + NETWORK() : DHCP(true) { } bool DHCP; IPAddress staticIP; IPAddress subnet; IPAddress gateway; - IPAddress dns1; - IPAddress dns2; + IPAddress dns; }; class Wifi { public: class AP { public: - AP() : DHCP(true) { - } - - String SSID; - String password; - bool DHCP; - IPAddress staticIP; - IPAddress subnet; - IPAddress gateway; - IPAddress dns1; - IPAddress dns2; + String SSID; + String password; }; Wifi() { @@ -115,7 +105,7 @@ public: Configuration() : callsign("NOCALL-10"), board(""), ntpServer("pool.ntp.org"){}; String callsign; - ETH eth; + NETWORK network; Wifi wifi; Beacon beacon; APRS_IS aprs_is; From bd34ad7070d4d05527759afc6bb3bc2fb3365afa Mon Sep 17 00:00:00 2001 From: Christoph Kottke Date: Thu, 15 Jul 2021 21:45:44 +0200 Subject: [PATCH 07/12] * implementation --- src/TaskEth.cpp | 4 ++++ src/TaskWifi.cpp | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/src/TaskEth.cpp b/src/TaskEth.cpp index fdad5a2..c26aca3 100644 --- a/src/TaskEth.cpp +++ b/src/TaskEth.cpp @@ -4,6 +4,7 @@ #include "Task.h" #include "TaskEth.h" +#include "project_configuration.h" volatile bool eth_connected = false; @@ -89,6 +90,9 @@ bool EthTask::setup(System &system) { delay(200); digitalWrite(ETH_NRST, 1); + if (system.getUserConfig()->network.DHCP == false) + ETH.config(system.getUserConfig()->network.staticIP, system.getUserConfig()->network.gateway, system.getUserConfig()->network.subnet, system.getUserConfig()->network.dns); + ETH.begin(ETH_ADDR, ETH_POWER_PIN, ETH_MDC_PIN, ETH_MDIO_PIN, ETH_TYPE, ETH_CLK); return true; } diff --git a/src/TaskWifi.cpp b/src/TaskWifi.cpp index 408a0fd..f384043 100644 --- a/src/TaskWifi.cpp +++ b/src/TaskWifi.cpp @@ -13,8 +13,18 @@ WifiTask::~WifiTask() { } bool WifiTask::setup(System &system) { + // Don't save WiFi configuration in flash + WiFi.persistent(false); + + // Set WiFi to station mode + WiFi.mode(WIFI_STA); + WiFi.onEvent(WiFiEvent); WiFi.setHostname(system.getUserConfig()->callsign.c_str()); + + if (system.getUserConfig()->network.DHCP == false) + WiFi.config(system.getUserConfig()->network.staticIP, system.getUserConfig()->network.gateway, system.getUserConfig()->network.subnet, system.getUserConfig()->network.dns); + for (Configuration::Wifi::AP ap : system.getUserConfig()->wifi.APs) { logPrintD("Looking for AP: "); logPrintlnD(ap.SSID); From c06efb910ad94d4ea35d444fda73bc70fd00f9fc Mon Sep 17 00:00:00 2001 From: Christoph Kottke Date: Sun, 18 Jul 2021 19:41:15 +0200 Subject: [PATCH 08/12] + add DNS2 parameter --- src/TaskEth.cpp | 16 +++++++++++++--- src/TaskWifi.cpp | 2 +- src/project_configuration.cpp | 6 ++++-- src/project_configuration.h | 3 ++- 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/TaskEth.cpp b/src/TaskEth.cpp index c26aca3..e691c51 100644 --- a/src/TaskEth.cpp +++ b/src/TaskEth.cpp @@ -20,7 +20,13 @@ void WiFiEvent(WiFiEvent_t event) { logPrintI("WiFi MAC: "); logPrintI(WiFi.macAddress()); logPrintI(", IPv4: "); - logPrintlnI(WiFi.localIP().toString()); + logPrintI(WiFi.localIP().toString()); + logPrintI(", Gateway: "); + logPrintI(WiFi.gatewayIP().toString()); + logPrintI(", DNS1: "); + logPrintI(WiFi.dnsIP().toString()); + logPrintI(", DNS2: "); + logPrintlnI(WiFi.dnsIP(1).toString()); break; case SYSTEM_EVENT_STA_DISCONNECTED: logPrintlnW("WiFi Disconnected"); @@ -40,8 +46,12 @@ void WiFiEvent(WiFiEvent_t event) { logPrintI(ETH.macAddress()); logPrintI(", IPv4: "); logPrintI(ETH.localIP().toString()); - logPrintI(", DNS: "); + logPrintI(", Gateway: "); + logPrintI(ETH.gatewayIP().toString()); + logPrintI(", DNS1: "); logPrintI(ETH.dnsIP().toString()); + logPrintI(", DNS2: "); + logPrintI(ETH.dnsIP(1).toString()); if (ETH.fullDuplex()) { logPrintI(", FULL_DUPLEX"); } @@ -91,7 +101,7 @@ bool EthTask::setup(System &system) { digitalWrite(ETH_NRST, 1); if (system.getUserConfig()->network.DHCP == false) - ETH.config(system.getUserConfig()->network.staticIP, system.getUserConfig()->network.gateway, system.getUserConfig()->network.subnet, system.getUserConfig()->network.dns); + ETH.config(system.getUserConfig()->network.staticIP, system.getUserConfig()->network.gateway, system.getUserConfig()->network.subnet, system.getUserConfig()->network.dns1, system.getUserConfig()->network.dns2); ETH.begin(ETH_ADDR, ETH_POWER_PIN, ETH_MDC_PIN, ETH_MDIO_PIN, ETH_TYPE, ETH_CLK); return true; diff --git a/src/TaskWifi.cpp b/src/TaskWifi.cpp index f384043..922e3f9 100644 --- a/src/TaskWifi.cpp +++ b/src/TaskWifi.cpp @@ -23,7 +23,7 @@ bool WifiTask::setup(System &system) { WiFi.setHostname(system.getUserConfig()->callsign.c_str()); if (system.getUserConfig()->network.DHCP == false) - WiFi.config(system.getUserConfig()->network.staticIP, system.getUserConfig()->network.gateway, system.getUserConfig()->network.subnet, system.getUserConfig()->network.dns); + WiFi.config(system.getUserConfig()->network.staticIP, system.getUserConfig()->network.gateway, system.getUserConfig()->network.subnet, system.getUserConfig()->network.dns1, system.getUserConfig()->network.dns2); for (Configuration::Wifi::AP ap : system.getUserConfig()->wifi.APs) { logPrintD("Looking for AP: "); diff --git a/src/project_configuration.cpp b/src/project_configuration.cpp index a523662..145b0cd 100644 --- a/src/project_configuration.cpp +++ b/src/project_configuration.cpp @@ -13,7 +13,8 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen conf.network.staticIP.fromString(data["network"]["staticIP"].as()); conf.network.subnet.fromString(data["network"]["subnet"].as()); conf.network.gateway.fromString(data["network"]["gateway"].as()); - conf.network.dns.fromString(data["network"]["dns"].as()); + conf.network.dns1.fromString(data["network"]["dns1"].as()); + conf.network.dns2.fromString(data["network"]["dns2"].as()); } JsonArray aps = data["wifi"]["AP"].as(); @@ -77,7 +78,8 @@ void ProjectConfigurationManagement::writeProjectConfiguration(Configuration &co data["network"]["staticIP"] = conf.network.staticIP.toString(); data["network"]["subnet"] = conf.network.subnet.toString(); data["network"]["gateway"] = conf.network.gateway.toString(); - data["network"]["dns"] = conf.network.dns.toString(); + data["network"]["dns1"] = conf.network.dns1.toString(); + data["network"]["dns2"] = conf.network.dns2.toString(); } JsonArray aps = data["wifi"].createNestedArray("AP"); diff --git a/src/project_configuration.h b/src/project_configuration.h index 32db01d..4a03498 100644 --- a/src/project_configuration.h +++ b/src/project_configuration.h @@ -15,7 +15,8 @@ public: IPAddress staticIP; IPAddress subnet; IPAddress gateway; - IPAddress dns; + IPAddress dns1; + IPAddress dns2; }; class Wifi { From 3485426843ce2667e7caa6016d5378ad3554a528 Mon Sep 17 00:00:00 2001 From: Christoph Kottke Date: Fri, 23 Jul 2021 10:37:58 +0200 Subject: [PATCH 09/12] requested changes --- src/TaskEth.cpp | 3 ++- src/TaskWifi.cpp | 3 ++- src/project_configuration.cpp | 2 +- src/project_configuration.h | 6 +++--- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/TaskEth.cpp b/src/TaskEth.cpp index e691c51..c25120e 100644 --- a/src/TaskEth.cpp +++ b/src/TaskEth.cpp @@ -100,8 +100,9 @@ bool EthTask::setup(System &system) { delay(200); digitalWrite(ETH_NRST, 1); - if (system.getUserConfig()->network.DHCP == false) + if (!system.getUserConfig()->network.DHCP) { ETH.config(system.getUserConfig()->network.staticIP, system.getUserConfig()->network.gateway, system.getUserConfig()->network.subnet, system.getUserConfig()->network.dns1, system.getUserConfig()->network.dns2); + } ETH.begin(ETH_ADDR, ETH_POWER_PIN, ETH_MDC_PIN, ETH_MDIO_PIN, ETH_TYPE, ETH_CLK); return true; diff --git a/src/TaskWifi.cpp b/src/TaskWifi.cpp index 922e3f9..6a0b54e 100644 --- a/src/TaskWifi.cpp +++ b/src/TaskWifi.cpp @@ -22,8 +22,9 @@ bool WifiTask::setup(System &system) { WiFi.onEvent(WiFiEvent); WiFi.setHostname(system.getUserConfig()->callsign.c_str()); - if (system.getUserConfig()->network.DHCP == false) + if (!system.getUserConfig()->network.DHCP) { WiFi.config(system.getUserConfig()->network.staticIP, system.getUserConfig()->network.gateway, system.getUserConfig()->network.subnet, system.getUserConfig()->network.dns1, system.getUserConfig()->network.dns2); + } for (Configuration::Wifi::AP ap : system.getUserConfig()->wifi.APs) { logPrintD("Looking for AP: "); diff --git a/src/project_configuration.cpp b/src/project_configuration.cpp index 145b0cd..656d284 100644 --- a/src/project_configuration.cpp +++ b/src/project_configuration.cpp @@ -73,7 +73,7 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen void ProjectConfigurationManagement::writeProjectConfiguration(Configuration &conf, DynamicJsonDocument &data) { data["callsign"] = conf.callsign; - if (conf.network.DHCP == false) { + if (!conf.network.DHCP) { data["network"]["DHCP"] = conf.network.DHCP; data["network"]["staticIP"] = conf.network.staticIP.toString(); data["network"]["subnet"] = conf.network.subnet.toString(); diff --git a/src/project_configuration.h b/src/project_configuration.h index 4a03498..b2ba0bc 100644 --- a/src/project_configuration.h +++ b/src/project_configuration.h @@ -6,9 +6,9 @@ class Configuration { public: - class NETWORK { + class Network { public: - NETWORK() : DHCP(true) { + Network() : DHCP(true) { } bool DHCP; @@ -106,7 +106,7 @@ public: Configuration() : callsign("NOCALL-10"), board(""), ntpServer("pool.ntp.org"){}; String callsign; - NETWORK network; + Network network; Wifi wifi; Beacon beacon; APRS_IS aprs_is; From 5544b79cae9fa2b249dab4a533788ad4314782d4 Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Fri, 23 Jul 2021 12:49:41 +0200 Subject: [PATCH 10/12] version bump --- src/LoRa_APRS_iGate.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/LoRa_APRS_iGate.cpp b/src/LoRa_APRS_iGate.cpp index 08d2912..eb29c1f 100644 --- a/src/LoRa_APRS_iGate.cpp +++ b/src/LoRa_APRS_iGate.cpp @@ -18,7 +18,7 @@ #include "TaskWifi.h" #include "project_configuration.h" -#define VERSION "21.25.0-dev" +#define VERSION "21.29.0-dev" String create_lat_aprs(double lat); String create_long_aprs(double lng); From 326f82d4f3b0d0ae570dcde26edce51201d1473e Mon Sep 17 00:00:00 2001 From: Christoph Kottke Date: Wed, 18 Aug 2021 09:27:39 +0200 Subject: [PATCH 11/12] add config template for fixed address --- data/is-cfg.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/data/is-cfg.json b/data/is-cfg.json index 3d536bb..736d44c 100644 --- a/data/is-cfg.json +++ b/data/is-cfg.json @@ -1,5 +1,13 @@ { "callsign": "NOCALL-10", + "network": { + "DHCP": true, + "staticIP": "192.0.2.100", + "subnet": "255.255.255.0", + "gateway": "192.0.2.1", + "dns1": "192.0.2.1", + "dns2": "192.0.2.2" + }, "wifi": { "AP": [ { From c4bb41f4007be815397a894aff777fdea32d954c Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Wed, 1 Sep 2021 21:08:15 +0200 Subject: [PATCH 12/12] bump version to 21.35.0 --- src/LoRa_APRS_iGate.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/LoRa_APRS_iGate.cpp b/src/LoRa_APRS_iGate.cpp index eb29c1f..1eb69cc 100644 --- a/src/LoRa_APRS_iGate.cpp +++ b/src/LoRa_APRS_iGate.cpp @@ -18,7 +18,7 @@ #include "TaskWifi.h" #include "project_configuration.h" -#define VERSION "21.29.0-dev" +#define VERSION "21.35.0" String create_lat_aprs(double lat); String create_long_aprs(double lng);