make APRS-IS connection optional

pull/90/head
Christoph Kottke 2021-05-24 14:22:16 +02:00
rodzic d6083df174
commit 6eb82b78bf
5 zmienionych plików z 17 dodań i 4 usunięć

Wyświetl plik

@ -17,6 +17,7 @@
"timeout": 15 "timeout": 15
}, },
"aprs_is": { "aprs_is": {
"active": true,
"passcode": "", "passcode": "",
"server": "euro.aprs2.net", "server": "euro.aprs2.net",
"port": 14580 "port": 14580

Wyświetl plik

@ -105,7 +105,9 @@ void setup() {
if (userConfig.ftp.active) { if (userConfig.ftp.active) {
LoRaSystem.getTaskManager().addTask(&ftpTask); LoRaSystem.getTaskManager().addTask(&ftpTask);
} }
LoRaSystem.getTaskManager().addTask(&aprsIsTask); if (userConfig.aprs_is.active) {
LoRaSystem.getTaskManager().addTask(&aprsIsTask);
}
LoRaSystem.getTaskManager().addTask(&routerTask); LoRaSystem.getTaskManager().addTask(&routerTask);
LoRaSystem.getTaskManager().setup(LoRaSystem); LoRaSystem.getTaskManager().setup(LoRaSystem);

Wyświetl plik

@ -40,7 +40,8 @@ bool RouterTask::loop(System &system) {
} }
msg->setPath(path + "qAR," + system.getUserConfig()->callsign); msg->setPath(path + "qAR," + system.getUserConfig()->callsign);
_toAprsIs.addElement(msg); if (system.getUserConfig()->aprs_is.active)
_toAprsIs.addElement(msg);
} }
} }
@ -48,11 +49,17 @@ bool RouterTask::loop(System &system) {
if (_beacon_timer.check()) { if (_beacon_timer.check()) {
logPrintD("[" + timeString() + "] "); logPrintD("[" + timeString() + "] ");
logPrintlnD(_beaconMsg->encode()); logPrintlnD(_beaconMsg->encode());
_toAprsIs.addElement(_beaconMsg);
if (system.getUserConfig()->aprs_is.active)
_toAprsIs.addElement(_beaconMsg);
system.getDisplay().addFrame(std::shared_ptr<DisplayFrame>(new TextFrame("BEACON", _beaconMsg->toString()))); system.getDisplay().addFrame(std::shared_ptr<DisplayFrame>(new TextFrame("BEACON", _beaconMsg->toString())));
_beacon_timer.start(); _beacon_timer.start();
} }
uint32_t diff = _beacon_timer.getTriggerTimeInSec(); uint32_t diff = _beacon_timer.getTriggerTimeInSec();
_stateInfo = "beacon " + String(uint32_t(diff / 60)) + ":" + String(uint32_t(diff % 60)); _stateInfo = "beacon " + String(uint32_t(diff / 60)) + ":" + String(uint32_t(diff % 60));
return true; return true;
} }

Wyświetl plik

@ -20,6 +20,7 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen
conf.beacon.positionLatitude = data["beacon"]["position"]["latitude"] | 0.0; conf.beacon.positionLatitude = data["beacon"]["position"]["latitude"] | 0.0;
conf.beacon.positionLongitude = data["beacon"]["position"]["longitude"] | 0.0; conf.beacon.positionLongitude = data["beacon"]["position"]["longitude"] | 0.0;
conf.beacon.timeout = data["beacon"]["timeout"] | 15; conf.beacon.timeout = data["beacon"]["timeout"] | 15;
conf.aprs_is.active = data["aprs_is"]["active"] | true;
if (data.containsKey("aprs_is") && data["aprs_is"].containsKey("passcode")) if (data.containsKey("aprs_is") && data["aprs_is"].containsKey("passcode"))
conf.aprs_is.passcode = data["aprs_is"]["passcode"].as<String>(); conf.aprs_is.passcode = data["aprs_is"]["passcode"].as<String>();
if (data.containsKey("aprs_is") && data["aprs_is"].containsKey("server")) if (data.containsKey("aprs_is") && data["aprs_is"].containsKey("server"))
@ -73,6 +74,7 @@ void ProjectConfigurationManagement::writeProjectConfiguration(Configuration &co
data["beacon"]["position"]["latitude"] = conf.beacon.positionLatitude; data["beacon"]["position"]["latitude"] = conf.beacon.positionLatitude;
data["beacon"]["position"]["longitude"] = conf.beacon.positionLongitude; data["beacon"]["position"]["longitude"] = conf.beacon.positionLongitude;
data["beacon"]["timeout"] = conf.beacon.timeout; data["beacon"]["timeout"] = conf.beacon.timeout;
data["aprs_is"]["active"] = conf.aprs_is.active;
data["aprs_is"]["passcode"] = conf.aprs_is.passcode; data["aprs_is"]["passcode"] = conf.aprs_is.passcode;
data["aprs_is"]["server"] = conf.aprs_is.server; data["aprs_is"]["server"] = conf.aprs_is.server;
data["aprs_is"]["port"] = conf.aprs_is.port; data["aprs_is"]["port"] = conf.aprs_is.port;

Wyświetl plik

@ -33,9 +33,10 @@ public:
class APRS_IS { class APRS_IS {
public: public:
APRS_IS() : server("euro.aprs2.net"), port(14580) { APRS_IS() : active(true), server("euro.aprs2.net"), port(14580) {
} }
bool active;
String passcode; String passcode;
String server; String server;
int port; int port;