[aprssig] APRS message-handling algorithms / libraries

John Goerzen jgoerzen at complete.org
Sun Apr 8 12:24:29 CDT 2012

Hi folks,

I am looking to write some APRS software, and I'm hoping to avoid 
re-inventing the wheel.  I am particularly interested in libraries in 
any cross-platform language (C, Perl, Python, Java, etc.) that can be 
used to receive and generate APRS messages.

In my research, there are quite a few libraries that receive APRS 
messages, but I have found none that are helpful with generating them.  
This seems to be something with some complexity; such as:

    * Splitting data up into packets of the appropriate size (APRSLink
      for Winlink appears to somehow detect the type of device in use
      and generates shorter messages for TH-D7A.  Anyone know how to do
      this, and what are the appropriate sizes for the D7A, D72A, 710,
      and VX-8GR?)
    * Processing/generating ACKs, REJs, etc.
    * Proper timing for retransmit of packets that weren't ACKed.

None of this is hugely complicated, and the APRS spec is fairly clear on 
the ACK, REJ, etc. process.  The maximum message sizes appear to be 
undocumented and I'm hoping someone can help me out there.

My project, incidentally, is to build a bidirectional APRS-XMPP bridge.  
XMPP is the protocol behind the instant messaging tools such as Jabber 
and Google Talk, and is available for free on every modern platform.  In 
the spirit of both amateur radio and the Free Software communities I'm a 
part of, full source code to this project will be available.  I actually 
already wrote a much simpler piece of related software, letting someone 
take a connected AX.25 session and bridge it to XMPP, [1] so I do have 
some experience under my belt.  This is obviously a more complex 
project, but XMPP looks like an excellent way to bridge APRS to other 
systems.  I think it is a better fit than the email gateways out there, 
and in fact, XMPP already has fields for carrying presence information 
and location information with presence packets.

Are there any particular notes available to those implementing gateways 
between APRS and non-APRS sources?  I have taken note of what sites such 
as OpenAPRS or Winlink do to validate people for access, and plan to do 
something similar here.


-- John

[1] source code at https://github.com/jgoerzen/ax25xmpp

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.tapr.org/pipermail/aprssig/attachments/20120408/07317d69/attachment.html>

More information about the aprssig mailing list