readyToTest
This commit is contained in:
parent
ebc5fc580b
commit
22b7b100f6
|
|
@ -45,7 +45,7 @@ TinyGPSPlus gps;
|
|||
OneButton userButton = OneButton(BUTTON_PIN, true, true);
|
||||
#endif
|
||||
|
||||
String versionDate = "2024.07.01";
|
||||
String versionDate = "2024.07.02";
|
||||
|
||||
uint8_t myBeaconsIndex = 0;
|
||||
int myBeaconsSize = Config.beacons.size();
|
||||
|
|
@ -106,6 +106,7 @@ void setup() {
|
|||
|
||||
STATION_Utils::loadIndex(0);
|
||||
STATION_Utils::loadIndex(1);
|
||||
STATION_Utils::nearTrackerInit();
|
||||
startupScreen(loraIndex, versionDate);
|
||||
|
||||
MSG_Utils::loadNumMessages();
|
||||
|
|
|
|||
|
|
@ -33,6 +33,8 @@ extern uint32_t lastTx;
|
|||
|
||||
double currentHeading = 0;
|
||||
double previousHeading = 0;
|
||||
float bearing = 0;
|
||||
|
||||
|
||||
namespace GPS_Utils {
|
||||
|
||||
|
|
@ -104,7 +106,28 @@ namespace GPS_Utils {
|
|||
}
|
||||
}
|
||||
|
||||
String getCurrentHeadingHuman(float bearing) {
|
||||
String getHumanBearing(const String& left, const String& center, const String& right) {
|
||||
String bearing = ">.";
|
||||
bearing += left;
|
||||
for (int i = 0; i < 9; i++) {
|
||||
bearing += ".";
|
||||
}
|
||||
bearing += "(";
|
||||
bearing += center;
|
||||
bearing += ").....";
|
||||
if (right.length() == 1 && center.length() != 2) {
|
||||
bearing += ".";
|
||||
}
|
||||
bearing += right;
|
||||
bearing += ".<";
|
||||
return bearing;
|
||||
}
|
||||
|
||||
String getCardinalDirection(float course) {
|
||||
if (gps.speed.kmph() > 0.5) {
|
||||
bearing = course;
|
||||
}
|
||||
|
||||
if (bearing >= 354.375 || bearing < 5.625) return ">.NW.....(N).....NE.<"; // N
|
||||
if (bearing >= 5.675 && bearing < 16.875) return ">.......N.|.....NE..<";
|
||||
if (bearing >= 16.875 && bearing < 28.125) return ">.....N...|...NE....<"; // NEN
|
||||
|
|
@ -137,7 +160,7 @@ namespace GPS_Utils {
|
|||
if (bearing >= 320.625 && bearing < 331.875) return ">.......NW|.....N...<";
|
||||
if (bearing >= 331.875 && bearing < 343.125) return ">.....NW..|...N.....<"; // NWN
|
||||
if (bearing >= 343.125 && bearing < 354.375) return ">...NW....|.N.......<";
|
||||
return "?";
|
||||
return "";
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -12,7 +12,7 @@ namespace GPS_Utils {
|
|||
void calculateDistanceTraveled();
|
||||
void calculateHeadingDelta(int speed);
|
||||
void checkStartUpFrames();
|
||||
String getCurrentHeadingHuman(float bearing);
|
||||
String getCardinalDirection(float course);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -62,6 +62,8 @@ String messageText = "";
|
|||
|
||||
int messagesIterator = 0;
|
||||
|
||||
bool showHumanHeading = false;
|
||||
|
||||
bool mouseUpState = 0;
|
||||
bool mouseDownState = 0;
|
||||
bool mouseLeftState = 0;
|
||||
|
|
@ -532,6 +534,8 @@ namespace KEYBOARD_Utils {
|
|||
}
|
||||
if (menuDisplay == 0 && key == 13) { // Main Menu
|
||||
menuDisplay = 1;
|
||||
} else if (menuDisplay == 0 && key == 8) {
|
||||
showHumanHeading = !showHumanHeading;
|
||||
} else if (key == 27) { // ESC = return to Main Menu
|
||||
menuDisplay = 0;
|
||||
messagesIterator = 0;
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
#include "power_utils.h"
|
||||
#include "menu_utils.h"
|
||||
#include "msg_utils.h"
|
||||
#include "gps_utils.h"
|
||||
#include "bme_utils.h"
|
||||
#include "display.h"
|
||||
#include "utils.h"
|
||||
|
|
@ -32,6 +33,7 @@ extern bool bluetoothActive;
|
|||
extern bool displayEcoMode;
|
||||
extern bool screenBrightness;
|
||||
extern bool disableGPS;
|
||||
extern bool showHumanHeading;
|
||||
extern APRSPacket lastReceivedPacket;
|
||||
|
||||
extern uint8_t winlinkStatus;
|
||||
|
|
@ -328,7 +330,7 @@ namespace MENU_Utils {
|
|||
}
|
||||
break;
|
||||
case 310: //3.Stations ---> Near By Stations
|
||||
show_display("NEAR BY >", STATION_Utils::getFirstNearTracker(), STATION_Utils::getSecondNearTracker(), STATION_Utils::getThirdNearTracker(), STATION_Utils::getFourthNearTracker(), "<Back");
|
||||
show_display("NEAR BY >", STATION_Utils::getNearTracker(0), STATION_Utils::getNearTracker(1), STATION_Utils::getNearTracker(2), STATION_Utils::getNearTracker(3), "<Back");
|
||||
break;
|
||||
|
||||
//////////
|
||||
|
|
@ -592,8 +594,12 @@ namespace MENU_Utils {
|
|||
}
|
||||
#endif
|
||||
|
||||
if (showHumanHeading) {
|
||||
fifthRowMainMenu = GPS_Utils::getCardinalDirection(gps.course.deg());
|
||||
} else {
|
||||
fifthRowMainMenu = "LAST Rx = ";
|
||||
fifthRowMainMenu += MSG_Utils::getLastHeardTracker();
|
||||
}
|
||||
|
||||
if (POWER_Utils::getBatteryInfoIsConnected()) {
|
||||
String batteryVoltage = POWER_Utils::getBatteryInfoVoltage();
|
||||
|
|
|
|||
|
|
@ -45,314 +45,117 @@ uint32_t wxRequestTime = 0;
|
|||
uint32_t lastTelemetryTx = 0;
|
||||
uint32_t telemetryTx = millis();
|
||||
|
||||
String firstNearTracker;
|
||||
String secondNearTracker;
|
||||
String thirdNearTracker;
|
||||
String fourthNearTracker;
|
||||
|
||||
uint32_t lastDeleteListenedTracker;
|
||||
|
||||
struct nearTracker {
|
||||
String callsign;
|
||||
float distance;
|
||||
int course;
|
||||
uint32_t lastTime;
|
||||
};
|
||||
|
||||
nearTracker nearTrackers[4];
|
||||
|
||||
|
||||
namespace STATION_Utils {
|
||||
|
||||
const String getFirstNearTracker() {
|
||||
return String(firstNearTracker.substring(0, firstNearTracker.indexOf(",")));
|
||||
void nearTrackerInit() {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
nearTrackers[i].callsign = "";
|
||||
nearTrackers[i].distance = 0.0;
|
||||
nearTrackers[i].course = 0;
|
||||
nearTrackers[i].lastTime = 0;
|
||||
}
|
||||
}
|
||||
|
||||
const String getSecondNearTracker() {
|
||||
return String(secondNearTracker.substring(0, secondNearTracker.indexOf(",")));
|
||||
const String getNearTracker(uint8_t position) {
|
||||
if (nearTrackers[position].callsign == "") {
|
||||
return "";
|
||||
} else {
|
||||
return nearTrackers[position].callsign + "> " + String(nearTrackers[position].distance,2) + "km " + String(nearTrackers[position].course);
|
||||
}
|
||||
|
||||
const String getThirdNearTracker() {
|
||||
return String(thirdNearTracker.substring(0, thirdNearTracker.indexOf(",")));
|
||||
}
|
||||
|
||||
const String getFourthNearTracker() {
|
||||
return String(fourthNearTracker.substring(0, fourthNearTracker.indexOf(",")));
|
||||
}
|
||||
|
||||
void deleteListenedTrackersbyTime() {
|
||||
String firstNearTrackermillis, secondNearTrackermillis, thirdNearTrackermillis, fourthNearTrackermillis;
|
||||
uint32_t firstTrackermillis, secondTrackermillis, thirdTrackermillis, fourthTrackermillis;
|
||||
if (firstNearTracker != "") {
|
||||
firstNearTrackermillis = firstNearTracker.substring(firstNearTracker.indexOf(",") + 1);
|
||||
firstTrackermillis = firstNearTrackermillis.toInt();
|
||||
if ((millis() - firstTrackermillis) > Config.rememberStationTime * 60 * 1000) {
|
||||
firstNearTracker = "";
|
||||
}
|
||||
}
|
||||
if (secondNearTracker != "") {
|
||||
secondNearTrackermillis = secondNearTracker.substring(secondNearTracker.indexOf(",") + 1);
|
||||
secondTrackermillis = secondNearTrackermillis.toInt();
|
||||
if ((millis() - secondTrackermillis) > Config.rememberStationTime * 60 * 1000) {
|
||||
secondNearTracker = "";
|
||||
}
|
||||
}
|
||||
if (thirdNearTracker != "") {
|
||||
thirdNearTrackermillis = thirdNearTracker.substring(thirdNearTracker.indexOf(",") + 1);
|
||||
thirdTrackermillis = thirdNearTrackermillis.toInt();
|
||||
if ((millis() - thirdTrackermillis) > Config.rememberStationTime * 60 * 1000) {
|
||||
thirdNearTracker = "";
|
||||
}
|
||||
}
|
||||
if (fourthNearTracker != "") {
|
||||
fourthNearTrackermillis = fourthNearTracker.substring(fourthNearTracker.indexOf(",") + 1);
|
||||
fourthTrackermillis = fourthNearTrackermillis.toInt();
|
||||
if ((millis() - fourthTrackermillis) > Config.rememberStationTime * 60 * 1000) {
|
||||
fourthNearTracker = "";
|
||||
for (int a = 0; a < 4; a++) { // clean nearTrackers[] after time
|
||||
if (nearTrackers[a].callsign != "" && (millis() - nearTrackers[a].lastTime > Config.rememberStationTime * 60 * 1000)) {
|
||||
nearTrackers[a].callsign = "";
|
||||
nearTrackers[a].distance = 0.0;
|
||||
nearTrackers[a].course = 0;
|
||||
nearTrackers[a].lastTime = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (thirdNearTracker == "") {
|
||||
thirdNearTracker = fourthNearTracker;
|
||||
fourthNearTracker = "";
|
||||
for (int b = 0; b < 4 - 1; b++) {
|
||||
for (int c = 0; c < 4 - b - 1; c++) {
|
||||
if (nearTrackers[c].callsign == "") { // get "" nearTrackers[] at the end
|
||||
nearTracker temp = nearTrackers[c];
|
||||
nearTrackers[c] = nearTrackers[c + 1];
|
||||
nearTrackers[c + 1] = temp;
|
||||
}
|
||||
if (secondNearTracker == "") {
|
||||
secondNearTracker = thirdNearTracker;
|
||||
thirdNearTracker = fourthNearTracker;
|
||||
fourthNearTracker = "";
|
||||
}
|
||||
if (firstNearTracker == "") {
|
||||
firstNearTracker = secondNearTracker;
|
||||
secondNearTracker = thirdNearTracker;
|
||||
thirdNearTracker = fourthNearTracker;
|
||||
fourthNearTracker = "";
|
||||
}
|
||||
lastDeleteListenedTracker = millis();
|
||||
}
|
||||
|
||||
void checkListenedTrackersByTimeAndDelete() {
|
||||
if (millis() - lastDeleteListenedTracker > Config.rememberStationTime*60*1000) {
|
||||
if (millis() - lastDeleteListenedTracker > Config.rememberStationTime * 60 * 1000) {
|
||||
deleteListenedTrackersbyTime();
|
||||
}
|
||||
}
|
||||
|
||||
void orderListenedTrackersByDistance(const String& callsign, float distance, float course) {
|
||||
String firstNearTrackerDistance, secondNearTrackerDistance, thirdNearTrackerDistance, fourthNearTrackerDistance, firstNearTrackerCallsign, secondNearTrackerCallsign,thirdNearTrackerCallsign, fourthNearTrackerCallsign;
|
||||
float firstDistance = 0.0;
|
||||
float secondDistance = 0.0;
|
||||
float thirdDistance = 0.0;
|
||||
float fourthDistance = 0.0;
|
||||
if (firstNearTracker != "") {
|
||||
firstNearTrackerCallsign = firstNearTracker.substring(0, firstNearTracker.indexOf(">"));
|
||||
firstNearTrackerDistance = firstNearTracker.substring(firstNearTracker.indexOf(">") + 1, firstNearTracker.indexOf("km"));
|
||||
firstDistance = firstNearTrackerDistance.toFloat();
|
||||
bool shouldSortbyDistance = false;
|
||||
bool callsignInNearTrackers = false;
|
||||
|
||||
for (int a = 0; a < 4; a++) { // check if callsign is in nearTrackers[]
|
||||
if (nearTrackers[a].callsign == callsign) {
|
||||
callsignInNearTrackers = true;
|
||||
nearTrackers[a].lastTime = millis(); // update listened millis()
|
||||
if (nearTrackers[a].distance != distance) { // update distance if needed
|
||||
nearTrackers[a].distance = distance;
|
||||
shouldSortbyDistance = true;
|
||||
}
|
||||
if (secondNearTracker != "") {
|
||||
secondNearTrackerCallsign = secondNearTracker.substring(0, secondNearTracker.indexOf(">"));
|
||||
secondNearTrackerDistance = secondNearTracker.substring(secondNearTracker.indexOf(">") + 1, secondNearTracker.indexOf("km"));
|
||||
secondDistance = secondNearTrackerDistance.toFloat();
|
||||
break;
|
||||
}
|
||||
if (thirdNearTracker != "") {
|
||||
thirdNearTrackerCallsign = thirdNearTracker.substring(0, thirdNearTracker.indexOf(">"));
|
||||
thirdNearTrackerDistance = thirdNearTracker.substring(thirdNearTracker.indexOf(">") + 1, thirdNearTracker.indexOf("km"));
|
||||
thirdDistance = thirdNearTrackerDistance.toFloat();
|
||||
}
|
||||
if (fourthNearTracker != "") {
|
||||
fourthNearTrackerCallsign = fourthNearTracker.substring(0, fourthNearTracker.indexOf(">"));
|
||||
fourthNearTrackerDistance = fourthNearTracker.substring(fourthNearTracker.indexOf(">") + 1, fourthNearTracker.indexOf("km"));
|
||||
fourthDistance = fourthNearTrackerDistance.toFloat();
|
||||
}
|
||||
|
||||
String newTrackerInfo = callsign;
|
||||
newTrackerInfo += "> ";
|
||||
newTrackerInfo += String(distance,2);
|
||||
newTrackerInfo += "km ";
|
||||
newTrackerInfo += String(int(course));
|
||||
newTrackerInfo += ",";
|
||||
newTrackerInfo += String(millis());
|
||||
if (!callsignInNearTrackers) { // callsign not in nearTrackers[]
|
||||
for (int b = 0; b < 4; b++) { // if nearTrackers[] is available
|
||||
if (nearTrackers[b].callsign == "") {
|
||||
shouldSortbyDistance = true;
|
||||
nearTrackers[b].callsign = callsign;
|
||||
nearTrackers[b].distance = distance;
|
||||
nearTrackers[b].course = int(course);
|
||||
nearTrackers[b].lastTime = millis();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (firstNearTracker == "" && secondNearTracker == "" && thirdNearTracker == "" && fourthNearTracker == "") {
|
||||
firstNearTracker = newTrackerInfo;
|
||||
} else if (firstNearTracker != "" && secondNearTracker == "" && thirdNearTracker == "" && fourthNearTracker == "") {
|
||||
if (callsign != firstNearTrackerCallsign) {
|
||||
if (distance < firstDistance) {
|
||||
secondNearTracker = firstNearTracker;
|
||||
firstNearTracker = newTrackerInfo;
|
||||
} else {
|
||||
secondNearTracker = newTrackerInfo;
|
||||
if (!shouldSortbyDistance) { // if no more nearTrackers[] available , it compares distances to move and replace
|
||||
for (int c = 0; c < 4; c++) {
|
||||
if (nearTrackers[c].distance > distance) {
|
||||
for (int d = 3; d > c; d--) {
|
||||
nearTrackers[d] = nearTrackers[d - 1];
|
||||
}
|
||||
} else {
|
||||
if (distance != firstDistance) {
|
||||
firstNearTracker = newTrackerInfo;
|
||||
}
|
||||
}
|
||||
} else if (firstNearTracker != "" && secondNearTracker != "" && thirdNearTracker == "" && fourthNearTracker == "") {
|
||||
if (callsign != firstNearTrackerCallsign && callsign != secondNearTrackerCallsign) {
|
||||
if (distance < firstDistance) {
|
||||
thirdNearTracker = secondNearTracker;
|
||||
secondNearTracker = firstNearTracker;
|
||||
firstNearTracker = newTrackerInfo;
|
||||
} else if (distance < secondDistance && distance >= firstDistance) {
|
||||
thirdNearTracker = secondNearTracker;
|
||||
secondNearTracker = newTrackerInfo;
|
||||
} else if (distance >= secondDistance) {
|
||||
thirdNearTracker = newTrackerInfo;
|
||||
}
|
||||
} else {
|
||||
if (callsign == firstNearTrackerCallsign) {
|
||||
if (distance != firstDistance) {
|
||||
if (distance > secondDistance) {
|
||||
firstNearTracker = secondNearTracker;
|
||||
secondNearTracker = newTrackerInfo;
|
||||
} else {
|
||||
firstNearTracker = newTrackerInfo;
|
||||
}
|
||||
}
|
||||
} else if (callsign == secondNearTrackerCallsign) {
|
||||
if (distance != secondDistance) {
|
||||
if (distance < firstDistance) {
|
||||
secondNearTracker = firstNearTracker;
|
||||
firstNearTracker = newTrackerInfo;
|
||||
} else {
|
||||
secondNearTracker = newTrackerInfo;
|
||||
nearTrackers[c].callsign = callsign;
|
||||
nearTrackers[c].distance = distance;
|
||||
nearTrackers[c].course = int(course);
|
||||
nearTrackers[c].lastTime = millis();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (firstNearTracker != "" && secondNearTracker != "" && thirdNearTracker != "" && fourthNearTracker == "") {
|
||||
if (callsign != firstNearTrackerCallsign && callsign != secondNearTrackerCallsign && callsign != thirdNearTrackerCallsign) {
|
||||
if (distance < firstDistance) {
|
||||
fourthNearTracker = thirdNearTracker;
|
||||
thirdNearTracker = secondNearTracker;
|
||||
secondNearTracker = firstNearTracker;
|
||||
firstNearTracker = newTrackerInfo;
|
||||
} else if (distance >= firstDistance && distance < secondDistance) {
|
||||
fourthNearTracker = thirdNearTracker;
|
||||
thirdNearTracker = secondNearTracker;
|
||||
secondNearTracker = newTrackerInfo;
|
||||
} else if (distance >= secondDistance && distance < thirdDistance) {
|
||||
fourthNearTracker = thirdNearTracker;
|
||||
thirdNearTracker = newTrackerInfo;
|
||||
} else if (distance >= thirdDistance) {
|
||||
fourthNearTracker = newTrackerInfo;
|
||||
}
|
||||
} else {
|
||||
if (callsign == firstNearTrackerCallsign) {
|
||||
if (distance != firstDistance) {
|
||||
if (distance > thirdDistance) {
|
||||
firstNearTracker = secondNearTracker;
|
||||
secondNearTracker = thirdNearTracker;
|
||||
thirdNearTracker = newTrackerInfo;
|
||||
} else if (distance <= thirdDistance && distance > secondDistance) {
|
||||
firstNearTracker = secondNearTracker;
|
||||
secondNearTracker = newTrackerInfo;
|
||||
} else if (distance <= secondDistance) {
|
||||
firstNearTracker = newTrackerInfo;
|
||||
}
|
||||
}
|
||||
} else if (callsign == secondNearTrackerCallsign) {
|
||||
if (distance != secondDistance) {
|
||||
if (distance > thirdDistance) {
|
||||
secondNearTracker = thirdNearTracker;
|
||||
thirdNearTracker = newTrackerInfo;
|
||||
} else if (distance <= thirdDistance && distance > firstDistance) {
|
||||
secondNearTracker = newTrackerInfo;
|
||||
} else if (distance <= firstDistance) {
|
||||
secondNearTracker = firstNearTracker;
|
||||
firstNearTracker = newTrackerInfo;
|
||||
}
|
||||
}
|
||||
} else if (callsign == thirdNearTrackerCallsign) {
|
||||
if (distance != thirdDistance) {
|
||||
if (distance <= firstDistance) {
|
||||
thirdNearTracker = secondNearTracker;
|
||||
secondNearTracker = firstNearTracker;
|
||||
firstNearTracker = newTrackerInfo;
|
||||
} else if (distance > firstDistance && distance <= secondDistance) {
|
||||
thirdNearTracker = secondNearTracker;
|
||||
secondNearTracker = newTrackerInfo;
|
||||
} else if (distance > secondDistance) {
|
||||
thirdNearTracker = newTrackerInfo;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (firstNearTracker != "" && secondNearTracker != "" && thirdNearTracker != "" && fourthNearTracker != "") {
|
||||
if (callsign != firstNearTrackerCallsign && callsign != secondNearTrackerCallsign && callsign != thirdNearTrackerCallsign && callsign != fourthNearTrackerCallsign) {
|
||||
if (distance < firstDistance) {
|
||||
fourthNearTracker = thirdNearTracker;
|
||||
thirdNearTracker = secondNearTracker;
|
||||
secondNearTracker = firstNearTracker;
|
||||
firstNearTracker = newTrackerInfo;
|
||||
} else if (distance < secondDistance && distance >= firstDistance) {
|
||||
fourthNearTracker = thirdNearTracker;
|
||||
thirdNearTracker = secondNearTracker;
|
||||
secondNearTracker = newTrackerInfo;
|
||||
} else if (distance < thirdDistance && distance >= secondDistance) {
|
||||
fourthNearTracker = thirdNearTracker;
|
||||
thirdNearTracker = newTrackerInfo;
|
||||
} else if (distance < fourthDistance && distance >= thirdDistance) {
|
||||
fourthNearTracker = newTrackerInfo;
|
||||
}
|
||||
} else {
|
||||
if (callsign == firstNearTrackerCallsign) {
|
||||
if (distance != firstDistance) {
|
||||
if (distance > fourthDistance) {
|
||||
firstNearTracker = secondNearTracker;
|
||||
secondNearTracker = thirdNearTracker;
|
||||
thirdNearTracker = fourthNearTracker;
|
||||
fourthNearTracker = newTrackerInfo;
|
||||
} else if (distance > thirdDistance && distance <= fourthDistance) {
|
||||
firstNearTracker = secondNearTracker;
|
||||
secondNearTracker = thirdNearTracker;
|
||||
thirdNearTracker = newTrackerInfo;
|
||||
} else if (distance > secondDistance && distance <= thirdDistance) {
|
||||
firstNearTracker = secondNearTracker;
|
||||
secondNearTracker = newTrackerInfo;
|
||||
} else if (distance <= secondDistance) {
|
||||
firstNearTracker = newTrackerInfo;
|
||||
}
|
||||
}
|
||||
} else if (callsign == secondNearTrackerCallsign) {
|
||||
if (distance != secondDistance) {
|
||||
if (distance > fourthDistance) {
|
||||
secondNearTracker = thirdNearTracker;
|
||||
thirdNearTracker = fourthNearTracker;
|
||||
fourthNearTracker = newTrackerInfo;
|
||||
} else if (distance > thirdDistance && distance <= fourthDistance) {
|
||||
secondNearTracker = thirdNearTracker;
|
||||
thirdNearTracker = newTrackerInfo;
|
||||
} else if (distance > firstDistance && distance <= thirdDistance) {
|
||||
secondNearTracker = newTrackerInfo;
|
||||
} else if (distance <= firstDistance) {
|
||||
secondNearTracker = firstNearTracker;
|
||||
firstNearTracker = newTrackerInfo;
|
||||
}
|
||||
}
|
||||
} else if (callsign == thirdNearTrackerCallsign) {
|
||||
if (distance != thirdDistance) {
|
||||
if (distance > fourthDistance) {
|
||||
thirdNearTracker = fourthNearTracker;
|
||||
fourthNearTracker = newTrackerInfo;
|
||||
} else if (distance > secondDistance && distance <= fourthDistance) {
|
||||
thirdNearTracker = newTrackerInfo;
|
||||
} else if (distance > firstDistance && distance <= secondDistance) {
|
||||
thirdNearTracker = secondNearTracker;
|
||||
secondNearTracker = newTrackerInfo;
|
||||
} else if (distance <= firstDistance) {
|
||||
thirdNearTracker = secondNearTracker;
|
||||
secondNearTracker = firstNearTracker;
|
||||
firstNearTracker = newTrackerInfo;
|
||||
}
|
||||
}
|
||||
} else if (callsign == fourthNearTrackerCallsign) {
|
||||
if (distance != fourthDistance) {
|
||||
if (distance > thirdDistance) {
|
||||
fourthNearTracker = newTrackerInfo;
|
||||
} else if (distance > secondDistance && distance <= thirdDistance) {
|
||||
fourthNearTracker = thirdNearTracker;
|
||||
thirdNearTracker = newTrackerInfo;
|
||||
} else if (distance > firstDistance && distance <= secondDistance) {
|
||||
fourthNearTracker = thirdNearTracker;
|
||||
thirdNearTracker = secondNearTracker;
|
||||
secondNearTracker = newTrackerInfo;
|
||||
} else if (distance <= firstDistance) {
|
||||
fourthNearTracker = thirdNearTracker;
|
||||
thirdNearTracker = secondNearTracker;
|
||||
secondNearTracker = firstNearTracker;
|
||||
firstNearTracker = newTrackerInfo;
|
||||
|
||||
if (shouldSortbyDistance) { // sorts by distance (only nearTrackers[] that are not "")
|
||||
for (int f = 0; f < 4 - 1; f++) {
|
||||
for (int g = 0; g < 4 - f - 1; g++) {
|
||||
if (nearTrackers[g].callsign != "" && nearTrackers[g + 1].callsign != "") {
|
||||
if (nearTrackers[g].distance > nearTrackers[g + 1].distance) {
|
||||
nearTracker temp = nearTrackers[g];
|
||||
nearTrackers[g] = nearTrackers[g + 1];
|
||||
nearTrackers[g + 1] = temp;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -445,7 +248,7 @@ namespace STATION_Utils {
|
|||
comment += batteryChargeCurrent;
|
||||
comment += "%)";
|
||||
#endif
|
||||
#if defined(HELTEC_V3_GPS) || defined(HELTEC_WIRELESS_TRACKER)
|
||||
#if defined(HELTEC_V3_GPS) || defined(HELTEC_WIRELESS_TRACKER) || defined(TTGO_T_DECK_GPS)
|
||||
comment += " Bat=";
|
||||
comment += String(batteryVoltage.toFloat(),2);
|
||||
comment += "V";
|
||||
|
|
|
|||
|
|
@ -5,10 +5,8 @@
|
|||
|
||||
namespace STATION_Utils {
|
||||
|
||||
const String getFirstNearTracker();
|
||||
const String getSecondNearTracker();
|
||||
const String getThirdNearTracker();
|
||||
const String getFourthNearTracker();
|
||||
void nearTrackerInit();
|
||||
const String getNearTracker(uint8_t position);
|
||||
|
||||
void deleteListenedTrackersbyTime();
|
||||
void checkListenedTrackersByTimeAndDelete();
|
||||
|
|
|
|||
Loading…
Reference in New Issue