diff --git a/data/is-cfg.json b/data/is-cfg.json index 736d44c..02737a3 100644 --- a/data/is-cfg.json +++ b/data/is-cfg.json @@ -9,6 +9,7 @@ "dns2": "192.0.2.2" }, "wifi": { + "active": true, "AP": [ { "SSID": "YOURSSID", @@ -36,6 +37,7 @@ }, "lora": { "frequency_rx": 433775000, + "gain_rx": 0, "frequency_tx": 433775000, "power": 20, "spreading_factor": 12, diff --git a/lib/LoRa_APRS/LoRa_APRS.cpp b/lib/LoRa_APRS/LoRa_APRS.cpp index ea28f8b..48d2dfa 100644 --- a/lib/LoRa_APRS/LoRa_APRS.cpp +++ b/lib/LoRa_APRS/LoRa_APRS.cpp @@ -50,6 +50,10 @@ void LoRa_APRS::setRxFrequency(long frequency) { setFrequency(_RxFrequency); } +void LoRa_APRS::setRxGain(uint8_t gain) { + setGain(gain); +} + // cppcheck-suppress unusedFunction long LoRa_APRS::getRxFrequency() const { return _RxFrequency; diff --git a/lib/LoRa_APRS/LoRa_APRS.h b/lib/LoRa_APRS/LoRa_APRS.h index cacd0fe..3d6eff4 100644 --- a/lib/LoRa_APRS/LoRa_APRS.h +++ b/lib/LoRa_APRS/LoRa_APRS.h @@ -19,6 +19,8 @@ public: void setRxFrequency(long frequency); long getRxFrequency() const; + void setRxGain(uint8_t gain); + void setTxFrequency(long frequency); long getTxFrequency() const; diff --git a/src/LoRa_APRS_iGate.cpp b/src/LoRa_APRS_iGate.cpp index 05739dd..6e4cf58 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.35.0-dev" +#define VERSION "21.44.0-dev" String create_lat_aprs(double lat); String create_long_aprs(double lng); @@ -100,9 +100,10 @@ void setup() { LoRaSystem.getTaskManager().addTask(&routerTask); if (userConfig.aprs_is.active) { - if (boardConfig->Type == eETH_BOARD) { + if (boardConfig->Type == eETH_BOARD && !userConfig.wifi.active) { LoRaSystem.getTaskManager().addAlwaysRunTask(ðTask); - } else { + } + if (userConfig.wifi.active) { LoRaSystem.getTaskManager().addAlwaysRunTask(&wifiTask); } LoRaSystem.getTaskManager().addTask(&otaTask); diff --git a/src/TaskModem.cpp b/src/TaskModem.cpp index 7dad353..d3908bc 100644 --- a/src/TaskModem.cpp +++ b/src/TaskModem.cpp @@ -24,6 +24,7 @@ bool ModemTask::setup(System &system) { ; } _lora_aprs.setRxFrequency(system.getUserConfig()->lora.frequencyRx); + _lora_aprs.setRxGain(system.getUserConfig()->lora.gainRx); _lora_aprs.setTxFrequency(system.getUserConfig()->lora.frequencyTx); _lora_aprs.setTxPower(system.getUserConfig()->lora.power); _lora_aprs.setSpreadingFactor(system.getUserConfig()->lora.spreadingFactor); diff --git a/src/project_configuration.cpp b/src/project_configuration.cpp index 656d284..a416aa1 100644 --- a/src/project_configuration.cpp +++ b/src/project_configuration.cpp @@ -17,7 +17,8 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen conf.network.dns2.fromString(data["network"]["dns2"].as()); } - JsonArray aps = data["wifi"]["AP"].as(); + conf.wifi.active = data["wifi"]["active"]; + JsonArray aps = data["wifi"]["AP"].as(); for (JsonVariant v : aps) { Configuration::Wifi::AP ap; ap.SSID = v["SSID"].as(); @@ -39,6 +40,7 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen conf.digi.active = data["digi"]["active"] | false; conf.digi.beacon = data["digi"]["beacon"] | false; conf.lora.frequencyRx = data["lora"]["frequency_rx"] | 433775000; + conf.lora.gainRx = data["lora"]["gain_rx"] | 0; conf.lora.frequencyTx = data["lora"]["frequency_tx"] | 433775000; conf.lora.power = data["lora"]["power"] | 20; conf.lora.spreadingFactor = data["lora"]["spreading_factor"] | 12; @@ -82,7 +84,8 @@ void ProjectConfigurationManagement::writeProjectConfiguration(Configuration &co data["network"]["dns2"] = conf.network.dns2.toString(); } - JsonArray aps = data["wifi"].createNestedArray("AP"); + data["wifi"]["active"] = conf.wifi.active; + JsonArray aps = data["wifi"].createNestedArray("AP"); for (Configuration::Wifi::AP ap : conf.wifi.APs) { JsonObject v = aps.createNestedObject(); v["SSID"] = ap.SSID; @@ -99,6 +102,7 @@ void ProjectConfigurationManagement::writeProjectConfiguration(Configuration &co data["digi"]["active"] = conf.digi.active; data["digi"]["beacon"] = conf.digi.beacon; data["lora"]["frequency_rx"] = conf.lora.frequencyRx; + data["lora"]["gain_rx"] = conf.lora.gainRx; data["lora"]["frequency_tx"] = conf.lora.frequencyTx; data["lora"]["power"] = conf.lora.power; data["lora"]["spreading_factor"] = conf.lora.spreadingFactor; diff --git a/src/project_configuration.h b/src/project_configuration.h index b2ba0bc..c9d9ea9 100644 --- a/src/project_configuration.h +++ b/src/project_configuration.h @@ -21,15 +21,16 @@ public: class Wifi { public: + Wifi() : active(true) { + } + + bool active; class AP { public: String SSID; String password; }; - Wifi() { - } - std::list APs; }; @@ -69,12 +70,13 @@ public: LoRa() : frequencyRx(433775000), frequencyTx(433775000), power(20), spreadingFactor(12), signalBandwidth(125000), codingRate4(5) { } - long frequencyRx; - long frequencyTx; - int power; - int spreadingFactor; - long signalBandwidth; - int codingRate4; + long frequencyRx; + uint8_t gainRx; + long frequencyTx; + int power; + int spreadingFactor; + long signalBandwidth; + int codingRate4; }; class Display {