Added an option to enable WiFi on (PoE) Ethernet boards as proposed in issue #116

Added an option to adjust LoRa receiver gain
This commit is contained in:
Jochen 2021-11-06 22:00:27 +01:00
parent 1390fc1ad0
commit 6612e3da16
7 changed files with 25 additions and 7 deletions

View file

@ -11,6 +11,7 @@
"wifi": { "wifi": {
"AP": [ "AP": [
{ {
"active": false,
"SSID": "YOURSSID", "SSID": "YOURSSID",
"password": "YOURPASSWORD" "password": "YOURPASSWORD"
} }
@ -36,6 +37,7 @@
}, },
"lora": { "lora": {
"frequency_rx": 433775000, "frequency_rx": 433775000,
"gain_rx": 6;
"frequency_tx": 433775000, "frequency_tx": 433775000,
"power": 20, "power": 20,
"spreading_factor": 12, "spreading_factor": 12,

View file

@ -1,6 +1,6 @@
#include "LoRa_APRS.h" #include "LoRa_APRS.h"
LoRa_APRS::LoRa_APRS() : _RxFrequency(433775000), _TxFrequency(433775000) { LoRa_APRS::LoRa_APRS() : _RxFrequency(433775000), _TxFrequency(433775000), _RxGain(6) {
} }
bool LoRa_APRS::checkMessage() { bool LoRa_APRS::checkMessage() {
@ -50,6 +50,11 @@ void LoRa_APRS::setRxFrequency(long frequency) {
setFrequency(_RxFrequency); setFrequency(_RxFrequency);
} }
void LoRa_APRS::setRxGain(uint8_t gain) {
_RxGain = gain;
setGain(_RxGain);
}
// cppcheck-suppress unusedFunction // cppcheck-suppress unusedFunction
long LoRa_APRS::getRxFrequency() const { long LoRa_APRS::getRxFrequency() const {
return _RxFrequency; return _RxFrequency;

View file

@ -19,6 +19,8 @@ public:
void setRxFrequency(long frequency); void setRxFrequency(long frequency);
long getRxFrequency() const; long getRxFrequency() const;
void setRxGain(uint8_t gain);
void setTxFrequency(long frequency); void setTxFrequency(long frequency);
long getTxFrequency() const; long getTxFrequency() const;
@ -26,6 +28,7 @@ private:
std::shared_ptr<APRSMessage> _LastReceivedMsg; std::shared_ptr<APRSMessage> _LastReceivedMsg;
long _RxFrequency; long _RxFrequency;
long _TxFrequency; long _TxFrequency;
uint8_t _RxGain;
}; };
#endif #endif

View file

@ -18,7 +18,7 @@
#include "TaskWifi.h" #include "TaskWifi.h"
#include "project_configuration.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_lat_aprs(double lat);
String create_long_aprs(double lng); String create_long_aprs(double lng);
@ -100,9 +100,10 @@ void setup() {
LoRaSystem.getTaskManager().addTask(&routerTask); LoRaSystem.getTaskManager().addTask(&routerTask);
if (userConfig.aprs_is.active) { if (userConfig.aprs_is.active) {
if (boardConfig->Type == eETH_BOARD) { if (boardConfig->Type == eETH_BOARD && !userConfig.wifi.active) {
LoRaSystem.getTaskManager().addAlwaysRunTask(&ethTask); LoRaSystem.getTaskManager().addAlwaysRunTask(&ethTask);
} else { }
if (userConfig.wifi.active) {
LoRaSystem.getTaskManager().addAlwaysRunTask(&wifiTask); LoRaSystem.getTaskManager().addAlwaysRunTask(&wifiTask);
} }
LoRaSystem.getTaskManager().addTask(&otaTask); LoRaSystem.getTaskManager().addTask(&otaTask);

View file

@ -24,6 +24,7 @@ bool ModemTask::setup(System &system) {
; ;
} }
_lora_aprs.setRxFrequency(system.getUserConfig()->lora.frequencyRx); _lora_aprs.setRxFrequency(system.getUserConfig()->lora.frequencyRx);
_lora_aprs.setRxGain(system.getUserConfig()->lora.gainRx);
_lora_aprs.setTxFrequency(system.getUserConfig()->lora.frequencyTx); _lora_aprs.setTxFrequency(system.getUserConfig()->lora.frequencyTx);
_lora_aprs.setTxPower(system.getUserConfig()->lora.power); _lora_aprs.setTxPower(system.getUserConfig()->lora.power);
_lora_aprs.setSpreadingFactor(system.getUserConfig()->lora.spreadingFactor); _lora_aprs.setSpreadingFactor(system.getUserConfig()->lora.spreadingFactor);

View file

@ -17,6 +17,7 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen
conf.network.dns2.fromString(data["network"]["dns2"].as<String>()); conf.network.dns2.fromString(data["network"]["dns2"].as<String>());
} }
conf.wifi.active = data["wifi"]["active"];
JsonArray aps = data["wifi"]["AP"].as<JsonArray>(); JsonArray aps = data["wifi"]["AP"].as<JsonArray>();
for (JsonVariant v : aps) { for (JsonVariant v : aps) {
Configuration::Wifi::AP ap; Configuration::Wifi::AP ap;
@ -39,6 +40,7 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen
conf.digi.active = data["digi"]["active"] | false; conf.digi.active = data["digi"]["active"] | false;
conf.digi.beacon = data["digi"]["beacon"] | false; conf.digi.beacon = data["digi"]["beacon"] | false;
conf.lora.frequencyRx = data["lora"]["frequency_rx"] | 433775000; conf.lora.frequencyRx = data["lora"]["frequency_rx"] | 433775000;
conf.lora.gainRx = data["lora"]["gain_rx"] | 6;
conf.lora.frequencyTx = data["lora"]["frequency_tx"] | 433775000; conf.lora.frequencyTx = data["lora"]["frequency_tx"] | 433775000;
conf.lora.power = data["lora"]["power"] | 20; conf.lora.power = data["lora"]["power"] | 20;
conf.lora.spreadingFactor = data["lora"]["spreading_factor"] | 12; conf.lora.spreadingFactor = data["lora"]["spreading_factor"] | 12;
@ -82,6 +84,7 @@ void ProjectConfigurationManagement::writeProjectConfiguration(Configuration &co
data["network"]["dns2"] = conf.network.dns2.toString(); data["network"]["dns2"] = conf.network.dns2.toString();
} }
data["wifi"]["active"] = conf.wifi.active;
JsonArray aps = data["wifi"].createNestedArray("AP"); JsonArray aps = data["wifi"].createNestedArray("AP");
for (Configuration::Wifi::AP ap : conf.wifi.APs) { for (Configuration::Wifi::AP ap : conf.wifi.APs) {
JsonObject v = aps.createNestedObject(); JsonObject v = aps.createNestedObject();
@ -99,6 +102,7 @@ void ProjectConfigurationManagement::writeProjectConfiguration(Configuration &co
data["digi"]["active"] = conf.digi.active; data["digi"]["active"] = conf.digi.active;
data["digi"]["beacon"] = conf.digi.beacon; data["digi"]["beacon"] = conf.digi.beacon;
data["lora"]["frequency_rx"] = conf.lora.frequencyRx; data["lora"]["frequency_rx"] = conf.lora.frequencyRx;
data["lora"]["gain_rx"] = conf.lora.gainRx;
data["lora"]["frequency_tx"] = conf.lora.frequencyTx; data["lora"]["frequency_tx"] = conf.lora.frequencyTx;
data["lora"]["power"] = conf.lora.power; data["lora"]["power"] = conf.lora.power;
data["lora"]["spreading_factor"] = conf.lora.spreadingFactor; data["lora"]["spreading_factor"] = conf.lora.spreadingFactor;

View file

@ -21,13 +21,14 @@ public:
class Wifi { class Wifi {
public: public:
bool active;
class AP { class AP {
public: public:
String SSID; String SSID;
String password; String password;
}; };
Wifi() { Wifi() : active(true) {
} }
std::list<AP> APs; std::list<AP> APs;
@ -70,6 +71,7 @@ public:
} }
long frequencyRx; long frequencyRx;
uint8_t gainRx;
long frequencyTx; long frequencyTx;
int power; int power;
int spreadingFactor; int spreadingFactor;