<p><i>(beta revision, last revised 10 December, 2007)</i></p>
<p><i>(last revised 03 March, 2008)</i></p>
</center>
<p>
nmxptool is a client for Nanometrics Server and a module for Earthworm as well. It is based on libnmxp that provides a set of documented APIs which allow to develop software capable of interacting with Nanometrics Servers:
<ul>
<li> NaqsServer (Private Data Stream 1.4)
<ul>
<li>Buffered Stream: short-term complete data stream. Packets are in chronological order but small gap whenever a retransmission occurs.
<li>Raw Stream: packets are forwarded in the original order. Packets may be missing, duplicated, or out of order, but minimal delay.
</ul>
<li>DataServer (Data Access Protocol 1.0)<br>
<ul>
<li>Data may be requested by channel, start time and end time.
</ul>
</ul>
The Nanometrics servers <i>NaqsServer</i> and <i>DataServer</i> can provide on-line access to seismic data and state-of-health information accepting TCP/IP connections and forwarding the requested data to each client program. <i>NaqsServer</i> collates and stores in near-real-time incoming data in ringbuffers whereas <i>DataServer</i> provides data of the past stored in <i>NaqsServer</i> ringbuffers. In order to implement the Nanometrics subscription protocols, the author developed a software consisting of a library called libnmxp and a tool called nmxptool. The library exposes a set of documented APIs which allow to communicate with the Nanometrics servers. The tool, based on libnmxp, allows to retrieve or monitor real-time data and data of the past.
</p>
<p>
nmxptool allows to retrieve or monitor real-time and off-line data. Mainly, it can be used:
<ul>
<li>stand-alone to save data in mini-SEED format<br>
<li>like a plug-in for SeedLink<br>
<li>like a module for Earthworm<br>
</ul>
Dependencies:
<b>nmxptool</b> can be used in three different ways:
<ul>
<li>libmseed - http://www.iris.edu/manuals/<br>
<li>plugin.h and plugin.c from SeisComp distribution<br>
<li>Several object files inside the Earthworm library directory $EW_HOME/$EW_VERSION/lib,
or alternatively, sources dependents on your operating system.
<li>stand-alone to monitor data or save retrieved data in mini-seed records
<li>launched as an <b><i>Earthworm</i></b> module to redirect data into the EW-rings
<li>like a <b><i>Seed-Link</i></b> plug-in to feed the SL-server
</ul>
nmxptool have been developed in C using the GNU Build Tools (automake, autoconf) and taking in account the POSIX Cross-Platform aspects.<br> It has been compiled with success on Solaris, Linux, Mac OS X, Windows (<i>MinGW</i>), FreeBSD.
The main contribute, as regards other similar software, is the capability to manage Raw Stream connections by buffering and sorting all received packets, included the retransmitted ones, guaranteeing a good compromise between data continuity and low latency. Besides, nmxptool allows to retrieve Data-On-Demand with minimum delay after request. Software is open-source and released under GNU Library General Public License. It has been written in C language using the GNU Build Tools (automake, autoconf and configure script) and taking in account the cross-platform compilation aspects, in fact, it can run on almost all the Unix-like operating systems, Mac OS X, Windows and either 32-bit or 64-bit architectures.
</p>
<p><hr></p>
<p>
Why a new software client for Nanometrics Server?<br>
When we connect to a NaqsServer by a Short-term data stream connection we get a gap for each retransmitted packet. Unfortunately, previous available software were not able to reorder retransmitted packets.
@@ -52,8 +36,8 @@ Main parameter to set for Raw Stream is the max tolerable latency you can accept
<p>
The maxium size of the TRACEBUF messages created by nmxptool is
limited to the maximum number of samples
that can fit into a Nanometrics compressed packet (???? samples = ????
bytes) plus the size of the TRACEBUF header (64 bytes). So ???? bytes
that can fit into a Nanometrics compressed packet (272 samples = 1088
bytes) plus the size of the TRACEBUF header (64 bytes). So 1152 bytes
is a good estimate of the maximum size of TRACEBUF messages created by
nmxptool.</p>
@@ -77,7 +61,8 @@ nmxptool is open-source and actively supported by the
</p>
<hr>
</b>Contact: <b>quintiliani at ingv.it</b><br>
<address>
</b>Contact: <b>quintiliani at ingv.it</b> - Website: <ahref="http://mednet.rm.ingv.it/nmxptool.php">http://mednet.rm.ingv.it/nmxptool.php</a>