From 72d3b9a3ac14040aff8c76babd657755832e1e47 Mon Sep 17 00:00:00 2001 From: richonguzman Date: Sun, 16 Jul 2023 09:54:59 -0400 Subject: [PATCH] 1.3 --- data/tracker_config.json | 3 ++- src/LoRa_APRS_Tracker.cpp | 3 ++- src/configuration.cpp | 3 ++- src/configuration.h | 3 ++- src/display.cpp | 30 +++++++++++++++++------------- src/display.h | 1 - src/menu_utils.cpp | 8 ++++---- 7 files changed, 29 insertions(+), 22 deletions(-) diff --git a/data/tracker_config.json b/data/tracker_config.json index d2b520b..d3e2a37 100644 --- a/data/tracker_config.json +++ b/data/tracker_config.json @@ -57,7 +57,8 @@ "power": 20 }, "other": { - "showSymbolOnDisplay": true, + "showSymbolCharacter": true, + "showCustomCharacter": true, "sendCommentAfterXBeacons": 10, "displayEcoMode": false, "displayTimeout": 4, diff --git a/src/LoRa_APRS_Tracker.cpp b/src/LoRa_APRS_Tracker.cpp index b6fce9c..b6753b8 100644 --- a/src/LoRa_APRS_Tracker.cpp +++ b/src/LoRa_APRS_Tracker.cpp @@ -37,7 +37,7 @@ int myBeaconsIndex = 0; int myBeaconsSize = Config.beacons.size(); Beacon *currentBeacon = &Config.beacons[myBeaconsIndex]; -int menuDisplay = 0; +int menuDisplay = 100; int messagesIterator = 0; std::vector loadedAPRSMessages; @@ -94,6 +94,7 @@ void setup() { powerManagement.lowerCpuFrequency(); logger.log(logging::LoggerLevel::LOGGER_LEVEL_INFO, "Main", "Smart Beacon is: %s", utils::getSmartBeaconState()); logger.log(logging::LoggerLevel::LOGGER_LEVEL_INFO, "Main", "Setup Done!"); + menuDisplay = 0; } void loop() { diff --git a/src/configuration.cpp b/src/configuration.cpp index 40f7611..96dec25 100644 --- a/src/configuration.cpp +++ b/src/configuration.cpp @@ -50,7 +50,8 @@ void Configuration::readFile(fs::FS &fs, const char *fileName) { loramodule.codingRate4 = data["lora"]["codingRate4"].as(); loramodule.power = data["lora"]["power"].as(); - showSymbolOnDisplay = data["other"]["showSymbolOnDisplay"].as(); + showSymbolCharacter = data["other"]["showSymbolCharacter"].as(); + showCustomCharacter = data["other"]["showCustomCharacter"].as(); sendCommentAfterXBeacons = data["other"]["sendCommentAfterXBeacons"].as(); displayEcoMode = data["other"]["displayEcoMode"].as(); displayTimeout = data["other"]["displayTimeout"].as(); diff --git a/src/configuration.h b/src/configuration.h index a22b859..fd0748b 100644 --- a/src/configuration.h +++ b/src/configuration.h @@ -36,7 +36,8 @@ public: std::vector beacons; LoraModule loramodule; - bool showSymbolOnDisplay; + bool showSymbolCharacter; + bool showCustomCharacter; int sendCommentAfterXBeacons; bool displayEcoMode; int displayTimeout; diff --git a/src/display.cpp b/src/display.cpp index 4f7f4fb..6a2e6d9 100644 --- a/src/display.cpp +++ b/src/display.cpp @@ -6,10 +6,14 @@ #include "pins_config.h" #include "display.h" +#include "configuration.h" #include "custom_characters.h" #define SYM_HEIGHT 14 #define SYM_WIDTH 16 +extern Beacon *currentBeacon; +extern int menuDisplay; + const uint8_t *symbolsAPRS[]={runnerSymbol, carSymbol, bikeSymbol}; // T-Beams bought with soldered OLED Screen comes with only 4 pins (VCC, GND, SDA, SCL) @@ -21,7 +25,6 @@ extern logging::Logger logger; Adafruit_SSD1306 display(128, 64, &Wire, OLED_RST); - // cppcheck-suppress unusedFunction void setup_display() { delay(500); @@ -45,21 +48,9 @@ void setup_display() { display.setCursor(0, 0); display.ssd1306_command(SSD1306_SETCONTRAST); display.ssd1306_command(1); - - //display.drawBitmap(0, 0, runnerSymbol, 8, 14, WHITE); - display.display(); } - -void drawAPRSSymbol(int i) { - display.drawBitmap( - (display.width() - SYM_WIDTH), 0, symbolsAPRS[i], SYM_WIDTH, SYM_HEIGHT, 1); - display.display(); -} - - - // cppcheck-suppress unusedFunction void display_toggle(bool toggle) { if (toggle) { @@ -178,6 +169,19 @@ void show_display(String header, String line1, String line2, String line3, Strin display.println(line5); display.ssd1306_command(SSD1306_SETCONTRAST); display.ssd1306_command(1); + + if (menuDisplay==0) { + int symbol; + if(currentBeacon->symbol == "[") { + symbol = 0; + } else if(currentBeacon->symbol == ">") { + symbol = 1; + } else { + symbol = 2; + } + display.drawBitmap((display.width() - SYM_WIDTH), 0, symbolsAPRS[symbol], SYM_WIDTH, SYM_HEIGHT, 1); + } + display.display(); delay(wait); } \ No newline at end of file diff --git a/src/display.h b/src/display.h index 64095ee..0025e6d 100644 --- a/src/display.h +++ b/src/display.h @@ -3,7 +3,6 @@ #define DISPLAY_H_ void setup_display(); -void drawAPRSSymbol(int i); void display_toggle(bool toggle); void show_display(String header, int wait = 0); diff --git a/src/menu_utils.cpp b/src/menu_utils.cpp index 07bf9eb..48b548f 100644 --- a/src/menu_utils.cpp +++ b/src/menu_utils.cpp @@ -56,11 +56,11 @@ void showOnScreen() { String hdopState, firstRowMainMenu, secondRowMainMenu, thirdRowMainMenu, fourthRowMainMenu, fifthRowMainMenu, sixthRowMainMenu; firstRowMainMenu = currentBeacon->callsign; - if (Config.showSymbolOnDisplay) { + if (Config.showSymbolCharacter && !Config.showCustomCharacter) { for (int j=firstRowMainMenu.length();j<9;j++) { firstRowMainMenu += " "; } - //firstRowMainMenu += currentBeacon->symbol; + firstRowMainMenu += currentBeacon->symbol; } secondRowMainMenu = utils::createDateString(now()) + " " + utils::createTimeString(now()); @@ -139,8 +139,8 @@ void showOnScreen() { String(fourthRowMainMenu), String(fifthRowMainMenu), String(sixthRowMainMenu)); - if(currentBeacon->symbol == "[") drawAPRSSymbol(0); - if(currentBeacon->symbol == ">") drawAPRSSymbol(1); + //if(currentBeacon->symbol == "[") drawAPRSSymbol(0); + //if(currentBeacon->symbol == ">") drawAPRSSymbol(1); break; } }