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