Python module for encoding and decoding APRS data.
Project description
aprs3 is a Python Module that supports connecting to APRS Interfaces, and receiving, parsing and sending APRS Frames.
This fork is currently a WiP. Please stand by May 2022.
Included are several Interface Classes:
APRS - Abstract Class from which all other Connection Interfaces are inherited.
TCP - Connection Interface Class for connecting to APRS-IS via TCP. Can send or receive APRS Frames.
UDP - Connection Interface Class for connecting to APRS-IS via UDP. Only supports sending APRS Frames.
HTTP - Connection Interface Class for connecting to APRS-IS via HTTP. Currently only supports sending APRS Frames.
Frame and Callsign classes are included:
Frame - Describes the components of an APRS Frame.
Callsign - Describes the components of an APRS Callsign.
Versions
6.5.x branch will be the last version of this Module that supports Python 2.7.x
7.x.x branch and-on will be Python 3.x ONLY.
8.x.x branch is a large rewrite as aprs3
Installation
Install from pypi using pip: pip install aprs
Usage Examples
Example 1: Library Usage - Receive
The following example connects to APRS-IS as W2GMD (me!) and filters for APRS frames coming from my prefix (W2GMD, W2GMD-n, etc). Any frames returned are sent to my callback p and printed.
Example 1 Code
import aprs def p(x): print(x) a = aprs.TCP('W2GMD', '12345') a.start() a.receive(callback=p)
Example 1 Output
W2GMD-6>APRX28,TCPIP*,qAC,APRSFI-I1:T#471,7.5,34.7,37.0,1.0,137.0,00000000
Example 2: Library Usage - Send
The following example connects to APRS-IS as W2GMD (me!) and sends an APRS frame.
Example 2 Code
import aprs frame = aprs.parse_frame('W2GMD>APRS:>Hello World!') a = aprs.TCP('W2GMD', '12345') a.start() a.send(frame)
Testing
Run nosetests from a Makefile target:
make test
Errata
7.0.0rc1 - Currently setting/getting digi flag on KISS frames is broken. Expect it to be fixed in final release of 7.0.0.
See Also
Python KISS Module Library for interfacing-to and encoding-for various KISS Interfaces.
Python APRS Module Library for sending, receiving and parsing APRS Frames to and from multiple Interfaces
Python APRS Gateway Uses Redis PubSub to run a multi-interface APRS Gateway.
dirus Dirus is a daemon for managing a SDR to Dire Wolf interface. Manifests that interface as a KISS TCP port.
Similar Projects
apex by Jeffrey Phillips Freeman (WI2ARD). Next-Gen APRS Protocol. (based on this Module! :)
aprslib by Rossen Georgiev. A Python APRS Library with build-in parsers for several Frame types.
aprx by Matti & Kenneth. A C-based Digi/IGate Software for POSIX platforms.
dixprs by HA5DI. A Python APRS project with KISS, digipeater, et al., support.
APRSDroid by GE0RG. A Java/Scala Android APRS App.
YAAC by KA2DDO. A Java APRS Client.
Ham-APRS-FAP by aprs.fi: A Perl APRS Parser.
Dire Wolf by WB2OSZ. A C-Based Soft-TNC for interfacing with sound cards. Can present as a KISS interface!
Build Status
Master:
Develop:
Source
Copyright
Copyright 2017 Greg Albrecht and Contributors
Automatic Packet Reporting System (APRS) is Copyright Bob Bruninga WB4APR wb4apr@amsat.org
fcs.py - Copyright (c) 2013 Christopher H. Casebeer. All rights reserved.
decimaldegrees.py - Copyright (C) 2006-2013 by Mateusz Łoskot <mateusz@loskot.net>
License
Apache License, Version 2.0. See LICENSE for details.
fcs.py - BSD 2-clause Simplified License
decimaldegrees.py - BSD 3-clause License
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
File details
Details for the file aprs3-8.0.0a1.tar.gz
.
File metadata
- Download URL: aprs3-8.0.0a1.tar.gz
- Upload date:
- Size: 808.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.10.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd63151571e0d12b4053073ec8f88ad007a2a0250407a0d68b4a5a3d0c59c32a |
|
MD5 | b6c249fc6e2806d330066d6b969af5d7 |
|
BLAKE2b-256 | 9c2e3415aab95015f7baeeea589d933675f0a9fa66de5900ca0e990a4b184e27 |
File details
Details for the file aprs3-8.0.0a1-py3-none-any.whl
.
File metadata
- Download URL: aprs3-8.0.0a1-py3-none-any.whl
- Upload date:
- Size: 12.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.10.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bfef5d520eb9b5a8fbbcced77564631af33bab7653120190b101bcca3246fd4f |
|
MD5 | ca4278db90802e07431e5045f4539f15 |
|
BLAKE2b-256 | a27d5092e9b923f08372464d817d92a63b9ab26d01c84b229769b8ab9e785b50 |