From 7d5d36b4fa4d57d69a120a0d77d1a4fb44f41a31 Mon Sep 17 00:00:00 2001 From: richonguzman Date: Mon, 19 Jun 2023 20:17:23 -0400 Subject: [PATCH] added configuration safe rutine --- data/igate_conf.json | 9 +++++---- src/configuration.cpp | 31 ++++++++++++++++--------------- src/configuration.h | 1 + src/display.cpp | 7 ++++++- 4 files changed, 28 insertions(+), 20 deletions(-) diff --git a/data/igate_conf.json b/data/igate_conf.json index e4cd75c..f6cb39e 100644 --- a/data/igate_conf.json +++ b/data/igate_conf.json @@ -1,13 +1,13 @@ { - "callsign": "CD2RXU-11", + "callsign": "CD2RXU-10", "stationMode": 2, "iGateComment": "LoRa_APRS_iGate", "wifi": { "AP": [ { "ssid": "Richon", "password": "k4fPnmg5qnyf", - "latitude": -33.0468601, - "longitude": -71.6270988 + "latitude": -33.0337313, + "longitude": -71.5737261 }, { "ssid": "Jimenita", "password": "mg6wyMhqRnxk", @@ -38,7 +38,8 @@ }, "display": { "alwaysOn": true, - "timeout": 4 + "timeout": 4, + "turn180" : false }, "syslog": { "active": false, diff --git a/src/configuration.cpp b/src/configuration.cpp index 499257a..ae9edad 100644 --- a/src/configuration.cpp +++ b/src/configuration.cpp @@ -34,8 +34,8 @@ void Configuration::readFile(fs::FS &fs, const char *fileName) { callsign = data["callsign"].as(); stationMode = data["stationMode"].as(); iGateComment = data["iGateComment"].as(); - beaconInterval = data["other"]["beaconInterval"].as(); - rememberStationTime = data["other"]["rememberStationTime"].as(); + beaconInterval = data["other"]["beaconInterval"].as() | 15; + rememberStationTime = data["other"]["rememberStationTime"].as() | 30; digi.comment = data["digi"]["comment"].as(); digi.latitude = data["digi"]["latitude"].as(); @@ -43,25 +43,26 @@ void Configuration::readFile(fs::FS &fs, const char *fileName) { aprs_is.passcode = data["aprs_is"]["passcode"].as(); aprs_is.server = data["aprs_is"]["server"].as(); - aprs_is.port = data["aprs_is"]["port"].as(); - aprs_is.reportingDistance = data["aprs_is"]["reportingDistance"].as(); + aprs_is.port = data["aprs_is"]["port"].as() | 14580; + aprs_is.reportingDistance = data["aprs_is"]["reportingDistance"].as() | 30; - loramodule.iGateFreq = data["lora"]["iGateFreq"].as(); - loramodule.digirepeaterTxFreq = data["lora"]["digirepeaterTxFreq"].as(); - loramodule.digirepeaterRxFreq = data["lora"]["digirepeaterRxFreq"].as(); - loramodule.spreadingFactor = data["lora"]["spreadingFactor"].as(); - loramodule.signalBandwidth = data["lora"]["signalBandwidth"].as(); - loramodule.codingRate4 = data["lora"]["codingRate4"].as(); - loramodule.power = data["lora"]["power"].as(); + loramodule.iGateFreq = data["lora"]["iGateFreq"].as() | 433775000; + loramodule.digirepeaterTxFreq = data["lora"]["digirepeaterTxFreq"].as() | 433775000; + loramodule.digirepeaterRxFreq = data["lora"]["digirepeaterRxFreq"].as() | 433900000; + loramodule.spreadingFactor = data["lora"]["spreadingFactor"].as() | 12; + loramodule.signalBandwidth = data["lora"]["signalBandwidth"].as() | 125000; + loramodule.codingRate4 = data["lora"]["codingRate4"].as() | 5; + loramodule.power = data["lora"]["power"].as() | 20; - display.alwaysOn = data["display"]["alwaysOn"].as(); - display.timeout = data["display"]["timeout"].as(); + display.alwaysOn = data["display"]["alwaysOn"].as() | true; + display.timeout = data["display"]["timeout"].as() | 4; + display.turn180 = data["display"]["turn180"].as() | false; - syslog.active = data["syslog"]["active"].as(); + syslog.active = data["syslog"]["active"].as() | false; syslog.server = data["syslog"]["server"].as(); syslog.port = data["syslog"]["port"].as(); - bme.active = data["bme"]["active"].as(); + bme.active = data["bme"]["active"].as() | false; configFile.close(); } diff --git a/src/configuration.h b/src/configuration.h index ec90351..f131524 100644 --- a/src/configuration.h +++ b/src/configuration.h @@ -43,6 +43,7 @@ class Display { public: bool alwaysOn; int timeout; + bool turn180; }; class SYSLOG { diff --git a/src/display.cpp b/src/display.cpp index e466872..8b60471 100644 --- a/src/display.cpp +++ b/src/display.cpp @@ -1,11 +1,14 @@ #include #include #include +#include "configuration.h" #include "pins_config.h" #include "display.h" Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); +extern Configuration Config; + void setup_display() { Wire.begin(OLED_SDA, OLED_SCL); @@ -13,7 +16,9 @@ void setup_display() { Serial.println(F("SSD1306 allocation failed")); for(;;); // Don't proceed, loop forever } - + if (Config.display.turn180) { + display.setRotation(2); + } display.clearDisplay(); display.setTextColor(WHITE); display.setTextSize(1);