Python Makefile
Latest commit a1cf57a Dec 15, 2016 Greg Albrecht Merge branch 'release/6.0.1'
Permalink
Failed to load latest commit information.
aprs fix for README Dec 15, 2016
doc added aprs spec Apr 24, 2016
tests more cleanup Dec 14, 2016
.gitignore updated copyright and email Apr 24, 2016
.travis.yml adding python 3.5 Nov 10, 2016
CONTRIBUTORS cleanup CONTRIB order Dec 14, 2016
LICENSE updates Dec 14, 2016
MANIFEST.in updating contributors and email Nov 9, 2016
Makefile updates Dec 14, 2016
README.rst fix for README Dec 15, 2016
requirements.txt updates Dec 14, 2016
setup.cfg updates Dec 14, 2016
setup.py patch Dec 15, 2016

README.rst

aprs - Python APRS Module

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 Interfaces are inherited.
  • TCP - Interfaces Class for connecting to APRS-IS via TCP. Can send or receive APRS Frames.
  • UDP - Interfaces Class for connecting to APRS-IS via UDP. Only supports sending APRS Frames.
  • HTTP - Interfaces Class for connecting to APRS-IS via HTTP. Currently only supports sending APRS Frames.

Additional Interface Classes for connecting to KISS Interfaces are included:

  • SerialKISS - Interface Class for connecting to KISS Serial devices. Can send or receive APRS Frames.
  • TCPKISS - Interface Class for connecting to KISS TCP Hosts. Can send or receive APRS Frames.

Finally, Frame and Callsign classes are included:

  • Frame - Describes the components of an APRS Frame.
  • Callsign - Describes the components of an APRS Callsign.

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.Frame('W2GMD>APRS:>Hello World!')

a = aprs.TCP('W2GMD', '12345')
a.start()

a.send(frame)

Testing

Run nosetests from a Makefile target:

make test

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.
  • Python APRS Tracker TK.
  • 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:

https://travis-ci.org/ampledata/aprs.svg?branch=master

Develop:

https://travis-ci.org/ampledata/aprs.svg?branch=develop

Source

Github: https://github.com/ampledata/aprs

Author

Greg Albrecht W2GMD oss@undef.net

http://ampledata.org/

Copyright

Copyright 2016 Orion Labs, Inc. and Contributors

Automatic Packet Reporting System (APRS) is Copyright Bob Bruninga WB4APR wb4apr@amsat.org

License

Apache License, Version 2.0. See LICENSE for details.