controlClient -- Object to interact with VM/CCusb control server


package require usbcontrolclient

set object [controlClient name ?options?]

$object Get name channel

$object Set name channel $value

$object Update name

$object Monitor name


The VM and CC USB readout programs provide a slow controls server. This allows control panels to interact with drivers in the readout program so that slow control device settings can be made and status read. controlClient provides an encapsulation of a connection witht the slow controls server. The object opens the connection sets it up properly and provides methods that allow you to perform operations with drivers.



The value of this option is the host on which the controls server is running. This defaults to localhost, the system the client is running on.


The number of the port on which the server is listening for connections. This defaults to 27000. Note that with NSCLDAQ version 11.0 and later, VMUSBReadout and CCUSBReadout support the --port=managed option to specify that they will interact with the NSCL server port manager to obtain and advertise a port. See USB Control operations and slowControlsPrompter for methods to determine ports advertised by control servers on local and remote systems.

Note that in general interacting with a driver instance while the run is active results in the run pausing so that the operation can take place, and then resuming once the operation has completed.


$object Get device channel

Requests the control server to return a parameter from a device driver instance. device is the name of the device instance (created in the control configuration file). channel is a driver specific name of something that can be retrieved. See the documentation of individual device drivers for information about the names of parameters that can be retrieved.

The $object is the object command created by constructing a controlClient instance.

$objectSet device channel value

Sets the value of a parameter on the control server represented by $object. device is the name of a device driver instance and channel the name of a parameter supported by that instance.

value is the value that will be assigned to channel.

$object Update device

Some devices have sets of write only registers. Device drivers for these devices generally maintain a shadow copy of these registers locally. The Update command writes any shadow registers to the device connected to the server represented by $object

$object Monitor device

Some devices require peridodic monitoring. Device drivers for the control server can contribute elements to a list of operations that is periodically executed. This list is triggered both when the run is halted and when data taking is active.

When the list returns data, each driver is then called to get its data from the input buffer. The Monitor command retrieves the most recently received data from this monitor list for the driver instance driver defined in the server represented by $object