Order Tray | Contact Us | Home | SIG Lists

[aprssig] APRS data via perl-to-tnc

Alex Carver kf4lvz at yahoo.com
Mon Oct 3 19:58:27 UTC 2011

> From: Arnie Shore 
> Re "What ya trying to achieve"  I want to get an APRS
> data stream from some
> arbitrary station onto our CAD's MySQL db.
> Currently, we pull a given station's data from aprs.fi
> despite that
> station's sitting maybe six feet away. An ARES/RACES team
> user has asked me
> to look into avoiding the latency and error-proneness
> inherent to the long
> path.  (Agreed that we shudda done that years ago!)
> The CAD's in PHP, which hasn't much in the way of serial
> port handling
> capabilities in most of its installs, anyway.  I see

You didn't specify the OS upon which PHP is running.

PHP can open any port on a Unix system using the file I/O routines but the baud rate would be fixed to whatever the port is set for at the time.  You may be able to get around this by invoking stty via a system() call prior to opening the port.  I haven't tried it, however, so you'd have to experiment.  On Windows, you can still use the file I/O routines if you have PHP running inside an environment like Cygwin which will remap serial ports to the Unix style /dev/ttySn files.

There is a class available for PHP called PHP-serial which will get you more functionality although it won't read data in Windows right now. http://code.google.com/p/php-serial/

A third method would be to use socat as a helper application.  Socat can connect a TCP/IP socket to a serial port for read/write access.  Then you'd use PHP's socket functions to read and write data from there.  I actually use socat to bring a TNC plugged into a Windows machine over to a Linux system for use with Xastir.  I'm actually able to create a sniffer of sorts this way.  Xastir gets read/write access to the TNC but a separate terminal window has read-only access to let me watch the TNC data flow by.

> some perl examples of
> that, and one lister has described that interface as
> trivial.  And, HH has
> just shared some information re sources.  So, a Perl
> interface makes some
> sense here.
> (Frankly, it sounds easily-enough done, but at the
> moment  I don't have a
> suitable receiver/tnc to play with, so I'm bothering you
> all here for some
> confirmation.)
> The endgame has us adding a smallish Perl script to our CAD
> distribution to
> do so.

More information about the aprssig mailing list