Search:
wiki:samtac2ew
Last modified 17 months ago Last modified on 04/08/12 17:49:32

# Earthworm Module: samtac2ew

Contributed by: Tim Zander of ISTI. Development funded by Tokyo Sokushin.

## Function

Imports data from SAMTAC-802U over tcp/ip or serial on windows (new in EW v7.4)

## Details

This module recieves data packets from a SAMTAC-802U. The data packets are then put into an Earthworm ring-memory transport buffer. The module was developed using Earthworm version 7.2. It is all 'C' code compiled using standard makefiles ("makefile.nt") like those used with other Earthworm modules. On Windows there are two versions of SAMTAC2EW: samtac2ew_com, to use a COM port on a PC; and samtac2ew_tcp, for using TCP communications to a serial-to-TCP server connected to the serial port on the SAMTAC-802U. There is one config file for the TCP version (samtac2ew_tcp.d) and another config file for the COM version (samtac2ew_com.d.) One instance of SAMTAC2EW will be needed for each SAMTAC, and each instance will have its own config file.

SAMTAC2EW Packet Handling Details

As data packets are received from the SAMTAC the headers are read, and a SOH message is sent to earthworm. The packets are then demuxed and a tracebuf2 packets for each channel is sent to the ring buffer. If there is a break in the sequence numbers or the checksums are bad, samtac2ew will write an error message to the ring buffer.

SAMTAC2EW State Of Health Details

SAMTAC2EW will send out a State Of Health(SOH) packet at a configurable interval(default 5 minutes) or if the SOH changes. The Packet Type used is TYPE_SAMTACSOH_PACKET and this must be defined in the earthworm.d file. An example SOH packet:

    ZZ-ISTI 1232641240
    DeviceID: 21
    Detecting Earthquake: 0
    Media Capacity Alarm: 0
    Power Supply Voltage Alarm: 0
    GPS Alarm: 1

Where ZZ-ISTI is the Network-Station and 1232641240 is the epoch time the packet was sent.

## Configuration File Commands

On startup, samtac2ew reads the configuration file named on the command line. Commands in this file set all the parameters used for configuring the Earthworm samtac2ew module. In the control file, lines may begin with a valid samtac2ew command (listed below) or with one of 2 special characters:

    #  marks the line as a comment (example: # This is a comment).

    @  allows control files to be nested; one control file can be
       accessed from another with the command "@" followed by
       a string representing the path name of the next control file
       (example: @SCNL.d).

Command names must be typed in the control file exactly as shown in this document (upper/lower case matters!). Blank lines are also permitted in the control file.

### Functional Command Listing

Below are the commands recognized by samtac2ew, grouped by the function they influence. Some of the commands are required, as noted. They may be specified in any order in the control file, with the exception of the SAMTAC-802U communications mode settings: these must be listed in the order shown here.

        Earthworm system setup:
                    ModuleId                required
                    RingName                required
                    LogFile                 required
                    HeartbeatInt            required
                    DeviceID                required
                    Debug                   optional

        The two commands for any ONE of the two communication modes:
            SAMTAC communication parameters: TCP mode
                    TcpAddr                 required
                    TcpPort                 required

            SAMTAC communication parameters: Windows COM port
                    ComPort                 required
                    Speed                   required

            SAMTAC2EW buffer and timing parameters:
                    CommTimeout             optional

            SAMTAC configuration, status and alarm parameters:
                    InfoSCNL                required
                    SOH_int                 optional

### Alphabetic Command Listing & Description

In the following section, all configuration file commands are listed in alphabetical order. Listed along with the command (bold-type) are its arguments (in red), the name of the subroutine that processes the command, and the function within the module that the command influences. A detailed description of the command and is also given. Default values and example commands are listed after each command description.

The following list is organized by:

command [argument here]

CommTimeout [n]

Sets the communication timeout to n milliseconds. If unable to communicate with SAMTAC for n milliseconds, retry socket or terminate. Default: 5000 (milliseconds)

ComPort [n]

Sets the com port number to n.

Debug [n]

