CRUISE_SETUP.expect
author A.M. Thurnherr <ant@ldeo.columbia.edu>
Tue, 14 Sep 2010 13:34:39 -0400
changeset 4 fda11de1826e
child 5 f41d45fe7ae9
permissions -rwxr-xr-x
version left on Poseidon at end of P403
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
     1
#======================================================================
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
     2
#                    C R U I S E _ S E T U P . E X P E C T 
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
     3
#                    doc: Wed Mar 10 21:14:18 2004
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
     4
#                    dlm: Thu Aug 26 19:49:03 2010
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
     5
#                    (c) 2004 A.M. Thurnherr
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
     6
#                    uE-Info: 118 24 NIL 0 0 72 2 2 8 NIL ofnI
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
     7
#======================================================================
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
     8
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
     9
#--------
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    10
# HISTORY
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    11
#--------
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    12
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    13
# Mar 10, 2004: - created during NBP0402
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    14
# Apr  4, 2004: - final version NBP0402
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    15
# Jun 15, 2004: - adapted to BB150/Workhorse setup
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    16
# Jun 16, 2004: - ditto
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    17
# Jun 19, 2004: - BUG: could not handle multiple BB150 data files
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    18
# Jan 19, 2006: - updated documentation
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    19
#		- allowed for empty-string time_server
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    20
# Nov  4, 2006: - changed backup dir structure
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    21
# Aug 25, 2010: - rename* funs modified to allow them to be used to 
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    22
#		  that downladed file names have correct case
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    23
#		- renamed from DEFAULTS.expect to CRUISE_SETUP.expect
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    24
# Aug 26, 2010: - added ymodem_receive_cmd
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    25
#		- changed default string quotes to {} to prevent Tcl variable
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    26
#		  and command substitutions
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    27
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    28
#-----------
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    29
# TWEAKABLES
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    30
#-----------
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    31
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    32
# At the beginning of each cast, the clock of the acquisition computer should
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    33
# synchronized with the master clock used for timestamping the GPS information.
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    34
# The easiest way to accomplish this is by probing an NTP server on the ship
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    35
# (if there is one), which can be defined by setting the following variable.
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    36
# If there is no such server available, the variable should be set to the
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    37
# empty string (set time_server {}), in which case clock synchronization must
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    38
# be done differently (e.g. manually).
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    39
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    40
set time_server	{199.92.161.2};
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    41
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    42
# bbabble needs to know the tty device name(s) of the serial connection(s)
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    43
# to the ADCP head(s). If only one head is connected, tty1 is ignored.
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    44
# If two heads are connected, the device names are exchangeable, i.e.
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    45
# either instrument can be connected to either port.
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    46
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    47
set tty0 {/dev/ttyS0};
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    48
set tty1 {/dev/ttyS1};
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    49
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    50
# In case of 2 ADCP heads, babble needs to know which is the master and
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    51
# which is the slave. This is accomplished by setting the following variables
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    52
# to the corresponding instrument serial numbers (PS0 output). By convention,
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    53
# the downlooker is the master. If only a single head is connected, both
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    54
# variables are ignored.
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    55
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    56
set master_sn 7877;
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    57
set slave_sn  1412;
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    58
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    59
# Before deployment, every ADCP head has to be programmed by sending it
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    60
# a corresponding command file, defined by the following variables. If only
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    61
# a single head is connected, the slave_* variable is ignored.
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    62
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    63
set master_cmd_file {MASTER.cmd};
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    64
set slave_cmd_file  {SLAVE.cmd};
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    65
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    66
# For convenience, it is best to use the station number to name the ADCP data
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    67
# files, and to indicate whether the data file comes from the master or
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    68
# slave. The following variables variables define the printf(3) format
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    69
# that is used to create the files names from the station number. If only
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    70
# a single head is connected, the slave_* variable is ignored.
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    71
# NOTE: Some implementations of the ymodem protocol (notably lrb running
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    72
#	under Mandrake 8) use lowercase for the downloaded file. It is
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    73
#	therefore better to use only lowercase characters in the deployment
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    74
#	names.
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    75
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    76
set master_deployment_name_fmt	{%03ddn};
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    77
set slave_deployment_name_fmt	{%03dup};
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    78
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    79
# Older RDI instruments (e.g. the BB150) do not allow the data-file name
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    80
# to be defined in the instrument, in which case the files have to be
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    81
# renamed after downloading. The following variables define the shell
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    82
# globbing patterns for the master and slave. For example, the UH BB150
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    83
# used during CLIVAR P02 generated files with extension .612; the coresponding
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    84
# globbing pattern is {*.612}. If only a single head is connected, the
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    85
# slave_* variable is ignored.
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    86
# NB: For dual-headed LADCP systems it is important that the globs do not
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    87
#     match both master and slave data files. {*.000} therefore will not
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    88
#     work for dual-head Workhorse systems.
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    89
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    90
set master_download_glob 	{};
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    91
set slave_download_glob		{};
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    92
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    93
# For consistency it is nicest if low station numbers contain leading
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    94
# zeroes. The following variable defines the corresponding printf(3) format.
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    95
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    96
set stn_format {%03d};
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    97
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    98
# The following directory is used to store command files, instrument
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    99
# configurations and ADCP data. Separate subdirectories (named according to
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   100
# stn_format) are used for each cast.
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   101
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   102
set raw_dir {../data/raw};
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   103
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   104
# After downloading, the data directory is backed up to the following
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   105
# directory. Make sure that it resides on a different disk than raw_dir.
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   106
# Empty string disables backup for testing purposes.
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   107
# NOTE: RELATIVE PATHNAMES MUST START FROM CAST DIR (NOT ACQUISITION DIR)
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   108
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   109
set backup_dir {../../backup/raw};
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   110
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   111
# By default, bbabble will look for standard UN*X ymodem receive
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   112
# programs (rb and lrb). If neither of these exist, if neither is in the
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   113
# current $PATH, or if options have to be passed (as is the case on some
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   114
# Linux distributions to ensure that the downloaded files have consistent
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   115
# (upper-)case filenames, the following variable can be set to a non-empty
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   116
# string, such as {rb -u}
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   117
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   118
set ymodem_receive_cmd {}
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   119
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   120
# bbabble can be made to abort downloading after a preset amount of time,
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   121
# defined by the following variable. 
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   122
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   123
set download_timeout 999999;
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   124
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   125
#----------------------------------------------------------------------
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   126
# Semi-Standard Functions
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   127
#----------------------------------------------------------------------
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   128
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   129
proc set_computer_time {} {				# set computer clock
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   130
	global time_server;
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   131
	if {[string length $time_server] == 0} {return}
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   132
	exec sudo rdate -s $time_server;
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   133
}
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   134
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   135
proc check_data {file} {				# check data file
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   136
	exec sh -c "scanbb $file";
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   137
	exec sh -c "sed -n '/^zmax/,/^zend/s/ at.*/m/p' `basename $file .000`.scn > /dev/tty";
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   138
}
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   139
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   140
proc backup_master_data {stn} {				# copy data to network
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   141
	global master_deployment_name_fmt master_cmd_file backup_dir;
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   142
	if {[string length $backup_dir] == 0} {return}
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   143
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   144
	if {![file isdirectory $backup_dir]} {
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   145
		error "$backup_dir does not exist relative to [pwd]";
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   146
	}
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   147
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   148
	set master_dir [format $backup_dir/$master_deployment_name_fmt $stn];
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   149
	if {![file isdirectory $master_dir]} {exec mkdir $master_dir};
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   150
	exec sh -c "cp [format $master_deployment_name_fmt $stn]* $master_dir";
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   151
	exec sh -c "cp $master_cmd_file* $master_dir";
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   152
	exec sh -c "cp *log $master_dir";
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   153
}
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   154
	
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   155
proc backup_slave_data {stn} {				# copy data to network
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   156
	global slave_deployment_name_fmt slave_cmd_file backup_dir;
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   157
	if {[string length $backup_dir] == 0} {return}
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   158
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   159
	if {![file isdirectory $backup_dir]} {
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   160
		error "$backup_dir does not exist relative to [pwd]";
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   161
	}
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   162
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   163
	set slave_dir [format $backup_dir/$slave_deployment_name_fmt $stn];
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   164
	if {![file isdirectory $slave_dir]} {exec mkdir $slave_dir};
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   165
	exec sh -c "cp [format $slave_deployment_name_fmt $stn]* $slave_dir";
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   166
	exec sh -c "cp $slave_cmd_file* $slave_dir";
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   167
	exec sh -c "cp *log $slave_dir";
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   168
}
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   169
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   170
proc rename_master_download_file {target} {		# rename after download 
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   171
	global master_download_glob;
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   172
	
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   173
	if {[string length $master_download_glob] == 0} {return}
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   174
	set files [glob -nocomplain $master_download_glob];
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   175
	set nfiles [llength $files];
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   176
	if {$nfiles == 0} {
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   177
		if {![file exists $target]} {
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   178
			error {can't find downloaded master file};
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   179
		}
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   180
		return;
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   181
        }
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   182
        if {$nfiles > 1} {
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   183
	        send_user {WARNING: Multiple files downloaded from master --- rename, backup, check manually!};
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   184
	}
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   185
	if {![string equal [lindex $files end] $target]} {
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   186
		exec mv [lindex $files end] $target;
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   187
	}
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   188
}
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   189
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   190
proc rename_slave_download_file {target} {		# rename after download
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   191
	global slave_download_glob;
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   192
	
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   193
	if {[string length $slave_download_glob] == 0} {return}
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   194
	set files [glob -nocomplain $slave_download_glob];
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   195
	set nfiles [llength $files];
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   196
	if {$nfiles == 0} {
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   197
		if {![file exists $target]} {
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   198
			error {can't find downloaded slave file};
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   199
		}
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   200
		return;
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   201
        }
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   202
        if {$nfiles > 1} {
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   203
	        send_user {WARNING: Multiple files downloaded from slave --- rename, backup, check manually!};
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   204
	}
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   205
	if {![string equal [lindex $files end] $target]} {
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   206
		exec mv [lindex $files end] $target;
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   207
	}
fda11de1826e version left on Poseidon at end of P403
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   208
}