TOC PREV NEXT INDEX

Put your logo here!


7 CONFIGURATION FILES

Directory Structure:

$INS_ROOT/SYSTEM/MISC/IRACE/SYS - System Configuration File(s)

and IRACE bootables.

/DET - Detector Configuration File(s)

/DSUP - Default Setup Files

/VOLTAGE - Voltage Setup Files

/CLK - Clock Pattern Setup Files

/SSD - Subpattern Dispatcher Files

/SEQ - Sequencer Program Files

The following file name extensions are used:

Bootables: .btl

System Configuration Files: .cfg

Detector Configuration Files : .dcf

Voltage Setup Files: .v

Clock Pattern Setup Files: .clk

Sequencer Subpattern Dispatcher Files: .ssd (trivial loop format)

_ssd (loop executable - tcl format)

Sequencer Program Files: .seq (trivial sequence files)

_seq (loop executable - tcl format)

7.1 SYSTEM CONFIGURATION FILE

7.2 DETECTOR CONFIGURATION FILE

7.3 DEFAULT SETUP FILE

The default setup file (.dsup) contains default values for the dynamic acquisition process parameters. It is also possible to define any new parameter here, which can then be used in subpattern dispatcher files and the sequencer program files. For each readout mode there exists exactly one default setup setup file.

7.4 VOLTAGE SETUP FILE

The voltage setup files contains the definitions of all clock- and DC-bias voltages for one detector:

7.5 CLOCK-PATTERN SETUP FILE

The clock-pattern setup file contains the definitions of all subpatterns needed for the readout modes of one detector:

7.6 IRACE LOOP STRUCTURES

The loop files do not need parsers and expression evaluators. Both subpattern dispatcher files and sequencer program files are executable Tcl-scripts, which are invoked as sub-shells from DCS. The Tcl-language has been chosen, as this is already used for the templates and is supported by all VLT-releases. Within the Tcl-script the developer has full freedom to define local variables to be used in expressions. Often used expressions can be assembled in a Tcl-library by each application. External parameters held by DCS have to be explicitly declared as such within a USE command. The parameters are referred to afterwards as $irlVar(parameter-name).

References to sub-pattern dispatcher files are done with the

"ASSIGN <name> <file-name>"

construct in the sequencer program file. The "$gvar(T_$<name>)" keyword can be used in the sequencer program file as a substitution for the execution time of a sub-pattern dispatcher program. The special loop-counter "-1" is used to define an infinite loop (only valid in the sequencer program file).

The resulting loop object and possibly new/changed DCS-parameter values are passed back by the Tcl-shell to the calling function with the "PROGEND" command (this will also exit the Tcl-shell). Generally all parameters in the $irlVar() array are passed back. By defining new array elements it is possible to define and set new DCS-parameters within the Tcl-shell. For later usage within DCS these have to be defined in the dictionary or at least in a default parameter setup file (for NOCCS version) of the current read-out mode.

The Tcl-scripts are built with the standard vltMakefile. The <irlParse>library has to be added to the Tcl-library list in the Makefile. The TCLSH for the scripts should be set to "tclsh"

Keyword Summary:

"ASSIGN <name> <file-name>" - Assign a name to a sub-pat. dispatcher file

"USE <parameter list>" - Declare external parameters

"LOOP <loop counter>" - Loop start token

"END" - Loop end token

"EXEC <$name> <n>" - Execute sub-pat. dispatcher <name> n times

"EXEC <nr> <n>" - Execute sub-pat. number <nr> n times

"SYNC" - Insert synchronization point

only relevant in external trigger mode)

"PROGEND" - Pass back results and exit

Example for Sub-Pattern Dispatcher File:

set DELAY 1

set FRAME_START 2

set READ1 3

set READ2 4

set FRAME_END 5

USE DET.WIN.NX DET.WIN.NY DET.WIN.TYPE

if {$irlVar(DET.WIN.TYPE) == 0} {

set nx 64

set ny 128

} else {

set nx [expr ($irlVar(DET.WIN.NX) / 2)]

set ny $irlVar(DET.WIN.NY)

}

EXEC $FRAME_START 1

LOOP $ny

LOOP $nx

EXEC $READ1 1

EXEC $READ2 1

END

END

EXEC $FRAME_END 1

PROGEND

Example for Sequencer Program File (-> Current Sequencer Program):

ASSIGN DELAY "../SSD/Delay_ssd"

ASSIGN FRAME "../SSD/Read_ssd"

ASSIGN RESET "../SSD/Reset_ssd"

USE DET.DIT DET.NDIT DET.NDITSKIP

if {$irlVar(DET.NDIT) <= 0} {

set irlVar(DET.NDIT) 1

}

set irlVar(DET.MINDIT) $gvar(T_$FRAME)

set t1 [expr ($irlVar(DET.NDIT) + $irlVar(DET.NDITSKIP))]

set irlVar(DET.EXPTIME) [expr ($t1 * \

($irlVar(DET.DIT) + $gvar(T_$FRAME) + $gvar(T_$RESET)))]

set delFac [expr ($irlVar(DET.DIT) - $gvar(T_$FRAME)) / $gvar(T_$DELAY)]

LOOP -1

LOOP $irlVar(DET.NDIT)

EXEC $RESET

EXEC $FRAME 1

EXEC $DELAY $delFac

EXEC $FRAME 1

END

SYNC

END

PROGEND

7.6.1 IRACE LOOP DEBUGGER



Quadralay Corporation
http://www.webworks.com
Voice: (512) 719-3399
Fax: (512) 719-3606
sales@webworks.com
TOC PREV NEXT INDEX