Sets the debug level: 0 or commented out for no debug logging; 1 - 4 for increasing verbosity. Default: no debug output.

DeviceID [n]

Sets DeviceID(serial) of the SAMTAC. This will be used to identify data coming from the SAMTAC and should match Sys values from SCNL.

HeartbeatInt [beat]

Beat the samtac2ew heart every beat seconds.

InfoSCNL [System Channel S C N L]

This command is used to define how samtac2ew maps a System and Channel Number to a Station Channel Name. It is also used as a channel selector as only those streams specified get passed on to the Earthworm Wave Ring. This forces the trace buf type to be of type TRACEBUF2. System is for the SAMTAC System ID name, Channel is for the SAMTAC channel number, S is for station name (5 chars), C is for channel identifier (3 chars), N is for network code (2 chars), and L is for location code (2 chars).

    #                Sys     Channel S       C       N   L
    InfoSCNL         21      1       ISTI    HHZ     CI  00
    InfoSCNL         21      2       ISTI    HHN     CI  00
    InfoSCNL         21      3       ISTI    HHE     CI  00

LogFile [n]

If 0, don't output to logfile; if 1, do if 2, log to module log but not stderr/stdout

ModuleId [mod_id]

Sets the module id for labeling all outgoing messages. mod_id is a character string (valid strings are listed in earthworm.d) that relates (in earthworm.d) to a unique single-byte number.

RingName [ring]

This is the ring into which the waveforms and messages are sent.

SOH_int [seconds]

The interval in seconds between State of Health packets. Default in 300 seconds(5 minutes)

Speed [rate]

Connect to the SAMTAC-802U at the Speed rate specified. To use this input mode, the ComPort directive must also be used. The baud rates are the standard allowable rates : 1200, 2400, 4800, 9600, 19200, 38400, 57600, and 115200.

TcpAddr [IP address]

Connect to the SAMTAC-802U at the ip address IP address. Note that the TcpPort is also required.

TcpPort [number]

Connect to the SAMTAC-802U at the ip address specified and this port number. Note that the TcpAddr is also required for this directive. TcpPort defaults to 5001 for the SAMTAC-802U.

### Sample Configuration File

    #
    # samtac2ew configuration file
    #
    # This code receives serial data stream (SDS) packets from the SAMTAC via
    # a TCP/IP port, converts them into Earthworm trace buf messages, and
    # stuffs them into a wave ring.
    #

    TcpAddr         192.168.4.5     # IP address of SAMTAC interface
    TcpPort         5001            # TCP port number of SAMTAC interface

    # ComPort       1               # SAMTAC-802U COM port ID, 1=COM1, 2=COM, etc
    # Speed         57600           # SAMTAC-802U baud rate

    DeviceID        21              # SAMTAC DeviceID(serial), must be defined here for SCNL map

    ModuleId        MOD_SAMTAC2EW   # module id for this import
    RingName        WAVE_RING       # transport ring to use for input/output

    LogFile         1               # If 0, don't output to logfile; if 1, do
                                    # if 2, log to module log but not stderr/stdout

    HeartbeatInt    30              # Heartbeat interval in seconds

    # Optional commands:

    SOH_int         300             # State Of Health packet interval in seconds.
                                    # Default is 5 minutes

    CommTimeout     5000            # If unable to communicate with SAMTAC for X
                                    # milliseconds, retry socket or terminate
                                    # default: 5000 (milliseconds)

    Debug           4               # debug level: 0 or commented out for no debug
                                    # logging; 1 - 4 for increasing verbosity
                                    # default: no debug output

    #           Sys     Channel S       C       N   L
    InfoSCNL    21      1       ISTI    HHA     ZZ  01
    InfoSCNL    21      2       ISTI    HHB     ZZ  01
    InfoSCNL    21      3       ISTI    HHC     ZZ  01
    InfoSCNL    21      4       ISTI    HHD     ZZ  01
    InfoSCNL    21      5       ISTI    HHE     ZZ  01
    InfoSCNL    21      6       ISTI    HHF     ZZ  01

## Helpful Hints

### Download in other formats:

- Plain Text