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