aprspacketlib update

This commit is contained in:
richonguzman 2023-11-13 07:50:16 -03:00
parent 8c1bff51b2
commit 7134e9d944
3 changed files with 19 additions and 20 deletions

View File

@ -2,15 +2,25 @@
namespace APRSPacketLib {
String generateStatusPacket(String callsign, String tocall, String path, String status) {
String generateBasePacket(String callsign, String tocall, String path) {
String packet = callsign + ">" + tocall;
if (path != "") {
packet += "," + path;
}
packet += ":>" + status;
return packet;
}
String generateStatusPacket(String callsign, String tocall, String path, String status) {
return generateBasePacket(callsign,tocall,path) + ":>" + status;
}
String generateMessagePacket(String callsign, String tocall, String path, String addressee, String message) {
for(int i = addressee.length(); i < 9; i++) {
addressee += ' ';
}
return generateBasePacket(callsign,tocall,path) + "::" + addressee + ":" + message;
}
String generateDigiRepeatedPacket(APRSPacket packet, String callsign) {
if (packet.path.indexOf("WIDE1-")>=0) {
String hop = packet.path.substring(packet.path.indexOf("WIDE1-")+6, packet.path.indexOf("WIDE1-")+7);
@ -118,12 +128,7 @@ namespace APRSPacketLib {
}
String generateGPSBeaconPacket(String callsign, String tocall, String path, String overlay, String gps) {
String packet = callsign + ">" + tocall;
if (path != "") {
packet += "," + path;
}
packet += ":!" + overlay + gps;
return packet;
return generateBasePacket(callsign,tocall,path) + ":!" + overlay + gps;
}
float decodeEncodedLatitude(String encodedLatitude) {

View File

@ -16,7 +16,9 @@ struct APRSPacket {
namespace APRSPacketLib {
String generateBasePacket(String callsign, String tocall, String path);
String generateStatusPacket(String callsign, String tocall, String path, String status);
String generateMessagePacket(String callsign, String tocall, String path, String addressee, String message);
String generateDigiRepeatedPacket(APRSPacket packet, String callsign);
char *ax25_base91enc(char *s, uint8_t n, uint32_t v);
String encondeGPS(float latitude, float longitude, float course, float speed, String symbol, bool sendAltitude, int altitude, bool sendStandingUpdate, String packetType);

View File

@ -147,23 +147,15 @@ namespace MSG_Utils {
}
void sendMessage(String station, String textMessage) {
String messageToSend;
for(int i = station.length(); i < 9; i++) {
station += ' ';
}
messageToSend = currentBeacon->callsign + ">APLRT1";
if (Config.path != "") {
messageToSend += "," + Config.path;
}
messageToSend += "::" + station + ":" + textMessage;
String newPacket = APRSPacketLib::generateMessagePacket(currentBeacon->callsign,"APLRT1",Config.path,station,textMessage);
if (textMessage.indexOf("ack")== 0) {
show_display("<<ACK Tx>>", 500);
} else if (station.indexOf("CD2RXU-15") == 0 && textMessage.indexOf("wrl")==0) {
show_display("<WEATHER>","", "--- Sending Query ---", 1000);
} else {
show_display("MSG Tx >>", "", messageToSend, 1000);
show_display("MSG Tx >>", "", newPacket, 1000);
}
LoRa_Utils::sendNewPacket(messageToSend);
LoRa_Utils::sendNewPacket(newPacket);
}
void checkReceivedMessage(String packetReceived) {
@ -196,7 +188,7 @@ namespace MSG_Utils {
}
}
} else if (aprsPacket.type==1 && aprsPacket.addressee==currentBeacon->callsign) {
if (aprsPacket.message.indexOf("{")>0) {
if (aprsPacket.message.indexOf("{")>=0) {
String ackMessage = "ack" + aprsPacket.message.substring(aprsPacket.message.indexOf("{")+1);
ackMessage.trim();
delay(4000);