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;
beaconPacket += ">APLRG1";
if (Config.beacon.path != "") {
if (Config.beacon.path.indexOf("WIDE") == 0) {
beaconPacket += ",";
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;
iGateLoRaBeaconPacket += ":!";
iGateLoRaBeaconPacket += encodedGPS;
iGateBeaconPacket = beaconPacket;
iGateBeaconPacket += ",qAC:!";
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) {

View file

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