WIDE fix when not present

This commit is contained in:
richonguzman 2024-06-08 14:39:15 -04:00
parent 6ee86f7557
commit b3441ece02
2 changed files with 18 additions and 24 deletions

View File

@ -60,19 +60,19 @@ namespace GPS_Utils {
} }
String beaconPacket = Config.callsign; String beaconPacket = Config.callsign;
beaconPacket += ">APLRG1"; beaconPacket += ">APLRG1";
if (Config.beacon.path != "") { if (Config.beacon.path.indexOf("WIDE") == 0) {
beaconPacket += ","; beaconPacket += ",";
beaconPacket += Config.beacon.path; beaconPacket += Config.beacon.path;
} }
String encodedGPS = encodeGPS(Config.beacon.latitude, Config.beacon.longitude, Config.beacon.overlay, Config.beacon.symbol);
iGateBeaconPacket = beaconPacket;
iGateBeaconPacket += ",qAC:!";
iGateBeaconPacket += encodedGPS;
iGateLoRaBeaconPacket = beaconPacket; iGateBeaconPacket = beaconPacket;
iGateLoRaBeaconPacket += ":!"; iGateBeaconPacket += ",qAC:!";
iGateLoRaBeaconPacket += encodedGPS; iGateLoRaBeaconPacket = beaconPacket;
iGateLoRaBeaconPacket += ":!";
String encodedGPS = encodeGPS(Config.beacon.latitude, Config.beacon.longitude, Config.beacon.overlay, Config.beacon.symbol);
iGateBeaconPacket += encodedGPS;
iGateLoRaBeaconPacket += encodedGPS;
} }
double calculateDistanceTo(double latitude, double longitude) { double calculateDistanceTo(double latitude, double longitude) {

View File

@ -46,9 +46,11 @@ namespace Utils {
void processStatus() { void processStatus() {
String status = Config.callsign; String status = Config.callsign;
status.concat(">APLRG1,"); status.concat(">APLRG1");
status.concat(Config.beacon.path); if (Config.beacon.path.indexOf("WIDE") == 0) {
status.concat(",");
status.concat(Config.beacon.path);
}
if (WiFi.status() == WL_CONNECTED && Config.aprs_is.active && Config.beacon.sendViaAPRSIS) { if (WiFi.status() == WL_CONNECTED && Config.aprs_is.active && Config.beacon.sendViaAPRSIS) {
delay(1000); delay(1000);
status.concat(",qAC:>https://github.com/richonguzman/LoRa_APRS_iGate "); status.concat(",qAC:>https://github.com/richonguzman/LoRa_APRS_iGate ");
@ -326,9 +328,7 @@ namespace Utils {
} }
bool checkValidCallsign(const String& callsign) { bool checkValidCallsign(const String& callsign) {
if (callsign == "WLNK-1") { if (callsign == "WLNK-1") return true;
return true;
}
String cleanCallsign; String cleanCallsign;
if (callsign.indexOf("-")) { if (callsign.indexOf("-")) {
cleanCallsign = callsign.substring(0, callsign.indexOf("-")); cleanCallsign = callsign.substring(0, callsign.indexOf("-"));
@ -351,16 +351,10 @@ namespace Utils {
if (cleanCallsign.indexOf("S5") == 0 || cleanCallsign.indexOf("E7") == 0 || cleanCallsign.indexOf("Z3") == 0) { if (cleanCallsign.indexOf("S5") == 0 || cleanCallsign.indexOf("E7") == 0 || cleanCallsign.indexOf("Z3") == 0) {
if (!isDigit(cleanCallsign[2]) && !isAlpha(cleanCallsign[3])) return false; if (!isDigit(cleanCallsign[2]) && !isAlpha(cleanCallsign[3])) return false;
} else { } else {
if (!isAlphaNumeric(cleanCallsign[1]) || !isDigit(cleanCallsign[2]) || !isAlpha(cleanCallsign[3])) { if (!isAlphaNumeric(cleanCallsign[1]) || !isDigit(cleanCallsign[2]) || !isAlpha(cleanCallsign[3])) return false;
return false;
}
}
if (cleanCallsign.length() == 5 && !isAlpha(cleanCallsign[4])) {
return false;
}
if (cleanCallsign.length() == 6 && (!isAlpha(cleanCallsign[4]) || !isAlpha(cleanCallsign[5]))) {
return false;
} }
if (cleanCallsign.length() == 5 && !isAlpha(cleanCallsign[4])) return false;
if (cleanCallsign.length() == 6 && (!isAlpha(cleanCallsign[4]) || !isAlpha(cleanCallsign[5]))) return false;
/* ABCDEFG - XX /* ABCDEFG - XX
0 A = _ or alpha num 0 A = _ or alpha num
1 B = alpha (+num S5, E7, Z3) 1 B = alpha (+num S5, E7, Z3)