source: trunk/release_notes.working @ 2146

Revision 2146, 61.5 KB checked in by dietz, 14 years ago (diff)

* empty log message *

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1***
2***  THIS FILE IS UNDER RCS - DO NOT MODIFY UNLESS YOU HAVE
3***  CHECKED IT OUT USING THE COMMAND CHECKOUT.
4***
5***    $Id$
6***
7
8Release Notes:  Earthworm Version "working"
9Cleaned out after release of v6.2 on 4/15/2003
10Note that v6.3 was a CVS snapshot that was released on 9/21/2005
11
12NEW MODULES:
13***********
14
15pkfilter:
16The purpose of pkfilter is to reduce the number of "duplicate" picks
17from a given "station". For pkfilter, all components which have
18matching station code and network code are considered to be the from the
19same "station". The rules for what are considered "duplicate" picks
20can be found in the file:
21vX.X/src/seismic_processing/pkfilter/pkfilter.designspecs.txt
22Pkfilter is location-code friendly and will handle both the TYPE*2K
23and TYPE*SCNL versions picks and codas.  LDD 5/5/2004
24
25statrigfilter:
26The purpose of statrigfilter is to eliminate "duplicate" triggers
27from a given "station". For statrigfilter, all channels which have
28matching station code and network code are considered to be the from the
29same "station". The rules for what are considered "duplicate" triggers
30can be found in the file:
31vX.X/src/seismic_processing/statrigfilter/statrigfilter.designspecs.txt
32Statrigfilter is location-code friendly and will handle both
33TYPE_CARLSTATRIG_SCNL and TYPE_CARLSTATRIG messages.  LDD 11/23/2005
34
35putpick:
36   Putpick is a command-line testing tool which allows one to replay
37a file containing picks and/or codas into an Earthworm ring.
38     Usage: putpick <pickfile> <RING_NAME> <pause: y/n>
39Putpick reads a file containing a series of pick/coda msgs
40and write them to shared memory.  The file can contain a mix
41of TYPE_PICK2K, TYPE_PICK_SCNL, TYPE_CODA2K, TYPE_CODA_SCNL,
42and also comments.  Only valid TYPE_PICK* and TYPE_CODA* msgs
43will be written to shared memory; all other lines will be ignored.
44   Putpick is useful for replaying picks into binder - binder's
45logfile (or a portion of it) can be used as the input file
46to putpick, or the picks can be placed in a separate file.
47   If pause = y, the relative timing of writing msgs to ring is
48based on delta-t in the timestamps in the picks.
49   If pause = n, the msgs are written to the ring as fast
50as they are read from the file.   LDD 6/25/2004
51
52ws_clientIIx:
53Added a new set of ws_client routines (ws_clientIIx), that are used by
54ora_trace_fetch.  The new routines were designed to streamline and
55simplify access to the wave_servers while conserving wave_server
56resources.  (The routines handle connect/disconnect for the caller,
57and if given a list of requests, the routines will sort the request
58by wave_server, so that it will connect to one wave_server, retrieve
59the appropriate data, disconnect from the first and connect to the
60second, retrieve the appropriate data, and so on.
61The routines were written in 2001, (derived from ws_clientII) and have
62never been as thoroughly tested as ws_clientII.
63The routines have not been scheduled for SCNLizing.
64DK 072004
65
66scn2scnl,scnl2scn:
67A pair of conversion modules (code resides in data_exchange/scn_convert)
68to change trace data, picks and codas from the original Earthworm formats
69with site,component,network codes to the new Earthworm formats using
70site,component,network,location codes and visa versa.  Written by Will
71Kohler, modified by Pete Lombard to do SCN->SCNL lookups.
72LDD 10/21/2004
73
74slink2ew:
75A seedlink client for acquiring data from seedlink servers (e.g. IRIS)
76and converting to tracebuf2 (or optionally tracebuf). Much more robust
77than liss2ew. Written by Chad Trabant of IRIS; modified for tracebuf2
78and debugged by Chad Trabant and Jim Luetgert.
79JHL 4/19/05
80PAF Updated with version 1.3 on 1/30/2006
81
82export_ack, export_scnl_ack:
83  This new version of export expects to receive an acknowledgment packet
84for every packet it writes to the socket. Creation of this new version
85was desired because we observed during the export of continuous trace
86data that during a communication failure, export was able to successfully
87write several messages to the (broken?) socket, but import never received
88them. When the socket was re-established, those messages were lost forever.
89  Acknowledgments are received asynchronously by the socket-reading thread.
90A circular buffer, SendQueue, tracks the status of msgs after they been
91pulled from the MessageStacker queue. If the socket is broken/reconnected,
92export*ack re-sends any msgs in the SendQueue which haven't been
93acknowledged. In normal operation, if export*ack laps the SendQueue and
94finds a message that has been sent but not ACKed, it will sleep 10ms and
95then check status again, looping until an ACK is received before preparing
96to send the next message.
97  The SendQueue length is configurable, from 1 to 254 messages (default=100). 
98Using a shorter SendQueue can cause a decrease in the rate at which
99export will send messages. A slower rate might be desireable so
100that an import system is not flooded by data after a prolonged
101communication break. In testing with export and import on the same
102machine, these are export's approximate maximum data rates:
103  SendQueueLength =   1,   10 messages/second
104  SendQueueLength =  10,   90 messages/second
105  SendQueueLength = 100,  350 messages/second
106Using the default SendQueueLength, export*ack's data rate was not
107observably different than export_generic's data rate. 
108  export*ack requires using the new import_ack to communicate properly.
109Since the receipt of ACKs is asynchronous, we may now have the opposite
110problem to that we had before (duplicate data instead of lost data). It
111is now possible that import_ack actually received a packet, but export_ack
112didn't get the ACK before the socket broke. In this is case, export_ack
113will re-send the packet and import_ack will see the same packet more than
114once. The system running import_ack must be prepared for duplicate data.
115LDD 4/29/2005
116
117import_ack:
118  This new version of import is required as the data exchange partner
119for the new export*ack modules. However, it can communicate with either
120old or new-protocol export modules, and can therefore be used anywhere
121in place of import_generic.
122  From the first message received per socket connection, import_ack
123discovers what flavor of export it's talking to. It will do either
124old non-ACK or new ACK protocol as appropriate on the fly.
125  Import_ack has been modified to use same configuration commands as
126export for setting up the server connection and socket heartbeat
127strings and intervals. It still recognizes the original import_generic
128commands. 
129  Since the receipt of ACKs by export_ack is asynchronous, we may now
130have the opposite problem to that we had before (duplicate data instead
131of lost data). It is now possible that import_ack received a packet,
132but the socket broke before export_ack received the ACK. In this is case,
133export_ack will re-send the packet and import_ack will see the same packet
134more than once. Therefore, the system running import_ack as a partner to
135export_ack must be prepared to handle duplicate data.  LDD 4/29/2005
136
137wftimefilter:
138  This new module was created to "sanitize" incoming waveform data
139streams to the liking of Earthworm modules. It reads waveform data
140(compressed or uncompressed) from one transport ring and writes it
141to another ring, filtering out duplicate data, time overlaps and
142bogus future timestamped data. Timestamp checks are done for each
143channel independently. The check for bogus future timestamps requires
144that the system clock is set to network time.
145  Wftimefilter can be configured to output the messages using the
146original installation/moduleid or its own installation/moduleid.
147However, it does not alter the contents of the message in any way.
148  Systems which are importing data using import_ack/export*ack should
149probably use wftimefilter to remove possible duplicate data after
150an import/export reconnect. Systems importing waveform data from
151non-Earthworm data sources should also consider running wftimefilter
152to ensure that only chronological timeseries enter their own Earthworm
153processing.  LDD 5/10/2005
154  Modifed to allow additional optional behavior:
155   1)rejecting packets that have a sample-rate different than the expected one for the
156     channel. 
157   2)Limiting per-channel logging, to limit logfile size and increase readability.
158   3)Adding per-channel daily summaries of errors and warnings.
159   4)Adding the ability to issue a STATUS message to a ring as a part of the daily summary.
160  Default behavior should be unchanged.
161DK 2006/03/27
162
163startstop_service:
164(added to CVS by Paul Friberg 6/29/2005, authored by Mark Morrison)
165From the README.txt found in the src/system_control/startstop_sevice:
166startstop_service is identical to the old startstop_nt, except that
167it runs as a Windows service.  This means that the parameters are all the
168same - read from startstop_nt.d - but that startstop isn't just executed
169from a command window or via the scheduler.  Note that this version is
170taken from startstop_nt, so I haven't compiled or tested any of this under
171Solaris or other systems.  I believe it's generally felt, however,
172that these modifications don't apply to Solaris.
173
174srparxchewsend: as a new data source. This is contributed by Symmetric
175Research for their digitizers. It was installed in data_sources by
176Paul Friberg Jan 5, 2005.
177
178rayloc_ew:
179(last revised 13 July, 2004) Ilya Dricker at www.isti.com
180Rayloc_ew is an Earthworm Module to perform global relocation of
181earthquakes and travel time computation.  Rayloc_ew is an Earthworm-style
182wrapper around a Fortran program RayLoc written by Ray Bulland.
183Rayloc_ew attaches itself to the input ring and monitors the ring buffer
184for the TYPE_LOC_GLOBAL
185<http://folkworm.ceri.memphis.edu/ew-doc/PROGRAMMER/GlobalMessages.html>
186messages.  Rayloc_ew reformats the input and calls FORTRAN RayLoc processing
187machinery. The output of rayloc_ew is TYPE_RAYLOC
188<http://www.isti.com/~ilya/Message_Format_TYPE_RAYLOC.html> message,
189which is written to the output ring.  The rayloc_ew program is compiled
190and tested out on a Solaris platform (with gcc and g77 compilers).
191
192startstop_unix:
193Added in this Linux'ified version of startstop (uses a startstop_unix.d file)
194from Alexandre Nercessian: PAF 9/7/2005
195
196raypicker:
197Added this from the HYDRA package for Mitch Withers. This is the picker
198that is used by NEIC to feed glass. Only compile tested under Windows
199at this point since that is where NEIC uses it.
200PAF 01/30/2006
201
202glass:
203Add this from older NEIC distro. This is a global associator written
204by Carl Johnson. This module will only compile/run under Windows.
205PAF 01/30/2006
206
207eqfilterII:
208Added in this new module from Mitch WIthers for handling arc, global,
209and rayloc message types.
210PAF 01/30/2006
211
212geqproc:
213Same tasks as eqproc, but this takes global messages instead of
214arc messages. Part of global event processing chain.
215PAF 01/30/2006
216
217globalproc:
218Moved globalproc from NEIC v0.1 to v7.0.  Recall that globalproc
219listens to the glass chatter, assembles quake, pick, and amp messages
220into a global loc message, and sends it to the ring when appropriate.
221Combined with geqproc, the two accomplish the same thing as what
222eqproc did for binder.  This strays from the original intent of globalproc
223allowing a tweaked eqproc and globalproc to "eat" glass output simultaneously
224but given that we have rayloc, geqproc only needs to locate local events
225so this lashup was easier and does the job. Comments by Mitch Withers:
226PAF 01/30/2006
227
228config_ws:
229This module will listen on a wave_ring for scn or scnl type trace_buf[2]
230messages and create a waveserverV configuration file for the tanks. It
231has a number of configuration options to specify how many tanks and of
232what size they should be.
233This nifty little module is contributed by John Patton of the Hydra
234group and installed by Paul Friberg (only compiles under Windows).
235PAF 02/09/2006
236
237reconfigure:
238This command line tool sends a reconfigure request to startstop. Startstop
239will then re-read startstop_*.d and start up any new rings or modules it
240finds. Duplicate module names and duplicate ring names are not allowed.
241Necessary for this to work is the addition of
242Message  TYPE_RECONFIG       112
243to the earthworm.d file.
244s.lisowski 20060405
245
246
247
248MODIFICATIONS/BUG FIXES TO EXISTING MODULES:
249********************************************
250
251
252startstop:
253Reconfigure or 'recon' command added to startstop module. The command can
254either be given by running the command-line 'reconfigure' tool, or by typing
255'recon' or 'reconfigure' into the interactive EARTHWORM STATUS interface.
256Startstop will then re-read startstop_*.d and start up any new rings or
257modules it finds. Duplicate module names and duplicate ring names are not
258allowed. Necessary for this to work is the addition of
259Message  TYPE_RECONFIG       112
260to the earthworm.d file.
261Also some startstop commonalities for all four platforms (Windows, Windows
262Service, Linux, Solaris) were added to libsrc/util/startstop_lib.c, commonalities
263between Solaris and Linux were added to libsrc/util/startstop_unix_generic,
264commonalities between Windows and Windows Service were added to
265libsrc/winnt/startstop_winlib.c.
266s.lisowski 20060405
267
268statmgr:
269Modified to allow up to 10 pagegroup commands in statmgr config file.
270Modified descriptor files to allow optional module-specific settings for
271pagegroup (up to 10) and mail (up to 10) recipients. Any pagegroup or
272mail setting in a descriptor file overrides the statmgr config settings.
273This will allow the user to fine-tune on a per-module basis the recipients
274of various Earthworm notifications.
275Modified logfile name to use the name of the statmgr config file (had
276been hard-coded to 'statmgr*'.
277Modified logging of configuration and descriptor files.
278LDD 2006/4/25
279
280logit:
281Made it so that logit now appends a platform-specific slash to EW_LOG if
282there isn't one. This allows for a more consistent entry on in the
283environment/ew_<platform>.{cmd,bash} file.
284s.lisowski 20060405
285
286gmew:
287Added in SCNL capability (no longer available for just SCN) and upgraded
288to the new version of ShakeMapXML (v3.1). I also patched a minor wave server
289warning message to be more explicit (empty menu) and added versioning
290to the program itself.
291PAF 03/15/2006
292
293heli_ewII:
294Added in SCNL capability (no longer available for just SCN).
295PAF 03/15/2006
296
297libsrc/solaris/sleep_ew.c:
298Added: #include <string.h>   WMK 3/22/04
299
300libsrc/solaris/transport.c:
301Added: #include <stdlib.h>
302Function tport_bufthr() now returns NULL.  WMK 3/22/04
303
304libsrc/winnt/transport.c:
305Added: #include <stdlib.h>
306
307libsrc/util/kom.c
308Changed: "static struct k_buf" to "struct k_buf"   WMK 3/22/04
309
310libsrc/util/trheadconv.c
311New function to convert TYPE_TRACEBUF headers to
312TYPE_TRACEBUF2 headers.  WMK 4/29/04
313
314libsrc/winnt/sendmail.c
315Increased BUFFSIZE from 200 to 250, to accomodate more email recipients.
316This is a kludgy fix.  It might better to allocate the buffer on the fly,
317to accommodate any number of email messages.  Also, note that I did not
318increase BUFFSIZE in libsrc/solaris/sendmail.c  WMK 6/11/03
319
320libsrc/util/getutil.c
321Added new functions: GetKeyName, GetInstName, GetModIdName, GetTypeName.
322These functions take a numeric value (shared memory key, installation id,
323module id or message type) as their argument and return a pointer to its
324corresponding character string name from the earthworm*d tables.  If the
325numeric value is not in the earthworm*d tables, the functions return a
326NULL pointer.
327Added new function, GetLocalInstName, which return a pointer to the
328environment variable EW_INSTALLATION.
329LDD 7/29/2004
330
331libsrc/util/rw_strongmotionII.c:
332Changed rd_strongmotionII() to interpret both "-" and "?" as NULL strings
333when reading the QID: line qid and qauthor fields.  Previously only
334accepted "?" as a NULL string.  Change was required by CISN data which
335uses "-" as a NULL string in those fields.  LDD 2/13/2004
336
337adsend:
338Modified to produce tracebuf messages with trace2 headers.
339These headers contain location code and header version number.
340Old-style tracebuf messages (w/o location code) are no longer
341made.  WMK 4/22/04
342
343pick_ew:
344  Modified to create picks and codas containing SCNLs.
345Input waveform messages may be of either TYPE_TRACEBUF or
346TYPE TRACEBUF2.  WMK 4/29/04
347  Added new optional config file command so that pick_ew can choose
348which messages to process: GetLogo <instid> <modid> <msgtype>
349There's no limit to the number of GetLogo commands that can be used.
350If no GetLogo commands are used, then pick_ew will process all
351TYPE_TRACEBUF and TYPE_TRACEBUF2 messages in InRing. LDD 4/8/2005
352
353carlstatrig:
354  Modified for location code. Reads TYPE_TRACEBUF2 and produces
355TYPE_CARLSTATRIG_SCNL messages. PNL 5/5/2004
356  Added new optional config command so that carlstatrig can choose
357which messages to process: GetWavesFrom <instid> <modid>
358There's no limit to the nubmer of GetWavesFrom commands that can
359be used. If no GetWavesFrom commands are listed, then carlstatrig
360defaults to "GetWavesFrom INST_WILDCARD MOD_WILDCARD". LDD 4/12/2005
361
362binder_ew:
363  Modified to use TYPE_PICK_SCNL as input.  Required changes to the
364station file reading library, site.c, and to the hypoinverse site file.
365LDD 5/17/2004
366  Modified to attempt pick association with entire quake list before
367attempting a new stack. Previously only attempted association with
368the 10 most recent events.  This should allow picks to arrive fairly
369late (out-of-real-time) and still be associated with an event. This
370will prevent such picks from restacking into a new, duplicate event.
371This modification requires that binder keep track of the earliest
372pick sequence number associated with each quake so that no hypocenter
373updates are attempted if some of the supporting picks are no longer
374in the pick FIFO. If a Pick  associates with an event that can't
375be updated, a TYPE_LINK message will go out, but no relocation will
376be done, and no new TYPE_QUAKE2K message will be issued.
377LDD 10/21/2004
378  grid.c changes: Added sanity check on mStack value; modified grid_stack
379to go thru pick list from newest to oldest pick.
380LDD 10/29/2004
381  bind.c: Modified to make the pick and quake FIFO lengths configurable.
382Added two optional config file commands:
383pick_fifo_length xxxx (default = 1000 = previous hardcoded length)
384quake_fifo_length yyy (default =  100 = previous hardcoded length)
385Only large networks should need to consider using these commands to
386increase FIFO sizes. Care must be taken to ensure that eqproc/eqprelim
387FIFO lengths are the same length (or larger) than binder_ew's FIFOs.
388LDD 3/9/2005
389  Modified to shut down cleanly on termination request. LDD 4/15/2005
390  binder_ew.c: Added two optional commands:
391BufferRing  ringname (default = BINDER_RING = previous hardcoded string)
392            This defines which ring binder will use for private storage
393            space for incoming picks. ringname must exist in an earthworm.d
394            "Ring" line.
395EventIdFile filename (default = quake_id.d  = previous hardcoded string)
396            This defines the name of the file that will contain the
397            next valid eventid for binder to apply to a new association.
398Having these two items hardcoded had made it extremely tricky to run
399multiple instances of binder on the same host without them competing for
400common resources. Now it will be a simple matter of different configuration
401files to run multiple instances. This could be useful in testing
402different binder configurations.  LDD 8/1/2005
403
404eqproc:
405Modified to use TYPE_PICK_SCNL and TYPE_CODA_SCNL as input.
406Modified to produce TYPE_EVENT_SCNL as output.
407LDD 5/17/2004
408  Modified to make four more operational parameters configurable.
409All are set with new optional config file commands and default to
410the previous hardcoded values if their commands are ommitted.
4111. pick FIFO length ('pick_fifo_length' command, default = 1000)
4122. quake FIFO length ('quake_fifo_length' command, default = 100)
413For proper event reporting, eqproc's pick and quake FIFO lengths must
414greater than or equal in length to binder's FIFOs.
4153. heartbeat interval ('HeartbeatInt' command, default = 0.3*tReport)
4164. time interval at which quake FIFO is checked for events that are
417ready to send downstream ('rpt_check' command, default = 0.3*tReport)
418Items 3 & 4 were previously a hardcoded fraction of tReport, which is
419configured with the optional 'rpt_dwell' command (default = 30 s).
420These changes should allow eqproc to send events downstream in a more
421timely fashion.  LDD 3/10/2005
422
423eqprelim:
424Modified to use TYPE_PICK_SCNL and TYPE_CODA_SCNL as input.
425Modified to produce TYPE_EVENT_SCNL as output.
426LDD 5/17/2004
427  Modified to make two more operational parameters configurable.
428Both are set with new optional config file commands and default to
429the previous hardcoded values if their commands are ommitted.
4301. pick FIFO length ('pick_fifo_length' command, default = 1000)
4312. quake FIFO length ('quake_fifo_length' command, default = 100)
432For proper event reporting, eqprelim's pick and quake FIFO lengths must
433greater than or equal in length to binder's FIFOs.  LDD 3/11/2005
434
435eqcoda:
436Modified to use TYPE_EVENT_SCNL as input and to write location codes
437in the TYPE_HYP2000ARC message it puts out. Added new optional command
438"LogArcMsg" to control whether output TYPE_HYP200ARC msg is written to
439eqcoda's log file (0=don't log; non-zero=do log it).  LDD 5/20/2004
440
441hyp2000:
442Grabbed Fred Klein's most recent version of hyp2000 which is location-code
443compliant.  LDD 7/01/2004
444Grabbed Fred Klein's most recent version of hyp2000 which has a new
445command 'DI1' to set a different distance weighting scheme for early
446iterations.  Normal distance weighting is still set with the 'DIS'
447command. This change was prompted by trouble locating the Parkfield
448mainshock of 9/2004.  LDD 12/8/2004
449Grabbed Fred Klein's most recent version of hyp2000 which has added
450logic to allow location codes "  " and "--" to match (they both
451represent a "blank" location code). LDD 10/5/2005
452
453ew2file:
454Added optional command "TimeBasedFilename X" to control whether a
455time string derived from the message contents is added to the beginning 
456of the output file names. If X is zero (default), original file naming
457convention is used (SequenceNumber.suffix). If X is non-zero, a time
458string is prepended to the filename (YYYYMMDD-HHMMSS.SequenceNumber.suffix).
459This option is only applicable for TYPE_PICK2K, TYPE_PICK_SCNL, and
460TYPE_HYP2000ARC messages. All other message types will be named
461according to the original convention regardless of the TimeBaseFilename
462setting.  Other messages types containing timestamps could be added
463to the new naming scheme in the future.  LDD 11/11/2005
464
465evanstrig:
466Modified to use TYPE_TRACEBUF2 as input and to write TYPE_LPTRIG_SCNL
467as output. Both message types include location codes.  Changed config
468file command "MaxSCN" to "MaxSCNL".  Added location code as the fourth
469argument to the "TriggerOn" command. LDD 5/21/2004
470
471evansassoc:
472Added location code; modified to use TYPE_LPTRIG_SCNL as input and to
473write TYPE_TRIGLIST_SCNL as output.  Added location code as the fourth
474argument to the "AddChannel" command. LDD 5/24/2004
475
476putter:
477Modified to read files of TYPE_PICK_SCNL and TYPE_CODA_SCNL. Added
478optional second argument, ringname (name of ring to write msgs to).
479Previously was hardcoded to write to PICK_RING. Will still work with
480TYPE_PICK2K and TYPE_CODA2K msgs as long as the installation id and
481moduleid are less than 100.  LDD 5/17/2004
482
483findwave:
4841. Modified to read both TYPE_TRACEBUF2 and TYPE_TRACEBUF msgs.
4852. Modified "d" output (debug) to include pin number and message logo as 
486both character strings from earthworm*.d and numeric values. If a field
487of the logo is not in the local earthworm*d files, the debug output will
488show one or more of these strings: inst_unlisted, mod_unlisted, type_unlisted. 
489If the channel's installation id is different from the local installation id
490(set by the EW_INSTALLATION environment variable), the module_id string will
491read: mod_not_local.
4923. Modified "w" output (wave_serverV) to include the actual installation
493and module id strings from earthworm*d files.  If the installation is not
494in the earthworm_global.d file, it will be listed as INST_WILDCARD.  If the
495moduleid is not in the earthworm.d file, it will be listed as MOD_WILDCARD.
496If the channel's installation id is different from the local installation id
497(set by the EW_INSTALLATION environment variable), the module will be listed
498as MOD_WILDCARD.
4994. Modified all output to be space-delimited rather than tab-delimited.
500LDD 7/29/2004
501
502findwave:
503  Merged Hydra changes into findwave.  The default findwave behavior is unchanged.
504  Hydra changes include:
505     Option:  have tanks segmented by HD based on a HardDrive size
506     Option:  have findwave truncate tanksizes to 1GB, to comply with
507              wave_serverV maximum safe tank size.
508     Option:  have findwave massage the record sizes to be a fixed size
509              for all tanks.
510     Option:  have findwave massage the record sizes for variable-record-length
511              channels to be slightly larger than the largest record received for that channel.
512   Run findwave with no arguments for more information.
513
514gaplist:
515Added a "Total Gap" column to the output tables.  "Total Gap" is the
516total, in seconds, of the length of all gaps for a particular channel.
517"Total Gap" gets reset to 0 when the day rolls over.  Also, added a
518column named "Dead Time", which is the elapsed time since a channel
519died.  If "Dead Time" is blank, the channel is currently alive.
520"Dead Time" does NOT reset to 0 when the day rolls over. WMK 1/8/04
521
522gaplist: Slight table reformat.  WMK 1/20/04
523
524gaplist: Now accepts TYPE_TRACEBUF and/or TYPE_TRACEBUF2 messages.
525The config file (gaplist.d) now contains a list of SCNLs to monitor,
526rather than SCNs.  WMK 4/30/04
527
528gaplist: Added system-clock timestamp to logging of gaps/overlaps.
529Made slight formatting changes in logging.  LDD 5/7/2004
530
531gaplist: Now, the scnl array is allocated using realloc, so any number
532of Scnl and Label lines are permitted in the config file.
533Fixed two bugs:
534Label strings longer than 31 characters weren't null-terminated in the
535program.  Now, they are, so long labels are correctly truncated.
536Also, the label array, defined in gaplist.h, had a length of 31
537characters, which caused some values in the scnl array to get clobbered.
538This resulted in continuous dead/alive messages being sent to statmgr.
539WMK 5/11/04
540 
541gaplist: Added new optional command: GetLogo <instid> <modid> <msgtype>
542If no GetLogo cmds are given, gaplist will process all TYPE_TRACEBUF
543and TYPE_TRACEBUF2 messages (previous default behavior).
544Modified to allow processing of TYPE_TRACE_COMP_UA and TYPE_TRACE2_COMP_UA
545messages (headers are NOT compressed!). LDD 4/11/2005
546
547evtK2ora:
548Fixed endTime bug in makeEwSnippet(). Thanks Jim L.
549Alex 5/9/03
550
551shakemapfeed:
552The last two arguments to ewdb_api_GetSMDataWithChannelInfo were
553reversed. That meant that the number of returned SM messages would be
554incorrect IF that number exceeded MaxDataPerEvent. The result would be an
555out-of-bounds memory access and corrupted SM data. PNL 6/9/03
556
557shakemapfeed:
558Changed the sorting used in Filter_SM_data. Now SM messages are sorted by SCNL
559instead of by idchan. That means that the output XML will have components of
560one station listed consecutively, a big help for shakemap. PNL 10/30/03
561
562shakemapfeed:
563Changed the length of the long station name in the mapping file from
56420 to 50 characters.  LDD 2/5/04
565
566skakemapfeed:  (EWDB API - Strong Motion) ewdb_internal_GetAllSMMessages()
567(Note: This function is called by ewdb_api_GetSMDataWithChannelInfo())
568Fixed a bug in PostGetAllSMMessages().  The idEvent field may be null
569for some records, and Oracle  does not appear to be writing a 0 value to
570the memory area for the null field, so that record assumes the
571idEvent of the previous record located at that point
572in the internal buffer.  The result is data corruption, such that you get
573messages that are unassociated with an Event, but they appear to be associated
574with an event.
575DK 02/12/04
576
577shakemapfeed: Added new optional command, SMQueryMethod, to control how SM data
578is requested from the DBMS. Default behavior is original 2-stage query (get
579all SM data associated with this eventid, then get all UNassociated SM data
580in a space/time box). If SMQueryMethod is non-zero, shakemapfeed will request
581all SM data in a space/time box. This will return SM data associated with this
582event, SM data associated with other events, and UNassociated SM data.
583Regardless of query method, post-query filtering will be performed on eventid,
584external eventid, and external author.  SM data associated with a different
585eventid but with the same author will be rejected.  Data with a different
586author will be allowed - this is most likely data imported from another
587network and its eventids are meaningless in our DBMS.  LDD 02/13/2004
588
589shakemapfeed: Changed the auto-feed scheduling logic to allow for variable
590time intervals between feeds to shakemap.  Feeds are scheduled at
591fixed times after the arrival of the archive message by using the new
592command, ScheduleFeed (one time per ScheduleFeed command, up to 20 allowed).
593Auto-feeds will continue at the last ScheduleFeed interval until UpdateDuration
594minutes after the event origin time.  ScheduleFeed replaces the original
595DelayFirstFeed and UpdateInterval commands. These original commands are still
596accepted and will set up the auto-feed schedule in the original manner in the
597absence of ScheduleFeed commands.  LDD 3/4/2004
598
599k2ew:
600The channel bitmap bug reported below has been fixed. K2ew now reads the
601correct bitmap to determine which channels are streaming. PNL 6/9/03
602
603k2ew:
604Version 2.38: K2ew will now, optionally, obtain network code from the K2
605headers, rather than from the configuration file.  For this to work, network
606codes need to be entered into the K2 using Altus File Assistant. A different
607network code may be entered for each stream.  The K2 must be running
608application firmware version 3.02 or later.  The "Network" parameter, in the
609config file, is now optional.  WMK 3/25/05
610
611liss2ew, ew2liss, dumpseed:
612There was a bug on Microsoft based systems that caused the user defined
613types BYTE, WORD, and LONG to be ignored.  This was a problem specifically
614with the type WORD, which was changed from a signed 16-bit value to an
615unsigned 16-bit value, causing many problems, most noteably with the
616signed seed varibles for sample rate and sample rate multiplier.  All
617liss based modules have had this problem corrected. JMP 06/17/2003
618
619getfile_ew:
620There was a feature in getfile_ew that could cause more cpu to be
621used than necessary by checking time since last heartbeat more
622often than necessary.  Added sleep_ew(1000) within heartbeat
623loop. MMW 06/29/2003
624
625getfileII:
626Ported getfileII to FreeBSD.  Two new files are in the source directory:
627makefile.bsd and socket_bsd.c.  No other changes to files. WMK 11/25/03
628
629getfileII:
630Added more string-length checking to config.c and to the incoming file
631names and output paths to avoid overflowing character arrays. Changed
632version number to 1.1.  LDD 7/28/2004
633
634sudsputaway:
635Added functions to properly initialize SUDS structures to
636Banfill's default values. CJB 10/3/2003
637
638sudshead.h:
639Updated to make more compatible with suds.h in current
640release of PCSUDS. CJB 10/3/2003
641
642file2ew:
643Fixed bug in raw2ew.c which caused file2ew to exit when the
644SuffixType command contained only 2 arguments.  The third
645argument (installation ID) was supposed to be optional, and
646now is!  LDD 10/3/2003
647
648ew2file:
649Fixed bug in timing of heartbeat file generation.
650Had been using HeartBeatInt instead of HeartFileInt to control
651the production loop.  Caused continuous heartbeat file generation
652when HeartFileInt==0.  LDD 11/24/2003
653
654sniffwave:
655Changed to sniff headers of both TYPE_TRACEBUF and TYPE_TRACE_COMP_UA msgs.
656Will only print data values for TYPE_TRACEBUF messages.  Changed to accept
657the any of these strings as wildcards in SCN: "wild", "WILD", "*".
658LDD 10/31/2003
659
660Modified to list both the Quality value and (if TRACE2_HEADER the Version
661value) in the header output.
662DK 2005/03/27
663
664sniffwave:
665Modified to sniff headers of TYPE_TRACEBUF2 and TYPE_TRACE2_COMP_UA msgs.
666Added new command-line argument <location> to support these new message
667types. LDD 4/13/2004
668
669vX.X/src/data_exchange/Makefile:
670Added directives for STANDALONE_MODULES (right now getfileII and sendfileII)
671so that their executables, which are created in their source directories,
672are also copied to the vX.X/bin directory.  LDD 11/27/2003
673
674sendfileII:
675Ported to BSD Unix.  Added a new makefile, named makefile.bsd.
676To compile, type "make -f makefile.bsd".  Otherwise, everything is the
677same as on Solaris.  WMK 2/17/04.
678
679sendfileII:
680Added optional config command "-SendPause xxx" where xxx is a time in
681milliseconds (default = 0). sendfileII will sleep SendPause millseconds
682before trying to open a file for shipping.  This gives file writers of
683unknown behavior some time to finish writing and to close the file before
684sendfileII wisks it away. Windows fopen_excl() was supposed to keep us
685from opening a file that another process was using, but I don't think
686it's working the way we expected. Besides, Solaris never had the
687fopen_excl() option, so SendPause helps us there.  LDD 3/23/2006
688
689EWDB - Station Information:
690Modified the two stored procedures that handle the processing of SCNL
691from station list tools (stalist_XXX2ora) and automatic data (trace feed,
692automatic pick feed, strong motion, etc.).
693Modified the procedures to properly process the Location Code of the
694SCNL.  Prior to this, Location codes weren't properly being handled.
695Because this change is to SQL procedures and not C code, you must
696refresh the DB stored procedures by updating with the SQL scripts from
697"working".  (run ewdb_load_external_utils.sql from schema/sql_scripts).
698DK 02/17/04
699
700naqs2ew:
701  Modified to produce TYPE_TRACEBUF2 messages to support location codes.
702Can optionally be configured to produce the original TYPE_TRACEBUF msg.
703New config file commands: OutputMsgType (optional) and RequestChanSCNL.
704See sample configuration file for details. LDD 4/14/2004
705  Modified to output all packets (regardless of time-order) to Earthworm
706when RequestChanSCNL "delay" is -1.  This will allow out-of-chronological
707order data and possibly duplicate data into the EW system. For delay>=0,
708out-of-order packets will be ignored (previous behavior). LDD 11/22/2005
709  Added new command "RepackageNmx" (optional) to control how Nmx packets
710are repackaged into Earthworm messages.  If set to 1, naqs2ew will create
711one EW msg from each Nmx packet. If the Nmx packet contains more than
712MaxSamplePerMsg samples, multiple EW msgs will be created. The entire Nmx
713packet will be converted immediately.  If set to 2 (the default), naqs2ew
714will repackage Nmx packets into 1-second EW msgs.  If an Nmx packet
715contains more or less than 1-second of data, some samples will be buffered
716until the receipt of the next Nmx packet for that channel.  Some shorter
717EW messages will be generated if time tears are present.  LDD 11/23/2005
718  Fixed bug in how compression bits of raw Nmx compressed data packets
719are interpreted in unpack_tsdata_bundle() of nmxp_packet.c. Now, if both
720compression bits are 0, it is interpreted as "this data set contains no data"
721and the 4-byte data set is ignored. Previously, if both compression bits
722were 0, it was (mis)intrepreted to mean that compression was not used and
723that the data set contained a single non-differenced data value. This bug
724would have added extra bogus samples to the output, but probably only when
725a data packet was partially full. Since I can't think of a reason why a
726datalogger would not fill each data packet fully, I'm guessing that this
727bug was very rarely, if ever, encountered. LDD 1/4/2006
728
729
730reftek2ew:
731Modified to produce TYPE_TRACEBUF2 messages to support location codes.
732Config command "SCNFile" was replaced by the "SCNLFile" command.
733Location code was added to the SCNLFile (which maps between
734DAS#,stream,channel and SCNL,pin) as the 7th of 8 fields on each line.
735Added a new config file command "SendUnknownChan" to control whether
736channels not listed in the SCNLFile are written as TYPE_TRACEBUF2 msgs.
737If SendUnknownChan is non-zero, reftek2ew makes up the SCNL as follows:
738Station is the DAS serial number, component is "Cxx" where xx is the
739channel number from the DAS, network is "Sy" where y is the stream number
740from the DAS, and location code is "--" (the NULL location).
741If SendUnknownChan is zero, data from channels not listed in SCNLFile
742is ignored.  LDD 5/25/2004
743
744compress_UA:
745Modified to produce TYPE_TRACE2_COMP_UA messages when handling
746TYPE_TRACEBUF2 messages as input. Compress_UA can still take TYPE_TRACEBUF
747packets as input and will produce TYPE_TRACE_COMP_UA messages as output.
748Eliminated "GetWavesFrom" command and replaced it with two new commands:
749"GetLogo" to supply the logos to process and "CompressSCNL" to supply
750the list of channels to process.  If handling TYPE_TRACEBUF messages,
751the location code in the CompressSCNL command is ignored, but it still
752must be provided.  LDD 4/16/2004
753
754decompress_UA:
755Modified to work on both TYPE_TRACE2_COMP_UA and TYPE_TRACE_COMP_UA msgs.
756Produces TYPE_TRACEBUF2 messages if input is TYPE_TRACE2_COMP_UA.
757Produces TYPE_TRACEBUF messages is input is TYPE_TRACE_COMP_UA.
758Eliminated "GetWavesFrom" command and replaced it with "GetLogo" command.
759LDD 4/16/2004
760
761decimate:
762Modified to work on either TYPE_TRACEBUF and/or TYPE_TRACEBUF2 messages
763to support the addition of location codes to network processing.
764Output message will be of same type as input message.  Changed the
765GetWavesFrom command to require a third argument specifying the input
766message type (must be either TYPE_TRACEBUF or TYPE_TRACEBUF2). If the
767input message type is TYPE_TRACEBUF, location codes are ignored. Replaced
768the GetSCN command with GetSCNL to support the addition of location codes. 
769If the GetSCN command is used, the input and output location codes are
770set to "--".  LDD 5/11/2004
771
772sniffring:
773Modified so it does not attempt to print the contents of two new binary
774message types: TYPE_TRACEBUF2 and TYPE_TRACE2_COMP_UA.  LDD 4/16/2004
775
776export_actv, export_scn_actv:
777Moved source code from data_exchange/export_actv into data_exchange/export
778to avoid duplication of the supporting export filtering code.  The versions
779of the filters in export_actv had not had bug fixes in quite a while and
780were not location-code compliant.  LDD 4/20/2004
781
782export_scn, export_scn_pri, export_scn_actv:
783Modified the scnfilter code to include location code as well.  Replaced
784Send_scn and Send_scn_remap config commands with Send_scnl and Send_scnl_remap.
785If old commands are used, the location code will be set to * (wildcard).
786Modified to work with all the new location-code friendly Earthworm messages:
787TYPE_TRACEBUF2, TYPE_TRACE2_COMP_UA, TYPE_PICK_SCNL and TYPE_CODA_SCNL.
788Still works with old format messages.  LDD 4/21/2004
789
790export_generic,export_scn
791Added logging under "Verbose" mode concerning the queue status of each
792message to be exported. This will generate VERY LARGE log files, but
793could be useful in debugging.  LDD 3/23/2005
794
795write_cta:
796Program now reads TYPE_TRACEBUF and TYPE_TRACEBUF2 messages from the
797transport ring.  All TYPE_TRACEBUF messages are converted to TYPE_TRACEBUF2,
798before writing to tape.  Tape files now begin with "wu" (instead of "wt"),
799to indicate that they contain TYPE_TRACEBUF2 messages.  WMK 5/11/04
800
801read_cta:
802Program now reads tape files whose names begin with "wt" and "wu".
803"wu" files contain TYPE_TRACEBUF2 messages.  WMK 5/11/04
804
805cta2cusp:
806Cosmetic changes.  Program will process cta files beginning with wt or wu.
807Only old version triglist messages, without location code, will work.
808If there are multiple channels with the same SCN, they will be interleaved
809in the file sent to CUSP.  This is bad.  WMK 5/12/04
810
811tankplayer:
812Added support for TypeTraceBuf2, which was missing from the get_time function
813that is used to determine the time of the packet from the trace header.
814Changed the program's behavior when Tracebuf2 packets are encountered with
815VERSION fields that don't match those compiled into the program.  Previously
816the program always quit at the first sign of a tracebuf with a mismatched version
817number.  Now depending on the value of the IgnoreTBVersionNumbers config command,
818the program attempts to parse and either play or skip the message based on
819the value of the command.  (TRUE = play, FALSE= ignore).
820Added a log message when tankplayer comes across a large delay between packets.
821Modified the sleep code that executes between packets, so that it sleeps
822in small intervals and continues to issue heartbeats even during a large gap.
823Added additional debugging info for dealing with problems encountered in tracebuf files.
824DK 2006/03/09
825
826tankplayer:
827odified to read TYPE_TRACEBUF2 files in addition to the original file
828types (TYPE_TRACEBUF and TYPE_ADBUF).  LDD 5/21/2004
829
830remux_tbuf:
831Added WaveMsg2MakeLocal() call to report and filter out tracebufs
832with headers that don't checksum.
833Replaced fprintf(stdout) commands with logit().
834Added a progress indicator that prints a ".' to the screen each time
835100 tracebufs have been processed.
836DK 2006/03/09
837
838time_ew.c (timegm_ew())
839Fixed bugs in timegm_ew() that appeared on machines not set to UTC timezone.
840DK 07/12/2004
841
842import_generic:
843  Moved the generation of Earthworm TYPE_HEARTBEAT messages out of the
844Heartbeat thread and into the main() thread. EW heartbeats will be generated
845in both the "connect to server" loop and the main working loop. This means
846that import will keep beating its EW heart when its export server becomes
847inaccessible, avoiding unnecessary restarts by statmgr/startstop. The
848former Heartbeat thread was renamed the SocketHeartbeat thread because
849its sole job is to write heartbeats (alive strings) to the socket. Also
850changed names of variables related to the socket heartbeat thread to
851avoid confusion.  LDD 3/15/2005
852  Restructured the "connect to server" loop to be easier to follow and
853reworded the messages logged during connection attempts. LDD 3/17/2005
854
855import_gen_pasv:
856Incorporated Richard Godbee's bug fixes in the accept_ew loop (fixed
857mis-placed end-while bracket, uninitialized variables) and increased
858the length of the RingName and MyModName variables. Reformatted the
859entire file with proper, readable indenting, changed accept_ew timeout
860to HeartBeatInt (had been hard-coded to 9 seconds), added inter-connection
861time interval to logging, generally cleaned up comments. LDD 4/13/2006
862
863Most Modules:
864  Linux Makefiles (makefile.ux) have been added to a number of modules and
865in some cases _LINUX compile directives have been added into the code. The
866list of codes to which this has been done will be provided as a separate
867note. 8/11/2005 Paul Friberg
868
869startstop_nt:
870Added in restart command to Interactive() function. This nice modification
871was provided by Murray McGowan. Tested and added by Paul Friberg 9/7/2005
872
873startstop_unix/startstop_solaris:
874Added in the same restart command as above. It's a nice feature to have. (9/7/2005)
875
876
877CHANGES TO CONFIGURATION FILES and DESCRIPTOR FILES:
878****************************************************
879
880earthworm.d: Added this earthworm type to allow sending a reconfigure
881command through rings.
882Message  TYPE_RECONFIG       112
883
884statmgr.d: Up to 10 pagegroup commands are now allowed (at least one is
885required).  LDD 2006/4/25
886
887*.desc:
888Modified descriptor files to allow optional module-specific settings for
889pagegroup (up to 10) and mail (up to 10) recipients. Any "pagegroup" or
890"mail" commands in a descriptor file override the statmgr config settings.
891This will allow the user to fine-tune on a per-module basis the recipients
892of various Earthworm notifications.  LDD 2006/4/25
893
894shakemapfeed.d: Added new optional command, SMQueryMethod, to control how SM
895data is requested from the DBMS. Default behavior (SMQueryMethod 0) is original
8962-stage query (get all SM data associated with this eventid, then get all
897UNassociated SM data in a space/time box). If SMQueryMethod is non-zero,
898shakemapfeed will request all SM data in a space/time box. This will return
899SM data associated with this event, SM data associated with other events,
900and UNassociated SM data.
901  Regardless of query method, post-query filtering will be performed on eventid,
902external eventid, and external author.  SM data associated with a different
903eventid but with the same author will be rejected.  Data with a different
904author will be allowed - this is most likely data imported from another
905network and its eventids are meaningless in our DBMS.  LDD 02/13/2004
906
907shakemapfeed.d: New command "ScheduleFeed <minutes(float) after receiving event>"
908sets the shakemap feeding schedule. Up to 20 ScheduleFeed commands are
909allowed, setting one time per command.  Auto-feeds will continue at the
910last ScheduleFeed interval until UpdateDuration minutes after the event
911origin time. ScheduleFeed replaces the original DelayFirstFeed and UpdateInterval
912commands. These original commands are still accepted and will set up
913the auto-feed schedule in the original manner in the absence of ScheduleFeed
914commands.  LDD 3/4/2004
915
916naqs2ew.d: Two new commands to support location code addition:
917"OutputMsgType <TYPE_TRACEBUF or TYPE_TRACEBUF2>" to choose output format.
918   If the OutputMsgType command is omitted, naqs2ew will produce
919   TYPE_TRACEBUF2 messages by default.
920"RequestChanSCNL" replaces the "RequestChannel" command. It has all the
921   same arguments with the addition of the <location code> argument.
922   LDD 4/14/2004
923
924binder_ew.d:
925Two new optional commands:
926"pick_fifo_length <npick>" set the length of the pick FIFO (default=1000)
927"quake_fifo_length <nquake>" sets the length of the quake FIFO (default=100).
928If a command is omitted, the corresponding fifo will be set to the previous
929hardcoded length.  LDD 2/9/2005
930
931eqproc.d
932Four new optional commands. If any of these commands is omitted, the
933corresponding parameter will be set to its previous hardcoded value.
934"pick_fifo_length <npick>" set the length of the pick FIFO (default=1000)
935"quake_fifo_length <nquake>" sets the length of the quake FIFO (default=100).
936For proper event reporting, eqproc's pick/quake FIFO lengths must be
937greater than or equal to binder's pick/quake FIFO lengths!
938"HeartbeatInt <hbsec>" sets the interval (seconds) between TYPE_HEARTBEAT
939messages (default=0.3*tReport).
940"rpt_check" <chksec>" sets the interval (seconds) at which the quake FIFO
941will be inspected to see if it's time to send an event to downstream
942modules (default=0.3*tReport).
943The parameter tReport is set with the 'rpt_dwell' command (default=30s).
944LDD 3/11/2005
945
946eqprelim.d
947Added two optional commands. If either of these commands is omitted, the
948corresponding parameter will be set to its previous hardcoded value.
949"pick_fifo_length <npick>" set the length of the pick FIFO (default=1000)
950"quake_fifo_length <nquake>" sets the length of the quake FIFO (default=100).
951For proper event reporting, eqprelim's pick/quake FIFO lengths must be
952greater than or equal to binder's pick/quake FIFO lengths!
953LDD 3/11/2005
954
955compress_UA.d:
956Eliminated "GetWavesFrom" command and replaced it with two new commands:
957"GetLogo <Inst_id> <Mod_id> <msg_type>"
958 Inst_id and/or Mod_id fields can be wildcards, but msg_type field must
959 be either TYPE_TRACEBUF or TYPE_TRACEBUF2. Multiple GetLogo commands may
960 be supplied (no limit on number).
961"CompressSCNL <sta> <comp> <net> <loc>"
962 The wildcard character '*' (without quotes) can be used in any of
963 the fields.  Use as many CompressSCNL commands as needed to define the
964 list of channels to be processed.  If input is TYPE_TRACEBUF, the <loc>
965 field will be ignored, but it must still be provided.
966 LDD 4/16/2004
967
968decompress_UA.d:
969Eliminated "GetWavesFrom" command and replaced it with new command:
970"GetLogo <Inst_id> <Mod_id> <msg_type>"
971 Inst_id and/or Mod_id fields can be wildcards, but msg_type field must
972 be either TYPE_TRACE_COMP_UA or TYPE_TRACE2_COMP_UA. Multiple GetLogo
973 commands may be supplied (no limit on number).
974LDD 4/16/2004
975
976decimate.d:
977GetWavesFrom: added a third requires argument specifying the input
978message type.  Only valid messages types are TYPE_TRACEBUF and TYPE_TRACEBUF2.
979Replaced the GetSCN command with GetSCNL to support the addition of location
980codes.  GetSCNL requires 8 arguments, input SCNL and output SCNL. No wildcards
981are permitted.  LDD 5/11/2004
982
983export_scn*.d:
984Added two new commands, Send_scnl and Send_scnl_remap, to implement location
985code filtering.  If old commands (Send_scn and Send_scn_remap) are used,
986the location code is set to * (wildcard). LDD 4/21/2004
987
988wave_serverV:
989Modified behavior so that wave_server does not Abort On A Single Tank Failure,
990unless the AbortOnSingleTankFailure flag is set in config file. 
991(This was the documented behavior).
992
993wave_serverV:
994Wave server now limits tank sizes to 1GB.  This applies only to NEW tanks, not
995existing tankfiles.
996The default behavior is for wave server to EXIT if it comes across a tank in the
997config file that is >= 1GB.
998If the "TruncateTanksTo1GBAndContinue" command is set in the config file, then
999wave server will trunctate any >= 1GB tank files to just under 1GB, and continue
1000normal operation.
1001This was done to prevent users from creating unsafe large tanks, after a bug was
1002discovered that limits the safe wave server tank size to ~1GB.
1003DK 2005/03/17
1004
1005Added code to check the return value from call to WaveMsg2MakeLocal(),
1006and reject packets for which WaveMsg2MakeLocal() reported and error.
1007Updated the wave_serverV version and timestamp.  This will cause
1008wave_serverV to filter out packets with header issues that weren't previously
1009filtered out before.
1010Fixed a bug where wave_serverV would filter out packets that contained only
1011one sample.
1012DK 2006/03/27
1013
1014wave_serverV / wave_viewer / ws_clientII.c:
1015Modified wave_server protocol slightly to better differentiate between SCN vs. SCNL
1016clients and servers.  New wave_server clients should be backwards compatible with
1017previous SCNL wave_servers, but the new wave_serverV is not backwards compatible
1018with any clients.
1019The new wave_viewer works with ALL wave_servers (SCN, old SCNL, new SCNL), and
1020the new ws_clientII library works with ALL SCNL wave_servers.
1021DK 2005/04/22
1022
1023
1024wave_serverV / wave_viewer / ws_clientII.c:
1025Fixed bug in wave_server (server_thread.c ParseMsg()) that was incorrectly reading
1026the Ascii FILL value from the "endtime" field instead of the "fill" field.
1027This fix only affects ascii wave_server clients on gappy channels.
1028Fixed more bugs in the ASCII protocol logic between ws_clientII and wave_serverV.
1029DK 2005/09/07
1030
1031ringtocoax:
1032Changed tport_getmsg to tport_copyfrom so that it can distinguish missed messages
1033(overlapped in ring) from sequence gaps in the ring. This can be useful for
1034fine-tuning the BurstCount and BurstInterval configuration settings.
1035LDD 2005/4/8
1036
1037localmag:
1038Does not compile under latest release of earthworm (needs to be SCNL'ized). It
1039will compile with earlier versions however and 3 new options have been
1040added in: useMedian, minStationsMl, require2Horizontals
1041which are all explained in the localmag/Doc/localmag_cmd.html file.
1042The program now has a version number to distinguish different released versions.
1043Upgraded as per requests from Univ of Utah and HVO on 8/10/2005 by Paul Friberg (PAF)
1044I upgraded localmag to use SCNL now and tested it at Utah 3/01/2006 PAF
1045
1046
1047
1048KNOWN BUGS:
1049***********
1050
1051liss2ew:
1052liss2ew has been observed intermittantly producing malformed
1053TRACE_BUF messages.  Currently the conditions for causing this problem
1054are unknown.  Due to this, liss2ew should be treated as suspect.  Use at
1055your own risk.  JMP 6-18-2003
1056
1057k2ew:
1058k2ew uses the k2hdr.rwParms.misc.channel_bitmap parameter to decide
1059which channels it will see as streams from the K2.  This is actually the
1060parameter which the K2 uses to decide which channels to record in an event
1061file (see K2's <bitmap> command).  The K2's <sdstreams bitmap> is the parameter
1062that shows which channels the K2 is streaming out.  This is the parameter
1063that k2ew should be using to decide what data it will see.  The big problem
1064is that none of the header files from Kinemetrics (nkwhdrs.h) seem to
1065show this parameter anywhere. This issue is only a problem for those folks
1066who want to record more channels on the K2 than they want to stream continuously.
1067Terry Dye (Univ of Utah) discovered this problem when trying to stream only
10683 channels of a 12 channel K2.  LDD 4/11/2002    FIXED PNL, 6/9/03
1069
1070
1071wave_serverV:
1072it occasionally sends the following error to statmgr:
1073   UTC_Thu Sep 06 03:30:14 2001  WSV1/wave_serverV_nano ReadBlockData
1074   failed for tank [z:\nano57.tnk], with offset[999908] and record
1075   size[64]! errno[0] Mail sent.
1076The nominal tank size is 1 megabyte, and the actual tank size is 999908.
1077It looks like waveserver is trying to read off the end of the tank.
1078WMK 9/6/01
1079
1080wave_serverV:
1081appears not to reply to requests for a single sample of data. I noticed
1082when testing wave_viewer, that if the start time and end time of a request were
1083equal (in which case there should be one sample of data) then wave_serverV did
1084not reply to the request (ASCII request) at all. No Data, No Flags, No Reply,
1085No Nothing.  It needs to issue a reply to every request.
1086DavidK 09/25/01
1087
1088wave_serverV:
1089Wave server appears to be limited (on 32-bit systems) to 1GB tank sizes.
1090A bug (a signed integer overflow of tmpoE at Line 1155 of
1091       serve_trace.c  (LocateRoughOffset()))
1092prevents data retrieval from the tank under certain conditions when the
1093tank size exceeds 1 GB.
1094DavidK & PNL 09/27/04
1095
1096Automatic restarts of adsend (using the "restartMe" line in the descriptor
1097file) can cause an NT system to hang. Therefore, you should never
1098use the autorestart feature with adsend, but you should bring down
1099the entire Earthworm system if adsend needs to be restarted.
1100LDD 5/31/2000 Comments added to adsend.desc, but leave this warning here!
1101
1102libsrc/utils/site.c: The strings used for station, channel and network are
1103required to be fixed length with trailing spaces added to short names. If
1104the strings given to site_index do not have these trailing blanks, SCN names
1105will not match. This is not documented anywhere.  PNL 10/15/00
1106
1107socket_ew: (libsrc/util/socket_ew_common.c libsrc/solaris/socket_ew.c
1108            libsrc/winnt/socket_ew.c include/socket_ew.h)
1109Fixed a bug in the connect_ew function().
1110When run in non-blocking mode (clients connecting to
1111a server - using a timeout value), there was a bug in
1112the connection code(discovered on Solaris) that caused
1113the function to return a timeout-error when there was
1114any kind of error during connection.
1115The bug was discovered when connecting to a non-existent socket.
1116When trying to connect to a non-existent wave_server on a machine,
1117the underlying socket library was returning a Connection-Refused error,
1118but the socket_ew library was passing back a timeout error.
1119-
1120The change only applies when a socket-error occurs while the function is
1121waiting for the connect to happen.  The instance where you will most-likely
1122see a difference, is when you try connecting to a non-existent socket.
1123Previously the function would return TIMEOUT, now it will return
1124connection REFUSED.
1125-
1126Added a new function: socketSetError_ew(),
1127and defined a new socket_ew return code: CONNREFUSED_EW.
1128DK 2003/02/04
1129
1130sm_ew2ora:
1131There is a bug in sm_ew2ora that involves having multipe time intervals for
1132components and channels.  If a strong motion message containing information
1133for a channel that the DB has never seen before is loaded into the DB, and
1134then later another message for the same channel with an earlier timestamp
1135is loaded, the load of the second message will fail, due to problems with
1136overlapping time intervals, and the call that sm_ew2ora uses to create
1137those time intervals.  This problem only affects stations that were
1138not previously loaded via one of the station loader programs stalist*2ora,
1139and only when receiving SM data that is timestamped with a time that is
1140prior to the original time for that channel.  The bug lies in the logic
1141of ewdb_api_PutSMMessage(), and not in the underlying code.
1142Davidk 05/25/01
1143
1144A change was made to ewdb_api_PutSMMessage() that dramatically affects
1145sm_ew2ora.  Please see the note about that function.  Davidk 2001/07/26
1146
1147ewdb_api_CreateWaveform()  (ewdb_internal_CreateSnippet.c
1148                            ewdb_internal_CreateWaveformDesc.c)
1149Added a call to release the cursors used by the internal functions, when they
1150fail.  Fixes a bug which resulted in a DB cursor leak when a call to stuff
1151a snippet into the DB failed.
1152DK 2003/02/04
1153
1154logit.c:
11551) Added a new function logit_core()
1156int logit_core( char *flag, char *format, va_list ap);
1157This function is the same as logit(), except that it takes a va_list argument
1158for the variable length parameter instead of '...', and it has an int
1159return value.
1160This function can be called by other functions that receive a '...' variable
1161argument list, where as logit() cannot.  logit_core() is to logit()
1162what vsprintf() is to sprintf().
1163-
11642) Moved all of the functionality in logit() to logit_core(), and modify
1165logit to call logit_core().
1166-
11673)  Added a new function get_prog_name2(), as an intended replacement
1168of get_prog_name().  get_prog_name2() includes an additional
1169parameter (the buffer length of the output buffer).
1170-
11714)  Modified logit_init() to use get_prog_name2() instead of get_prog_name()
1172-
1173All four(4) of these changes should be backwards compatible with all existing
1174earthworm code, and the modified logit.c has already been tested with several
1175earthworm modules.
1176-
1177
1178
1179ewdb_api:
1180Added new function ewdb_api_GetEventSummaryInfo() to retrieve summary
1181information for an event(including the preferred szSource and szSourceEventID
1182of the event).   011904 DK
1183
1184
1185
1186KNOWS DEFICIENCIES:
1187*******************
1188
1189ringtocoax:
1190In Windows NT, the time resolution of sleep_ew() is about 16 msec (one clock
1191tick).  On Solaris, the resolution is about 10 msec.  This is a problem for
1192ringtocoax, since packet delays need to be set to a few milliseconds.
1193
1194statmgr: A space is needed between "tsec:" and the value.
1195If it isn't there, things fail. Artifcat of the kom routines. (Alex)
1196
1197threads functions: The KillThread function on WindowsNT and Solaris
1198terminate the thread without ensuring that no mutexes are held. If a thread
1199holds a mutex when it dies, no other thread can get that mutex. PNL 1/12/2000
1200
1201carlsubtrig:
1202The system time must be set to GMT and ew_nt.cmd must have
1203TZ=GMT for carlsubtrig to work.  Comments in ew_nt.cmd done 5/25/00. Barbara
1204       
1205localmag:
1206needs GMT set on the system
1207
1208ew2seisvole:
1209on NT, exits with horrible crash when system is stopped.
1210
1211NUMBER OF RINGS LIMITED ON SOLARIS:
1212Under Solaris 2.6 (and probably other versions as well), the maximum number
1213of shared memory segments is six. This means that on an out-of-the-box machine
1214you can only configure six rings. If you try to configure more than that, you
1215will see a cryptic message from tport_create about too many open files.  The
1216fix to this problem is to add the following lines to the /etc/system
1217file, and then reboot the system.
1218
1219 set shmsys:shminfo_shmmax = 4294967295
1220 set shmsys:shminfo_shmmin = 1
1221 set shmsys:shminfo_shmmni = 100
1222 set shmsys:shminfo_shmseg = 20
1223 set semsys:seminfo_semmns = 200
1224 set semsys:seminfo_semmni = 70
1225
1226This allows for 20 rings.
1227
1228     Lucky Vidmar (7/6/2000)
1229
1230startstop_solaris:
1231Fixed bug in call to logit_init().
1232The program was printing error messages:
1233  Invalid arguments passed in.
1234  Call to get_prog_name failed.
1235  WARNING: Call logit_init before logit.
1236
1237startstop_solaris:
1238There MAY be a problem with the signal that
1239startstop sends to modules during the shutdown sequence. The shutdown
1240sequence is started (after typing "quit" to startstop or running "pau")
1241by startstop placing a terminate message on all transport rings. Modules
1242should see this message and start their own shutdown. After a configurable
1243delay, startstop checks to see that all modules have exitted. Any that are
1244still running are sent a signal to terminate them. Currently that signal
1245is SIG_TERM. But since wave_serverV has a handler for SIG_TERM, wave_serverV
1246sees that as essentially the same as a terminate message. So if wave_serverV
1247is having problems completing its shutdown, SIG_TERM won't do anything. The
1248result is that startstop may give up and exit, leaving wave_serverV running.
1249If that happens, the operator will have to terminate wave_serverV by doing
1250"kill -9 <wave_serverV-pid>". That may leave shared memory and semaphores
1251stranded in the kernel: run the command "ipcs -a" to see. If necessary,
1252the stranded shared memory and semaphores may be cleaned up with the
1253ipcrc command; must be run as root; see the man page.
1254This problem only exists on Solaris/Unix, not on WindowsNT.
1255PNL, 10/4/2000
1256
1257libsrc/utils/kom.c:  fix comment in k_open()
1258
1259The comment above k_open() says that only one file can
1260be open at a time. Yet the Kbuf array has slots for MAXBUF (currently 4) open
1261files. Does this work, or is the comment to be taken at it's word?
1262PNL 10/15/00
1263
1264libsrc/utils/logit.c: logit_init() requires a module_id number, which it uses
1265to construct the log file name. This is not helpful, since the module_id
1266number is not meaningful to people. Worse, it requires that the config file be
1267read and earthworm.d lookups be completed before logit calls can be made. Thus
1268errors in the config file can only be reported to stderr or stdout instead of
1269being saved in a file.  PNL 11/29/00
1270
1271libsrc/util/k2evt2ew.c: This library supports a maximum EVT data size
1272of 800000 samples per channel per EVT file.  This value is hardcoded
1273as MAXTRACELTH in include/k2evt2ew.h.  k2evt2ew() will return a warning
1274if the EVT file exceeds this size, and process as much as the EVT file
1275as the hardcoded limit allows.
1276DK 2003/01/18
1277
1278import_ida:  Modified to build under WIN32(#ifdef'd a couple of includes
1279and modified the NT makefiles.)  (saved under tag HYDRA_V1-20)
1280Modified for SCNL and Tracebuf2.
1281DK 2005/04/22
1282
1283
1284TRACEBUF messages.
1285The definition of `endtime' of the TRACEBUF message is not documented.
1286Some programmers are taking it as the "expected start time of the next
1287TRACEBUF packet (if the sample interval is uniform.)" The more accepted
1288practice is that `endtime' is the time of the last sample of the current
1289TRACEBUF packet; that is, one sample interval less than the expected
1290start time of the next TRACEBUF messsage. Using this last definition, if a
1291TRACEBUF packet has exactly one sample, then its starttime and endtime are
1292the identical. Clearly this distinction needs to be documented. The file
1293waveform_format (in the /home/earthworm/DOC directory) gives no specifics
1294about start or end times.  PNL 1/24/01
1295
1296
1297
Note: See TracBrowser for help on using the repository browser.