Skip to main content

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.

  • 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/

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aprs3-8.0.0a1.tar.gz (808.3 kB view details)

Uploaded Source

Built Distribution

aprs3-8.0.0a1-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

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

Hashes for aprs3-8.0.0a1.tar.gz
Algorithm Hash digest
SHA256 fd63151571e0d12b4053073ec8f88ad007a2a0250407a0d68b4a5a3d0c59c32a
MD5 b6c249fc6e2806d330066d6b969af5d7
BLAKE2b-256 9c2e3415aab95015f7baeeea589d933675f0a9fa66de5900ca0e990a4b184e27

See more details on using hashes here.

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

Hashes for aprs3-8.0.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 bfef5d520eb9b5a8fbbcced77564631af33bab7653120190b101bcca3246fd4f
MD5 ca4278db90802e07431e5045f4539f15
BLAKE2b-256 a27d5092e9b923f08372464d817d92a63b9ab26d01c84b229769b8ab9e785b50

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page