Skip to content

Dev #410

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 156 commits into from
Oct 28, 2023
Merged

Dev #410

Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
156 commits
Select commit Hold shift + click to select a range
45cad0f
cmake: Avoid try_run when cross-compiling
ew1abz Mar 30, 2020
4a1aa2b
Issue 296 - Avoid potential buffer overflow.
wb2osz Nov 5, 2020
a207287
Issue 298 - Add beacon SOURCE option to override AX.25 source.
wb2osz Nov 7, 2020
714d03f
Bump version number up to 1.7 development.
wb2osz Nov 7, 2020
e272ff8
Issue 269 - Morse code 'I' was sent wrong.
wb2osz Nov 8, 2020
48b9bac
When decoding a third party traffic packet, decode the payload.
wb2osz Nov 14, 2020
adebd06
Issue 297 - FORCE_SSE is always active on i386/amd64
wb2osz Nov 14, 2020
791982a
Merge pull request #261 from ew1abz/dev
wb2osz Nov 14, 2020
fdf660a
New "-d d" command line option for APRStt debug.
wb2osz Nov 22, 2020
9922f17
New AFSK demodulators.
wb2osz Nov 28, 2020
c1e1960
More consistent results.
wb2osz Nov 28, 2020
07fdc75
Raise upper limits.
wb2osz Nov 28, 2020
042a0c4
Addded options to transmit steady tones at various frequencies
BehemothTheKitten Dec 23, 2020
feb1034
Implement DNS-SD publishing of KISS over TCP service on Linux and Mac
hessu Dec 27, 2020
1d67b44
Issue 150 - Check whether platform provides strlcpy & strlcat
wb2osz Dec 31, 2020
52e3a5b
Display speed and altitude in both metric and Imperial units.
wb2osz Dec 31, 2020
8bca486
Merge pull request #305 from BehemothTheKitten/x_fm_calibrate
wb2osz Dec 31, 2020
1cad6ed
Allow radio channel number for -x transmit calibration tone option.
wb2osz Jan 1, 2021
085e837
Enhanced transmit calibration tone option (-x) with channel and tone …
wb2osz Jan 1, 2021
6f95752
Merge branch 'feature/dns-sd' of git://github.com/hessu/direwolf into…
wb2osz Jan 2, 2021
14d6eed
Merge branch 'hessu-feature/dns-sd' into dev
wb2osz Jan 2, 2021
5d02e0b
Issue 292 - Remove serial port speed restriction for Mac OSX.
wb2osz Jan 2, 2021
6513efd
Fix UNITTEST for MacOSX.
wb2osz Jan 2, 2021
81447ed
Comments about units.
wb2osz Jan 2, 2021
8683ddc
Allow multiple TCP KISS ports and option for single radio channel.
wb2osz Jan 5, 2021
7ac1262
Fix Linux build.
wb2osz Jan 5, 2021
667e9ca
Quick hack until I can handle multiple KISS TCP ports properly.
wb2osz Jan 5, 2021
a1afcbb
Limited support for CM108/CM119 GPIO PTT on Windows.
wb2osz Feb 7, 2021
04b32c4
Limited support for CM108/CM119 GPIO support on Windows.
wb2osz Feb 7, 2021
677117b
add sndio support
jg1uaa Feb 25, 2021
c18b562
add sndio support (CMake)
jg1uaa Feb 25, 2021
0c285a0
cosme
jg1uaa Feb 25, 2021
e449e39
Update comments.
wb2osz Mar 13, 2021
09de2f6
Declare cm108 functions explicitly.
jmkristian Mar 14, 2021
7fa91dd
Merge pull request #326 from jmkristian/w6jmk-cm108
wb2osz Mar 16, 2021
44df4a7
Issue 325 - When building regex for Windows, don't repeatedly define …
wb2osz Apr 11, 2021
12de518
Mention installation with Mac Ports.
wb2osz Apr 11, 2021
73d5d13
Recognize Windows form of device path.
wb2osz Apr 11, 2021
0e68a77
Pull Request 322 - SNDIO support for BSD.
wb2osz Apr 11, 2021
6370b26
Pull request 322 - SNDIO support for BSD.
wb2osz Apr 11, 2021
b66c21d
Fix broken hyperlink in README.
wb2osz Apr 11, 2021
6bfd228
Fix errors in comments
dforsi Sep 19, 2021
d10ccb6
Fix errors in strings
dforsi Sep 19, 2021
edc5707
Fix errors in man pages
dforsi Sep 19, 2021
1b3ed76
Add a comment about bundling multiple frames in single transmission.
wb2osz Sep 21, 2021
257d2e3
New get/set methods for packet object.
wb2osz Sep 21, 2021
b777627
More debug code.
wb2osz Sep 21, 2021
1712fbc
cleanup
wb2osz Sep 21, 2021
3220931
Race condition when starting up with transmit queue not empty. Large…
wb2osz Sep 21, 2021
023f675
Avoid serial port write error for Windows,
wb2osz Sep 21, 2021
8619b74
Pull request 353 - Fix spelling errors.
wb2osz Sep 29, 2021
17b9336
Merge branch 'dev' of http://github.com/wb2osz/direwolf into dev
wb2osz Sep 29, 2021
53e9ff7
Add IL2P.
wb2osz Oct 22, 2021
9016fa5
Make IL2P test scripts executable.
wb2osz Oct 22, 2021
6442466
Shut off confusing debug message.
wb2osz Nov 12, 2021
049614d
Fix IL2P for 9600 bps.
wb2osz Nov 23, 2021
9b9744b
Speed up 9600 demodulator.
wb2osz Nov 23, 2021
45cd680
First rough approximation of ICHANNEL.
wb2osz Dec 10, 2021
eef35cf
Issue 367 - AGW monitoring must handle binary data.
wb2osz Dec 19, 2021
65869bc
Issue 366 - Remove 0x from pid in monitor header.
wb2osz Dec 19, 2021
5dbe2ce
Allow speed for GPSNMEA configuration.
wb2osz Dec 29, 2021
42314b7
gpsd 3.23 (API 12) compatibility and cleanups.
wb2osz Jan 2, 2022
366e0ab
Clean up
wb2osz Jan 3, 2022
0f2b241
More error checking for messages.
wb2osz Jan 17, 2022
dcabb8f
Digipeat noid
wb2osz Jan 30, 2022
89021dd
Cleanups
wb2osz Feb 16, 2022
26727bb
Pull request 301
wb2osz Feb 16, 2022
27019b4
The constant thorn in my side.
wb2osz Feb 16, 2022
4f6ca0d
Update tocalls.txt and symbols-new.txt
wb2osz Feb 21, 2022
e108147
Fix ttgrid corner and various cleanups.
wb2osz Feb 25, 2022
0bd31ae
Clean up warnings.
wb2osz Feb 27, 2022
bb16c72
Fix spelling errors
dforsi Mar 22, 2022
a558348
UTF-8 in config file experiment.
wb2osz Mar 23, 2022
3dd125e
UTF-8 discussion
wb2osz Mar 23, 2022
06d6cab
Special ATGP digipeating hack.
wb2osz Mar 23, 2022
368bc42
Spelling errors.
wb2osz Mar 23, 2022
18c65f4
Note for future experiment.
wb2osz Mar 23, 2022
722fefb
Compile warnings.
wb2osz Mar 23, 2022
f97c024
More FX.25 tests.
wb2osz Mar 23, 2022
c9ffbd7
Merge branch 'dev' of http://github.com/wb2osz/direwolf into dev
wb2osz Mar 23, 2022
59288b7
Pull Request 394 - fix compilation on musl
wb2osz May 24, 2022
d11bd6f
pull request 355 - verb correction
wb2osz May 24, 2022
30869c7
Issues 405 & 406 and other improvements in message interpretation.
wb2osz Jul 4, 2022
429d095
Issue 417 - Allow UTF-8 characters for Mac audio device names.
wb2osz Sep 25, 2022
acace8c
Variable speed for gen_packets.
wb2osz Oct 1, 2022
d0fc24a
Just comments.
wb2osz Oct 1, 2022
8913a85
clean up
wb2osz Oct 1, 2022
3973627
Remove cmake warnings about slight name mismatches.
wb2osz Nov 25, 2022
07ea828
Assorted minor cleanups.
wb2osz Nov 25, 2022
17d3d0a
Increase max AFSK filter size.
wb2osz Dec 18, 2022
1d452fe
Tested compatibility with gpsd 3.25.
wb2osz Jan 15, 2023
9553abc
Tested compatibility with gpsd 3.25.
wb2osz Jan 15, 2023
399ffcc
Add in a couple missing includes to clean up build warnings
bjpetit Jan 7, 2023
ef573f2
Pull request 439 - Fix audio level display for B demodulator.
wb2osz Jan 23, 2023
031c937
Issue 444 - Command line -x calibrate tones are reversed
wb2osz Jan 28, 2023
fedfef9
Fix spellling (#409)
dforsi Jan 28, 2023
0f92f46
github actions implementation (#396)
ra1nb0w Jan 28, 2023
04ecdbc
Complete the new ICHANNEL feature.
wb2osz Jan 30, 2023
8e28902
Notes for future.
wb2osz Jan 30, 2023
c25629a
Merge branch 'dev' of http://github.com/wb2osz/direwolf into dev
wb2osz Jan 30, 2023
8cb73d2
More documentation references.
wb2osz Mar 5, 2023
8a97887
Cleanup.
wb2osz Mar 5, 2023
b4b7b13
Improve error message.
wb2osz Mar 5, 2023
cac83f2
Improve error message.
wb2osz Mar 5, 2023
dbb4777
More comments.
wb2osz Mar 5, 2023
7573f99
Improve error message.
wb2osz Mar 5, 2023
eb813e5
Reduce noise.
wb2osz Mar 5, 2023
11468f2
Improve error message.
wb2osz Mar 5, 2023
019ff3b
Update config.c
wb2osz Apr 7, 2023
75ccf18
Improve config error checking.
wb2osz Apr 7, 2023
4cd63df
Use channel rather than port when dumping KISS frame.
wb2osz Apr 26, 2023
4ac666d
Clean up atest EAS receive.
wb2osz Apr 30, 2023
110b85a
Add EAS to gen_packets.
wb2osz May 1, 2023
5fb4081
Remove capability to download tocalls.txt, etc.
wb2osz May 2, 2023
8000e46
Issue 427 - callsign order for AGW protocol 'Y'.
wb2osz May 4, 2023
8e32286
Issue 275 - AGW 'd' would not abort a connect attempt in progress.
wb2osz May 7, 2023
b172734
Issue 401 - Avoid receiving own transmission due to audio crosstalk.
wb2osz May 8, 2023
24a06ae
1.7 dev version G
wb2osz May 8, 2023
92a2097
New warnings for gcc 11.3.
wb2osz May 11, 2023
f8b9cae
Improved error messages.
wb2osz May 14, 2023
577b2b3
Automated test case for EAS SAME.
wb2osz May 14, 2023
b1b3e85
Remove Ubuntu 18 from automated test build.
wb2osz May 14, 2023
0058145
Minor typo.
wb2osz May 14, 2023
e53fa0c
Fix Windows 11 build.
wb2osz May 14, 2023
a3d3143
+x permission
wb2osz May 14, 2023
415a08d
Add AIOC to list for cm108 ptt.
wb2osz May 17, 2023
d6ae84d
Set AIOC HID permission.
wb2osz May 21, 2023
4008153
Silently ignore AGW protocol application login.
wb2osz May 21, 2023
f9cf42b
Better interpretation of bulletin identifiers.
wb2osz Jun 3, 2023
e84a622
Look past third party header for packet filtering.
wb2osz Jun 14, 2023
fed79a7
Mention IL2P transmit for channels besides first.
wb2osz Jul 17, 2023
c5ad945
Fix IL2PTX config parsing (#483)
arodland Jul 17, 2023
9d2ded2
Add TH-D75 and another seen on APRS Thursday.
wb2osz Aug 7, 2023
790c8ab
Additional documentation location.
wb2osz Aug 7, 2023
80bbf5a
FIX_BITS default to 0.
wb2osz Aug 7, 2023
dfc063f
Minor clarifications.
wb2osz Aug 7, 2023
2434e5f
Minor cleanups.
wb2osz Aug 8, 2023
a87b72e
Handle slow Hamlib init. This change adds a retry loop to the (#484)
bjpetit Aug 8, 2023
7a8e432
Issue 486. Maybe.
wb2osz Aug 16, 2023
a08d093
Add FEC type to station heard line.
wb2osz Sep 10, 2023
ba0313c
Add FTM-500D to recognized device identifers.
wb2osz Sep 10, 2023
877d1c7
Fix build on Alpine Linux. issues 150, 319, 344.
wb2osz Sep 23, 2023
3c73a6b
Revert "Fix build on Alpine Linux. issues 150, 319, 344."
wb2osz Sep 23, 2023
ab834f3
Second attempt to fix build on Alpine Linux. issues 150, 319, 344.
wb2osz Sep 25, 2023
6bd296b
glibc 2.38 has strlcpy and strlcat but cmake does not detect it.
wb2osz Oct 14, 2023
6b76e1d
Don't let t1v get out of control.
wb2osz Oct 14, 2023
88e2222
Better keyword for preemptive digipeating.
wb2osz Oct 14, 2023
34ba203
Clean up sample direwolf.conf file.
wb2osz Oct 14, 2023
786e433
Fix comment.
wb2osz Oct 14, 2023
fae30a6
Move to new directory.
wb2osz Oct 14, 2023
7b9325e
Documentation update for release 1.7.
wb2osz Oct 27, 2023
091670a
New device identifier location.
wb2osz Oct 28, 2023
9807304
Bump version to 1.7 release.
wb2osz Oct 28, 2023
62e4566
Change version to 1.7 release.
wb2osz Oct 28, 2023
6ed85d1
User Guide for release 1.7.
wb2osz Oct 28, 2023
2260df1
Release Notes 1.7.
wb2osz Oct 28, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Assorted minor cleanups.
  • Loading branch information
wb2osz committed Nov 25, 2022
commit 07ea828c2854888ab0012d662958dedcdd057697
18 changes: 16 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Why waste $200 and settle for mediocre receive performance from a 1980's technol

![](tnc-test-cd-results.png)

Dire Wolf now includes [FX.25](https://en.wikipedia.org/wiki/FX.25_Forward_Error_Correction) which adds Forward Error Correction (FEC) in a way that is completely compatible with existing systems. If both ends are capable of FX.25, your information will continue to get through under conditions where regular AX.25 is completely useless.
Dire Wolf now includes [FX.25](https://en.wikipedia.org/wiki/FX.25_Forward_Error_Correction) which adds Forward Error Correction (FEC) in a way that is completely compatible with existing systems. If both ends are capable of FX.25, your information will continue to get through under conditions where regular AX.25 is completely useless. This was originally developed for satellites and is now seeing widespread use on HF.

![](fx25.png)

Expand Down Expand Up @@ -80,7 +80,21 @@ It can also be used as a virtual TNC for other applications such as [APRSIS32](h



- **Standard 300, 1200 & 9600 bps modems and more.**
- **Modems:**

300 bps AFSK for HF

1200 bps AFSK most common for VHF/UHF

2400 & 4800 bps PSK

9600 bps GMSK/G3RUH

AIS reception

EAS SAME reception



- **DTMF ("Touch Tone") Decoding and Encoding.**

Expand Down
7 changes: 4 additions & 3 deletions conf/generic.conf
Original file line number Diff line number Diff line change
Expand Up @@ -369,10 +369,11 @@
%W%
%C%#
%C%# It is sometimes possible to recover frames with a bad FCS.
%C%# This applies to all channels.
%C%# This is not a global setting.
%C%# It applies only the the most recent CHANNEL specified.
%C%#
%C%# 0 [NONE] - Don't try to repair.
%C%# 1 [SINGLE] - Attempt to fix single bit error. (default)
%C%# 0 - Don't try to repair.
%C%# 1 - Attempt to fix single bit error. (default)
%C%# ... see User Guide for more values and in-depth discussion.
%C%#
%C%
Expand Down
31 changes: 24 additions & 7 deletions src/atest.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
//
// This file is part of Dire Wolf, an amateur radio packet TNC.
//
// Copyright (C) 2011, 2012, 2013, 2014, 2015, 2016, 2019, 2021 John Langner, WB2OSZ
// Copyright (C) 2011, 2012, 2013, 2014, 2015, 2016, 2019, 2021, 2022 John Langner, WB2OSZ
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
Expand All @@ -23,11 +23,11 @@
*
* Name: atest.c
*
* Purpose: Test fixture for the AFSK demodulator.
* Purpose: Test fixture for the Dire Wolf demodulators.
*
* Inputs: Takes audio from a .WAV file instead of the audio device.
*
* Description: This can be used to test the AFSK demodulator under
* Description: This can be used to test the demodulators under
* controlled and reproducible conditions for tweaking.
*
* For example
Expand Down Expand Up @@ -107,7 +107,7 @@ struct wav_header { /* .WAV file header. */
/* 8 bit samples are unsigned bytes */
/* in range of 0 .. 255. */

/* 16 bit samples are signed short */
/* 16 bit samples are little endian signed short */
/* in range of -32768 .. +32767. */

static struct {
Expand Down Expand Up @@ -765,7 +765,7 @@ void dlq_rec_frame (int chan, int subchan, int slice, packet_t pp, alevel_t alev
unsigned char *pinfo;
int info_len;
int h;
char heard[AX25_MAX_ADDR_LEN];
char heard[2 * AX25_MAX_ADDR_LEN + 20];
char alevel_text[AX25_ALEVEL_TO_TEXT_SIZE];

packets_decoded_one++;
Expand Down Expand Up @@ -810,6 +810,23 @@ void dlq_rec_frame (int chan, int subchan, int slice, packet_t pp, alevel_t alev
}
ax25_alevel_to_text (alevel, alevel_text);

/* As suggested by KJ4ERJ, if we are receiving from */
/* WIDEn-0, it is quite likely (but not guaranteed), that */
/* we are actually hearing the preceding station in the path. */

if (h >= AX25_REPEATER_2 &&
strncmp(heard, "WIDE", 4) == 0 &&
isdigit(heard[4]) &&
heard[5] == '\0') {

char probably_really[AX25_MAX_ADDR_LEN];
ax25_get_addr_with_ssid(pp, h-1, probably_really);

strlcat (heard, " (probably ", sizeof(heard));
strlcat (heard, probably_really, sizeof(heard));
strlcat (heard, ")", sizeof(heard));
}

if (my_audio_config.achan[chan].fix_bits == RETRY_NONE && my_audio_config.achan[chan].passall == 0) {
dw_printf ("%s audio level = %s %s\n", heard, alevel_text, spectrum);
}
Expand Down Expand Up @@ -877,7 +894,7 @@ void dlq_rec_frame (int chan, int subchan, int slice, packet_t pp, alevel_t alev



#if 1 // temp experiment TODO: remove this.
#if 0 // temp experiment

#include "decode_aprs.h"
#include "log.h"
Expand All @@ -886,7 +903,7 @@ void dlq_rec_frame (int chan, int subchan, int slice, packet_t pp, alevel_t alev

decode_aprs_t A;

decode_aprs (&A, pp, 0, 0);
decode_aprs (&A, pp, 0, NULL);

// Temp experiment to see how different systems set the RR bits in the source and destination.
// log_rr_bits (&A, pp);
Expand Down
1 change: 0 additions & 1 deletion src/audio_stats.c
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,6 @@

#include "audio_stats.h"
#include "textcolor.h"
#include "dtime_now.h"
#include "demod.h" /* for alevel_t & demod_get_audio_level() */


Expand Down
3 changes: 3 additions & 0 deletions src/config.c
Original file line number Diff line number Diff line change
Expand Up @@ -2864,6 +2864,9 @@ void config_init (char *fname, struct audio_s *p_audio_config,

/*
* CFILTER from-chan to-chan filter_specification_expression
*
* Why did I put this here?
* What would be a useful use case? Perhaps block by source or destination?
*/

else if (strcasecmp(t, "CFILTER") == 0) {
Expand Down
27 changes: 18 additions & 9 deletions src/decode_aprs.c
Original file line number Diff line number Diff line change
Expand Up @@ -140,10 +140,11 @@ static void process_comment (decode_aprs_t *A, char *pstart, int clen);
*
* quiet - Suppress error messages.
*
* third_party - True when parsing a third party header.
* third_party_src - Specify when parsing a third party header.
* (decode_aprs is called recursively.)
* This is mostly found when an IGate transmits a message
* that came via APRS-IS.
* NULL when not third party payload.
*
* Outputs: A-> g_symbol_table, g_symbol_code,
* g_lat, g_lon,
Expand All @@ -156,11 +157,10 @@ static void process_comment (decode_aprs_t *A, char *pstart, int clen);
*
*------------------------------------------------------------------*/

void decode_aprs (decode_aprs_t *A, packet_t pp, int quiet, int third_party)
void decode_aprs (decode_aprs_t *A, packet_t pp, int quiet, char *third_party_src)
{
//dw_printf ("DEBUG decode_aprs quiet=%d, third_party=%d\n", quiet, third_party);
//dw_printf ("DEBUG decode_aprs quiet=%d, third_party=%p\n", quiet, third_party_src);

//char dest[AX25_MAX_ADDR_LEN];
unsigned char *pinfo;
int info_len;

Expand Down Expand Up @@ -229,7 +229,12 @@ void decode_aprs (decode_aprs_t *A, packet_t pp, int quiet, int third_party)

packet_t pp_payload = ax25_from_text ((char*)pinfo+1, 0);
if (pp_payload != NULL) {
decode_aprs (A, pp_payload, quiet, 1); // 1 means used recursively
char payload_src[AX25_MAX_ADDR_LEN];
memset(payload_src, 0, sizeof(payload_src));
memcpy(payload_src, (char*)pinfo+1, sizeof(payload_src)-1);
char *q = strchr(payload_src, '>');
if (q != NULL) *q = '\0';
decode_aprs (A, pp_payload, quiet, payload_src); // 1 means used recursively
ax25_delete (pp_payload);
return;
}
Expand All @@ -243,8 +248,12 @@ void decode_aprs (decode_aprs_t *A, packet_t pp, int quiet, int third_party)
/*
* Extract source and destination including the SSID.
*/

ax25_get_addr_with_ssid (pp, AX25_SOURCE, A->g_src);
if (third_party_src != NULL) {
strlcpy (A->g_src, third_party_src, sizeof(A->g_src));
}
else {
ax25_get_addr_with_ssid (pp, AX25_SOURCE, A->g_src);
}
ax25_get_addr_with_ssid (pp, AX25_DESTINATION, A->g_dest);

//dw_printf ("DEBUG decode_aprs source=%s, dest=%s\n", A->g_src, A->g_dest);
Expand Down Expand Up @@ -5176,7 +5185,7 @@ int main (int argc, char *argv[])
ax25_safe_print ((char *)pinfo, info_len, 1); // Display non-ASCII to hexadecimal.
dw_printf ("\n");

decode_aprs (&A, pp, 0, 0); // Extract information into structure.
decode_aprs (&A, pp, 0, NULL); // Extract information into structure.

decode_aprs_print (&A); // Now print it in human readable format.

Expand All @@ -5197,7 +5206,7 @@ int main (int argc, char *argv[])
if (pp != NULL) {
decode_aprs_t A;

decode_aprs (&A, pp, 0, 0); // Extract information into structure.
decode_aprs (&A, pp, 0, NULL); // Extract information into structure.

decode_aprs_print (&A); // Now print it in human readable format.

Expand Down
6 changes: 3 additions & 3 deletions src/decode_aprs.h
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ typedef struct decode_aprs_s {
message_subtype_directed_query
} g_message_subtype; /* Various cases of the overloaded "message." */

char g_message_number[8]; /* Message number. Should be 1 - 5 alphanumeric characters if used. */
char g_message_number[12]; /* Message number. Should be 1 - 5 alphanumeric characters if used. */
/* Addendum 1.1 has new format {mm} or {mm}aa with only two */
/* characters for message number and an ack riding piggyback. */

Expand Down Expand Up @@ -142,9 +142,9 @@ typedef struct decode_aprs_s {



extern void decode_aprs (decode_aprs_t *A, packet_t pp, int quiet, int third_party);
extern void decode_aprs (decode_aprs_t *A, packet_t pp, int quiet, char *third_party_src);

extern void decode_aprs_print (decode_aprs_t *A);


#endif
#endif
29 changes: 16 additions & 13 deletions src/direwolf.c
Original file line number Diff line number Diff line change
Expand Up @@ -1426,7 +1426,7 @@ void app_process_rec_packet (int chan, int subchan, int slice, packet_t pp, alev
// we still want to decode it for logging and other processing.
// Just be quiet about errors if "-qd" is set.

decode_aprs (&A, pp, q_d_opt, 0);
decode_aprs (&A, pp, q_d_opt, NULL);

if ( ! q_d_opt ) {

Expand Down Expand Up @@ -1554,10 +1554,14 @@ void app_process_rec_packet (int chan, int subchan, int slice, packet_t pp, alev
}
else {

/* Send to Internet server if option is enabled. */
/* Consider only those with correct CRC. */

if (ax25_is_aprs(pp) && retries == RETRY_NONE) {
/*
* Send to the IGate processing.
* Use only those with correct CRC; We don't want to spread corrupted data!
* Our earlier "fix bits" hack could allow corrupted information to get thru.
* However, if it used FEC mode (FX.25. IL2P), we have much higher level of
* confidence that it is correct.
*/
if (ax25_is_aprs(pp) && ( retries == RETRY_NONE || is_fx25) ) {

igate_send_rec_packet (chan, pp);
}
Expand All @@ -1572,24 +1576,23 @@ void app_process_rec_packet (int chan, int subchan, int slice, packet_t pp, alev


/*
* APRS digipeater.
* Send to APRS digipeater.
* Use only those with correct CRC; We don't want to spread corrupted data!
* Our earlier "fix bits" hack could allow corrupted information to get thru.
* However, if it used FEC mode (FX.25. IL2P), we have much higher level of
* confidence that it is correct.
*/

// TODO: Should also use anything received with FX.25 because it is known to be good.
// Our earlier "fix bits" hack could allow corrupted information to get thru.

if (ax25_is_aprs(pp) && retries == RETRY_NONE) {
if (ax25_is_aprs(pp) && ( retries == RETRY_NONE || is_fx25) ) {

digipeater (chan, pp);
}

/*
* Connected mode digipeater.
* Use only those with correct CRC.
* Use only those with correct CRC (or using FEC.)
*/

if (retries == RETRY_NONE) {
if (retries == RETRY_NONE || is_fx25) {

cdigipeater (chan, pp);
}
Expand Down
Loading