caenv812gui -- Megawidget control panel for the CAEN V812 CFD


package require caenv812

caenv812 pathName ?options?


caenv812gui supplies a megawidget that is a control panel for the CAEN V812 constant fraction discriminator. The megawidget is the same as that used by the caenv812control application, and is available for use in custom user control applications.


-crate vmecrate

Specifies the VME crate in which the module controlled by this widget lives. If this is not supplied when constructing the widget, it defaults to 0. You may not configure the -crate after the widget has been constructed as the widget is bound to the module when it is first constructed.

-base base-address

Required option at construction time. The argument to this option is the base address of the module. There is no default. The -base option must be supplied at construction time and cannot be reconfigured after the widget is initially constructed.

-name module-name

Required option at construction time. The argument to this option is the name of the module. This module name is associated with the module address in order to interface the widget with the device support packages CFD812 and CFDState. This option cannot be reconfigured after construction.

-command script

Provides a script to be called when significant modifications are made to the device. This allows for application specific action that is not the function of the GUI to occur. For example the new state of the device can be written to a backup file.

Subsequent -command options override rather than accumulating. To remove an existing -command, specify an empty string for the script.

The script is called with a three element list appended to it. The elements are action, id, and newvalue.

action describes what is being changed and can be one of threshold, width, deadtime, majority, or mask.

id describes which item was modified. For the threshold action this is a channel number. For mask parameter, this is an empty string (""). For all others this is either 0, or 1, describing which of the two 8 channel banks is being modified.

newvalue is the new value being set for the parameter defined by action and id

-alarmscript script

Provides a script that is called when some exceptional condition is detected. The alarm script will be passed a single parameter which is a human readable alarm string. Note that caenv812gui does not currently define any alarms, however this option is provided for compatibility with devices that do support alarms.



Retrieves a property list that describes the current device settings. Property lists are a device independent way to represent module settings. Each property consists of a property name and a property value formattted as a Tcl List. A property list is a Tcl list containing properties as elements.

See PROPERTIES below for a list of the properties and their meaning.

Please note that the device registers of the CAEN V812 are write-only. The property list is therefore generated from internal data. If you have are controlling the same module from more than one place, the property list will be unreliable.

setProperties propertylist

Requests that the gui process the propertyList parameter and set the module accordingly. The property list format is described in getProperties above.


The following properties are supported by the caenv812gui:

threshold0 .. threshold15

The thresholds of the module's 16 channels.

width0, width1

The widths of the lower and upper bank of module channels. Bank 0 controls channels 0-7 while bank 1 controls channels 8-15.

deadtime0, deadtime1

The deadtimes of the lower and upper bank of module channels. The banks referred to here are the same as the banks referred to by the width0, width1 properties.


The majority threshold.


The enables mask.


CFD812, caenv812control