aprs is a Python Module that supports connecting to APRS Interfaces, and receiving, parsing and sending APRS Frames.
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.
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
Release files for aprs 7.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aprs-7.0.0.tar.gz | 15.8 kB | Details |
Release files / aprs-7.0.0.tar.gz
| Download URL | aprs-7.0.0.tar.gz |
|---|---|
| Size | 15.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
35c3d13959230b5c0029c1127f31c3f3fc55eb3c0c1e20a692db8060da3b1b00
|
|
BLAKE2b-256 checksum How to use checksums |
2b0f1b1975d9a265ba647b3efccf87a1ec0350cc3dabbaecd667f7831ed9f23e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |