Antelope Version 4.9 Release
May 2007
We didn't make it to Solaris 10 this year, but we are running it on
several machines at BRTT now, and plan to switch to Solaris 10
exclusively soon after the release. According to Sun, the last shipment
of Solaris 8 was February 2007, and it should not be installed on
any new systems at this point.
The linux version of this release is still under SUSE Linux 9.3, but
the next release will use SUSE Linux Enterprise Desktop 10, which Novell
claims to support for several years into the future. Linux 9.3 is no
longer supported.
We are experimenting with a Sun opteron system. This is likely to
become our recommended hardware platform for Linux systems. If there
is sufficient interest, we may next year provide a version of Antelope
for Solaris on the opteron machine.
On the Macintosh, this Antelope release uses Tiger, and includes an
intel version. We have not made an attempt to make Universal
applications, so the intel and powerpc versions are different.
This is very likely the last year we will provide a powerpc version
of Antelope.
Matlab is updated to the most recent version on Mac and Linux;
the most recent version doesn't run under Solaris 8, so we
stuck with the previous version. You should be able to recompile
with the new version if you are running it yourself.
The version of perl differs: on most architectures, it is 5.8.8.
However, on Solaris, perl/tk does not compile nor run correctly
with perl 5.8.8. It's unclear why, but seems to be related to memory
problems.
Tcl/tk is 8.4.4 across all platforms. We will probably move to 8.5
next year.
There are still problems with the case insensitivity of the default
Mac filesystem, epitomized by the failure to distinguish
$ANTELOPE/data/tables/dblocsat/iasp91.PP
and
$ANTELOPE/data/tables/dblocsat/iasp91.pP
You can get around this type of problem by creating your filesystem as
a case sensitive filesystem, or by creating a case sensitive
filesystem in a file inside your standard HSFS filesystem, using
hdiutil. Either approach has its own problems, however.
The fortran used to produce this release on Darwin is gfortran, which
has various quirks with reading and writing strings, compared to
previous g77 compilers. These problems have not been ironed out.
Thanks primarily to Kent Lindquist and Jennifer Eakins, the man pages
have had a thorough reading for grammatical, spelling and clarity.
You'll notice a considerable improvement.
The format change to snr changed the null value from "-1.00" to "-1",
which can result in multiple complaints from dbverify, as well as less
likely failure by dbdelete to find a null record in the arrival table,
because it contains the earlier null value.
You should be able to fix any problems with the following command:
dbset -cv db.arrival snr 'snr == -1' NULL
We've made an attempt to eliminate the use of 1024 instead of 1000 as
a conversion factor for kbytes, Mbytes, and Gbytes. The k, M, and G
prefixes should now have their international standard meaning, not the
bastardized power of two meaning. However, note that df uses 1024 as
the conversion factor, and memory is usually quoted in units of 1024
bytes.
There's a new datatype UE which allows placing floating point ascii
time ordered data points (time and value) in a waveform file.
Interpolation is used to get equispaced data points, allowing this to
be displayed in dbpick, for example. However, there is still a good
deal of work, in particular:
* a packet type which allows floating point values with time tags
* an orb2db like program for recording these packets into waveform files
There is a new man page debugging(5) which makes some suggestions for
how to debug hard system problems. We hope this may be helpful in
further isolating and defining mysterious failures. It's often to
diagnose problems through email, and much better to resolve them or at
least collect as much information as possible when an event occurs.
Please take a look at this new page. (Make suggestions for how to
improve it).
q3302orb went through another large set of changes including support
for the new Paroscientific digital high resolution pressure sensors
through the Q330's serial interfaces. See the q3302orb release notes
for more detail.
dlmon went through a complete rewrite and is now implemented using
perltk. Consequently, it runs about 20 times faster than the old
version. It also looks a lot different and has an overall different
user interface. The new version has been developed mainly to support
the new Q330 and Q330HR digitizers, although it still should work with
the legacy dataloggers. For those who like the old version, it has
been migrated to old_dlmon.
orbassoc/dbgrassoc were modified so that they will run a traditional
earthquake location code, such as dbgenloc, after an association has
been found. This produces arror statistics automatically and also
allows the use of coarser grids since the final location will be
refined. This version also includes separate channel sifters for P
and S arrivals so that P arrivals can be constrained to vertical
components and S arrivals to horizontal components.
Completely new generalized event processing programs, orbevproc(1) and
dbevproc(1), have been written to support event-based processing, such
as magnitude calculations, in both real-time ORB domains and off-line
database domains. All of this source code has been put into the
contributed repository. These new programs run their own imbedded
perl interpretors which are used to execute user written computational
kernels. In this initial release computational kernels are provided
for computing Richter magnitude and traditional body wave magnitude.
Time domain waveform filtering has been generalized through the
development of a new library, wffil(3). This library utilizes other
dynamic link libraries at run time that contain the actual filter
implementations. The traditional Antelope digital recursion filters
have been put into a new wffilbrtt(3) dynamic link library that is
used by wffil(3). Also, an open source code library, wffilave(3), is
provided as an example for writing user customized filtering
libraries. Most of the Antelope programs, including orbmonrtd(1),
dbpick(1), tkdbpick(1), orbdetect(1), dbdetect(1), orbmag(1), dbml(1),
orbwfmeas(1), dbwfmeas(1), orbevproc(1) and dbevproc(1), have been
converted over to the new filtering library.
Removed:
data_availability db2orb
dbs2n eworm2orb
extrd isc2db
orb2eworm orbxfer
psd2db std_pwdx
update_data_availability
Added:
concatpaths corefilesok dbcreate
dbevassoc dbprelim_locs edr2db
ess2orb kmi_install manage_marmot
old_dlmon orbclients rt_baler_info
Added contrib:
cf lindquis
checklist lindquis
cluster pavlis
cluster_cleanup pavlis
csi2orb tshansen
davis2orb tshansen
db2eids lindquis
dbarrparams danny
dbevproc danny
dbrmt lindquis
dlautomrc vernon
dlmon2snw vernon
editgclgrid pavlis
lcheapo2db vernon
makegclgrid pavlis
obsip2orb vernon
orbdlstat2xml lindquis
orbevproc danny
q330_location vernon
q330coms vernon
rt_daily_return vernon
rtrun_matlab lindquis
smartpick_classic lindquis
time_slice_db vernon
Added examples
orbstate.xpl
wffilave example of dynamic link library to extend wffil(3) interface
php examples using each command in the PHP interface to Datascope and orb
libraries removed:
libgclgrid
libseispp
new libraries:
libwffilbrtt
libwffilave
libpool
libbrttutil
libwffil
Include file differences
removed:
steim.h
new:
ComplexTimeSeries.h SeisppKeywords.h perlembed.h
ExternalProcessor.h Seisw.h xplot.h
MatlabProcessor.h ant_steim.h
SeismicPick.h display_marker.h
Man page usage lines
children pid ...
allow multiple pids
dbcp
added -F option to override refusal to place .. into a relative directory path
dbdetect
-onlypicks causes only the detection records with state set to "pick" to be output
dbdiff
-N maxdiffs restricts output to first N differences of each type
dbreplay
-u avoids adding the /@ suffix (indicating a delayed packet) to packet srcnames
dbwebproject.1:
dbwebproject [-v] [-p pfname] [-r DocumentRoot] [recipe]
dbwebproject [-v] [-n] [-p pfname] [-r DocumentRoot] [recipe]
dlmon
removed: [-start_status {OLDEST|pktid|time}] [-start_log {OLDEST|pktid|time}] orbname [-cmd cmdorbname]
new: [-mcol ncols] [-state {Icons|Multi|Single}] [-db dbname] [-subset expr] [-sort name] [-dump seconds] [-dump_image file] orbname [-cmd cmdorbname]
heartbeat
-N net_sta specify net_sta value for srcname
miniseed2orb
-p pf specify alternate parameter file
orbmonrtd.1:
-tshift_time t0 specify an alternate time for the right side of window (instead of now)
-reverse_labels put channel labels on right instead of left
orbxchange
-d database allow looking up ip address (eg, of datalogger) in database maintained by another program
orbxfer2
-N net specify an alternate for the net_sta_chan portion of the srcname; default is host name
q330pocd
-i local_ipaddr
specify an ip-address to bind all local UDP sockets for communication with Q330s. Don't use this
unless you know what you are doing!!
q330util
-i local_ipaddr
specify an ip-address to bind all local UDP sockets for communication with Q330s. Don't use this
unless you know what you are doing!!
New commands:
ping targetip,lport,{info|} send a q330 ping
sbpwr targetip,sn,interface,function,timeout power control for balers
rqannc targetip,sn requests the Q330 "Announce" structure
reb2db
-d write detections when input contains arrivals
-v
-D
-a
rtsys
-C eliminate cron job output from rtsys reports
tail2orb.1
-N net_sta specify net_sta portion of srcname for orb packets
truncate_log
-f force truncation of files sooner than 8 days previous to now
Man pages removed:
bnssnoop.3
db2orb.1 eworm2orb.1
extrd.1 guralplocate.1
marmot_setup.1 orb2eworm.1
orbxfer.1 perlpf.3p
psd2db.1 std_pwdx.1
Man pages added:
ascii_cnt.3 bkg.3p
cleantext.3p closex.3
concatpaths.1 corefilesok.1
dbcreate.1 dbprelim_locs.1
debugarr.3 debugchar.3
debugtbl.3 delx.3
dumptext.3p edr2db.1
ess2orb.1 gbytes.3
getx.3 install_s99antelope.8
kbytes.3 kmi_install.1
manage_marmot.1 mbytes.3
namesx.3 okstr.3
openx.3 orbgetstash.3
orbstashselect.3 perlembed.3
pf2struc.3 pktmon_examples.5
ptkcolor.3p putx.3
rtimbank.3h rundbgenloc.1
showPktMatch.3 show_hash.3p
strjoin.3 touch.3p
trcopy.3 utility.3p
vaisala2orb.1 wait_until_static.3p
weather.1 webdbshow.3h
weborbstat.3h wffil.3
wffilave.3 wffilbrtt.3
writable.3p xheap.3
Added contrib man pages:
Magnitude.3p Danny
Mbusneic.3p Danny
Mlrichter.3p Danny
cf.1 Kent
checklist.1 Kent
cluster.1 Gary
cluster_cleanup.1 Gary
csi2orb.1 Todd
davis2orb.1 Todd
db2eids.1 Kent
dbarrparams.1 Danny
dbevproc.1 Danny
dbrmt.1 Kent
dlautomrc.1 Jennifer
dlmon2snw.1 Frank
editgclgrid.1 Gary
evproc.3p Danny
examples_php.5 David
lcheapo2db.1 Frank
makegclgrid.1 Gary
obsip2orb.1 Frank
orbdlstat2xml.1 Kent
orbevproc.1 Danny
perldb2xml.3p Kent
perlpf2xml.3p Kent
q330coms.1 Frank
rt_daily_return.1 Frank
rtrun_matlab.1 Kent
smartpick_classic.1 Kent
Parameter file differences
/opt/antelope/4.8/data/pf/dbgrassoc.pf /opt/antelope/4.9/data/pf/dbgrassoc.pf
lots of new options, although a 4.8 version of the parameter file should work with
the 4.9 version of orbassoc
/opt/antelope/4.8/data/pf/dbrecenteqs.pf /opt/antelope/4.9/data/pf/dbrecenteqs.pf
> html_suffix html
> region_string_prefix Earthquake
> colormode auth # auth, prefor, age
> prefor_linewidth 3
> quakecolor red
> quakecolor blue
> quakecolor orange
> # quakecolor yellow
/opt/antelope/4.8/data/pf/dbwebproject.pf /opt/antelope/4.9/data/pf/dbwebproject.pf
many differences
/opt/antelope/4.8/data/pf/dlmon.pf /opt/antelope/4.9/data/pf/dlmon.pf
many differences due to rewrite of dlmon, you will need to rewrite
any customizations that were done with the original parameter file
to switch over to using perl script fragments instead of tcl script
fragments
/opt/antelope/4.8/data/pf/elog.pf /opt/antelope/4.9/data/pf/elog.pf
> net_sta # fill this in with network and station code to set first part of srcname when logging errors to orb
/opt/antelope/4.8/data/pf/orbassoc.pf /opt/antelope/4.9/data/pf/orbassoc.pf
lots of new options, although a 4.8 version of the parameter file should work with
the 4.9 version of orbassoc
/opt/antelope/4.8/data/pf/orb2db.pf /opt/antelope/4.9/data/pf/orb2db.pf
eliminated
flush_wf_writes no longer used
added parameters to watch for filling waveform filesystem
path . # path to waveforms filesystem
min_freespace 10 # minimum number of megabytes available to write waveforms
frequency 1000 # number of packets to process between checking free space
sec 10 # number of seconds to sleep between checking filesystem, when stopped for space
/opt/antelope/4.8/data/pf/orb2ew.pf /opt/antelope/4.9/data/pf/orb2ew.pf
> my_type TYPE_TRACEBUF
> max_tracebuf_size 4096
> large_tracebuf_handling send
/opt/antelope/4.8/data/pf/orbserver.pf /opt/antelope/4.9/data/pf/orbserver.pf
> statistics_file logs/orb_statistics # file in which to write transfer and connections info
/opt/antelope/4.8/data/pf/orbserver_names.pf /opt/antelope/4.9/data/pf/orbserver_names.pf
New names
> obsip 53456 # OBSIP data transfer
> poc 6690 # poc
> prelim 6701 # prelim USArray orb
> proc 6703 # processing orb
> meta 6705 # USArray metadata
> bulletin 6707 # bulletin server
> usarrayTA 6715 # USArray TA data only
> usarrayREG 6716 # USArray contributed data only
/opt/antelope/4.8/data/pf/q3302orb.pf /opt/antelope/4.9/data/pf/q3302orb.pf
> shutdown_wait_time 20.0 # amount of time to wait for dataloggers to be de-registered
> # during a shutdown of q3302orb
> output_time_packet no # output an ORB packet with a time tag from the Q330?
> data_serial_chan0 sc0 $DLNET_$DLSTA_SC0 # data from serial interface 0 (configurable report interval)
> data_serial_chan1 sc1 $DLNET_$DLSTA_SC1 # data from serial interface 1 (configurable report interval)
> data_serial_chan2 sc2 $DLNET_$DLSTA_SC2 # data from serial interface 2 (configurable report interval)
> data_serial_chan3 sc3 $DLNET_$DLSTA_SC3 # data from serial interface 3 (configurable report interval)
> data_serial_chan0 no yes mst
> data_serial_chan1 no yes mst
> data_serial_chan2 no yes mst
> data_serial_chan3 no yes mst
/opt/antelope/4.8/data/pf/rtexec.pf /opt/antelope/4.9/data/pf/rtexec.pf
many differences, mostly related to program command lines
/opt/antelope/4.8/data/pf/rtinit.pf /opt/antelope/4.9/data/pf/rtinit.pf
added several new directories
> idserver
> rtlogs
> dbids
> diskserver
/opt/antelope/4.8/data/pf/rtm.pf /opt/antelope/4.9/data/pf/rtm.pf
eliminated automatic suggestions for reasons why shutting down the system
/opt/antelope/4.8/data/pf/rtsys.pf /opt/antelope/4.9/data/pf/rtsys.pf
ignore certain garbage output from orbdetect
> ignore &Tbl{
> orbdetect.*frame overlap
> orbdetect.*frame discarded
> }
/opt/antelope/4.8/data/pf/smartpick.pf /opt/antelope/4.9/data/pf/smartpick.pf
many changes
/opt/antelope/4.8/data/pf/tail2orb.pf /opt/antelope/4.9/data/pf/tail2orb.pf
> max_log_bytes_per_packet 25000
/opt/antelope/4.8/data/pf/trdefaults.pf /opt/antelope/4.9/data/pf/trdefaults.pf
< CA trCA -2147483648 -2147483648 2147483647 0 wfinCA - - - yes Canada compressed
> CA trCA -2147483648 -2147483648 2147483647 0 - - - - yes Canada compressed
> UE trUNEVEN 3.4e38 -1e38 1e38 0 - - - - yes unevenly sampled data, with times
> J watts power (Joules/sec) (UCSD)
< d meters depth or height (eg, water)
> d meters depth or height (e.g., water)
< s meter/second speed (eg, wind)
> s meter/second speed (e.g., wind)
Parameter files removed:
eworm2orb.d orb2disk.pf orb2eworm.desc
eworm2orb.desc orb2eworm.d seed_translations.pf
New parameter files:
cf.pf dbevproc.pf rtrun_matlab.pf
checklist.pf dbprelim_locs.pf smartpick_classic.pf
cluster.pf dbrmt.pf weather.pf
cluster_cleanup.pf editgclgrid.pf webdbshow.pf
csi2orb.pf makegclgrid.pf weborbstat.pf
davis2orb.pf orbevproc.pf wffil.pf
db2eids.pf rtimbank.pf
Detailed Changes
Makefile
shunt make errors for contrib to separate file
run "make purge" at every compilation in contrib
(I'm no longer looking at compilation problems in contrib).
The daily results from contrib compiles are logged to a different file, as
well as being available on the BRTT web site at
http://www.brtt.com/contrib/
S99antelope
Update for use on Mac
adapt to slate method for rc files
stop saving old log files into sub-directory during reboot
update documentation
add rc.6 file for Linux
mention install_S99antelope and explain how to use it
Trace4.0
fix a bunch of bad format strings
ah2db
truncate insname to avoid problems with dbputv returning errors for overflowing field.
alter_timestamps
fix some memory leaks, and other lint complaints
antelope.html
rearrange
antelope_update
try to provide a bit more debugging output with -d option
change name of patch in $ANTELOPE/patches to *.tar.gz, to avoid confusion
try to implement Glenn's suggestion about the origin of antelope_update email.
Show the URL used to get the patches at the top of gui.
Explain the option of installing patches from a local copy
of the Antelope patch directory.
antelopemake
add -lpool to STOCKLIBS
autodrm
change regular expressions to avoid being tripped by embedded STOP in
autodrm waveforms. Problem discovered and solution suggested by Niko.
add magnitude and magnitude type to report
fix new problem due to dbputv overflow results
cd2orb
changes to allow handling the srcname for the status/information data
from a cd1 packet separately from the waveform data. This is useful
in Australia, where the soh data is placed there.
this should change cd2orb so that it does not require the new status
parameter in the parameter file, preserving the previous behavior
in that case. This is in response to Sandy's criticism.
change verbosity, print out number of packets sent
fixed some memory leaks
cdorb2db
fix usage
stop using nsamp in the rematch after a pause for rtdbclean
improve the reporting of problems in the input, but always save the data
into the waveform file, disregarding errors like calib changing,
segtype changing, or tick registration changing
mention db2msd, as Niko suggests
try to get cdorb2db to shut up after once mentioning that calib or
segtype has changed.
keep the tick registration aligned with midnight
turn off tick registration checks altogether
fix bug Rifat discovered
check_license
print banner with -v option in check_license
corefilesok (rtexec)
start to complain about missing corefiles
css3.0
add new segtype for Todd Hansen:
n nanoradians angle (tilt)
add S1 for steim 1 compressed data
Get rid of net in specdisc
Switch from tagid to tagname
add segtypes for Jamie and Todd
Add in "J" segtype to represent "power" for Todd.
experimentally add a range condition to endtime: endtime >= time
add uneven datatype
switch to g format for snr to avoid field overflow in orbdetect
Change tables where a range had been placed before some simple keys.
Add dlsite table used by dlmon.
rename the net field in detection so that it's clearly not used
so we don't get questions about the wrong net code in detection
Get rid of net code and switch from tagid to tagname in trigger
change net to either snet or tagname in tables (changed gap
latency netperf ratechange retransmit) where the name is inaccurate.
A new datalogger acquisition table meant is input to programs like
q3302orb and rt2orb as a replacement for the Dataloggers table in
their respective parameter files.
Add a dlchannel table that will house the mappings between SEED
net-sta-chan-loc codes over a time range and the particular datalogger
and its physical channel and stream number where it was acquired.
add iptable for orbxchange
eliminate pointless files arrival_tshift dmcseed dmcwf wfdisc_tshift
db2msd
change final status output to notify rather than error so it
isn't flagged by rtsys
correct usage line
don't bother trying to convert empty waveforms (nsamp==0)
add -n option
also add locking to the waveform files, as another attempt to guard
against conflicts with orb2db and cdorb2db
add steim1 option for Taimi
db2sd
don't read response file if dfile is '-'
explain time range in 010 blockette in man page
make error message about FAP filters (and IIR filters) a bit more clear:
they're not supported (FAP by seed, IIR by db2sd)
deal with the situation when people move their station
so that multiple 050 blockettes are required in the seed volume.
eliminate some memory leaks
fix minor problem in useless blockette 011 when station moves
dbaddv
strip leading whitespace from value when reading key/value pairs from stdin
dbbuild
put .00001 seconds between different configurations of sensor/stage/calibration
rather than 1 second. This effectively hides the change from SEED volumes,
because the SEED resolution is a bit coarser. Apparently this is an issue
for PASSCAL, because they may change a sensor while the datalogger is running.
If the seed volume shows a gap, but there's data, the DMC flags it as an
error. With this change, there's still an error -- the configuration
information info is wrong during the changeout -- but the DMC won't notice it.
due to popular request, remove the comment lines in the dbbuild log file
identifying who did what when
changes to allow setting a different loc code for dataloggers only,
to allow for different state of health channels for multiple dataloggers
at the same site (eg, multiple downhole sensors requiring multiple dataloggers
as for example Jamie has).
Also allow turning off generation of state of health channels in the output
database.
Try to make close more predictable and reliable.
close sensor eliminates any sensor hanging around creating
more channels in the next configuration input.
close datalogger eliminates all the sensors as well as the
datalogger, so sensors don't hang around here either
the close time is handled a little differently now:
if the time is only a date, then endtime become the
23:59:59 on the date in question, and offdate stays as
the date in question. However, the offdate may get adjusted
back 1 day if a conflicting record is then added.
More verbosity in the log about closing sensors/dataloggers/stations
The database is closed and reopened after sensors, etcetera are
closed to avoid problems with dbmatches returning wrong records
because of key changes
add some comments about swapping sensors and dataloggers
dbbuild batch file examples in a man page
add references to examples in the other man pages
Do a better job when a datalogger is closed on one day and then
the same datalogger is started up again on the same day.
fix problem that dbbuild close batch statement works on all active
records rather than just ones before the close date.
add a new network command to support the nettype and auth fields that
Jennifer wants to fill in with dbbuild.
modify to recognize insname values that are too long and trim them noisily
Add info Literal for various dataloggers in associated parameter files.
dbcheck_responses
flag all positive poles in paz responses as problems
changes to make debugging easier in dbcheck_responses,
print out readable times in case of errors in dbverify.pf
dbcmpwf
handle output of missing data values better, printing 'M' instead of 1e38 or something like that
correct a mistake in comparing time slices
dbconvert.pf
Fix error in example pf pointed out by Kent.
dbcp
don't allow dbcp to insert relative paths with ..
add a flag to force dbcp to allow inserting relative upward links into
directory fields, although this can cause problems later, especially
with databases distributed around multiple directories.
dbdelete.1
correct description of -v option
dbdetect
Dont fill in srcid or net fields in detection output table.
Get rid of all foreign keys calls.
Added -onlypicks option, like for orbdetect
Convert over to using wffil filtering library
dbdiff
show more resolution in the time comparisons
add -N option to limit the number of differences shown
dbe
attempt to enable the File->Print menu
fix problem Glenn pointed out
dberesp
revert to using the nyquist or samprate as the upper bound of
response curves in dberesp
dbevents
Changed default time to be a really large number. This will get rid of the
Can't read "symbol_color_unsel(6)" error message.
Add event latency
show error ellipses if the origerr table exists
change star symbols to circles which looks better when making the event plots
Change appearance of selected origin so that error ellipse shows.
Add -pf argument
Add 'phases' and 'additional' options for passing to dbpick
dbfixchanids
fix problem Michael West pointed out
dbfixtimeres
Changed reference from /sw/data/tables/taup_ttimes to $ANTELOPE/data/tables/taup_ttimes.
dbids
Additional information for troubleshooting error messages and example descriptor files.
dbloc_verify
print informational message on stderr instead of stdout to avoid confusing dbloc2
experimentally allow recalculating magnitudes on some origins
by running the magnitude programs directly against the database,
so that there is no undo.
Change SCHEMA_DEFAULT from rt1.0 to css3.0 in dbloc2.pf
attempt to allow setting the evid of an origin previously calculated (perhaps
outside of dbloc2 altogether) This may not properly handle all cases of
the event table prefor field.
add version to usage line in dbloc2
get syntax right for "all" arids associate option
fix banner for dbloc2, allow empty list of databases to associate
dbmapevents
Add -d option for PostScript-only plotting.
Add EXAMPLES section. Include example of how to plot mutliple symbols based on author field. Note that no auth field pattern matching is available.
dbml
fix message about waveforms
Convert over to using wffil filtering library
dbpick
move around writes to fdcom so they occur after actual writing to database,
seems to fix problems with dbloc2
Add "it's not a bug" info in man page regarding break in waveform display
at day boundary.
Update man page and usage line.
Change to make trace labels properly track time dependent changes in
calib and segtype.
Fix efficiency problem with event-related time scrolling and station order resetting
will show proper units based upon segtype
Convert over to using wffil filtering library
dbreplay
allow suppressing the /@ suffix with the same -u flag as in miniseed2orb
hook up the previously unattainable -F option, pointed out by Frank
fix some minor memory leaks
switch to using lag parameter for waiting on orb reader.
implement Frank's request to not delay when there are no data.
fix problem with linux version due to different integer-float conversion
dbsnapshot
try to eliminate dependency of waveform snapshot on correct database
dbwfmeas
Describe the time range option.
Convert over to using wffil filtering library
diskserver
add example and caveat
give threads a chance to die after halt
switch to %u for printing thread ids (for linux)
update man page for some drawbacks with diskserver
try to make diskserver allow orbopens more quickly after
execution by moving the bind and listen earlier.
changes to address other shortcomings of diskserver, particularly updating status.
force consistent results with an empty directory
displaynoise
correct to properly use replacement tclx if original is not available.
Get rid of all references to net code.
Get rid of net attribute
dlcmd
Make program die if command packet will not pfcompile.
dlmon
Switch over to new dlmon
ecrontab
remove the confusing "run now" button, which accomplished much the
same thing as try command, but in the background.
elog
eliminate segmentation violation from exceeding the number
of valid signals on Darwin
epoch
change rounding to actually print the enhanced resolution
change usage() exit status
Added a much needed example using output format. Fixed a typo pointed out by Kent.
event_archive
Minor modifications to event_archive.
Moved compress_wfdisc to archive.pm
Added many routines needed for other programs into archive.pm
fix so sendmail will cat text to standard out so that the rtexec log files
will replicate what is sent in the emails.
examples/msdd
add comment about raw time values with -d option
examples/perl/orbstate
add example of saving and restoring orb position in perl
ffilter
exclude directories from -x option
fix_miniseed
ignore empty files
forbserver
remove option A from the usage line
simplify with new forb routines
close forb when program ends for purify
cause forbserver to die if it can't read the forb file
forbstat
add -n and -check options to reap
grepsrc
add .xs files to the files searched with -c option
by default, avoid subdirectories named junk or ending in - ; override with -A option
add .cpp to -c option
inspect_snapshot
put the name of the file in the window title
correct a bug in inspect_snapshot that dropped (didn't show) the last entry in
a snapshot
better support for editors other than xvile
installman
check for bad font codes while installing man pages
ldlibs
ignore unreadable libraries
libPkt
add a new routine showPktMatch which prints only selected channels from
a waveform packet.
try to do rounding right when printing higher resolution time here.
add a mechanism for printing full precision times from orbstat if needed
return the proper error code when umsd fails inside unstuffPkt
add PKT_PEEK to Pktxlat translations
give PKT_PEEK some meaning for stash packets.
add peek option to parameter files and db records
add some varieties of compressed text packets using libz:
cpf
cch
celog
csyslog
in clrpkt, also set the string_size to zero when string is freed.
test for reasonable data size in orbxfer2 packet
better job of PEEK showPkt mode for stash packets.
add another test for reasonable size in cch packets
make sure weather string from cd1 packet is terminated with zero
eliminate an error from indent by changing =- to = -
Deal properly with nsamp == 0 for GENC packets.
avoid another segmentation violation Eliana found with corrupt orbxfer2 packets
libbrttpkt
Change orbputx to orbput in keepalive thread
Changed keepalive pf packets so that they can be unstuffed properly.
Turned on the digital signature stuff
Fix bug where a NULL response is being generated when dlcmd does not
want a response.
Change command response threading
Fix a print buffer overflow uncovered by Jennifer while issuing a dlcmd with a bald *
in the command line.
Test command packets to make sure they will pfcompile before
placing them on the ORB.
Add orbreapthr_new2 which includes orbopen, orbselect, etc.
within the reap thread.
Fix destroy method
Synchronize stopping and opening
Make so stopping thread will wait for thread exit using pthread_join
Add new tool for assimilating waveforms as trace dbs from
either ORB packets or from a db. This acts a lot like cdorb2db
inthat it first assimilates traces with fixed time slots and
with trace values set to the gap value and then it plunks down
the data into the trace arrays as it comes in.
Increase time range a little to trgetwf to make sure all points are read.
Add orbclose and fix return value when no data.
Switch over to SIGHUP for terminating read threads. Also call orbclose.
Change shutdown logic.
Change name if orbreapthr_stop2 to the more descriptive orbreapthr_stop_with_signal
and explain how to use this properly in the man page
Get rid of the signal handling. Instead switch to non-blocking orbreap_nd
so that threads can be stopped even if orbreap would have been blocking.
libbrttutil
Add simple pf to C struc parser.
libcgeom
Change gridname to qgridname
Change dlat and dlon to qdlat and qdlon in cggrid2db
libdeviants
pid_exists, is_timezone
optimize byte swap routines, which should improve performance in miniseed
compression/decompression, as well as packet stuff/unstuff
On mac, as suggested by Kent:
* allow finding children for other user's processes
* stop ignoring processes started with redirection from /dev/null or closed 0, 1, 2.
Also find children of children.
std_statvfs returns non-zero, but bogus, results for # inodes (for filesystems without inodes)
remove the script std_pwdx
attempt to fix the problem with checking for adequate space before
creating orb buffers for the 64 bit orbserver. stat returns a different
dev field in Solaris 64 bit interface.
attempt to handle terabyte size filesystems (mainly in rtexec and rtm)
eliminate bad free in macintosh my_username
libds
document Transient clause in dbschema.5
make several variables static to avoid possible conflicts with xml libraries,
as suggested by Kent
eliminate include of malloc.h, which evidently doesn't follow posix standard.
fix in-place sort
fix memory leak
add mutexes around (hopefully) all the remaining global variables
where a conflict might arise. This should allow separate threads
accessing separate databases, but not separate threads accessing the
same database.
There has not so far been any attempt to test multiple threads with
multiple databases.
This has the potential for introducing new problems, but so far the
changes are passing all the old tests.
cleanup after encountering a duplicate field declaration when compiling
a schema, eliminating one memory leak
Add missing dbTABLE_PRESENT, as suggested by Niko
These are incompatible changes which may cause previously running programs
to break. dbputv now reports an error to stderr when a value is too large for
the assigned field, rather than quietly truncating the value. Problems
showed up in a variety of tests, but were easily fixed.
add info about difference between dbquery and dbget for null values, add dbis_null
Because of the way ranges work in Datascope indexes, it's important
for them to occur last in Primary keys, rather than having some scalar
keys following. The search through the index decays to a linear
search for keys beyond a range.
This has not been enforced in the past, occasionally leading to some
surprising results. In addition, adding rows to tables with simple
keys beyond a range could fail, due to an implementation error.
These changes
1) fix the error in dbaddv
2) add checks for the position of ranges in base table keys
3) rearranges keys in joined tables to put ranges at the end
This also required some changes in the css3.0 schema, where ranges fell
in the wrong position in keys for a few tables.
libforb
try to eliminate segmentation violation seen once on an adev machine, evidently
due to a partial read.
return error code instead of dying when given a bad seek code in forbseek.
fix memory leak
fix a variety of small problems with forb routines
more tweaks to correct handling of orbget codes
fix memory error
fix error finding newest packet with match/reject criteria
fix bug with diskserver failing to find the first packet in a disk buffer
try to improve behavior at new end of orb
modified forb routines to use unbuffered reads on the mac because
the buffered reads don't work right when the file is growing.
fix various problems with forb i/o which may address the symptoms on orb-sci
try to eliminate a potentially infinite loop.
make the complaints about short packets a bit more explicit
partial improvement in reading from damaged forb directory
deal with different include files on mac
when that is missing
add routine to attempt to patch up incomplete segment files
(due to untimely death of orb2disk or disk full)
add some new tests for segment files for orb2disk:
-- ignore times of packets too far in the future (about a year) during segmentation
-- segment based on size also
-- segment based on #packets also
fix up some lingering problems due to the switch to unbuffered reads and writes
allow taking the first pktid from the filename for single files as well
as files in a directory.
be more quiet about temporary read failures, only complaining after the second
failure.
stop complaining about short reads so marmot logs are empty
attempt to fix problems on marmot
better debugging routines for fake packets
add retries to writes of forb packets
try rereading when the next input line seems bad, since that
seems to be happening on marmot.
fix a problem in the fast seek to the end of the forb file
try to buffer output to speed up arm routines
fix against premature read termination during segment file switch
finish off segment files with marker in forbclose
get the pktid numbers correct
avoid waits at end of file for forbreap
move backward across segment boundaries without skipping a packet.
cache directory information to increase diskserver performance,
especially on marmots where directory is changing slowly
force rereading the forb directory whenever a new file is opened, rather
than depending on modification time change on the directory to cause
a reread. The modification time may not change fast enough.
remove sync options from open of segment files for speed on solaris writes
libgpl
This fixes the problem Natalia found with the filter menu not acting
immediately hopefully without undesirable side effects.
Add detection and timemark color specifications in the Xdefaults database
and the command line. Also fix a problem with color conversions.
Attempt to fix problem with deleting arrivals on Linux.
Fix efficiency problem where it was taking a long time for event-related
time scrolling and station order resetting
liborb
avoid retrying orbclose
(orbelog)
take the net_sta portion of srcname from elog.pf if possible, so that
error messages can have same net_sta as other packets on marmot orbserver
use original behavior for elog orb packets if elog.pf has
no value specified for net_sta
bump maximum orb packet size to 4,000,000 bytes at Danny's request
clarify return code from orbputx = remote pktid
make the tests on time less tight on orbresurrect, because of the
limited resolution in the state file
use strydtime instead of strtime
more verbosity when the remote orb has been reset since burial
add orbput_nolag
Add Jennifer's new orbserver names, add obsip name at port 53456
libpool
new library for shared globals to avoid problems where perl extensions
might get two separate copies of some variable which should be singular.
libresponse: range_resp
try to fix several problems with past versions of range_resp
lower tolerance
change range_response to *always* use the geometric average of the knees
of responses to calculate the center of the frequency range
fix various leaks
libscv2
Attempt to put in correct units in dbpick and trdisplay displays.
Put units conversions into a single subroutine
libstock
change rounding methods, fix float truncation problem for times
round properly for printing tens of microseconds
fix leaks in pfput pointed out by Kent
throw an error in path routines when user attempts to back up over a symbolic link with
a .. in a path.
Add a caution in the path(3) man page about .. elements in paths.
jointbl has been appending an extra delimiter following the last element
of the tbl. This change brings it in line with the usage in perl.
add some fdopen, fdget, ... routines to buffer unbuffered read routines something like
gets and getc for diskserver on a mac.
allow EINTR in reads in fdgets routines
add reread to restat routines
make fdtell long instead of int
findzero: more stable algorithm
add net_sta to elog.pf
add routine for printing hexdump comparisons of memory
add a routine freespace, for possible use in orb2db
check for enough space before creating a large file in mkfile
change output of pfout to be more readable: don't always escape right
bracket, only unmatched right (squirrely) brackets.
update bns man page to add bnskeep, bnsresend
Add example to pf.5
add strjoin function
document xheap routines for maintaining persisten key/binary value pairs in a file
add utility routines debugarr, debugtbl, debugchar and ascii_cnt to conveniently print certain structures
add a utility routine okstr to return "" when char pointer is 0
libtr
Fix an error in an attempt to derive a new name for a waveform file; I think
this is only exercised in cdorb2db.
Improve the error messages from a few related routines.
Force a manual load of trdefaults.pf when some of the foreign key mapping routines
are called and trinit() has not happened. This only occurs if the application
has been statically linked.
change the way the times in the seed headers are generated when the
1001 blockette is being created, to avoid round-off problems.
catch and complain about any rounding errors while writing seed headers
add verbose_splicing parameter to trdefaults.pf which allows printing out information about the failed splices.
mention 1001 blockettes
change fake "zz" signal to triangle wave to try to avoid problems with different sin calculations on linux versus mac/sun.
fix trsplit so it sorts the result after removing marked gaps (and works correctly)
change verbose_splicing to elog_debug instead of complain
correct man page trsplit.3
add some verbose output into trsplit using verbose_splicing flag
fix a fairly serious memory leak in trgetSEEDwf, evidently introduced
when adding opaque blockettes to the library. I noticed it from
looking at memory usage on anfops, where dbreplay clearly showed
bad behavior. To exhibit the problem probably requires something
like dbreplay, where files are opened many times to create 1 minute
packets, and about 56 bytes are leaked each time.
fix the bug exposed by Eliana and Passcal where completely bogus miniseed
records cause a segmentation violation as msdhdr_unpack attempts to copy
from unallocated memory.
Corrected default waveform pattern to: "%Y/%j/%{sta}.%{chan}.%Y.%j.%H.%M.%S"
add experimental unevenly sampled data datatype, allowing ascii data files with
time measurement data pairs. samprate in wfdisc is fake, time should be related
to time in data. trgetwf returns spline interpolation of data points
Add trcopy routine for making temporary transient copies of trace data.
switch to dynamically calculating the maximum nsamp allowed in wfdisc,
rather than using a constant. This allows changing the nsamp field if
required, eg for very high sample rates.
Convert over to using wffil filtering library
libtt
strdup the method string to avoid problems with static variables, like
Danny encountered.
Add information in tt.3 about specific phases. Define "basic" and "all" based on Buland and Kennett tau routines.
libttgrid
Add new capability to apply a channel sifter for different phases. This
allows horizontal components to be run through the detector and used solely
for S arrivals, while using only the vertical detections for P arrivals.
Make it so that phases with 0 weights will still associate and be
removed in recursive processing, but will not be used in the actual
location.
Fix bug related to S associations when there are no S travel times in
the ttgrid file.
Add final pass through an iterative inversion location code
Add separate parameters to control the maximum P and S allowed residuals
for making associations after the initial cluster-window based grid search.
Changes to increase efficiency (dont bother to process picks whose weights are 0)
Ddd no_output option to allow a grid solution to be made but not output
Make stack assignments of method and phase strings fixed length instead
of letting the compiler figure it out. Why this is necessary is
a mystery to me, but this seems to fix a problem with the Linux
version.
Add grid parameter use_only_relocation
Attempt to implement closest number of stations culling
Add in table-based nsta threshold as a function of source-receiver aperture.
Add DMAX to verbose output
Add capability to restrict defining stations to those within a
bounding box relative to the search grid boundaries.
Add table entry for specifying arbitrary distance-weight
functions for distance weighting.
Fix bug in weighting calculation.
Add default deltim value for final arrival rows.
Add default P and S deltim values (in default parameter file) to be put in arrival table rows.
Carry weighting factors for use downstream in the relocation code.
Add in new P_det_tmin parameter that will toss out detections that
follow too closely behind an initial detection for making the initial
P association search more robust.
libtttaup
Refer to tt(3) for specific phase information. Update ftp location for Buland and Kennett tau routines.
miniseed2days
automatically eliminate miniseed blocks where the "clock quality"
is less than some value, the default being 10.
fix time test used with -I option, pointed out by Frank
add comment about reading large files from stdin to the man page,
as Michael West suggests
miniseed2orb
correct the time range test used with the -I option
attempt to add the ability to wait for a reader when putting miniseed
packets onto the orb, as requested by Chad.
orb2db
add an option to fill irregular small gaps inserted into the data stream
by some ROADNET dataloggers
change verbosity a little, add log comment about reason behind a gap.
try to avoid an odd situation during a shutdown when sources are turned
off before sinks (like orb2db), and so orb2db never gets a new packet
and is trapped in orbreap.
more changes in verbosity when new wfdisc is started
fix orb2db so that when CalTech switches samprate from 20 to 40 on the fly,
the recording samprate is changed immediately (instead of on the next sample)
and the nominal samprate (in the standard seed header) gets changed also.
Previously, the nominal samprate didn't change until orb2db was restarted.
add checking for a full partition. If the
current partition is found to have less than 10Mbytes of
space, orb2db waits for improvement, and does not write
out any more data (or read any more packets).
The partition watched and the minimum space necessary
are new parameters in the parameter file.
It's hoped that this will be a bit more friendly approach
than the previous method of dying when a waveform write
failed. That failure mode can still occur if the filesystem
full check doesn't happen often enough, and the filesystem
fills up in between checks. The frequency of checks is
specified as the number of packets read, a new parameter in
the parameter file.
eliminate "no matching row" message from orb2db, as latent stations
can cause these messages, which don't necessarily indicate a problem
add output which shows where discarded packets are saved.
eliminated flush_wf_writes in orb2db.pf, which does nothing, and updated
the man page appropriately, as Steve Foley suggested.
modify preferred wfdisc time range to keep nsamp within bounds
change two complains to elog_notify so they don't show up in standard reports, since they aren't errors.
orb2dbt
Minor typo corrections to manpage.
Added additional author to author_priority for clarity.
Use the assoc library instead of what was coded directly in orb2dbt.
This is to standardize how event associations are done so that orb2dbt
will do exactly as other programs like dbgrassoc.
orb2disk
improve the man page for orb2disk
if final command line time argument is "last", stop after reaching current last packet
in orb (rather than attempting to go until last packet copied is the last packet)
attempt to patch up short segment files at startup
mention the defaults for size options in man page
add another parameter to specify how often state file is saved
add options to set # packets in segment files, limit the number of packets copied
adjust verbosity in orb2disk
don't save a stash packet id (==-16) in the state file
orb2ntp
set clock including seconds, forget about rerunning ntpd as the
version on the slate can be running with multiple instances.
add -M option to orb2ntp to set some "marmot" options. With this option,
it feeds every read packet to the memory clock, and always runs date
to set the clock when it's first started, using the first packet it reads.
orb2ntp
repeatedly set the clock when time advances quickly, as it might
if the marmot had been down for some time while the datalogger
was recording.
orb2orb
adjust verbosity, and note the capability of showing the pktid mapping
when -xvv option is used.
fix blunder so that getting a time range with orb2orb works properly
orb2stream
Add ability to create fixed length files in a directory.
orbassoc/dbgrassoc
Removed tele grid_params in orbassoc.pf.
Added 'tele_uni' and 'tele_slow' to match grids in ttgrid.
Add explanation of orbassoc log output.
Add a generalized detection sifter for rejecting and accepting
detections before any processing.
Add channel code based sifters to restrict P and S associations
(e.g. P associations only on vertical components)
Implement a final pass through a location code like genloc
Add script for running dbgenloc as a final pass.
Make default orid and evid 1 instead of -1.
Keep an event cache and check to see if a new event matches an old
one using the origin_lat_tolerance, ... grid parameters. If a match occurs then
don't output the event.
Drop the original associated location if a relocation can be done
successfully and the use_only_relocation flag is set.
Added rudimentary trigger function so that events get rapidly processed
without having to run orbtrigger
Make station trigger inactive for very latent detections.
Add capability to restrict defining stations to those within a
bounding box relative to the search grid boundaries.
Add table entry for specifying arbitrary distance-weight
functions for distance weighting.
Use deltim parameter instead of hardwired to 0.1 for arrival rows
Use weights to adjust deltim for defining arrivals.
orbdetect
Fix so that sample rate changes will not cause the program to exit.
It will just skip the packet in question. Apparently seedlink packets
have varying sample rates on a regular basis.
Added 'iphase' (commented out) to each of the 'bands'. Should now be
synchronized with the labels in orbassoc.
Added .*_BHZ to netstachanlocs Tbl.
Described iphase in man page.
Don't fill in net field in output detection row packets.
arrange for tagname to have null value in output
fix print bug found at UNR.
Convert over to using wffil filtering library
orblatency
write snet rather than net
orbmag
Include some explanation about need for correct snetsta based on comments from Natalia.
Convert over to using wffil filtering library
orbmonrtd
Deal with no net code in detection.
Add reverse_labels option to put channel labels on right side.
add -tshift_time option to synopsis
Convert over to using wffil filtering library
Implement waveform reaping with orbreapthr(3) routines so that orbmonrtd
does not hang when the orbserver goes away.
orbmsd2days
try to speed this up for Frank
orbreap
better messages
write everything to stderr so smoke test in forbserver tests works reliably
some sanity checking of stash packets before attempting to verify them,
to avoid seg faults
orbserver
fix the count of srcnames at orbserver startup by eliminating a blunder
make some error messages more informative
change status request messages to notify instead of complain, so that
they don't end up in rtsys reports
eliminate ORBRUP messages unless verbose_exists()
change the behavior of orbserver when it receives a packet
bigger than its allocated space. Instead of dying, now
it clears the existing space, complains, and drops the incoming packet.
various minor improvements which should not affect orbserver operation
add an option to ignore the results of the verification tests and run anyway,
for debugging
save statistics in a different output file, as requested by Frank and Jennifer
orbserver
change the behavior of orbserver when it receives a packet
bigger than its allocated space. Instead of dying, now
it clears the existing space, complains, and drops the incoming packet.
screen out packets from the extremely distant future or past |t| > 1e230
in case some orb buffers are empty on restart (after full disk situation), remove
them.
orbstat
add a new restrict command to the interactive mode to print only selected
channels from a packet in verbose modes.
add a method for printing full precision times if necessary,
and another command to show the current select/reject/restrict expressions
override the elog.pf parameter file by setting an environment variable
so that the output of orbstat -i doesn't end up on the orb.
try to explain that orbstat latency is not a direct measure of
packet travel time from the datalogger.
refer to orblatency.
orbtrigger
Get rid of net attribute reading from detection and writing into trigger table.
Get rid of all foreign keys calls.
orbwfmeas
Get rid of output net attribute in specdisc table.
Fix several problems that showed up in Trieste (dev version didn't work
at all because of some schema changes (get rid of net in wfmeas) and peaks across
channels didn't work execpt for orbwfmeas version using the wfmgme stuff)
Convert over to using wffil filtering library
orbxchange
first pass at implementing dhcp reconnection (to marmots, for example) using
a database table though which the dynamic ip is discovered.
orbxfer2
save the state directory in the correct location, in spite of
chdir's
add some more verbosity, some sanity tests to try to perhaps
catch the problem Eliana is seeing
change to central orbput_nolag
add option of specifying the net_sta_chan portion of srcname
on command line with -N option
perl
put release info into snapshots
fix options for top in snapshot on linux
add "antelope_update -L" to snapshots, so it's easier to tell
if some patches aren't applied.
add some use of prstat in solaris snapshot
add ls -lR to snapshot
another fillip on rtmail
remove documentation for perlpf (deprecated, for internal use only)
add a more complex method for specifying menus and corresponding routines,
and fix a bug in pfperl pfkeys
add touch and wait_until_static routines in utility.pm
change architecture names again for intel/powerpc macs in osinfo.pm
try to improve the ptk man page, adding explanations of relative row/column
positions as suggested by Kent
try to avoid taint problems in ptkalert as suggested by Kent.
add a man page for utility routines
handle better cases where gethostbyname fails (on linux/marmot) in rtmail
perldb
fix failure (segfault) of legit_ip when there is no restriction code.
improve error message for saving value to database
clean up some error messages
fix some memory leaks, following a suggestion from Kent
perlorb
first attempt at adding special stash routines to perl i/f
fix some problems unstuffing zero length packets
fix address from orbstat in perl interface
improve error messages, warn about no threading
add orblag and orbput_nolag
fix bug which Kent pointed out with empty suffix input into suffix2pkttype
perlsysinfo
eliminate nan resulting from some statvfs results
pfecho
change pfecho output slightly so that it can be directly copied into
another parameter file without editing.
pkgIndex.tcl
allow not having Brttplot when loading Dbe package
pktmon
Add a man page of examples for pktmon.
Minor typo fixes and clarifications to pktmon.1
switch to using rtmail for mailing alarms
Attempt to provide a different failure mode when the state file
is corrupt for some reason: move the old state file aside and start
a new one.
q3302orb
Eliminate some of the register_error calls in q330_read_data and some of
the lower level subroutines. These were not every getting cleared with a
complain or clear_register and apparently caused q3302orb to eventually
SEGV. Added a clear_register(1) at the beginning of every registration.
Added a number of new options that allow for a new "hibernation"
mode that is entered into automatically based upon user setable
dataloggers registration sleep and max retries parameters. Once
in hibernation mode a datalogger thread will not attempt to
communicate with the datalogger until 1) a start command is received,
2) a POC message is received or 3) the inactivity timeout expires.
Note that this works with the normal startacq disposition.
These changes cause q3302orb to put out "partial" status packets
whenever a datalogger acquisition mode changes. This behavior is
set by a new parameter. In this new behavior mode, you will see
acquisition mode changes for dataloggers even if the pfstatusreport_interval
is long.
Get rid of status error messages during deregistration.
Add q3302orb run time in status packets
Don't check for response from a deregister command.
Put out final status packet at shutdown
Copy over some of the POC logs to the datalogger threads.
In particular 1) a log to announce ip address changes and
2) a log to announce that an acquisition start is due to a POC
Fix so that a POC will immediately wakeup a thread in
REGISTER_SLEEP state.
Added POCs in last 24 hours and ip-address changes in last 24 hours
to status variables.
Error exit immediately if any getconfig structure returns an error.
Add RGFLGS error log
Fix con strings to reflect actual thread run states.
These changes re-implement the computation of the communication efficiency using
the values of total data packets sent and data packets retransmitted from the Q330
status structures instead of trying to guess these numbers at the q3302orb end.
This should result in a much more stable and accurate estimate of communication
efficiency.
Add a short delay before sending out the first data user message.
Fix a bad placement of q330_umsg in the wrong thread. This was
acting as a bottleneck for all of the datalogger processing threads.
Add flow control
Specify flow control in parameter file.
Add version to status packets.
Add new "reg" acquisition state.
Changed default local_port_base to not coflict with system ephemeral
ports and mentioned the ephemeral ports in the man page.
Put in more deregistration calls to minimize delays
when using dynamic local port assignments.
Ignore deregister if ip-address is NULL.
Attempt to clean up various timeout and wakeup problems
in thread state changes.
OK - deep breath - this implements full remote "system" control of
all dataloggers through the C1_CTRL command structure. What that means
is that you can 1) reboot, 2) save config to eeprom, 3) resync,
4) turn on gps, 5) turn off gps and/or 6) cold start gps through a
batch dlcmd for the entire network (see the q3302orb man page).
Put in a new control_inactivity_timeout parameter that causes links
to re-register whenever the control port connection appears to be
inactive - we are seeing this on lots of the WB stations which basically
disables commanding the stations or getting status.
Changed the behavior of the shutdown_timeout parameter so that is active
for both startacq and listen mode threads. Ths is now link an "activity"
timeout that will cause automatic re-registration on all threads after
a certain connect time. This could be useful for these WB stations where
connections get lost after a certain amount of usage.
Re-arrange where bufpcnt is computed so that it will
switch to a NULL value whenever the status packet request
fails.
Make error logs during registration problems more informative
Fix execution order problem in status request threads
Add disposition to inp status
These changes put the last ip address into the state file and read
these back in a startup. Right now nothing else is done. However, we could
use this to implement initially setting the datalogger ip-addresses from
whatever was last used from a previous execution. I am not sure right now
what is the best way to switch from using a specified ip-address in the
parameter file or the last address from the state file or just set it
to NULL and wait for the POCs.
Added setting local port numbers
fix a bug in the bytes read-written in last 24 hours
This changes the behavior of deregister so that it always
tries to get back an ACK and if not sends one more C1_DSRV
and exits. This may get rid of the errors associated with C1_DSRV
sprays.
Change default shutdown_buffer_wait to 15 seconds
streamline control debug messages
economize on registration overhead.
Fix log message bug involving DP3 instead of DP4
Added Baler power control and setting q330 ip-address with dlcmd.
Put in web_port in baler token parsing and reporting.
Added mass locking and unlocking throught dlcmd interface
Added support for the optional Q330 auxiliary data channels through
the normal status parameter interfaces. This update will automatically
switch properly between single-ended and differential data channels
as reported by the bitmaps in the data blockettes.
Write state file into a temporary file and only rename it if all
of the writes and close were successful. This should fix the problem of
a statefile corrupted because of a disk full or whatever.
Can put in "-" for SN and q3302orb will attempt to POLLSN for serial number.
This requires the Q330 to be configured to allow POLLSNs. This is being added
mainly to support marmots.
Added new program q330pocd which acts as an independent Q330 POC daemon
for receiving the UDP POC messages, encapsulating them as ORB pf packets
and changes in q3302orb so that these ORB packets can be read as sources
of the POCs. This will allow multiple q3302orb instances to acquire their
POCs from a single daemon program.
Cause q3302orb to always put its complete
command line and parsed parameter file contents out as
a stash packet once at start time using the status packet
source name.
Add capability to bind the local UDP sockets to
a particular ip-address in cases where the host
has multiple internet interfaces.
Add the dlsite table to the status packet stash.
Add in memory error status from Q330 requested status LOG structures.
Change calibration error status in data stream to be regularly sampled.
Implementation of request for Q330's "Announce" structure which contains
the POC destination ip-addresses. Note that this is one of the only requests
that can only be done on the config port. Therefore it is necessary to do
this through a dlcmd "control" command. Therefore, this request is not made
on a routine automatic basis like the other configuration requests.
Fix man page description of how to connect to an ORB for getting
POC messages.
Added stash entries for each of the datalogger log srcnames. These stashes
form tables of all of the waveform channels being acquired by each datalogger and the
mappings into orbname/srcname. This is intended to help dlmon to figure out
how to display waveform data and as input to the formation of the new dlchannel
table.
Also added Q330 ping capability to q330util.
Finishing touches on the dlname/log stash packets. These now contain
the datalogger model and serial number and all of the channel mappings,
which include the SEED net-sta-chan-loc codes, a string describing the
datalogger source of the channel, a fully resolved orbname where the data is
being written and the srcname used to multiplex the channel. This should provide
all of the hooks needed to connect SEED channel codes with specific dataloggers
and where the channels are being written in the ORB world.
Add specification of local ipaddress for machines with multiple
ethernet interfaces.
Switch to raw unbuffered file descriptors for writing out the state file.
Add UDP/IP overhead comment about calculation of total datarates.
Get rid of some unnecessary sleeps
Added some explanation to data_cal_error.
Fix up interrupt handlers.
Handle interrupted polls and reads a little more gracefully.
Add new ORB output packets that contain the Q330's internal time
from its GPS synced clock.
Make all serial number strings upper case.
This may fix the problem with case conversions and its various side
effects.
implement the new parascientific Q330 acquisition through its serial ports.
Add serial stuff to dblk processing list
Added shutdown_wait_time parameter to control how long q3302orb waits for
all of the dataloggers to be de-registered during a program shutdown. This
was originally hardwired to 20 seconds and then to 2 seconds to deal with
rapid shutdown for the marmots. It turns out that 2 seconds is too short for
remote dataloggers through marginal comm links or in cases where the link
parameters cause longish read timeouts.
Finally got around to putting all of the datalogger status blocks into
pf form which is return with the new getstatus command (using dlcmd).
put getstatus in man page.
fixes a bug with setting the sensor control lines
for massrecenters, etc. in cases where the "active" signal is
low instead of high. This can cause problems with Guralp sensors
which need to be pulsed by switching from 5 t0 0 volts instead of from
0 to 5 volts on the control lines.
Rework the response logic after seeing a config change on the data
port - after conversations with Joe.
last mod before buttoning down the changes for
the marmot to support the Parascientific sensors. This change implements
automatic determination of calib and segtype from Q330 status blocks
associated with the serial data channels.
Set default segtype to 'c' for counts for anything other than the 24-bit
data samples. Leaving it at '-' causes dbpick to display the units as nm
instead of cts.
Add set verbose_log to commands section
Add more db related printout when there is an error.
trap poll error return of EAGAIN and treat like EWOULDBLOCK (i.e dont do anything)
fix the problem we are seeing with the DP token changed bit
set in the status return.
always ask for all token memories regardless
Add extra non-blocking read before poll. This shouldn't be necessary.
The non-blocking read after shouldn't either, but it seems to be
anyway.
A little more output to mark EWOULDBLOCK events.
All inclusive signal handler as an attempt to resolve the
returns from the system pause() on the marmot.
Put shutdown into main thread and culled out signal list to be consistant
with Linux signal list.
Add undocumented -nowritestash command line option for debugging
Flush everything and write state file before
waiting for acquisition to stop. Hopefully this will
work around the mystery hangs during acquisition shutdown
on the marmot.
qtunbale, qtunbale2
add -I option to executions of miniseed2{orb,days} from within
qtunbale
attempt to switch so that qtunbale doesn't generate bogus miniseed
blocks when only a partial block is read from the baler.
Unfortunately, no balers are accessible here, so I can't test this.
render
add struct mode
handle unsigned, describe the -m option better
added clause to suppress generation of certain routines
improve debug printing
rt2orb
add missing parameter to rt2orb.pf
Die when orbput returns an error.
Fix uninitialized string
Dont run status thread if status disabled
Fix bug where two threads were writing into the same orb write socket
asynchronously. Apparently this causes occassional corruption of ORB
packet.
Put version and run time into pf/st packets.
rtchecksums
revert to cksum on all machines, because Sun evidently
changed elfdump -k in Solaris 10 - it no longer gives
the same checksum!
rtdbclean
clarify the orb2db_msg mechanism
rtexec
comment out orbtrigger in default rtexec parameter file
truncate to integer the delay before running compression of old log files, hopefully
correcting new non-fatal error during startup
add a bit more release information to the startup messages
Fix rtexec so that it reliably detects still running cron jobs and
does not restart them while the previous job is running, even
across rtexec executions.
The fix involves eliminating a test for the working directory of the
job, which was broken on Linux and can't be made to work on Darwin.
In addition, I've tried to more completely separate cron jobs from the
normal rtexec log and from the rtsys.history table, which should make
the rtsys report a bit more manageable.
Added command lines for rt2orb, orb2logs, orbserver64, diskserver,
dbidserver, dborigin2orb. Various other cleanups and reorganizations.
For rtinit.pf added idserver and rtlogs to directories and dbids,
diskserver, and orbserver64 to parameter_files.
allow shutdown order to specify programs names or task names.
improve the description of shutdown order
add orb2disk to the shutdown order
try to deal with a clock (like on the slate) where now() is
behind filesystem times, particularly times on pf/* files.
try to streamline shutdown a little for slate
change : to . in save directories for Macs, also change : to - in
Startup and Shutdown task log names for Macs.
avoid killing things twice if possible
go back to 1 second sleeps while waiting for processes to die.
be more agressive about generating incident reports -- on a mac, no
core files are generated by default, so waiting for a core file means
no incident reports. Now, rtexec should generate an incident report
whenever a program dies from certain signals, including bus error,
segmentation violation, floating point exception, trap, illegal instruction,
etcetera.
Improve the handling of stopping when a task dies.
put time tags in the Why file.
allow redirection in Startup and Shutdown tasks
Correctly recognize and annotate properly when an incident report
is generated without a core file.
Stop putting the pointless exit code in the message about dying from a signal
Don't generate an incident report over SIGPIPE
shorten long command lines to avoid problems with new return code from dbputv
Explain that when core files fall somewhere other than the rtexec.pf
directory, they're not found by rtexec and information from them does
not appear in incident reports.
rtincident
attempt to get MacOS X crash report
add pstack output to rtincident reports -- get stack from all threads
rtmail
update rtmail to correct usage line, and add to CAVEATS in man page, responding
to Taimi's comments.
rtmonitor
futile attempts to fix rtm "floating point" errors on viper
reduce the number of floating point errors reported on arm by using catch
add processor type and more explicit Antelope version in rtm time/date menu
allow no waveform database in rtm
get rid of all complaints about missing database
switch to pid_exists instead of checking /proc/pid for macs
switch cpu usage display (in top panel) when #cpu's is > 4, using
lines instead of bars. This is for Frank's 32 cpu machine
eliminate absolute requirement for Tkpixmap on marmot
try to suppress another funny problem with floating point
put an absolute path in when running epoch to get a version
rtorbcmd
Change SCHEMA_DEFAULT from rt1.0 to css3.0
rtoutage
rename net to snet
rtreport, rtsys
add a little more space to make columns line up better
add Antelope version to rtsys and rtreport reports
don't ignore some non-antelope messages from shell in log files
attempt again to improve the output of rtsys by better filtering of the
log files and some attempt to compress out multiple lines with the
same complaints.
improve printout of restarted processes
allow running reports without a database
ignore certain messages in rtsys
ignore incident reports from the logs directory
clean up some temporary files
make error message more consistent between linux and solaris
sachd
don't print garbage if the file doesn't exist.
seed2db
fix bug which causes a segmentation violation when stagedir is not specified.
intercept dereference through null pointer when stages are missing in seed volume
Don't write out SEED net code into the affiliation table
Don't print out 'no ndens' errors when processing an extended
B0057. Also, make the FIR filter symetry test a little less
stringent for cases where there are single coefficient errors.
setup.csh.id setup.sh.id
add perl/bin and tcltk/bin to default path
this isn't actually required by Antelope, but some of the programs
like perl-widget and tclhelp are in these directories
sgd
fix some output and attempt to fix problem when listening to automatic
port scan at UCSD.
status: cpu2orb, df2orb, heartbeat, orblog, ps2orb, tail2orb
add -N option to status programs to allow specifying the net_sta portion
of the srcname, so all these packets can be made to fit into the same orbserver station
count as the data packets. Also eliminate leading underscore when default
hostname is used.
tail2orb
various improvements to tail2orb and its man page:
* bring out the maximum number of log bytes per packet to the -b option
* mention the throttling in the man page
* skip ahead in log files if they grow faster than the throttle allows.
* improve the verbosity so it's useful for debugging
* allow having a state file without using a parameter file
tkbrttplot
put in an alternative if input range is <= 0
Added new trace sample type to the vector object.
tkdbpick
get X-window error handler right
Convert over to using wffil filtering library
trdisp
add caveat that trdisp is only for display
trexcerpt
try to fix up the reference to output data types to be more useful.
Corrected default pattern.
Made sure all references were for: "%Y/%j/%{sta}.%{chan}.%Y.%j.%H.%M.%S"
clarify how event data makes it into sac headers when using trexcerpt
add some info about debugging when writing sac headers
truncate_log
switch to elog routines
add -f option
try to truncate with older date if can't find specified date
switch to pid_exists so this works right on macs
ttgrid.pf
Added regional grid to ttgrid.pf to make it consistent with orbassoc
ucsdsp2db
fixed up a couple errors exposed by new compiler -- probably this program should be retired, though