Release Notes:  Earthworm Version "working"
Cleaned out after release of v7.2 on 12/28/2007

These notes are for release v7.3  FINALIZED on 12/23/2008

NEW MODULES:
***********
SaraAdSend - new module to import data from a SARA digitizer
over a serial port. Written by Larry Cochrane (webtronics).
Imported into EW by Paul Friberg 2008-02-11

RockToEW - Provides a data relay from a Kinemetrics-Rockhound-compatible 
instrument into Earthworm via an export of Tracebuf2 messages
Written by Eric Thomas of ISTI 2008-11-06

MODIFICATIONS/BUG FIXES TO EXISTING MODULES:
********************************************
raypicker - upgrade from Carol Bryan, latest version from NEIC
Paul Friberg 2008-12-02

srparxchewsend - with direction from Symmetric, downloaded latest code 
from 
http://www.symres.com/support/download.htm
installed and and tested compiles on Windows and Linux. 
Stefan Lisowski 2008-12-02

localmag - Claudio Satriano noticed a bug in the SAC input file
reading that was causing seg faults. This is now fixed in the
latest version.
Paul Friberg 2008-12-01

tankplayer - added a GetFromDir option to the module so that one could
load tanks dynamically. This is a way for groups who have strange format
data to convert them into tanks and run them in near real time. This 
code borrows heavily from the file2ew implementation. It has been tested
in both old style (listing WaveFile entries) and with GetFromDir mode.
The Documentation will be updated to reflect the new mode in v7.3 of ew.
Paul Friberg 2008-09-09

sniffring - fixed a weird case where a module id was foreign to a
local installation (imported) and thus not lookupable in the earthworm.d
module list. Verbose mode would core dump in this case.
Paul Friberg 2008-07-31

naqs2ew - updated the list of Nanometrics Instrument types to include
all current Nmx hardware.  Lynn Dietz 2008-07-21

scream2ew - Modified to issue a single Earthworm heartbeat at the end 
of ewc_init(), which is called just before a connection to the 
SCREAM server is attempted. Previously, the first Earthworm heartbeat
was issued only after the SCREAM connection was complete. If the
SCREAM connection failed, scream2ew exited with no heartbeat, making
it impossible for statmgr to issue an auto-restart request because 
it didn't know scream2ew's PID. Now if the SCREAM connection fails,
auto-restarts via statmgr/startstop will be possible. 
Lynn Dietz 2008-06-26

startstop - for UNIX, if you had a bug in your startstop_sol.d or
startstop_unix.d configuration files, then the program would stop and
issue a bogus message about logit_init() not set. However, if you
put the .d file on the command line, it would intelligently process
the .d file and warn you where the problem was. I fixed this by
modifying the startstop_unix_generic.c library call.
Paul Friberg 2008-05-19

k2ew_tcp - Lynn Dietz discovered and fixed a compilation issue for special
cases of k2s that have modems and serial streaming (used at CGS).

trig2disk - fixed starttime of additional SCNL includes. It was incorrectly
providing the max start time of the TRIGGER message. It now correctly uses
the minimum start time of the SCNLs in the TRIGGER message for any 
additional SCNLs. Bug spotted by Franco Mele of INGV, fixed by Paul
Friberg 2008-04-28

ms2tank - improved code so that it can handle mulitplexed mseed packets.
Paul Friberg 2008-04-22

binder_ew - added optional command "BufferRingKB" to control the size of
binder's private buffer ring. The default is 256 KB (262144 bytes) is
slightly larger than the previous hard-coded size (250000 bytes).
Lynn Dietz 2008-04-22

src/libsrc/util/libmseed - upgraded to 2.1.4 version of libmseed library
from Chad Trabant of IRIS DMC.
Paul Friberg 2008-04-04

pick_ew - added a PickIndexDir optional setting to allow the pick_ew_MMM.ndx
files to be written somewhere other than the params directory. The params
directory is getting cluttered up enough and its nice to have the option
to write these indexes elsewhere.
Paul Friberg 2008-03-28

slink2ew - 2.0ewd - upgrade from Chad Trabant that inclues Matteo's
fix and some new features for wildcarding (Paul Friberg 2008-03-14)
slink2ew - 1.4.1 - fixed a crashing problem that involved bad
mseed packets not being detected. They are now skipped.
Matteo Quintilani 2008-03-05

waveman2disk - upgraded the logit_init() call to be able to handle
the largest possible trigger message size MAX_TRIG_BYTES. Before
it was set to just 1024 and this would throw out a bogus error
message that the logit buffer was too small. Reported by
Jean-Michel Douchain.
Paul Friberg 2008-02-25

