The Tcl-interface to The SINQ histogram memory
The entry point to the Tcl interface for the SINQ histogram memory is the
SINQHM command. The exact syntax is:
SINQHM name computer port
This command creates a new command, name, which will be used in future to refer
to the histogram memory. The next parameters specify the computer name of the histogram memory (HM)
and the port number where it is listening (mostly 2400). This command initialises all
necesaary data structures and starts a connection to a SINQ HM master server. For the explanation of that,
please refer to documentation for the histogram memory.
Configuration commands
Now the HM is ready to be configured. The name created as above will for the purpose
of this explanation been assumed to be HMM, for histogram memory master. This
understands the following commands:
- HMM config mode modif n length binwidth
- this configures the HM. The parameters are: mode as the measuring mode,
modif, another mode qualifier, n the number of histograms, length for the
length of the histograms and binwidth, the size of an individual bin. Currently only
1,2,4 are supported binwidths. The mode parameter can be:
- SQHM_TRANS
- transparent mode, no binning takes place. Useful for debugging.
- SQHM_HM_DIG
- normal histogram mode with digitised read out.
- SQHM_HM_PSD
- a special for charge division read out for a PSD. Binning takes place.
- SQHM_HM_TOF
- time of flight mode.
Possible values for the modif are:
- SQHM_DEBUG
- starts a debugger in the histogram memory.
- SQHM_UD
- selction of histogram according to up/down bit from electronics???
- SQHM_CNT_OR
- counts out of range events, for debugging purposes.
- SQHM_BO_IGN
- ignores bin overflow.
- SQHM_BO_SMAX
- leaves overflowed bins at maximum count.
- SQHM_BO_CNT
- count bin overflows. They are left in a table.
- SQHM_STROBO
- stroboscopic mode. A signal from the front end electrics defines the
histogram where to bin too.
- HMM deconfig harsh
- deconfigures the HM. harsh can be 0 or 1. If 1 all child processes will
be removed as well.
- HMM debug level
- controls the level of debugging information printed by the HM to its COM1
console port.
- HMM exit
- terminates the histogram memory software. DO NOT USE, a reboot is necessary
or a manual restart of the software.
- HMM status
- prints a status report for the HM.
- HMM DAQ name
- starts a data aquisition client with name name. This is needed in order
to invoke data aquisition and read the histogram memory. For more information
see the main histogram memory documentation. Name is a new command afterwards.
- HMM delDAQ name
- terminates the client name. Its associated command gets removed as well.
Data aquisition commands
This section describes the commands understood by the command generated by
HMM DAQ name. These commands control data aquisition and read out. For the
purpose of this description, the name of the DAQ command will be assumed
to be HMS, for histogram memory slave. This understands the following commands:
- HMS read n start end array
- This reads histogram n into the Tcl array array, which will
be created as necessary. A value of -1 for n means read
out of the whole histogram memory. Reading starts at bin start and end bins are read.
The resulting array will hold values from 0 - end (i.e. Array(0), array(1),..)
where the values read can be found.
- HMS write n start end array
- can be used to write data to the histogram memory. The meaning of the
parameters is the same as for read. Please take care to initialise the
value array properly.
- HMS zero n start end
- a special form of write, which fills the HM with 0.
- HMS start
- starts a data aquisition.
- HMS stop
- stops a data aquisition.
- HMS inhibit
- pauses a data aquistion.
- HMS continue
- continues an inhibited data aquisition session.
So, this is fairly complex In order clarify the usage of this feature, an example
will be given. In this example a DMC type HM will be configured, data be collected
and read out. The DAQ slave will be deleted.
The data read out will be printed.
SINQHM HMM pfe31.psi.ch 2400
HMM deconfig 1
HMM config SQHM_HM_DIG SQHM_BO_SMAX 1 400 4
HMM DAQ HMS
HMS zero 1 0 400
HMS start
after 30000 # sleep 30 seconds
HMM status
HMS stop
HMS read 1 0 400 Result
HMM delDAQ HMS
for { set i 0} { $i < 400 } { incr i} {
puts stdout [format "Counts in bin %d: %d" $i $Result($i)]
}