Skip to content

Commit 7a64cd0

Browse files
authored
Merge pull request #1 from wb2osz/master
Pulling in latest
2 parents fd6668e + 69407cc commit 7a64cd0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+1503
-538
lines changed

Diff for: .github/workflows/ci.yml

+1-9
Original file line numberDiff line numberDiff line change
@@ -80,15 +80,7 @@ jobs:
8080
build_type: 'Release',
8181
cmake_extra_flags: ''
8282
}
83-
- {
84-
name: 'Ubuntu 18.04',
85-
os: ubuntu-18.04,
86-
cc: 'gcc',
87-
cxx: 'g++',
88-
arch: 'x86_64',
89-
build_type: 'Release',
90-
cmake_extra_flags: ''
91-
}
83+
9284
steps:
9385
- name: checkout
9486
uses: actions/checkout@v2

Diff for: .github/workflows/codeql-analysis-python.yml

+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# For most projects, this workflow file will not need changing; you simply need
2+
# to commit it to your repository.
3+
#
4+
# You may wish to alter this file to override the set of languages analyzed,
5+
# or to provide custom queries or build logic.
6+
#
7+
# ******** NOTE ********
8+
# We have attempted to detect the languages in your repository. Please check
9+
# the `language` matrix defined below to confirm you have the correct set of
10+
# supported CodeQL languages.
11+
#
12+
name: "CodeQL - Python"
13+
14+
on:
15+
push:
16+
branches: [ dev ]
17+
pull_request:
18+
# The branches below must be a subset of the branches above
19+
branches: [ dev ]
20+
schedule:
21+
- cron: '25 8 * * 4'
22+
23+
jobs:
24+
analyze:
25+
name: Analyze
26+
runs-on: ubuntu-latest
27+
permissions:
28+
actions: read
29+
contents: read
30+
security-events: write
31+
32+
strategy:
33+
fail-fast: false
34+
matrix:
35+
language: [ 'python' ]
36+
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
37+
# Learn more about CodeQL language support at https://git.io/codeql-language-support
38+
39+
steps:
40+
- name: Checkout repository
41+
uses: actions/checkout@v3
42+
43+
# Initializes the CodeQL tools for scanning.
44+
- name: Initialize CodeQL
45+
uses: github/codeql-action/init@v3
46+
with:
47+
languages: ${{ matrix.language }}
48+
setup-python-dependencies: true
49+
# If you wish to specify custom queries, you can do so here or in a config file.
50+
# By default, queries listed here will override any specified in a config file.
51+
# Prefix the list here with "+" to use these queries and those in the config file.
52+
# queries: ./path/to/local/query, your-org/your-repo/queries@main
53+
54+
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
55+
# If this step fails, then you should remove it and run the build manually (see below)
56+
- name: Autobuild
57+
uses: github/codeql-action/autobuild@v3
58+
59+
# ℹ️ Command-line programs to run using the OS shell.
60+
# 📚 https://git.io/JvXDl
61+
62+
63+
- name: Perform CodeQL Analysis
64+
uses: github/codeql-action/analyze@v3

Diff for: .github/workflows/codeql-analysis.yml

+7-6
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
# the `language` matrix defined below to confirm you have the correct set of
1010
# supported CodeQL languages.
1111
#
12-
name: "CodeQL"
12+
name: "CodeQL - CPP"
1313

1414
on:
1515
push:
@@ -32,19 +32,20 @@ jobs:
3232
strategy:
3333
fail-fast: false
3434
matrix:
35-
language: [ 'cpp', 'python' ]
35+
language: [ 'cpp' ]
3636
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
3737
# Learn more about CodeQL language support at https://git.io/codeql-language-support
3838

3939
steps:
4040
- name: Checkout repository
41-
uses: actions/checkout@v2
41+
uses: actions/checkout@v3
4242

4343
# Initializes the CodeQL tools for scanning.
4444
- name: Initialize CodeQL
45-
uses: github/codeql-action/init@v1
45+
uses: github/codeql-action/init@v3
4646
with:
4747
languages: ${{ matrix.language }}
48+
setup-python-dependencies: true
4849
# If you wish to specify custom queries, you can do so here or in a config file.
4950
# By default, queries listed here will override any specified in a config file.
5051
# Prefix the list here with "+" to use these queries and those in the config file.
@@ -53,7 +54,7 @@ jobs:
5354
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
5455
# If this step fails, then you should remove it and run the build manually (see below)
5556
- name: Autobuild
56-
uses: github/codeql-action/autobuild@v1
57+
uses: github/codeql-action/autobuild@v3
5758

