The Güralp CD1.1 tool suite for the Platinum firmware of CMG-EAM, CMG-DCM and CMG-NAM hardware consists of four modular components that can be used together to implement either a single-station CD1.1 sender or a cross-array sender, coalescing subframes from multiple stations into a single outgoing data frame for the entire array.
When building an array, each individual element of the array is actually a fully independent CD1.1 sender in its own right.
Supported features include fully-conformant status fields (State of Health or SoH), flexible tamper line support, Canadian compression and optional hardware authentication. Back-fill capacity is limited only by the size of the fitted flash module or disk array.
The CD1.1 tool suite runs in parallel to other programs, so it is possible to use other data formats simultaneously.
Platinum firmware runs natively on CMG-EAMs and CMG-NAMs. It can also be installed on the earlier CMG-DCM units. Platinum firmware is based on the Linux operating system, which provides a robust, familiar and flexible platform for the protocol-handling and configuration software.
Seismic protocols are handled by a number of configurable software modules, which run as user-space programs. They can, on the whole, be stopped, reconfigured and started independently of each other. The whole system is managed by a flexible and extensible configuration interface which is accessible in near-identical format from either the web interface or a character-based terminal, connected either serially or over a network.
The majority of the protocol-handling features of Platinum are based on Güralp Data Interconnect, or GDI. The gdi-base module serves as the central data interchange, accepting data from a wide variety of input protocol-conversion modules, buffering and re-ordering incoming data where necessary, associating samples with their meta-data and providing data via a consistent interface to the output protocol-conversion modules.
It is possible to use CD1.1 under Platinum without using GDI but, if any data received in different formats are to be converted to CD1.1, they will first be converted to GDI and passed via the gdi-base module.
For pure CD1.1 implementations, it is neither efficient nor necessary to convert to and from GDI, so a separate CD1.1 multiplexor module is provided. Incoming CD1.1 frames are not passed to GDI, so it is not possible to convert them into non-CD1.1 formats, such as SEEDlink.
The CD1.1 tool suite consists of four modules:
The CD1.1 receiver (data-in-cd11), which receives data in CD1.1. format from external CD1.1 data producers (DPs);
The GDI to CD1.1 converter (gdi2cd11), which receives data from GDI and, thus, indirectly, from any other source in any supported format;
The CD1.1 multiplexer (data-mux-cd11), which accepts and combines data from one or more instances of the previous two modules; and
The CD1.1 sender (data-out-cd11), which takes data from a CD1.1 multiplexer instance and transmits them in CD1.1 format to external CD1.1 data consumers (DCs).
Any useful configuration will, therefore, use at least three of these modules. It is possible to configure more than one instance of any of these modules and these can be connected together as necessary when building more complex implementations.
The diagram, above, shows a simple configuration using all four CD1.1 modules. It is necessary to use either the CD1.1 Receiver (data-in-cd11) or the GDI to CD1.1 converter (gdi2cd11) but not you do not need to use both.
The diagram also shows the subframe database which stores all subframes passing through. These can then be used to satisfy back-fill requirements and retransmission requests from external receivers. This database can be located either in flash RAM or on a hard drive, depending on considerations of storage space and power consumption.
The data paths between modules are implemented using POSIX local IPC sockets.
The following sections provide an introduction to how each module works. Typical configurations will then be discussed, followed by a detailed description of each module's instantiation, configuration and use.