Last modified 17 months ago
Last modified on 05/02/12 09:27:10
Earthworm Module: export_scn
Contributed by:
Function
Exports EARTHWORM messages over Internet (partner to import_generic).
Details
EXAMPLE CONFIGURATION FILE
# export_scn configuration file # # Exports messages from a given list of station/channel/network codes # Knows how to decipher TYPE_TRACEBUF, TYPE_PICK2K, TYPE_CODA2K msgs # #Background: # Import/Export are the long-distance message transfer # modules. They operate as one-on-one pairs. There are two variants of # export: export_generic, which ships messages with specified logos, and # export_scn which ships only trace data, but with specified SCN names. # # Import/Export send heartbeats to each other, as well as into their # local earthworm systems. If the heartbeat from the distant partner is # not received whithin the expected time period (RcvAliveInt) the link is # terminated, and an attempt to reconnect is initiated. If things go # seriously wrong, the heartbeat into the local earthworm system in # stopped. The expectation is that "restartMe" has been set in the .desc # file, and we'll be killed and restarted. # # All socket operations are performed with a timeout. This is noramlly # defaulted, but can be set in this file (SocketTimeout). # # Export maintains a circular FIFO buffer of messages to be shipped. The # size of this buffer (RingSize) controls the maximum latency of the # data. # # #Configuration notes: # # "restartMe" should be stated in our desc file. # # The period of our local heartbeat (HeartBeatInt) must be safely smaller # (faster) than our advertised period in our .desc file (tsec:). # Otherwise we'll get continually restarted for no good reason. # Note that tsec:0 implies no heartbeats expected, and so we'll never get # restarted. # # The rate at which we send heartbeats to our distant partner should be # considerably faster than the rate at which our partner expects them. # Otherwise, a heartbeat delayed in transmission will cause our partner to # conclude that the link is broken, and cause them to break the link and # reinitialize. Which will cause us to do the same. # # For export, the ServerIPAdr is the address of the port to be used in # the exporting machine. This is to specify a network card case the # exporting machine has several network cards. # # If SocketTimeout is specified, it should be at least as large as the # expected period of heartbeats from our distant partner. # MyModuleId MOD_EXPORT_SCN # module id for this program RingName WAVE_RING # transport ring to use for input/output HeartBeatInt 30 # EW internal heartbeat interval (sec) # Should be >= RcvAliveInt LogFile 1 # If 0, don't write logfile; if 1, do. # if 2, write to module log but not to # stderr/stdout # # Logos of messages to export to client systems # Installation Module Message Type GetMsgLogo INST_MENLO MOD_WILDCARD TYPE_TRACEBUF # ServerIPAdr and ServerPort specify the local IP address and port number # on which this module will be ready to accept a client connection. # ServerIPAdr aaa.bbb.cc.ddd # Export messages via this ethernet card ServerPort 16005 # Well-known port number to export msgs on MaxMsgSize 900 # maximum size (bytes) for input/output msgs RingSize 100 # max# messages in outgoing circular msg buffer SendAliveText "alive" # string sent to client as heartbeat SendAliveInt 30 # seconds between alive msgs sent to client. # 0=> no heartbeat RcvAliveText "alive" # text of client's heartbeat (we get this) RcvAliveInt 150 # seconds between client's heartbeats to us. # 0 => no heartbeat #MaxLatency 0 # Optional command; Packets with delay time # (i.e., time between present and packet # start time) greater than this amount will be # filtered out. Time is in minutes. 0 -> time # is not checked. System time must be accurate. # Only works on TYPE_TRACEBUF messages. # Socket commands # The commands below are optional. # SocketTimeout defaults to RcvAliveInt + 3 # If set to -1, all socket calls will block (no timeout). # SocketTimeout has no effect in export, unless it is set to -1, # because there is no code in export to handle socket timeouts. # If set to -1, the program may run slightly more efficiently because # timeout checking code will not execute. # SocketTimeout 200000 # Timeout length in milliseconds for socket calls # this should be atleast the value of the RcvAliveInt SocketDebug 0 # if 1, socket_ew debug statements are logged # if 0, socket_ew debug is turned off # List of station/channel/network codes to export. # Use any combination of Send_scn (to send data as-is) # and Send_scn_remap (to change the SCN on the fly) commands. # Use * as a wildcard for any field. A wildcard in the # "map to" fields of Send_scn_remap means that field will # not be renamed. # # send SCN map to SCN Send_scn JMP ASZ NC # send this specific channel Send_scn JPS * NC # send all components of JPS NC Send_scn_remap JGR VHZ NC * EHZ * # change component code only Send_scn_remap CAL * NC ALM * * # send all component of CAL, but # change the site code to ALM