From 3246dc6f874eaa63bf28fd470a0d1172c6f4efbe Mon Sep 17 00:00:00 2001 From: richonguzman Date: Sun, 4 Jun 2023 21:58:02 -0400 Subject: [PATCH] first test --- data/igate_conf.json | 8 ++++++++ src/LoRa_APRS_iGate.cpp | 6 ++++++ src/igate_config.h | 20 +++++++++++++++++++- 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/data/igate_conf.json b/data/igate_conf.json index d36717b..8e258a4 100644 --- a/data/igate_conf.json +++ b/data/igate_conf.json @@ -15,6 +15,14 @@ } ] }, + "network": { + "DHCP": false, + "ip": "192.168.0.50", + "subnet": "255.255.255.0", + "gateway": "192.168.0.1", + "dns1": "8.8.8.8", + "dns2": "8.8.4.4" + }, "aprs_is": { "passcode": "23201", "server": "soam.aprs2.net", diff --git a/src/LoRa_APRS_iGate.cpp b/src/LoRa_APRS_iGate.cpp index a3cb58e..903b7d9 100644 --- a/src/LoRa_APRS_iGate.cpp +++ b/src/LoRa_APRS_iGate.cpp @@ -38,6 +38,12 @@ void setup_wifi() { WiFi.disconnect(); delay(100); unsigned long start = millis(); + + if (!Config.network.DHCP) { + WiFi.setHostname(Config.callsign.c_str()); + WiFi.config(Config.network.ip, Config.network.gateway, Config.network.subnet, Config.network.dns1, Config.network.dns2); + } + WiFi.begin(currentWiFi->ssid.c_str(), currentWiFi->password.c_str()); while (WiFi.status() != WL_CONNECTED) { Serial.print('.'); diff --git a/src/igate_config.h b/src/igate_config.h index c412907..d3205c3 100644 --- a/src/igate_config.h +++ b/src/igate_config.h @@ -15,6 +15,16 @@ public: double longitude; }; +class Network { +public: + bool DHCP; + String ip; + String subnet; + String gateway; + String dns1; + String dns2; +}; + class APRS_IS { public: int passcode; @@ -51,6 +61,7 @@ public: bool statusAfterBoot; String defaultStatus; std::vector wifiAPs; + Network network; APRS_IS aprs_is; LoraModule loramodule; Display display; @@ -91,7 +102,14 @@ private: beaconInterval = data["other"]["beaconInterval"].as(); statusAfterBoot = data["other"]["statusAfterBoot"].as(); defaultStatus = data["other"]["defaultStatus"].as(); - + + network.DHCP = data["network"]["DHCP"].as(); + network.ip = data["network"]["ip"].as(); + network.subnet = data["network"]["subnet"].as(); + network.gateway = data["network"]["gateway"].as(); + network.dns1 = data["network"]["dns1"].as(); + network.dns2 = data["network"]["dns2"].as(); + aprs_is.passcode = data["aprs_is"]["passcode"].as(); aprs_is.server = data["aprs_is"]["server"].as(); aprs_is.port = data["aprs_is"]["port"].as();