APRS# - Modern APRS software for the amateur radio community
The Automatic Packet Reporting System is a digital wireless network designed and run by amateur (ham) radio operators around the world. Introduced in 1980, it is an ad-hoc, multi-hop, distributed network through which packets are transmitted and retransmitted between nodes to increase range. Data transmitted through APRS includes positional information, personal messages, weather station readings, search and rescue locations, and more. APRS packets are encoded and decoded by amateur radio devices, specialized hardware or software, or a combination.
The protocol has been in use since its introduction in the 1980s (see the site by the original creator here) and has seen various incarnations of encode/decode/visualize software. This project exists to eventually become a modern user interface for sending, receiving, and visualizing APRS digital packets in a straight-forward manner.
This project is provided as open source and developed by the community for the community.
See supplemental documentation for APRS# constituent projects:
Please see the code of conduct and contributing document for details on contributing to this project.
The target is .NET 6.0 for development.
Warnings are treated as errors in the release build (as in CI builds) but are
left as warnings in local development. To verify your code is warning-free, you
can run dotnet build -c Release
to get the release build behavior.
To generate the console application binary, go to the APRSsharp folder
(AprsSharp\src\APRSsharp
) and run the command dotnet publish -c Release
to generate
the console application.
The resulting binary will be placed in
bin\Release\net6.0\win-x86\publish
.
Alternatively, use dotnet publish -c Release -o <outputfolder>
to specify the
output directory.
All packages are versioned together for now via a field in
Directory.Build.props
. This means if one package gets a new version, they all
do. While this is not exactly ideal, this is currently used to manage
inter-dependencies during early development.
Maintainers should ensure the version has been updated before creating a new GitHub release. Creating a release will publish nuget packages to Nuget.org list.
To run the generated console application binary, go to the APRSsharp folder
(src\AprsSharp\src\APRSsharp
).
Run the command dotnet run
which will run AprsSharp with default parameters.
You can run the console app with command line arguments.
Examples of flags used with the arguments.
Callsign argument as {dotnet run -- --callsign
with --callsign/-c/--cgn}.
Password as {dotnet run -- --password
with --password/-p/--pwd/--pass}.
Server name as {dotnet run -- --server
with --server or -s or --svr}.
Filter arguments as {dotnet run -- --filter
and --filter or -f}.
For example dotnet run -- -c "arg" --pwd "args" --server "args" -f "args"
.
You can specify different combinations of the commandline flags. Either use 0, 1, 2, 3 or all the flags combination of flags.
For missing flags, the console application will use the default arguments.
To gracefully terminate the application, press the command Q
or q
.
This will exit the application after the last packet is received.
To force terminate the application, press the command Ctrl + c