carlstatrig - would report that it was not using STAtime in an error
message when it actually was! This was fixed by David Wilson of HVO
and is a minor change to the readcnfg.c module.
Paul Friberg 2008-02-21

fir - fixed a byte-order issue that appeared when the WaveMsg2MakeLocal()
was called before some header values were checked. This resulted in
a failure that indicated zero length traces.
Mitch Withers 2008-02-13

reftek2ew - add makefile.ux
Richard Godbee 2008-02-11

sniffwave - added in a new simple command line option to replicate:
	sniffwave RING wild wild wild wild n
by simply typing:
	sniffwave RING
This will hopefully save folks just wishing to look at the tracebufs
in a ring sometime.
Paul Friberg 2008-01-19

putpick - didn't have a makefile.ux, now it does
Paul Friberg 2008-01-16

localmag - fixed a bug with the LM option of outputFormat. I am
shocked this was never discovered before...basically an if should
have been an "else if".
Paul Friberg 2008-01-08

CHANGES TO CONFIGURATION FILES and DESCRIPTOR FILES:
****************************************************

KNOWN BUGS:
***********

liss2ew:
liss2ew has been observed intermittantly producing malformed
TRACE_BUF messages.  Currently the conditions for causing this problem
are unknown.  Due to this, liss2ew should be treated as suspect.  Use at
your own risk.  JMP 6-18-2003

wave_serverV:
appears not to reply to requests for a single sample of data. I noticed
when testing wave_viewer, that if the start time and end time of a request were
equal (in which case there should be one sample of data) then wave_serverV did
not reply to the request (ASCII request) at all. No Data, No Flags, No Reply,
No Nothing.  It needs to issue a reply to every request.
DavidK 09/25/01

Automatic restarts of adsend (using the "restartMe" line in the descriptor
file) can cause an NT system to hang. Therefore, you should never
use the autorestart feature with adsend, but you should bring down
the entire Earthworm system if adsend needs to be restarted.
LDD 5/31/2000 Comments added to adsend.desc, but leave this warning here!

libsrc/utils/site.c: The strings used for station, channel and network are
required to be fixed length with trailing spaces added to short names. If
the strings given to site_index do not have these trailing blanks, SCN names
will not match. This is not documented anywhere.  PNL 10/15/00


KNOWN DEFICIENCIES:
*******************
ringtocoax:
In Windows NT, the time resolution of sleep_ew() is about 16 msec (one clock
tick).  On Solaris, the resolution is about 10 msec.  This is a problem for
ringtocoax, since packet delays need to be set to a few milliseconds.

threads functions: The KillThread function on WindowsNT and Solaris
terminate the thread without ensuring that no mutexes are held. If a thread
holds a mutex when it dies, no other thread can get that mutex. PNL 1/12/2000

carlsubtrig:
The system time must be set to GMT and ew_nt.cmd must have
TZ=GMT for carlsubtrig to work.  Comments in ew_nt.cmd done 5/25/00. Barbara
	
localmag:
needs GMT set on the system

ew2seisvole:
on NT, exits with horrible crash when system is stopped.

NUMBER OF RINGS LIMITED ON SOLARIS:
Under Solaris 2.6 (and probably other versions as well), the maximum number
of shared memory segments is six. This means that on an out-of-the-box machine
you can only configure six rings. If you try to configure more than that, you
will see a cryptic message from tport_create about too many open files.  The
fix to this problem is to add the following lines to the /etc/system
file, and then reboot the system.

 set shmsys:shminfo_shmmax = 4294967295
 set shmsys:shminfo_shmmin = 1
 set shmsys:shminfo_shmmni = 100
 set shmsys:shminfo_shmseg = 20
 set semsys:seminfo_semmns = 200
 set semsys:seminfo_semmni = 70

This allows for 20 rings.

     Lucky Vidmar (7/6/2000)


TRACEBUF messages.
The definition of `endtime' of the TRACEBUF message is not documented.
Some programmers are taking it as the "expected start time of the next
TRACEBUF packet (if the sample interval is uniform.)" The more accepted
practice is that `endtime' is the time of the last sample of the current
TRACEBUF packet; that is, one sample interval less than the expected
start time of the next TRACEBUF messsage. Using this last definition, if a
TRACEBUF packet has exactly one sample, then its starttime and endtime are
the identical. Clearly this distinction needs to be documented. The file
waveform_format (in the /home/earthworm/DOC directory) gives no specifics
about start or end times.  PNL 1/24/01

