Minor clarifications.

This commit is contained in:
wb2osz 2023-08-08 00:14:47 +01:00
parent 80bbf5a553
commit dfc063f905
2 changed files with 22 additions and 15 deletions

View File

@ -17,6 +17,7 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
// //
// TODO: Better error messages for examples here: http://lists.tapr.org/pipermail/aprssig_lists.tapr.org/2023-July/date.html
/*------------------------------------------------------------------ /*------------------------------------------------------------------
* *
@ -549,14 +550,16 @@ void decode_aprs_print (decode_aprs_t *A) {
//dw_printf ("DEBUG decode_aprs_print stemp3=%s mfr=%s\n", stemp, A->g_mfr); //dw_printf ("DEBUG decode_aprs_print stemp3=%s mfr=%s\n", stemp, A->g_mfr);
if (strlen(A->g_mfr) > 0) { if (strlen(A->g_mfr) > 0) {
if (strcmp(A->g_dest, "APRS") == 0 || strcmp(A->g_dest, "BEACON") == 0) { if (strcmp(A->g_dest, "APRS") == 0 ||
strcmp(A->g_dest, "BEACON") == 0 ||
strcmp(A->g_dest, "ID") == 0) {
strlcat (stemp, "\nUse of \"", sizeof(stemp)); strlcat (stemp, "\nUse of \"", sizeof(stemp));
strlcat (stemp, A->g_dest, sizeof(stemp)); strlcat (stemp, A->g_dest, sizeof(stemp));
strlcat (stemp, "\" in the destination field is obsolete.", sizeof(stemp)); strlcat (stemp, "\" in the destination field is obsolete.", sizeof(stemp));
strlcat (stemp, " You can help to improve the quality of APRS signals.", sizeof(stemp)); strlcat (stemp, " You can help to improve the quality of APRS signals.", sizeof(stemp));
strlcat (stemp, "\nTell the sender (", sizeof(stemp)); strlcat (stemp, "\nTell the sender (", sizeof(stemp));
strlcat (stemp, A->g_src, sizeof(stemp)); strlcat (stemp, A->g_src, sizeof(stemp));
strlcat (stemp, ") to use the proper product code from", sizeof(stemp)); strlcat (stemp, ") to use the proper product identifier from", sizeof(stemp));
strlcat (stemp, " http://www.aprs.org/aprs11/tocalls.txt", sizeof(stemp)); strlcat (stemp, " http://www.aprs.org/aprs11/tocalls.txt", sizeof(stemp));
} }
else { else {
@ -582,7 +585,7 @@ void decode_aprs_print (decode_aprs_t *A) {
/* http://eng.usna.navy.mil/~bruninga/aprs/aprs11.html */ /* http://eng.usna.navy.mil/~bruninga/aprs/aprs11.html */
/* "The Antenna Gain in the PHG format on page 28 is in dBi." */ /* "The Antenna Gain in the PHG format on page 28 is in dBi." */
snprintf (phg, sizeof(phg), ", %d W height=%d %ddBi %s", A->g_power, A->g_height, A->g_gain, A->g_directivity); snprintf (phg, sizeof(phg), ", %d W height(HAAT)=%dft=%.0fm %ddBi %s", A->g_power, A->g_height, DW_FEET_TO_METERS(A->g_height), A->g_gain, A->g_directivity);
strlcat (stemp, phg, sizeof(stemp)); strlcat (stemp, phg, sizeof(stemp));
} }
@ -1213,7 +1216,7 @@ static void aprs_raw_nmea (decode_aprs_t *A, unsigned char *info, int ilen)
* It is three base-91 characters followed by "}". * It is three base-91 characters followed by "}".
* Examples: "4T} "4T} ]"4T} * Examples: "4T} "4T} ]"4T}
* *
* We can also have frequency specification -- http://www.aprs.org/info/freqspec.tx * We can also have frequency specification -- http://www.aprs.org/info/freqspec.txt
* *
* Warning: Some Kenwood radios add CR at the end, in apparent violation of the spec. * Warning: Some Kenwood radios add CR at the end, in apparent violation of the spec.
* Watch out so it doesn't get included when looking for equipment type suffix. * Watch out so it doesn't get included when looking for equipment type suffix.
@ -1912,7 +1915,6 @@ static void aprs_message (decode_aprs_t *A, unsigned char *info, int ilen, int q
strlcpy (A->g_comment, p->message, sizeof(A->g_comment)); strlcpy (A->g_comment, p->message, sizeof(A->g_comment));
} }
#warning = double check.
// Weather bulletins have addressee starting with NWS, SKY, CWA, or BOM. // Weather bulletins have addressee starting with NWS, SKY, CWA, or BOM.
// The protocol spec and http://www.aprs.org/APRS-docs/WX.TXT state that // The protocol spec and http://www.aprs.org/APRS-docs/WX.TXT state that
@ -1994,11 +1996,13 @@ static void aprs_message (decode_aprs_t *A, unsigned char *info, int ilen, int q
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf("ERROR: \"%s\" must be lower case \"ack\"\n", p->message); dw_printf("ERROR: \"%s\" must be lower case \"ack\"\n", p->message);
} }
else {
strlcpy (A->g_message_number, p->message + 3, sizeof(A->g_message_number)); strlcpy (A->g_message_number, p->message + 3, sizeof(A->g_message_number));
if (strlen(A->g_message_number) == 0) { if (strlen(A->g_message_number) == 0) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf("ERROR: Message number is missing after \"ack\".\n"); dw_printf("ERROR: Message number is missing after \"ack\".\n");
} }
}
// Xastir puts a carriage return on the end. // Xastir puts a carriage return on the end.
char *p = strchr(A->g_message_number, '\r'); char *p = strchr(A->g_message_number, '\r');
@ -2018,11 +2022,13 @@ static void aprs_message (decode_aprs_t *A, unsigned char *info, int ilen, int q
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf("ERROR: \"%s\" must be lower case \"rej\"\n", p->message); dw_printf("ERROR: \"%s\" must be lower case \"rej\"\n", p->message);
} }
else {
strlcpy (A->g_message_number, p->message + 3, sizeof(A->g_message_number)); strlcpy (A->g_message_number, p->message + 3, sizeof(A->g_message_number));
if (strlen(A->g_message_number) == 0) { if (strlen(A->g_message_number) == 0) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf("ERROR: Message number is missing after \"rej\".\n"); dw_printf("ERROR: Message number is missing after \"rej\".\n");
} }
}
// Xastir puts a carriage return on the end. // Xastir puts a carriage return on the end.
char *p = strchr(A->g_message_number, '\r'); char *p = strchr(A->g_message_number, '\r');

View File

@ -111,8 +111,9 @@ typedef struct decode_aprs_s {
int g_power; /* Transmitter power in watts. */ int g_power; /* Transmitter power in watts. */
int g_height; /* Antenna height above average terrain, feet. */ int g_height; /* Antenna height above average terrain, feet. */
// TODO: rename to g_height_ft
int g_gain; /* Antenna gain in dB. */ int g_gain; /* Antenna gain in dBi. */
char g_directivity[12]; /* Direction of max signal strength */ char g_directivity[12]; /* Direction of max signal strength */
@ -120,7 +121,7 @@ typedef struct decode_aprs_s {
float g_altitude_ft; /* Feet above median sea level. */ float g_altitude_ft; /* Feet above median sea level. */
/* I used feet here because the APRS specification */ /* I used feet here because the APRS specification */
/* has units of feet for alititude. Meters would be */ /* has units of feet for altitude. Meters would be */
/* more natural to the other 96% of the world. */ /* more natural to the other 96% of the world. */
char g_mfr[80]; /* Manufacturer or application. */ char g_mfr[80]; /* Manufacturer or application. */