Files here are updated, please make sure you have latest PDF manual.
The motivation for this project is to develop snap-on acquisition system easily
installed on any platform and able to record varies data from RS-232 devices,
such as GPS, magnetometer, flux gates, attitude sensors, etc, with relatively
precise time stamping, or to serve as intermediate time stamping and data checking
level between hardware and windows-based acquisition program(s)
The complete RPi1/Rpi3 images are provided, with the web interface via webmin.
RS232_reader – command-line Linux program which reads from single serial port,
does minimal data processing such as matching with regular expression(s),
assigns time stamp based on the arrival or PPS and re-transmit data to the
standard output. Data also can be re-transmitted via another serial port and
multi cast UDP address, and logged locally to HD/SD card, optionally zipped on
the fly. The incremental logging is also possible, with files closed at user-specified
interval (minutes, hours, days, etc). The program can be compiled and run on any
Linux system, from embedded to desktop.
The software was developed with Linux xined in mind. This allows easy wrapping of
multiple rs232_reader services into TCP/IP and their access over the network.
In a nutshell program becomes RS232 <-> TCP/IP converter, with additional options
such as time stamping, logging, etc. The rs232_reader relies on is NTP
(Network Time Protocol). Using NTP server and dedicated GPS with PPS it is possible
to build autonomous embedded system with time accuracy of ±10 μS. This however does
not imply accuracy for rs232_reader, because at present it uses user space to
time stamp incoming data.
R232_reader allows special processing for data with PPS flag. It could be just a
special field in the data (for instance, set to “1” when particular data string
is aligned with the whole UTC second, and “0” otherwise) or just whole time stamp
with 0 ms part (as in case of NMEA GPS messages). This is controlled bu use-specified
regular expression and known sample rate. For instance GGA message with time
stamp 092415.000 received at 09:24:15.560 (note 560 ms latency) will be assigned
its true time 09:24:15.000. Other example is Geometrics G-824 magnetometer which
has an option to align data with PPS, if enabled.
The program can be controlled interactively from terminal, in interactive mode by
special commands, and by its configuration (also called device) file. If file
is altered on the disk, program re-loads it and re-starts its operation,
allowing dynamic changes of parameters.
Program is provided as a C++11 source code, to be compiled with codeblocks C::B IDE.
The codeblokcs work space as well as Makefile in included in the distribution.
To compile the software development libraries for boost, pthread and readline
must be available.