Extensible APRS bot framework with dupe detection, beacon/bulletin support and other nice features. Just add your custom APRS bot functions - the APRS bot framework will take care of the rest.
Project description
core-aprs-client
Core APRS client framework with dupe detection, bulletin/beaconing support, and other APRS-IS related stuff.
core-aprs-client is a modernized version of mpad's APRS functions which can be used for building your very own APRS client / bot. Its framework supports all of mpad's core APRS messaging functions, such as connecting to APRS-IS, message dupe detection, ACK handling, and other functionality such as APRS bulletins (supporting both static and dynamic contents) and APRS beaconing. However, core-aprs-client deliberately lacks any specific APRS bot functions such as WX reporting etc.
This is where you step in. Add your bot-specific code to the client's APRS framework code. Everything else related to APRS messaging and communication with APRS-IS will be covered by the core-aprs-client framework.
Sample APRS Client
The following example illustrates a fully functional APRS bot. You will provide the APRS message input parser code and the generator responsible for the outgoing APRS message content. Everything else will be handled by the core-aprs-client framework.
from CoreAprsClient import CoreAprsClient
# Your custom input parser and output generator code
from input_parser import parse_input_message
from output_generator import generate_output_message
import logging
if __name__ == '__main__':
client = CoreAprsClient(config_file="core_aprs_client.cfg",
log_level=logging.INFO,
input_parser=parse_input_message,
output_generator=generate_output_message)
client.activate_client()
It's as simple as that.
Core features
- Core APRS-IS functionality, covering both 'old' and 'new' ACK processing
- Configurable dupe message handler
- Optional:
- APRS beacons and bulletins, including support for dynamic bulletin content generated during runtime
- Program crash handler, allowing you to get notified in case the client program crashes
Installation and Configuration
Installation instructions
Instructions for installing the framework and its sample APRS client on your computer can be found here.
Client Configuration
The steps for modifying the client's config file are described here.
Framework examples
This directory contains sample program code; it also contains the ready-to-use templates for the framework's configuration files.
CoreAprsClient class description
The framework's class methods are described here
Source Code Anatomy
A brief overview on this repositories' software modules used by the client can be found here.
Framework usage
The steps for using the client framework are described here.
Client schematics
If you want to learn about the bot's basic processing structure, then have a look at this diagram.
Known issues and caveats
- This software is single-threaded. Due to APRS-IS's technical nature of resubmitting non-ack'ed messages, this limitation should not be an issue, though. Future versions of this software might support queued processing of incoming requests.
- This software is intended to be used by licensed ham radio operators. If you are not a licensed ham radio operator, then this program is not (yet) for you. Why not take a look at sites such as Hamstudy and 50 Ohm - and get licensed?
- You should at least know the APRS basics before you use this software. Acquaint yourself with the official APRS documentation and learn about how APRS works in general. Additionally, have a look at the APRS Foundation's website.
- You HAVE to assign your personal call sign to the bot.
- You HAVE to request your personal APRS TOCALL for using this bot in production. See the APRS Device ID information section on proper usage.
The fine print
- If you intend to host an instance of this program, you must be a licensed radio amateur. BYOP: Bring your own (APRS-IS) passcode. If you don't know what this is, then this program is not for you.
- APRS is a registered trademark of APRS Software and Bob Bruninga, WB4APR.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file core_aprs_client-0.93.tar.gz.
File metadata
- Download URL: core_aprs_client-0.93.tar.gz
- Upload date:
- Size: 45.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1a4777517f05f7c44ce106ea24e38ea12a7dd522ddbcfdf4686b246ca580ae8
|
|
| MD5 |
8e9e283479b601f7a8b77de99d86ec58
|
|
| BLAKE2b-256 |
0ece8bceacf126068889ac39858dfd61be698e66d0c6f59434994da3df77dfc2
|
Provenance
The following attestation bundles were made for core_aprs_client-0.93.tar.gz:
Publisher:
publish-to-pypi.yml on joergschultzelutter/core-aprs-client
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
core_aprs_client-0.93.tar.gz -
Subject digest:
f1a4777517f05f7c44ce106ea24e38ea12a7dd522ddbcfdf4686b246ca580ae8 - Sigstore transparency entry: 798845375
- Sigstore integration time:
-
Permalink:
joergschultzelutter/core-aprs-client@545e7e1c0242c1aedb340ea9ff4b0976427f08b3 -
Branch / Tag:
refs/tags/0.93 - Owner: https://github.com/joergschultzelutter
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@545e7e1c0242c1aedb340ea9ff4b0976427f08b3 -
Trigger Event:
release
-
Statement type:
File details
Details for the file core_aprs_client-0.93-py3-none-any.whl.
File metadata
- Download URL: core_aprs_client-0.93-py3-none-any.whl
- Upload date:
- Size: 51.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9743cd6848ee52e0676bf1acd431a5355020564a27ff0ff3b8d47fb532b1850b
|
|
| MD5 |
a6db7abd72b5b3e16627babbab0a451a
|
|
| BLAKE2b-256 |
330971414591d8af984d8fe78cf527d6378c74dcb1dab2793785a2ec43230fbe
|
Provenance
The following attestation bundles were made for core_aprs_client-0.93-py3-none-any.whl:
Publisher:
publish-to-pypi.yml on joergschultzelutter/core-aprs-client
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
core_aprs_client-0.93-py3-none-any.whl -
Subject digest:
9743cd6848ee52e0676bf1acd431a5355020564a27ff0ff3b8d47fb532b1850b - Sigstore transparency entry: 798845377
- Sigstore integration time:
-
Permalink:
joergschultzelutter/core-aprs-client@545e7e1c0242c1aedb340ea9ff4b0976427f08b3 -
Branch / Tag:
refs/tags/0.93 - Owner: https://github.com/joergschultzelutter
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@545e7e1c0242c1aedb340ea9ff4b0976427f08b3 -
Trigger Event:
release
-
Statement type: