Changes between Initial Version and Version 1 of v5.2

01/17/12 12:55:24 (10 years ago)



  • v5.2

    v1 v1  
     9new diagnostic tool. This command-line program allows the user to 
     10put the contents of a file into a specified Earthworm ring as a specified 
     11Earthworm logo (installation, moduleid, message type). LDD 2/9/2001 
     14ground-motion analyzer. Computes PGA, PGV, PGD and spectral response 
     15for selected channels such as broadband and strongmotion instruments.  
     16Writes TYPE_STRONGMOTIONII messages, and optionally writes a ShakeMap XML  
     17file. PNL, 3/30/01 
     20This is a command line program to remotely reboot an MSS100. 
     21Reboot_mss is spawned by program reboot_mss_ew.  There is no configuration 
     22file.  The command-line syntax is: 
     23reboot_mss   [-q] 
     24The reboot_mss program logs into the telnet port (port 23) of the  
     25MSS100.  Then, it issues a reboot command to the MSS100 and exits.  
     26If "-q" is specified, the program runs in "quiet mode", and it  
     27doesn't write anything to stdout.   WMK 4/23/01 
     30This is an Earthworm module that monitors tracebuf 
     31messages from any number of K2's.  If data stops being received from  
     32a K2 for a specified amount of time (eg 10 minutes), reboot_mss_ew  
     33assumes that the MSS100 is hung up, and it attempts to reboot the  
     34appropriate MSS100 by spawning reboot_mss as a child process.  
     35Rebooting seems to unhang MSS100s when they hang up.  If the ethernet  
     36link is down, reboot_mss_ew will periodically attempt to reboot the 
     37MSS100.   WMK 4/23/01 
     39heli_ewII:  Performs the same functions as heli_ew and heli_standalone in one program. 
     40        1. Runs on NT and Solaris. 
     41        2. Runs as a module: Specifying earthworm parameters in its 
     42           configuration file will cause it to become a module. It will attach to 
     43           the specified ring, produce heartbeats, and use earthworm logging. It can 
     44           be restarted if it asserts 'restartMe' in its .desc file. 
     45        3. Runs as a standalone program: If no Earthworm paramters are given in the 
     46           .d file, it will run standalone. Errors will be written to stderr. 
     47        4. Does not try to move files to another machine. This was removed in the name 
     48           of security and modularity. Moving the image files to a separate server machine 
     49           is a reasonable option, but should be done by another facility. Shared disks via 
     50           operating system features or SendFile are two options. 
     58Added new function rename_ew() that allows one to rename files.  If a file  
     59already exists with the same name as the desired target, the old file is  
     60overwritten.  LDD 9/28/2000 
     62Added new function RecursiveCreateDir() that will create a directory along  
     63withall of the parent directories that are required.  Written by Carol  
     64Bryan. 04/05/2001 
     67A bug fix to libsrc/solaris/sendmail.c: it was doing a free() on a  
     68declared array. This seemingly fixed a problem with statmgr. Problem was  
     69that statmgr on Solaris would exit if the mail address didn't have enough  
     70periods in it. (!) Alex 3/16/1 
     73Replaced queue_max_size.o with mem_circ_queue.o in the following  
     75  data_exchange/vdl/SCRIPTS/makefile.sol_ew 
     76  display/sgram/makefile.sol 
     77  seismic_processing/eqbuf/makefile.sol 
     78  seismic_processing/eqbuf/makefile.nt 
     79DavidK 2001/04/12 
     82Program now ignores the InBufl parameter.  The trace buffer length is set  
     83to MAX_TRACEBUF_SIZ from the file trace_buf.h.  gaplist also ignores the  
     84MaxScn parameter.  Any number of Scn lines are permitted.  The gap bins  
     85are also changed. WMK 4/19/01 
     88Fixed a bug in serve_trace.c: if a tank file was closed by the 
     89main thread while a server thread was accessing it, the next I/O error  
     90that the server thread saw would send it to the "abort" section of  
     91_writeTraceDataAscii or _writeTraceDataRaw. Here a call to fseek() would 
     92fail and lead to an endless loop of failed fseek calls. The fseek calls 
     93weren't necessary, so I removed them. PNL 10/4/2000 
     95Added error responses to wave_serverV routines that reply to client 
     96requests.  Wave_serverV now issues an error response to the client when 
     97an error occurs while handling the client's request.  There are two 
     98types of error replies, general ones that start with "ERROR ", and 
     99specific replies where the error is described by one of three new 
     100flags: FN, FB, or FC.  See comments at top of  wave_serverV.c for  
     101more info. DK 01/08/2001 
     103Added code to issue status messages when hard errors occur on tanks 
     104(previously a log message was issued on reads, and the program exited 
     105on errors from write.) Davidk 01/19/2001 
     107Added ability to continue to operate after failure of a single tank 
     108(previously wave_serverV executed on a tank write error.)  Continuance 
     109is controlled by a new config file param: #AbortOnSingleTankFailure. 
     110See README.changes in wave_serverV source directory for more info. 
     111Davidk 01/19/2001 
     114Modified to handle new wave_serverV error response  
     116flags. The only noticable change to the end user should be when  
     118the user chooses to view a group of traces (Group tab from Menu  
     119Bar), and one or more of the channels in the group is unavailable.   
     120In previous releases, wave_viewer would just hang, now wave_viewer  
     121will recognize the channel as being unavailable from the  
     122wave_server but will continue to retrieve data for other  
     123channels from the server.  New version is 1.23 DK 01/08/2001 
     126The program now calculates how long it's been since the GPS 
     128receiver locked to the satellites.  If greater than GPSLockAlarm 
     130hours, k2ew logs a warning and sends a message to statmgr. 
     131If the GPS synchs up later, k2ew will send another message to 
     132statmgr. WMK 11/7/00 
     134When the DontQuit parameter is set, the program now doesn't quit 
     135if it can't connect to the MSS100.  Instead, it retries the connection 
     136forever.  I also made cosmetic changes to the k2ew log file format. 
     137WMK 11/29/00 
     140The program accepts a new, optional configuration parameter, 
     142ReportDeadChan.  If a channel is dead for more than ReportDeadChan 
     144minutes, gaplist will send a message to statmgr.  In the gap table, 
     145if there is one star in the "Dead" column, it means the channel has 
     146been dead less than ReportDeadChan minutes.  If there are two stars 
     147in the "Dead" column, it means that the channel has been dead for more 
     148than ReportDeadChan minutes, and that an error message has been sent 
     149to statmgr.  WMK 11/20/00 
     152Removed several unnecessary objects and system libraries 
     154from the link line of both makefiles. Since eqfilter doesn't talk to 
     156wave_servers, there is no need to link in the ws_clientII routines 
     157or the earthworm or system socket stuff. PNL 11/30/00 
     158          Fixed bug that caused eqfilter to ignoring event messages  
     159if tport_getmsg returned GET_MISS or GET_NOTRACK.  LDD 4/26/2001 
     162timegm_ew did not work correctly unless the system 
     163timezone was set to GMT; this is becuase _tzset() was not called before 
     164the call to mktime(). It turns out that the changes that timegm_ew was 
     165making to the TZ environment variable were completely unnecessary. The 
     166result is that timegm_ew is now much simpler. PNL 11/30/00 
     169changed ProcessTraceMsg() in protrace.c to log an error and 
     171return 0 immediately if WaveMsgMakeLocal fails.  Previously, it returned 
     173an error code which would cause carlstatrig to exit. Now carlstatrig will 
     174just skip the offending tracebuf msg and continue.  LDD 01/17/2001 
     176Fixed bugs in CopyToNew() and UpdateStation(). These bugs would 
     178occasionally cause NaN values to be inserted into a station LTA on  
     179startup,preventing that station from generating any triggers. PNL  
     183Added printing of ascii messages.  LDD 01/22/2001 
     185Added fflush(stdout) so that a file actually gets written when one 
     187redirects stdout with >fileame.  LDD 02/13/2001 
     193Fixed a roundoff bug in datestr23 and datestr23_local. 
     195These functions convert time as a double to a character string rounded to  
     197the nearest hundredth of a second. The bug caused times with fractional  
     199seconds >= 0.995 to be printed incorrectly (example: 30.99843 was being 
     200was being converted to 30.100 instead of 31.00). LDD 1/23/2001 
     202makefile.sol for many modules: 
     203Removed compilation flags -D_SPARC and -D_SOLARIS from CFLAGS= lines.   
     204These flags should be set in a user's earthworm environment setup file, 
     205ew_sol_sparc.cmd or ew_sol_intel.cmd.  The existence of these flags in the 
     206makefile was causing trouble for anyone who wanted to compile for an 
     207Intel Solaris platform. In carlstatrig, these flags caused 4-byte integer 
     208trace data to be misinterpreted as float data, resulting in NaN for most 
     209triggering variables. Makefile.sol was changed for the following modules: 
     210 carlstatrig  
     211 eqfilter 
     212 import_generic  
     213 q2ew 
     214 sac2hypo 
     215 sm_file2ring  
     216 sm_reftek2ew 
     217 template  
     218 trig2disk  
     219 waveman2disk 
     220LDD 1/31/2001 
     223removed a bunch of code that made a failed attempt 
     225to multiplex TRACEBUF messages. Now tankputaway.c writes all packets to 
     227disk in the order they are received. Use "remux_tbuf", a contributed 
     228program from Menlo PArk, to multiplex the output of tankputaway.c to 
     229make a file that can be read by tankplayer. PNL, 3/27/01 
     232added functionality to convert Nanometrics compressed data packets 
     234into Earthworm tracebuf messages (previously only worked with 
     235Nanometrics uncompressed data packets). Earthworm messages created from 
     236compressed NMX packets will be of varying length, with the maximum number 
     237of samples per packet configurable. Earthworm messages created from 
     238NMX uncompressed packets are generally 1 second long. LDD 4/3/2001 
     241fixed bug that made it crash on terminate: the trig file was  
     243being closed unconditionally, but it wasn't always opened. PNL 4/7/01 
     247libsrc/winnt/makefile.nt and libsrc/util/makefile.nt:  
     248revised to make them work like real makefiles. Dpendencies are now checked  
     249so that compilation proceeds only if it is really needed.  PNL 4/11/01 
     254renamed site.c and site.h to lm_site.c/lm_site.h, to avoid  
     256confusion with similar files in libsrc/utils.  PNL 4/11/01 
     262deleted two obsolete variables formerly used only by sudsputaway  
     264from the PA_next_ev argument list; replaced them with a new variable used  
     265to carry subnet names to sudsputaway CJB 3/21/01 
     268Added option to use subnet names in the filename; also, limit  
     270eventid to 3 characters. CJB 3/21/01 
     274trig2disk and waveman2disk:  
     275major overhaul to fix bugs, improve efficiency. 
     277Moved the xdr* and related files (used only by NT for ahputaway) to 
     278libsrc/winnt/rpc. Reorganized the putaway include files so that 
     279format specific header information is in sachead.h, while putaway-specific 
     280items are in *putaway.h All the function prototypes used to access the 
     281format-specific putaway routines is in pa_subs.h. Created putaway.h, that 
     282lists the function prototypes for the main putaway routines. Reformated 
     283the code so most of it isn't tabbed acorss the page; revised many  
     285See src/archiving/waveman2disk/Changes for more details. See also the 
     286changes to each of the config files, listed below. PNL 4/12/01 
     289Added the 200, COP, and CAR commands to the hyp2000 startup 
     291section.  This forces hyp2000 to use the formats produced and expected 
     293by other Earthworm modules. It eliminates the need for these commands 
     294to be listed in the user's standard hypoinverse startup file. 
     295LDD 4/18/01  
     298The program now uses the MSS100 remote console port (7000), 
     300instead of the telnet port (23).  Univ of Washington can't use port 23 
     301at K2 sites behind firewalls.  WMK 4/26/01 
     303Added the -l option, which logs out the MSS100 serial port 
     304rather than rebooting the MSS100.  Logging out the serial port is faster 
     305than rebooting.  WMK 4/26/01 
     307reboot_mss_ew: Added new configuration file parameter (Logout).  If Logout 
     308is set to 1, reboot_mss_ew will log out the MSS100 serial port rather than 
     309rebooting the MSS100.  Logging out the serial port is faster than rebooting. 
     310WMK 4/26/01 
     312CARLSUBTRIG: Changes made to support new features: 
     315new definition: MAX_SUBNET_LEN - defines the length of the name of  
     316subnets optionally read in carlsubtrig. The value of MAX_SUBNET_LEN is  
     317currently set to 10 (i.e., a subnet name of 9 characters terminated  
     318with a null character). 
     321The Snippet structure has been expanded to include a  
     322subnet[MAX_SUBNET_LEN] variable. The variable subnet[i] contains the name  
     323of the ith subnet defined in carlsubtrig. 
     326Modified to look for and read the optional subnet variable. 
     3291) subnets: 
     330a) Non-numeric subnet names (currently <= 9 characters in length) read  
     331in carlsubtrig are now stored and passed through to later routines through  
     332the triglist2k message. Subnet names are optional. If the subnet name  
     333read from carlsubtrig.d is numeric, no subnet is passed through to later  
     334routines. Currently the subnets are used only in filenames written in  
     336b)  If several subnets trigger simultaneously, but still less than the  
     337Allsubnets parameter, the subnet code of the last triggered subnet in the  
     338list in the input file will be used for the Subnet.  Therefore, if you  
     339have nested subnets (say a dome subnet and a volcano subnet), the larger  
     340subnet should be listed after the smaller in the input file. 
     341c)  If the number of subnets triggered is sufficient to meet or exceed  
     342the Allsubnets parameter, the Subnet field of the triglist2k message  
     343will default to "Regional". 
     3452) A "|" symbol can be used in the list of stations to differentiate those  
     346stations to be used in the trigger count (stations to the left of "|")  
     347and those stations that are not.  All stations in a subnet are recorded  
     348if sufficient stations to the left of the "|" are triggered.  
     349If no "|" symbol is present, behavior defaults to that of previous  
     350versions of the program. 
     353PA_next_ev carried two arguments that were used only by sudsputaway.  
     354With the new subnet variable, these two variables are now obsolete,  
     355and have been deleted. The subnet variable, however,  was added to the  
     356argument list of PA_next_ev. The prototype of PA_next_ev is now:  
     357int     PA_next_ev (char *EventID, TRACE_REQ *trace_req, int num_req,  
     358int FormatInd, char *OutDir, char *EventDate,   char *EventTime,  
     359char *EventSubnet, int debug); 
     3621) Subnet names (if alphanumeric) are used in the suds filenames.  
     363If no subnet is named, the installation name is used in the filename.  
     364Thus, suds filenames are of the form: yyyymmdd_hhmmss_subnet_evid.dmx. 
     3662)  The EventId field of the filename is set to 3 characters.   
     367If the EventId is greater than 999, it is truncated to the last 3 digits.  
     368Leading zeroes are added to numbers less than 100. 
     374The configuration file now has the capability to rename the 
     375station coming off the k2. This is an override mechanism and allows 
     376the name to be specified in the .d file for legacy station names. In 
     377this instance, the owner of the K2 wanted to keep the name as a number 
     378and the institution pulling data (CalTech) processed the data using 
     379a station NAME. The new parameter is StationID followed by the new 
     380station name. The location on the k2 where this comes from is the stnid 
     381parameter. This was tested only under Solaris using serial communications 
     382and works for both restart and non-restart modes. 
     383PAF 4/23/2001 
     385Configuration files contain a new optional parameter, GPSLockAlarm. 
     386If the GPS hasn't locked for GPSLockAlarm hours, a warning message will 
     387be logged and an error will be sent to statmgr.  The k2ew descriptor file 
     388now contains a new error for loss of GPS synch to the satellites.  WMK  
     392Configuration file contains new optional parameter: ReportDeadChan. 
     393If the config file doesn't contain ReportDeadChan, 10.0 minutes is the 
     394default value.  WMK 11/20/00 
     397A new command was added: AbortOnSingleTankFailure 
     398The default behavior is the same as before, but setting 
     399AbortOnSingleTankFailure to 0 will cause wave_serverV 
     400to continue even if there is a hard error on a tank.  DK 1/19/2001 
     403two new error messages were added to the descriptor file. 
     404Error 7 is issued when a hard i/o error occurs on a 
     405tank or index file (this does not include a failed open). 
     406Error 8 is issued when a server thread cannot write a 
     407tank summary to the client (unless it failed because there 
     408was no data in the tank).  DK 1/19/2001 
     410err: 7  nerr: 1  tsec: 0  page: 0 mail: 99 
     411text: "hard i/o error on tank or index file" 
     413err: 8  nerr: 1  tsec: 0  page: 0 mail: 99 
     414text: "failed to write summary for a tank" 
     417Removed TravelTimeout and MaxTraceMsg since 
     418they served no useful purpose.  PNL 4/12/01 
     421Removed TravelTimeout since it served no useful purpose. 
     422Added optional QueueSize, QueueFile for saving trigger queue to disk 
     423and reloading on restart. 
     424Added optional DelayTime to delay processing of trigger message, allowing 
     425for traces to arrive at the wave_server. 
     426Removed pin number from the TriggerStation command, since it wasn't used. 
     427  PNL 4/12/01 
     430added the missing error messages and their config  
     431parameters.  PNL 4/12/01 
     434Program now ignores the InBufl parameter.  The trace buffer length is set  
     435to MAX_TRACEBUF_SIZ from the file trace_buf.h.  gaplist also ignores the  
     436MaxScn parameter.  Any number of Scn lines are permitted. WMK 4/19/01 
     439A "|" symbol can be used in the list of stations to differentiate those  
     440stations to be used in the trigger count (stations to the left of "|") and  
     441those stations that are not.  All stations in a subnet are recorded if  
     442sufficient stations to the left of the "|" are triggered. If no "|" symbol  
     443is present, behavior defaults to that of previous versions of the program. 
     448In Windows NT, the time resolution of sleep_ew() is about 16 msec (one clock 
     449tick).  On Solaris, the resolution is about 10 msec.  This is a problem for  
     450ringtocoax, since packet delays need to be set to a few milliseconds. 
     452Automatic restarts of adsend (using the "restartMe" line in the descriptor 
     453file) can cause an NT system to hang. Therefore, you should never 
     454use the autorestart feature with adsend, but you should bring down 
     455the entire Earthworm system if adsend needs to be restarted. 
     456LDD 5/31/2000 Comments added to adsend.desc, but leave this warning here! 
     458statmgr: A space is needed between "tsec:" and the value.  
     459If it isn't there, things fail. (Alex) 
     461threads functions: The KillThread function on WindowsNT and Solaris 
     462terminate the thread without ensuring that no mutexes are held. If a thread 
     463holds a mutex when it dies, no other thread can get that mutex. PNL 1/12/2000 
     465carlsubtrig:  The system time must be set to GMT and ew_nt.cmd must have  
     466TZ=GMT for carlsubtrig to work.  Comments in ew_nt.cmd done 5/25/00. Barbara 
     468ew2seisvole: on NT, exits with horrible crash when system is stopped. 
     470Wave_viewer will display fictitious 2 to 3 sample gaps when scrolling the  
     472 This does not happen all of the time and is only visible when there are less  
     474 200 samples on the display (2 seconds of data for 100hz data.) DK 2000/06/01 
     476libsrc/util/putaway.c: there is no include file for the putaway routines, 
     477  thus any errors in arguments passed to putaway routines are not checked 
     478  by the compiler.   PNL 7/10/2000 
     481Under Solaris 2.6 (and probably other versions as well), the maximum number  
     482of shared memory segments is six. This means that on an out-of-the-box machine 
     483you can only configure six rings. If you try to configure more than that, you 
     484will see a cryptic message from tport_create about too many open files.  The 
     485fix to this problem is to add the following lines to the /etc/system 
     486file, and then reboot the system. 
     488 set shmsys:shminfo_shmmax = 4294967295 
     489 set shmsys:shminfo_shmmin = 1 
     490 set shmsys:shminfo_shmmni = 100 
     491 set shmsys:shminfo_shmseg = 20 
     492 set semsys:seminfo_semmns = 200 
     493 set semsys:seminfo_semmni = 70 
     495This allows for 20 rings. 
     497     Lucky Vidmar (7/6/2000) 
     500startstop_solaris: There MAY be a problem with the signal that  
     501startstop sends to modules during the shutdown sequence. The shutdown  
     502sequence is started (after typing "quit" to startstop or running "pau") 
     503by startstop placing a terminate message on all transport rings. Modules 
     504should see this message and start their own shutdown. After a configurable 
     505delay, startstop checks to see that all modules have exitted. Any that are  
     506still running are sent a signal to terminate them. Currently that signal 
     507is SIG_TERM. But since wave_serverV has a handler for SIG_TERM, wave_serverV 
     508sees that as essentially the same as a terminate message. So if wave_serverV 
     509is having problems completing its shutdown, SIG_TERM won't do anything. The 
     510result is that startstop may give up and exit, leaving wave_serverV running. 
     511If that happens, the operator will have to terminate wave_serverV by doing 
     512"kill -9 ". That may leave shared memory and semaphores 
     513stranded in the kernel: run the command "ipcs -a" to see. If necessary, 
     514the stranded shared memory and semaphores may be cleaned up with the 
     515ipcrc command; must be run as root; see the man page. 
     516This problem only exists on Solaris/Unix, not on WindowsNT. 
     517PNL, 10/4/2000 
     519libsrc/utils/kom.c: The comment above k_open() says that only one file can 
     520be open at a time. Yet the Kbuf array has slots for MAXBUF (currently 4) open 
     521files. Does this work, or is the comment to be taken at it's word? 
     522PNL 10/15/00 
     524libsrc/utils/site.c: The strings used for station, channel and network are 
     525required to be fixed length with trailing spaces added to short names. If 
     526the strings given to site_index do not have these trailing blanks, SCN names 
     527will not match. This is not documented anywhere.  PNL 10/15/00 
     529libsrc/utils/logit.c: logit_init() requires a module_id number, which it uses 
     530to construct the log file name. This is not helpful, since the module_id 
     531number is not meaningful to people. Worse, it requires that the config file be 
     532read and earthworm.d lookups be completed before logit calls can be made. Thus 
     533errors in the config file can only be reported to stderr or stdout instead of 
     534being saved in a file.  PNL 11/29/00 
     536trig2disk and waveman2disk: these two programs have a TravelTimeout option in  
     537their config files. This feature does not work, since the "wait time" feature  
     538has never been implemented in wave_serverV.  PNL 11/29/00 
     539FIXED PNL, 4/11/01 
     541TRACEBUF messages. 
     542The definition of `endtime' of the TRACEBUF message is not documented. 
     543Some programmers are taking it as the "expected start time of the next 
     544TRACEBUF packet (if the sample interval is uniform.)" The more accepted 
     545practice is that `endtime' is the time of the last sample of the current 
     546TRACEBUF packet; that is, one sample interval less than the expected 
     547start time of the next TRACEBUF messsage. Using this last definition, if a 
     548TRACEBUF packet has exactly one sample, then its starttime and endtime are 
     549the identical. Clearly this distinction needs to be documented. The file 
     550waveform_format (in the /home/earthworm/DOC directory) gives no specifics  
     551about start or end times.  PNL 1/24/01