5859
# ℹ️ Command-line programs to run using the OS shell.
5960
# 📚 https://git.io/JvXDl
@@ -70,4 +71,4 @@ jobs:
7071
make test
7172
7273
- name: Perform CodeQL Analysis
73-
uses: github/codeql-action/analyze@v1
74+
uses: github/codeql-action/analyze@v3

Diff for: CHANGES.md

+38-4
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,39 @@
22
# Revision History #
33

44

5-
## Version 1.7 -- Under Development ('dev' branch) ##
5+
## Version 1.7 -- October 2023 ##
6+
7+
8+
### New Documentation: ###
9+
10+
Additional documentation location to slow down growth of main repository. [https://github.com/wb2osz/direwolf-doc](https://github.com/wb2osz/direwolf-doc) . These are more oriented toward achieving a goal and understanding, as opposed to the User Guide which describes the functionality.
11+
12+
- ***APRS Digipeaters***
13+
14+
- ***Internal Packet Routing***
15+
16+
- ***Radio Interface Guide***
17+
18+
- ***Successful IGate Operation***
19+
20+
- ***Understanding APRS Packets***
621

722

823
### New Features: ###
924

10-
- Additional documentation location to slow down growth of main repository. [https://github.com/wb2osz/direwolf-doc](https://github.com/wb2osz/direwolf-doc)
25+
1126

1227
- New ICHANNEL configuration option to map a KISS client application channel to APRS-IS. Packets from APRS-IS will be presented to client applications as the specified channel. Packets sent, by client applications, to that channel will go to APRS-IS rather than a radio channel. Details in ***Internal-Packet-Routing.pdf***.
1328

1429
- New variable speed option for gen_packets. For example, "-v 5,0.1" would generate packets from 5% too slow to 5% too fast with increments of 0.1. Some implementations might have imprecise timing. Use this to test how well TNCs tolerate sloppy timing.
1530

16-
- Improved Layer 2 Protocol [(IL2P)](https://en.wikipedia.org/wiki/FX.25_Forward_Error_Correction). Use "-I 1" on command line to enable transmit for first channel. Compatible with Nino TNC for 1200 and 9600 bps.
31+
- Improved Layer 2 Protocol [(IL2P)](https://en.wikipedia.org/wiki/FX.25_Forward_Error_Correction). Compatible with Nino TNC for 1200 and 9600 bps. Use "-I 1" on command line to enable transmit for first channel. For more general case, add to config file (simplified version, see User Guide for more details):
32+
33+
> After: "CHANNEL 1" (or other channel)
34+
>
35+
> Add: "IL2PTX 1"
1736
18-
- Limited support for CM109/CM119 GPIO PTT on Windows.
37+
- Limited support for CM108/CM119 GPIO PTT on Windows.
1938

2039
- Dire Wolf now advertises itself using DNS Service Discovery. This allows suitable APRS / Packet Radio applications to find a network KISS TNC without knowing the IP address or TCP port. Thanks to Hessu for providing this. Currently available only for Linux and Mac OSX. [Read all about it here.](https://github.com/hessu/aprs-specs/blob/master/TCP-KISS-DNS-SD.md)
2140

@@ -30,6 +49,21 @@
3049
> Add: "FX25TX 1" (or 16 or 32 or 64)
3150
3251

52+
53+
### Bugs Fixed: ###
54+
55+
- The t/m packet filter incorrectly included bulletins. It now allows only "messages" to specific stations. Use of t/m is discouraged. i/180 is the preferred filter for messages to users recently heard locally.
56+
57+
- Packet filtering now skips over any third party header before classifying packet types.
58+
59+
- Fixed build for Alpine Linux.
60+
61+
### Notes: ###
62+
63+
The Windows binary distribution now uses gcc (MinGW) version 11.3.0.
64+
The Windows version is built for both 32 and 64 bit operating systems.
65+
Use the 64 bit version if possible; it runs considerably faster.
66+
3367
## Version 1.6 -- October 2020 ##
3468

3569
### New Build Procedure: ###

Diff for: CMakeLists.txt

+27-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 3.1.0)
1+
cmake_minimum_required(VERSION 3.5.0)
22

33
project(direwolf)
44

@@ -265,9 +265,33 @@ endif(WIN32 OR CYGWIN)
265265
# requirements
266266

267267
include(CheckSymbolExists)
268+
268269
# Some platforms provide their own strlcpy & strlcat. (BSD, MacOSX)
269-
# Others don't so we provide our own. (Most, but not all Linux)
270-
# Define the preprocessor macro so libgps does not supply its own version.
270+
# Others don't so we provide our own. (Windows, most, but not all Linux)
271+
# Here we detect whether these are provided by the OS and set a symbol
272+
# so that:
273+
# (1) libgps does not supply its own version.
274+
# (2) we know whether we need to supply our own copy.
275+
#
276+
# This was all working fine until these were added to the gnu c library 2.38.
277+
# References:
278+
# - https://www.gnu.org/software/libc/sources.html
279+
# - https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=NEWS;hb=HEAD
280+
#
281+
# This test is not detecting them for glibc 2.38 resulting in a conflict.
282+
# Why? Are they declared in a different file or in some strange way?
283+
#
284+
# This is how they are declared in include/string.h:
285+
#
286+
# extern __typeof (strlcpy) __strlcpy;
287+
# libc_hidden_proto (__strlcpy)
288+
# extern __typeof (strlcat) __strlcat;
289+
# libc_hidden_proto (__strlcat)
290+
#
291+
# Apparently cmake does not recognize this style.
292+
# Keep this here for BSD type systems where it behaves as expected.
293+
# We will need to add a hack in direwolf.h to define these if glibc version >= 2.38.
294+
271295
check_symbol_exists(strlcpy string.h HAVE_STRLCPY)
272296
if(HAVE_STRLCPY)
273297
add_compile_options(-DHAVE_STRLCPY)

Diff for: conf/99-direwolf-cmedia.rules

+6
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,9 @@ SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0d8c", GROUP="audio", MODE="0660"
2828
#
2929
# Read the User Guide and run the "cm108" application for more information.
3030
#
31+
32+
#
33+
# Same thing for the "All In One Cable."
34+
#
35+
36+
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="7388", GROUP="audio", MODE="0660"

Diff for: conf/generic.conf

+12-85
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,11 @@
9898
%C%# Many people will simply use the default sound device.
9999
%C%# Some might want to use an alternative device by choosing it here.
100100
%C%#
101+
%C%#
102+
%C%# Many examples of radio interfaces and PTT options can be found in:
103+
%C%# https://github.com/wb2osz/direwolf-doc/blob/main/Radio-Interface-Guide.pdf
104+
%C%#
105+
%C%#
101106
%R% ---------- Windows ----------
102107
%R%
103108
%W%# When the Windows version starts up, it displays something like
@@ -382,8 +387,8 @@
382387
%C%# This is not a global setting.
383388
%C%# It applies only the the most recent CHANNEL specified.
384389
%C%#
385-
%C%# 0 - Don't try to repair.
386-
%C%# 1 - Attempt to fix single bit error. (default)
390+
%C%# 0 - Don't try to repair. (default)
391+
%C%# 1 - Attempt to fix single bit error.
387392
%C%#
388393
%C%
389394
%C%#FIX_BITS 0
@@ -458,10 +463,10 @@
458463
%C%# the "#" from the beginning of the line below.
459464
%C%#
460465
%C%
461-
%C%#DIGIPEAT 0 0 ^WIDE[3-7]-[1-7]$|^TEST$ ^WIDE[12]-[12]$ TRACE
466+
%C%#DIGIPEAT 0 0 ^WIDE[3-7]-[1-7]$|^TEST$ ^WIDE[12]-[12]$
462467
%C%
463-
%C%# See User Guide for more explanation of what this means and how
464-
%C%# it can be customized for your particular needs.
468+
%C%# See User Guide and "APRS-Digipeaters.pdf" for more explanation of what
469+
%C%# this means and how it can be customized for your particular needs.
465470
%C%
466471
%C%
467472
%C%# Traditional connected mode packet radio uses a different
@@ -505,7 +510,7 @@
505510
%C%# To relay messages from the Internet to radio, you need to add
506511
%C%# one more option with the transmit channel number and a VIA path.
507512
%C%
508-
%C%#IGTXVIA 0 WIDE1-1
513+
%C%#IGTXVIA 0 WIDE1-1,WIDE2-1
509514
%C%
510515
%C%
511516
%C%# Finally, we don't want to flood the radio channel.
@@ -529,82 +534,4 @@
529534
%C%#
530535
%C%# See separate "APRStt-Implementation-Notes" document for details.
531536
%C%#
532-
%C%
533-
%C%#
534-
%C%# Sample gateway configuration based on:
535-
%C%#
536-
%C%# http://www.aprs.org/aprstt/aprstt-coding24.txt
537-
%C%# http://www.aprs.org/aprs-jamboree-2013.html
538-
%C%#
539-
%C%
540-
%C%# Define specific points.
541-
%C%
542-
%C%TTPOINT B01 37^55.37N 81^7.86W
543-
%C%TTPOINT B7495088 42.605237 -71.34456
544-
%C%TTPOINT B934 42.605237 -71.34456
545-
%C%
546-
%C%TTPOINT B901 42.661279 -71.364452
547-
%C%TTPOINT B902 42.660411 -71.364419
548-
%C%TTPOINT B903 42.659046 -71.364452
549-
%C%TTPOINT B904 42.657578 -71.364602
550-
%C%
551-
%C%
552-
%C%# For location at given bearing and distance from starting point.
553-
%C%
554-
%C%TTVECTOR B5bbbddd 37^55.37N 81^7.86W 0.01 mi
555-
%C%
556-
%C%# For location specified by x, y coordinates.
557-
%C%
558-
%C%TTGRID Byyyxxx 37^50.00N 81^00.00W 37^59.99N 81^09.99W
559-
%C%
560-
%C%# UTM location for Lowell-Dracut-Tyngsborough State Forest.
561-
%C%
562-
%C%TTUTM B6xxxyyy 19T 10 300000 4720000
563-
%C%
564-
%C%
565-
%C%
566-
%C%# Location for the corral.
567-
%C%
568-
%C%TTCORRAL 37^55.50N 81^7.00W 0^0.02N
569-
%C%
570-
%C%# Compact messages - Fixed locations xx and object yyy where
571-
%C%# Object numbers 100 - 199 = bicycle
572-
%C%# Object numbers 200 - 299 = fire truck
573-
%C%# Others = dog
574-
%C%
575-
%C%TTMACRO xx1yy B9xx*AB166*AA2B4C5B3B0A1yy
576-
%C%TTMACRO xx2yy B9xx*AB170*AA3C4C7C3B0A2yy
577-
%C%TTMACRO xxyyy B9xx*AB180*AA3A6C4A0Ayyy
578-
%C%
579-
%C%TTMACRO z Cz
580-
%C%
581-
%C%# Receive on channel 0, Transmit object reports on channel 1 with optional via path.
582-
%C%# You probably want to put in a transmit delay on the APRStt channel so it
583-
%C%# it doesn't start sending a response before the user releases PTT.
584-
%C%# This is in 10 ms units so 100 means 1000 ms = 1 second.
585-
%C%
586-
%C%#TTOBJ 0 1 WIDE1-1
587-
%C%#CHANNEL 0
588-
%C%#DWAIT 100
589-
%C%
590-
%C%# Advertise gateway position with beacon.
591-
%C%
592-
%C%# OBEACON DELAY=0:15 EVERY=10:00 VIA=WIDE1-1 OBJNAME=WB2OSZ-tt SYMBOL=APRStt LAT=42^37.14N LONG=71^20.83W COMMENT="APRStt Gateway"
593-
%C%
594-
%C%
595-
%C%# Sample speech responses.
596-
%C%# Default is Morse code "R" for received OK and "?" for all errors.
597-
%C%
598-
%C%#TTERR OK SPEECH Message Received.
599-
%C%#TTERR D_MSG SPEECH D not implemented.
600-
%C%#TTERR INTERNAL SPEECH Internal error.
601-
%C%#TTERR MACRO_NOMATCH SPEECH No definition for digit sequence.
602-
%C%#TTERR BAD_CHECKSUM SPEECH Bad checksum on call.
603-
%C%#TTERR INVALID_CALL SPEECH Invalid callsign.
604-
%C%#TTERR INVALID_OBJNAME SPEECH Invalid object name.
605-
%C%#TTERR INVALID_SYMBOL SPEECH Invalid symbol.
606-
%C%#TTERR INVALID_LOC SPEECH Invalid location.
607-
%C%#TTERR NO_CALL SPEECH No call or object name.
608-
%C%#TTERR SATSQ SPEECH Satellite square must be 4 digits.
609-
%C%#TTERR SUFFIX_NO_CALL SPEECH Send full call before using suffix.
610-
%C%
537+

0 commit comments

Comments
 (0)