San Diego, California Pix

PerlAPRS - Automated Control in APRS Networks

San Diego, California Pix
Figure 1 San Diego, California

    PerlAPRS is an application which can monitor both local TNC and remote Internet APRS packets. It then can perform an automated action based on criteria specified by the user. The criteria that PerlAPRS uses is the callsign of the station and its location specified as a Maidenhead Grid Square. Other requirements specified by the user increase functionality of the program in real world applications. The actions executed can be written in any language, but UNIX style shell scripts are ideally suited for this purpose. Scripts can be developed to perform functions such as automatic notification via email as well as logging. PerlAPRS is freely distributed under the GNU licensing agreement.

  • Introduction
  • The Callsign File
  • Shell Scripts
  • Starting PerlAPRS
  • How It Works
  • Maidenhead Grids
  • Conclusion
  • Acknowledgement
  • System Requirements
  • Software Distribution
  • Unix Enviornment


The Callsign File

Shell Scripts

Starting PerlAPRS

How It Works

Maidenhead grids



System Requirements

Software Distribution

Unix Enviornment

The documentation above should give you all you need to get started. There are a few points to remember however.
  1. In a UNIX enviornment, an executable file such as "perlAPRS" must have the file permissions set to executable. Use chmod 755 perlAPRS to set the permissions correctly.

  2. Devices, like files and directories, must also have their permissions set. For example, perlAPRS will attempt to open the default serial device "". On some systems, I/O default permissions are limited to root only. If you get the error message, "Can't open PORT /dev/cua1" the permissions may need to be altered. This is done with, "chmod 666 /dev/cua1". If you are not sure, use "ls -l /dev/cua1" to check.

  3. If your system was setup properly, you should be able to forget about the following. But just in case, PerlAPRS requires a perl module called which should be included with every Perl distribution. This module is required only to support perlAPRS's ability to get APRS packets from the Internet. If you get an error message that perlAPRS can't find the module, you can check where perl is looking by type at the command prompt: perl -e 'print "@INC\n";'. The variable @INC is the "include" array which tells perl where to look for the modules and other things that it needs. If your is not located where perl is looking, then you need to add your directory path to the @INC array with either of the following, the first is preferred.

    use lib '/mypath/'
    BEGIN {unshift (@INC, '/mypath/'}

    The code needs to be added prior to the command: use Socket, for example:

    use lib '/mypath/'
    require 5.002;
    use Socket;
    use strict;