DOKK / manpages / debian 12 / aprsdigi / aprsmon.8.en
APRSMON(8) Linux Programmer's Manual APRSMON(8)

aprsmon - monitor APRS AX.25 traffic for javAPRS

aprsmon [-a] [-m] [-r] [-k minutes] [-p port] [-t title] [-i infofile]

Aprsmon uses SOCK_PACKET facilities to provide a network monitor of all AX.25 UI text traffic heard by the system. It is based on listen(1).

Aprsmon collects (-m) or displays standard AX.25 UI text frames in a format similar to that output by a standard TNC in "Monitor ON" mode and is intended to be used with programs like javAPRS which wish to see a TNC data stream over a TCP connection. When the aprsmon master has been running for a while and a new aprsmon slave starts up, first all saved up reports are sent, then a title line indicating the beginning of live data is sent, and new reports are sent as received.

Compressed position and telemetry reports as generated by the APRS Mic Encoder are translated into the conventional uncompressed APRS Micro-Interface-Module (MIM) telemtry format so that these stations are visible in javAPRS. Reports containing a TheNet X1J4 beacon header are also edited to strip off the header making these nodes visible in javAPRS as well.

Allow for the monitoring of outgoing frames as well as incoming ones.
Choose "raw" mode which allows non-printable data through.
Monitor only those frames received on a particular port, by default all AX.25 interfaces are monitored.
"Master" mode. Retain monitored data for the number of minutes specified with the -k option in a shared memory segment.
Retain monitored packets going back the given number of minutes. Default is 30.
Sets the javAPRS or aprsd title string. Default is "Live data from Linux." For use with aprsd the format must be something like "aprsmon v2.4.4 padd padb." pada and padb can be anything, and are ignored but you *must* have 4 words in all.
Infofile is the path to the file that the aprsmon master writes the shared memory segment and semaphore id's into. Default is "/var/ax25/aprsmon.info."

Set up one aprsmon master running on your system to collect historical data going back a while. You will probably want to set up an /etc/rc.d/init.d script for this.

aprsmon -a -m&

Add an entry into /etc/services with the port number you want javAPRS to connect on. For example:

aprs		14439/tcp	# APRS monitor on 144.39

Add an entry into /etc/inetd.conf for this service:

aprs stream tcp nowait root /usr/sbin/aprsmon aprsmon -a

To test, simply "telnet localhost aprs". To use with javAPRS, set, for example,

<PARAM name = "dataFile1" value = "netc:14439:localhost">
in your HTML file as described in the javAPRS documentation, and then use appletviewer to run javAPRS:
appletviewer mydemo.html

The Mic-E reduces the duration of packet noise on a voice frequency by encoding its data in a compressed form, some of which is binary. Some APRS-decoding software, notably javAPRS, is unable to deal with this data. To solve this problem aprsmon expands the Mic-E packet into one or two MIM packets as follows:

@ddhhmmzDDMM.hhN/DDDMM.hhW$cse/spd/E>mon/Mm/status
T#MIC,aaabbbcccdddeeefffComments

is the UTC day and time the packet was received by the host running aprsmon.
is the latitude.
/
is the symbol table selection (/ or \).
is the longitude.
$
is the symbol.
are course and speed.
is the type of Mic-Encoder:
E - TAPR Mic-Encoder
T - Kenwood TH-D7

is the status message number, and
is the status message number expanded as follows:
0 -  Off duty..
1 -  Enroute...
2 -  In Service
3 -  Returning.
4 -  Committed.
5 -  Special...
6 -  PRIORITY..
7 -  EMERGENCY.

are the values of the telemetry channels.

/etc/ax25/axports /var/ax25/aprsmon.info

call(1), listen(1), beacon(1), ax25(4), axattach(8), http://www.bridge.net/~sdimse/javAPRS.html, http://www.tapr.org, http://www.aprs.net, MIC-E.TXT,TELEMTRY.TXT,PROTOCOL.TXT

Alan Crosswell, n2ygk@weca.org
9 February 1999 Linux