EUROPEAN SOUTHERN OBSERVATORY

Organisation Européenne pour des Recherches Astronomiques dans l'Hémisphère Austral

Europäische Organisation für astronomische Forschung in der südlichen Hemisphäre

 

 

 

 

VLT PROGRAMME

 

 

VERY LARGE TELESCOPE

 

 

 

 

 

VLT Software

---

Base ICS control panel

User Manual

 

 

 

 

 

 

Doc. No.: VLT-MAN-ESO-17240-2606

 

Issue: 2

 

Date: 28/03/2002

 

 

 

 

 

 

Name                                                       Date                         Signature

                Prepared:               A.Longinotti                         28/03/2002

 

 

Name                                                       Date                         Signature

          Approved:             G.Raffi                                                   

 

Name                                                       Date                         Signature

                Released:               M.Ziebell                                 

 

 

VLT PROGRAMME * TELEPHONE: (089) 3 20 06-0 * FAX: (089) 3 20 06 514


 

CHANGE RECORD

 

 

ISSUE

DATE

SECTION/PAGE

AFFECTED

REASON/INITIATION

DOCUMENTS/REMARKS

 

1.0

30/10/2001

All

First issue

2

28/03/2002

2.0

MAR2002, SPR VLTSW20010501, VLTSW20010502, VLTSW20010666, VLTSW20010690

 


 

TABLE OF CONTENTS

 

 

1       INTRODUCTION................................................................................................................................................................................ 5

1.1        Purpose...................................................................................................................................................................................... 5

1.2        Scope........................................................................................................................................................................................... 5

1.3        Applicable Documents.................................................................................................................................................... 5

1.4        Reference Documents...................................................................................................................................................... 5

1.5        Abbreviations and Acronyms................................................................................................................................... 6

1.6        Glossary.................................................................................................................................................................................. 6

1.7        Stylistic Conventions..................................................................................................................................................... 6

1.8        Naming Conventions........................................................................................................................................................ 6

1.9        Problem Reporting/Change Request....................................................................................................................... 6

2       OVERVIEW......................................................................................................................................................................................... 7

2.1        ICS control panel architecture.............................................................................................................................. 7

2.1.1         Software Modules.............................................................................................................................................................. 8

3       OPERATOR’S GUIDE....................................................................................................................................................................... 9

3.1        Panel Start-up..................................................................................................................................................................... 9

3.1.1         Menu bar.......................................................................................................................................................................... 10

3.1.2         Global ICS Control........................................................................................................................................................ 10

3.1.3         Single Devices Control.................................................................................................................................................. 10

4       TUTORIAL: IMPLEMENTING ICS CONTROL PANEL FROM SCRATCH....................................................................... 12

4.1        Create the ICS control panel module................................................................................................................ 12

4.2        Design the ICS control panel layout.................................................................................................................. 12

4.3        Configure the ICS control panel layout.......................................................................................................... 13

4.4        Starting the ICS control panel.............................................................................................................................. 13

4.5        Creating a special device............................................................................................................................................ 13

4.5.1         Overriding default behavior......................................................................................................................................... 13

4.5.2         Building an uifClass from scratch............................................................................................................................... 13

5       CONFIGURATION GUIDE............................................................................................................................................................. 15

6       REFERENCE...................................................................................................................................................................................... 17

6.1        icbpan specific.................................................................................................................................................................... 17

6.1.1         icbpanLib.tcl.................................................................................................................................................................... 17

6.1.2         icbpanGUIcfg.tcl............................................................................................................................................................. 19

6.1.3         icbpanUIF.tcl................................................................................................................................................................... 21

6.1.4         icbpanICSControl.tcl..................................................................................................................................................... 22

6.1.5         icbpanICSCmd.tcl........................................................................................................................................................... 23

6.1.6         icbpanICSDevControl.tcl.............................................................................................................................................. 24

6.1.7         icbpanLamp.tcl................................................................................................................................................................ 26

6.1.8         icbpanShutter.tcl............................................................................................................................................................ 28

6.1.9         icbpanNamedPos.tcl...................................................................................................................................................... 30

6.1.10      icbpanContPos.tcl.......................................................................................................................................................... 32

6.1.11      icbpanSlit2Len.tcl.......................................................................................................................................................... 34

6.1.12      icbpanSlit2Wid.tcl.......................................................................................................................................................... 36

6.1.13      icbpanTilt.tcl................................................................................................................................................................... 38

6.1.14      icbpanGrat.tcl................................................................................................................................................................. 40

6.1.15      icbpanDpol.tcl................................................................................................................................................................. 42

6.1.16      icbpanAdc.tcl................................................................................................................................................................... 44

6.1.17      icbpanDrot.tcl................................................................................................................................................................. 46

6.1.18      icbpanSensor.tcl............................................................................................................................................................. 48

6.1.19      icbpanSensorVer.tcl....................................................................................................................................................... 50

6.1.20      icbpanSensorHor.tcl...................................................................................................................................................... 51

6.1.21      icbpanSensorSqr.tcl....................................................................................................................................................... 52

6.1.22      icbpanPmt.tcl................................................................................................................................................................... 53

 

1          INTRODUCTION

The software described in this manual is intended to be used in the ESO VLT project by ESO and authorized external contractors only.

 

While every precaution has been taken in the development of the software and in the preparation of this documentation, ESO assumes no responsibility for errors or omissions, or for damage resulting from the use of the software or of the information contained herein.

1.1              Purpose

All instruments need an ICS stand-alone Graphical User Interface (GUI) to be able to operate its functions, e.g. for engineering and maintenance purposes.

As from the OCT2001 release of the VLT Software, the Base ICS package provides instrumentation applications with common code dedicated to the development of ICS GUIs. The purpose is to make the ICS GUIs development faster, reducing the amount of application specific code and therefore the maintenance efforts associated to it, and at the same time to make the look & feel more homogeneous.

The common code is implemented in the module icbpan. An example of application using it is provided by the Template Instrument (see [RD 13]) and in particular the module xxipan.

1.2              Scope

This document covers only the part of Base ICS dedicated to the development of ICS GUIs.

The part dedicated to the ICS control applications is described in .

1.3              Applicable Documents

The following documents, of the exact issue shown, form a part of this document to the extent specified herein. In the event of conflict between the documents referenced herein and the contents of this document, the contents of this document shall be considered as a superseding requirement.

 

Reference

Document Number

Issue

Date

Title

[AD 01]

VLT-PRO-ESO-10000-0228

1.0

10/03/1993

VLT Software Programming Standards

[AD 02]

VLT-MAN-ESO-17210-0667

1.0

03/12/1997

Guidelines for VLT applications.

[AD 03]

VLT-SPE-ESO-17212-0001

2.0

23/02/1995

INS Software Specification

[AD 04]

VLT-SPE-ESO-17240-0385

2.1

15/07/1996

INS Common Software Specification

1.4              Reference Documents

The following documents are referenced in this document.

 

Reference

Document Number

Issue

Date

Title

[RD 01]

VLT-MAN-ESO-17200-0888

1.0

17/08/1995

VLT Common Software Overview

[RD 02]

VLT-MAN-ESO-17200-0642

2

30/03/2002

VLT Common Software Installation Manual

[RD 03]

VLT-MAN-ESO-17210-0669

1.4

20/10/1997

Motor Engineering Interface User Manual

[RD 04]

VLT-MAN-ESO-17210-0619

2.2

31/03/2002

Central Control Software User Manual

[RD 05]

VLT-MAN-ESO-17210-0707

1.6

30/09/1999

On Line Database Loader User Manual

[RD 06]

VLT-MAN-ESO-17210-0690

4.3

31/03/2002

Panel Editor User Manual

[RD 07]

VLT-MAN-ESO-17240-0853

1.4

25/04/2001

INS Common sw - oslx User Manual

[RD 08]

VLT-MAN-ESO-17240-0934

3

30/03/2002

Base ICS User Manual

[RD 09]

VLT-MAN-ESO-17240-1913

2

30/03/2002

Installation Tool for VLT Sw packages

[RD 10]

VLT-MAN-ESO-17240-2153

2

30/03/2002

INS Startup Tool User Manual

[RD 11]

VLT-MAN-ESO-17220-0737

3

28/03/2002

HOS - Sequencer User Manual

[RD 12]

VLT-MAN-ESO-17240-2240

2

28/03/2002

INS Common Software for Templates

[RD 13]

VLT-MAN-ESO-17240-1973

3

28/03/2002

Template Instrument Software User Manual

1.5              Abbreviations and Acronyms

This document employs several abbreviations and acronyms to refer concisely to an item, after it has been introduced. The following list is aimed to help the reader in recalling the extended meaning of each short expression:

CCS

Central Control Software

CPU

Central Processing Unit

ESO

European Southern Observatory

FITS

Flexible Image Transport Format

GUI

Graphical User Interface

HW

Hardware

ICS

Instrument Control Software

INS

Instrumentation Software Package

I/O

Input/output

IWS

Instrument Workstation

LAN

Local Area Network

LCU

Local Control Unit

MS

Maintenance Software

N/A       

Not Applicable

RAM

Random Access Memory

SW

Software

TBC

To Be Clarified

TBD

To Be Defined

UIF

(Portable) User Interface (Toolkit)

VLT

Very Large Telescope

WS

Workstation

<!-- Standard footer -->

1.6              Glossary

No special definition is introduced in this manual

1.7              Stylistic Conventions

The following styles are used:

bold

in the text, for commands, filenames, pre/suffixes as they have to be typed.

italic

in the text, for parts that have to be substituted with the real content before typing.

teletype

for examples.

<name>

in the examples, for parts that have to be substituted with the real content before typing.

 

bold and italic are also used to highlight words.

1.8              Naming Conventions

This implementation follows the naming conventions as outlined in [AD 01].

1.9              Problem Reporting/Change Request

The form described in [RD 02] shall be used.

2         OVERVIEW

This chapter gives a short overview of the ICS control panel philosophy and underlying architecture.

The rest of the manual is organized as follows:

·  Chapter 3 is the operator’s guide, which describes how to operate an ICS GUI based on icbpan.

·  Chapter 4 is the programmer’s guide, which describes in detail how to create from scratch an ICS GUI for a new instrument.

·  Chapter 5 is the configuration guide, which describes in detail how to properly configure the appearance of a specific instrument GUI.

·  Chapter 6 contains the manual pages extracted from the source code.

2.1              ICS control panel architecture

ICS is responsible for controlling the different devices of an instrument, such as motors, lamps and sensors. Most of these devices are driven by standard ESO hardware and software (see [RD 08]) and share therefore the same functionality.

 

The Base ICS package (also called ICB, see [RD 08]) aims to implement all common aspects of the various instruments ICS in one central place, such that different instrumentation applications, using it, become more homogeneous and therefore easier to operate and maintain. The same principle applied to the control code has been extended to the ICS stand-alone control panel: base ICS provides, within the module icbpan, means to speed up the ICS GUI development and reduce the amount of code to be maintained.

 

The basic components of icbpan are a set of “uifClasses-widgets” (hereafter called simply uifClasses), created with the VLT Panel Editor and therefore compatible with its usage (see [RD 06]).

 

The concept of uifClasses alone, though very useful, poses some problems when building the ICS control panel: sets of global variables are indeed needed to localize single widgets inside a class, which is difficult to maintain and still more difficult to extend. To overcome this drawback, for every uifClass an itcl wrapper class was created; it inherits the corresponding uifClass and adds new methods dealing with single (internal) widgets. In this way, not only the need of global variables disappears but also every single uifClass can be treated as a self-consistent unit which can be extended for special needs by using well-known object-oriented features (inheritance, overriding etc.). Moreover, variable name collision is automatically solved.

Based on this philosophy, for every ICB software devices (see [RD 08]), a corresponding uifClass and itcl wrapper class is available in the icbpan module.

 

Table 1 lists all uifClasses with the corresponding wrapper and device identification.

Description

ICB class

uifClass

itcl wrapper class

Lamp

icbLAMP

icbpanLamp_uifClass

icbpanLamp

Shutter

icbSHUTTER

icbpanShutter_uifClass

icbpanShutter

Filter wheel

icbMOT_FILTER

icbpanNamedPos_uifClass

icbpanNamedPos

Mirror wheel

icbMOT_MIRROR

icbpanNamedPos_uifClass

icbpanNamedPos

Slit wheel

icbMOT_SLITS

icbpanNamedPos_uifClass

icbpanNamedPos

Generic wheel

icbMOT_OPTI

icbpanNamedPos_uifClass

icbpanNamedPos

Generic slide

icbMOT_POS

icbpanContPos_uifClass

icbpanContPos

Slit length

icbMOT_SLIT2_LEN

icbpanSlit2Len_uifClass

icbpanSlit2Len

Slit Width

icbMOT_SLIT2_WID

icbpanSlit2Wid_uifClass

icbpanSlit2Wid

Tilt

icbMOT_TILT

icbpanTilt_uifClass

icbpanTilt

Grating

icbMOT_GRATING2

icbpanGrat_uifClass

icbpanGrat

Depolarizer

icbMOT_DPOR

icbpanDpol_uifClass

icbpanDpol

ADC

icbMOT_ADC

icbpanAdc_uifClass

icbpanAdc

Derotator

icbMOT_DROT

icbpanDrot_uifClass

icbpanDrot

Cryostat sensor

icbSEN_ADAM

icbpanSensor_uifClass

icbpanSensornnn [1]

Pressure sensor

icbSEN_BAROMETER

icbpanSensor_uifClass

icbpanSensornnn 1

Cryo. Temp. sensor

icbSEN_CN77000

icbpanSensor_uifClass

icbpanSensornnn 1

Cabinet cool. sensor

icbSEN_COOLING

icbpanSensor_uifClass

icbpanSensornnn 1

Digital sensor

icbSEN_DIGITAL

icbpanSensor_uifClass

icbpanSensornnn 1

Temp. sensor

icbSEN_ESTERS

icbpanSensor_uifClass

icbpanSensornnn 1

Humidity sensor

icbSEN_HUMIDITY

icbpanSensor_uifClass

icbpanSensornnn 1

Exposure meter

icbSEN_EXPM

icbpanPmt_uifClass

icbpanPmt

Table 1: implemented uifClasses.

The specific instrument configuration file (see [RD 08]) provides the input necessary to establish the number and type of instrument devices and, with a set of dedicated keywords, also to define the appearance of the ICS control panel (see section 5).

Finally, the communication with the ICS front-end control process is hidden in specific itcl classes built using the philosophy explained before.

Table 2 contains a list of such classes.

 

Description

uifClass

itcl wrapper class

Allows sending cmd affecting only global behavior of the ICS control process.

icbpanICSControl_uifClass

icbpanICSControl

Allows sending all cmds found in the CDT of the ICS control process.

icbpanICSCmd_uifClass

icbpanICSCmd

Allows sending specific cmds only to selected devices.

icbpanICSDevControl_uifClass

icbpanICSDevControl

Table 2: classes dealing with the ICS communication

 

2.1.1                       Software Modules

All uifClasses and relative wrappers are contained in one sw module: icbpan. The ICS GUI application provided by the Template Instrument in the module xxipan could be used as a starting point to build a new instrument ICS GUI.

3         OPERATOR’S GUIDE

This chapter is intended to provide all information needed to operate an instrument ICS from a GUI based on icbpan.

The example provided by the Template Instrument (see [RD 13]) is used to better illustrate the concept.

3.1              Panel Start-up

The ICS GUI should be started using the common startup tool stoo (see [RD 10]):

                %xxinsStart –panel ICS

 

During the startup the panel reads the instrument configuration file $INS_ROOT/SYS-TEM/COMMON/CONFIGFILES/xxmcfgINS.cfg and, in case of no errors, the ICS GUI pops-up (it can take a while, depending on host type and instrument complexity).

Figure 1 shows the example provided by the Template Instrument.

 

Figure 1: ICS GUI

 

The panel itself could be logically divided in three sections:

·         menu bar

·         global ICS control

·         single devices control

 

3.1.1                       Menu bar

The menu bar contains commands dealing with the panel and/or allows invoking some useful general tools. Figure 2 shows the expanded menu bar:

q       Selection: select/deselect all devices;

q       Setup: save/load setups file (i.e. dumps the current panel settings in an instrument setup file). Note that only setting for selected functions are saved.

q       Maintenance: this sub-menu contains various commands to edit the instrument configuration file, to invoke the icbConfigSet script and/or to reboot LCUs. Note that, while the panel is being created, the “Reboot LCUi” commands are added dynamically, one for every defined LCU.

q       Tools: this sub-menu allows invoking various utility panels, such as logMonitor, motei or acroxInducer.

 

Figure 2: ICS GUI menu section

3.1.2                       Global ICS Control

This section of the control panel allows controlling the ICS front-end as a whole. As shown in Figure 3, the upper uifClass allows changing the global ICS state (by sending OFF/STANDBY/ONLINE command), while the bottom one allows sending all other valid ICS commands with the parameter values defined by the user.

 

Figure 3: ICS GUI global control section

3.1.3                       Single Devices Control

For every device defined and configured in the instrument configuration file, a corresponding uifClass is placed in a notebook itk widget. The use of notebook itk widget allows packing various sets of logically linked devices (as could be motorized functions, lamp/shutters and sensors) optimizing the overall dimension of the panel. The operator could easily, simultaneously, check the current state of various devices by simply selecting the required notebook’s tab.

Figure 4 shows the example provided by the Template Instrument.

By using the Function Control uifClass the following operations could be performed:

·         SETUP: depending on the kind of the device and on the current operator selection, a SETUP command will be sent to ICS front-end process. The panel will automatically disable the entry widget if no user values are required. For example if it is required to move a filter by a named position only the filter name could be changed.

·         CHANGE STATE: OFF/STANDBY/ONLINE commands are sent to the ICS front-end process

·         SIMULATE (YES/NO): SIMULAT/STOPSIM commands are sent to the ICS front-end process.

·         STOP: STOP is sent to ICS front-end process.

Note that commands are sent only for the selected devices.

 

The overall configuration of various devices is done at the panel start-up by extracting all the relevant information from the specific instrument configuration file (e.g. filter names, modes etc.). Every uifClass is moreover connected to the corresponding device branch in the OLDB. Typically the following output is shown:

·         device name;

·         keyword to identify the device;

·         simulation level (N = normal; S = simulated);

·         device state (OFF/STANDBY/ONLINE);

·         handset (H = handset is active; nothing otherwise);

·         current position (named);

·         current position (encoder unit).

 

Sensor devices are treated in a slightly different way. They neither accept the SETUP command nor have a position defined. The only commands affecting the behavior of sensors are those used to change the state or the simulation level. For every sensor devices a list of sensor values is reported. Values are read directly from the OLDB. The label for each single sensor is again extracted from the instrument configuration file.

 

At the bottom of the main panel a Command Feedback Window gives a log of all sent commands. A short help is also provided for every widget appearing on the panel.

 

Figure 4: ICS GUI single devices control section

4         TUTORIAL: IMPLEMENTING ICS CONTROL PANEL FROM SCRATCH

This chapter is intended to software developers, who are starting from scratch with the implementation of the ICS control panel for a new instrument. It will describe how to adapt the template instrument code and extend its functionality to fit the specific instrument requirements.

Please follow step by step the instructions described in this chapter, executing them in the same order as presented.

 

In the examples provided in this chapter, it is assumed that the new instrument prefix is nn (keyword INS.CON.PREFIX in the configuration file) and its ID is NNNN (keyword INS.CON.ID). These strings should be adapted to the specific instrument case.

 

It is assumed that:

1.        you have already defined a basic ICS configuration

2.        the environment in which ICS processes should run is active

3.        ICS processes are running and database is accessible

Please refer to [RD 08] if one of these points is not fulfilled.

 

It is also assumed that the icbpan software module, as part of VLT common sw (from OCT2001 release), is already installed, and that the user is familiar with the VLT sw panel editor, its functionality and its operations (see [RD 06]).

4.1              Create the ICS control panel module

Skip this section if you have created the new instrument code with the utility xxinsCreateNewInstrument (see [RD 13]).

 

The simplest and fastest approach to build a new ICS control panel from scratch is to start from the code provided with the template instrument in the module xxipan.

The following steps must be done:

1.       retrieve xxipan module

Ø       cmmCopy xxipan

2.       rename the module directory

Ø       mv xxipan nnipan

3.       rename all module files

Ø       find nnipan -type f -print | xargs tooMvReplace xx nn

4.       modify the contents of all module files

Ø       chmod –R +w nnipan

Ø       find nnipan -type f -print | xargs tooReplace xx nn

Ø       find nnipan -type f -print | xargs tooReplace XXXX NNNN

4.2              Design the ICS control panel layout

Edit the panel source file (nnipanControl.pan) with the VLT panel editor. After all steps described in section 4.1, this panel contains five frames:

1.        nnipanICSControl1

2.        nnipanICSControl2

3.        nnipanFuncControl

4.        nnipanNotebook1

5.        nnipanNotebook2

The first three frames should be left unchanged.

The nnipanNotebooki frames instead are the only ones, whose size and number depend on the instrument characteristics.

Decide in how many notebooks you want to distribute the instrument devices and make sure that the panel contains as many nnipanNotebooki frames as you want (remember to rename the widgets name to nnipanNotebooki i=1,..,N). Make also sure that their position and size correspond to the expected one (they can be refined in a second iteration) and that the “Automatic Re-size” option is selected.

Save the panel and build the module:

% make clean all man install

 

4.3              Configure the ICS control panel layout

To configure the ICS GUI layout, edit the instrument configuration file nnmcfgINS.cfg (see [RD 08] and chapter 5 of this manual for the details).

Make sure that the total number of notebooks defined by the keyword INS.UIF.NBOOKS (default 1) in the instrument configuration file corresponds to the number of frame widgets nnipanNotebooki created during step 4.2.

 

When building an ICS GUI from scratch, it is recommended to skip the uifClasses for special devices. This is accomplished by setting the <prefix>.UIFCLASS keyword to “” (see chapter 5). To create a special device class and add it to the GUI see section 4.5

4.4              Starting the ICS control panel

At this point the panel is ready to be started. Type:

 

% nnipanControl &

 

The ICS control panel should pop-up. See section 3 for a complete description on how to operate with it. Depending on the instrument complexity (i.e. on the number of the defined devices) the various frames could overlap or could not show the whole content (or more simply you don’t like the current positioning). In this case a manual resizing is necessary. See section 4.2

4.5              Creating a special device

Every ICB standard device (see [RD 08]) has a corresponding wrapper class (see 2.1), which implements all the basic (standard) features for this device.

4.5.1                       Overriding default behavior

It could happen that a specific instrument owns a device with a slightly different behavior respect to the standard. By using the inheritance mechanism it is possible to adapt and/or override the default.

 

An example is provided in the module xxipan for the GRAT device of the XXXX instrument. The ICB standard grating device accepts, among others, also a keyword specifying the current grating order. The corresponding uifClass (icbpanGrat.tcl) has therefore an “order” entry widget to insert the required number. In case of the XXXX instrument such an order is not needed. A new class (xxipanGrat) is therefore implemented which simply:

1.        inherits the icbpanGrat class;

2.        overrides the icbpanGrat:: updateWdg method (by forcing a default and disabling the “order” entry widget).

When the class is packed in the notebook, the field of the entry widget is disabled and the user cannot send anymore any order number, as shown in Figure 5.

Figure 5: Example of wrapper class inheritance

 

The inheritance mechanism allows also adding functionality to the standard uifClasses. For example one could think to add a check for values passed by the user, before calling the standard method which actually sends the SETUP command to ICS and so on. Of course, what you cannot do, is to block or selectively inherit some properties; to this purpose a new class should be created from scratch as described hereafter.

 

4.5.2                       Building an uifClass from scratch

For really specific instrument devices, which are not (and could not be) supported by the standard ICB, new uifClasses and corresponding itcl wrapper classes should be created. Once created, by means of the configuration keywords, they can be placed everywhere on the control panel (see section 5). The procedure to build such a “special uifClass” is quite simple (an example of such special device for the XXXX instrument is provided in the module xxipan). The following steps are required:

1.        with the panel editor create a class with entry widgets, option button etc. that suit your needs; for the device YYYY the class shown in Figure 6 has been created (see xxipanSpecial_uifClass.tcl).

Figure 6: Example of special class construction

2.        create a wrapper class which inherits the just created “*_uifClass.tcl” (see xxipanSpecial.tcl and the corresponding man page);

3.        add/implement in the wrapper class at least the following methods:

·         isSelected – which returns 0/1 depending on the current status of the checkbutton;

·         setSelected <val> - which sets the checkbutton to 1/0;

·         getKeyw – which prepares and returns a string of keyword(s) to be sent to the front-end ICS process with the SETUP cmd;

·         setKeyw <val> - which analyses the passed string (i.e. val) and extract from it values to be inserted in the corresponding class widgets (it is used when loading a setup files).

4.        add in the wrapper class at least the following public variables:

·         public variable devType ""

·         public variable cfgObj    ""

 

Once a special uifClass is created you can pack it everywhere on the control panel by means of the configuration keywords (as described in section 5).

 

NOTE 1: The internal procedures of the ICB control panel rely on these methods and public variables to recognize and to distinguish the selected devices, to send a correct SETUP string and to correctly load/save a setup file. Therefore they must exist with names as reported above. If, during the panel construction, the methods or the public variables are not found an undefined behavior is to be expected.

 

5         CONFIGURATION GUIDE

A set of keywords (defined in the dictionary ESO-VLT-DIC.ICB_CFG) is dedicated to the configuration of the ICS control GUI layout. They are described in the Table 3.

 

Keyword

Description

INS.UIF.NBOOKS

 

Specify how many notebooks should be present.
If missing, one  notebook will be created

 

INS.UIFi.TABS

 

Specify how many tabs should be present in notebook i
If missing, one tab will be created

INS.UIFj.LABELi

 

Specify label to be assigned to the tab "i" in the notebook "j"
If missing, default "" is assumed

INS.FILTi.UIFCLASS

 

uifClass to be used for this device.
If missing, icbpan default class is used.
If empty (i.e. ""), no class will be used.

Same as INS.FILTi for all other type of devices.

INS.FILTi.UIFNB

 

Index of notebook where widget for this device should appear
If missing, 1 is assumed.
Same as INS.FILTi for all other type of devices.

 

INS.FILTi.UIFTB

 

Index of tab where widget for this device should appear.
If missing, 1 is assumed.
Same as INS.FILTi for all other type of devices.

 

INS.FILTi.UIFSPECIAL

 

If T, the coding of the states for the associated output field are those of an icb special device[2]. Needed when a default icbpan uifClass is used for an icb special device.
If missing or set to F, the coding of the states are those of an icb standard device.
Same as INS.FILTi for all other type of devices.

 

Table 3: configuration keywords for ICS control panel

 

The following example, taken from the Template Instrument, produces the layout shown in Figure 1 (see file xxmcfgINS.cfg):

 

# create two notebooks

INS.UIF.NBOOKS   2

 

#add in the first notebook two tabs

INS.UIF1.TABS    2

# add in the second notebook seven tabs

INS.UIF2.TABS    7

 

# configure the first notebook’s tabs with the following labels

INS.UIF1.LABEL1  "Motors"

INS.UIF1.LABEL2  "Lamps/shutters"

# configure the second notebook’s tabs with the following labels

INS.UIF2.LABEL1  "FCS"

INS.UIF2.LABEL2  "BARO"

INS.UIF2.LABEL3  "FCTC"

INS.UIF2.LABEL4  "CCC1"

INS.UIF2.LABEL5  "DIS1"

INS.UIF2.LABEL6  "ENCH"

INS.UIF2.LABEL7  "TEMP"

 

# place INS.LAMP1 device on the first notebook, second tab

INS.LAMP1.UIFNB    1

INS.LAMP1.UIFTB    2

# place INS.SHUT1 device on the first notebook, second tab

INS.SHUT1.UIFNB    1

INS.SHUT1.UIFTB    2

 

# use for INS.GRAT1 device the new class xxipanGrat (example of inheritance)

INS.GRAT1.UIFCLASS "xxipanGrat"

# use for INS.MIRR2 device the new class xxipanSpecial (example of a special device implementation)

INS.MIRR2.UIFCLASS "xxipanSpecial"

 

# place all sensors device on the second notebook; every device is placed in its own tabs

INS.SENSOR1.UIFNB  2

INS.SENSOR1.UIFTB  1

INS.SENSOR2.UIFNB  2

INS.SENSOR2.UIFTB  2

# INS.SENSOR2 is implemented on LCU as an icb special device. State coding must be set accordingly

INS.SENSOR2.UIFSPECIAL T

INS.SENSOR3.UIFNB  2

INS.SENSOR3.UIFTB  3

INS.SENSOR4.UIFNB  2

INS.SENSOR4.UIFTB  4

INS.SENSOR5.UIFNB  2

INS.SENSOR5.UIFTB  5

INS.SENSOR6.UIFNB  2

INS.SENSOR6.UIFTB  6

INS.SENSOR7.UIFNB  2

INS.SENSOR7.UIFTB  7

 

Note 1: Every sensor device usually controls many sensors. It is a good idea therefore to place every single sensor device in a separate tab.

Note 2: If for any reason you don’t want that a class will be drawn, simply define the {devicename}.UIFCLASS with an empty string.

6         REFERENCE

6.1              icbpan specific

6.1.1                       icbpanLib.tcl

 

 icbpanCmd  

                                         

 NAME

 icbpanCmd, icbpanCmdQueryCommands, icbpanCmdQueryParameters,

 icbpanExecCmd, icbpanWaitPid, icbpanDbRead, icbpanSelectAll,

 icbpanDeselectAll, icbpanEditCfgFile, icbpanSetLCUCfg,

 icbpanSaveAsSetup, icbpanSaveSetup, icbpanLoadSetup,

 icbpanLcuBoot, icbpanGetDevice - tcl procedures used within ICB control panel.

 

 SYNOPSIS

 icbpanCmd       <envName><procName> <cmd> [parms] [timeout] [disp]

 icbpanCmdQueryCommands   <Process>

 icbpanCmdQueryParameters <Process> <Command>

 icbpanExecCmd            <args> [bg] [wait] [xterm]

 icbpanWaitPid            <pid>

 icbpanDbRead             <attr>

 icbpanSelectAll          <listAllDevices>

 icbpanDeselectAll        <listAllDevices>

 icbpanEditCfgFile        <file>

 icbpanSetLCUCfg          <INS>

 icbpanSaveAsSetup        <listAllDevices> <dic>

 icbpanSaveSetup          <allDevices> <file> <dic>

 icbpanLoadSetup          <allDevices> <file> <dic>

 icbpanLcuBoot            <lcuenv>

 icbpanGetDevice          <listAllDevices> <devName>

 

 DESCRIPTION

 icbpanCmd

    sends a command to ICS front-end process and waits for last reply

 icbpanCmdQueryCommands

    query cmdManager for cmds accepted by Process

 icbpanCmdQueryParameters

    query cmdManager for parameters accepted by Command of Process

 icbpanExecCmd

    execute args; wait=0 return immediately; wait=1 waits completion

    of invoked process; xterm=1 start applictation in a new xterm;

    bg = "" doesn't start in background

 icbpanWaitPid

    wait until process terminate

 icbpanDbRead

    is the specific implementation of seq_dbReadSymbolic

 icbpanSelectAll, icbpanDeselectAll

    set/unset checkbutton for all devices in "listAllDevices"

 icbpanEditCfgFile

    invoke emacs on the cfg file

 icbpanSetLCUCfg

    invoke icbConfigSet on instrument INS

 icbpanSaveAsSetup, icbpanSaveSetup

    saves parameters of the selected devices to a file

 icbpanLoadSetup

    loads the content of a setup file and sets panel widgets

    accordingly

 icbpanLcuBoot

    reboot LCU lcuenv

 icbpanGetDevice

    return the object corresponding to the device <devName>.

 

 FILES

    $INS_ROOT/SYSTEM/COMMON/CONFIGFILES/*CONFIG.cfg

 

 ENVIRONMENT

    INS_ROOT        Instrument root area

    INTROOT         Integration area

    VLTROOT         VLT area

 

 

 

 

### generated by docDeroff ###

 

 


6.1.2                       icbpanGUIcfg.tcl

 

 icbpanGUIcfg  

                                         

 NAME

 icbpanGUIcfg - itcl class used to construct ICB control panel.

 

 SYNOPSIS

 icbpanGUIcfg xxinsGUI xxinsCfg

 

 DESCRIPTION

 This itcl class is an utility class which contains a set

 of methods to pack notebooks and control classes on the

 ICB control panel.

 

 PUBLIC METHODS

 icbpanGUIcfg xxinsGUI xxinsCfg

    constructor. An object of type ctooCONFIG must be passed to

    properly read all the requested information.

 lcuBootMenu <menuPath>

    add on the specified panel menu (individuated by the passed menuPath

    string) commands to reboot LCU(s)

    (the number of added cmds correspond to the number of defined LCUs).

 wdgICScontrol <frameICS1>

    pack class icbpanICSControl on frame frameICS1.

 wdgICScmd <frameICS2>

    pack class icbpanICSCmd on frame frameICS2.

 funcICScontrol <frameFunc> <devicesList>

    pack class icbpanICSDevControl on frame frameFunc. DevicesList

    contains the number of configured devices. This method must be

    called after notebooks are created.

 createNotebooks <framesList>

    pack notebooks on frames extracted from framesList.

    The number of tabs in each notebook and the relative labels

    are extracted from INS.UIFi.TABS and INS.UIFi.LABELj.

    After notebooks construction the method reads the configuration

    file and places all configured devices in the specific

    notebook. The look and feel is controlled by a set of dedicated

    configuration keywords.

    At the end it returns the number of drawn devices as a list.

    The just created list could be used then as a parameter for

    the "funcICScontrol" method.

 getNotebooks <cv>

    return a list conisting of { <framesList> <framesGeometry> } where

    <framesList> is the list of notebook frames to be passed to createNotebooks

    <framesGeometry> is a list of items { <xCoord> <yCoord> <width> <height> }

    <cv> is the panel variable associated to the canvas where

    notebook frames are.

 setNotebookDim [<nbIdx 1>] [<width 300>] [<height 300>]

    set new dimension for the notebook identified by a number.

 setNotebookDimAll <framesGeometry>

    set new dimension for all notebooks in <framesGeometry>

    Every element of <framesGeometry> consists of <xCoord> <yCoord> <width> <height>

 setPanelDim [<framesGeometry/width >] [<height>]

    set new dimension for the panel.

    If two parameters are passed, they are interpreted as <width> <height>

    If only one parameter is passed, it is interpreted as <framesGeometry>

    as from getNotebooks

 initClass <cv> <imList>

    initialize uifClasses and frames in the panel

    At the end it returns the number of drawn devices as a list.

    <cv> is the panel variable associated to the canvas where

    notebook frames are.

    <dimList> is the list of notebooks dimension

    Every element of <dimList> consists of <width> <height>

 

 PRIVATE METHOD

 putUifClasses

    For every device defined in the cfg file, pack the relative

    class. The position (notebook+tab) is extracted from

    $devType.UIFNB and $devType.UIFTB (devType==INS.CON.DEVICE); the

    class to be placed is read either from devType.UIFCLASS or

    extracted with the method getUifClass of icbpanUIF class.

 

 FILES

    $INS_ROOT/SYSTEM/COMMON/CONFIGFILES/*CONFIG.cfg

 

 ENVIRONMENT

    INS_ROOT        Instrument root area

    INTROOT         Integration area

    VLTROOT         VLT area

 

 SEE ALSO

 ctooCONFIG(8)

 

 

 

 

### generated by docDeroff ###

 

 


6.1.3                       icbpanUIF.tcl

 

 icbpanUIF  

                                        

 NAME

 icbpanUIF - itcl class used for managing icbpan devices classes

 

 SYNOPSIS

 icbpanUIF handleUif -cfgObj $cfgObj

 

  where cfgObj is a ctooCONFIG object;

 

 DESCRIPTION

 This class is used internally by the icbpan control panel to

 associate an uifClass to the corresponding devices. It constructs

 an internal keyed list containing pairs device/uifClass

 (the key is actually the device name).

 

 PUBLIC METHODS

 icbpanUIF  xxx

    constructor. Calls two private methods. "defaultUifclasses"

    method simply fill a keyed list (defuif) with default

    associations; "initUifclasses" instead, by comparing

    current instrument settings with the default keyed list,

    extract and construct instrument specific keyed list (keylist).

    From this list, during panel construction, the uifClass to be drawn

    is extracted.

 getUifClass devType

    according to the passed "devType" the corresponding uifClass

    is returned.

 addUifClass devType className

    add in the keyed list a new pair device/uifClass.

 delUifClass devType

    delete an entry in the keyed list having devType as a key.

 

 PUBLIC VARIABLES

 cfgObj

    ctooCONFIG object (configuration file interface)

 

 FILES

    $INS_ROOT/SYSTEM/COMMON/CONFIGFILES/*CONFIG.cfg

 

 ENVIRONMENT

    INS_ROOT        Instrument root area

    INTROOT         Integration area

    VLTROOT         VLT area

 

 CAUTIONS

 This class is used internally and should not be modified.

 

 

 

 

### generated by docDeroff ###

 

 


6.1.4                       icbpanICSControl.tcl

 

 icbpanICSControl  

                                        

 NAME

 icbpanICSControl - wrapper class for icbpanICSControl_uifClass

 

 SYNOPSIS

 icbpanICSControl .w 

            -background Grey90   

            -relief raised       

            -cwp "<alias>${insName}:ICS:PROCESSES:WS:icsControl" 

            -procName $procName 

            -cfgObj $cfgObj]

 

 

  where cfgObj is a ctooCONFIG object;

        procName is the name of the ICS control process

 

 DESCRIPTION

 Itcl wrapper class to handle ICS control process. The corresponding

 ibcpanICSControl_uifClass contains a set of output widgets

 (linked to OLDB) which display the ICS global state, substate

 and operational mode. An option button is used to send OFF/

 STANDBY/ONLINE cmds.

 

 PUBLIC METHODS

 icbpanICSControl  xxx

    constructor. Calls "initFunction" which initialize the option

    button with the appropriate function (chgState); it is called

    whenever the option button is selected. This function then send

    the selected cmd to the ICS control process.

 

 PUBLIC VARIABLES

 cfgObj

    ctooCONFIG object (configuration file interface)

 procName

    name of the front-end WS ICS process

 

 FILES

    $INS_ROOT/SYSTEM/COMMON/CONFIGFILES/*CONFIG.cfg

 

 ENVIRONMENT

    INS_ROOT        Instrument root area

    INTROOT         Integration area

    VLTROOT         VLT area

 

 SEE ALSO

 ctooCONFIG(8), icbpanLib

 

 

 

 

### generated by docDeroff ###

 

 


6.1.5                       icbpanICSCmd.tcl

 

 icbpanICSCmd  

                                        

 NAME

 icbpanICSCmd - wrapper class for icbpanICSCmd_uifClass

 

 SYNOPSIS

 icbpanICSCmd .w 

            -background Grey90   

            -relief raised       

            -cwp "<alias>${insName}:ICS:PROCESSES:WS:icsControl" 

            -procName $procName]

 

 

  where procName is the name of the ICS control process

 

 DESCRIPTION

 Itcl wrapper class to handle ICS control process. The corresponding

 ibcpanICSCmd_uifClass contains a set of option button

 and one entry widget which can be used to select the command

 + parameters to be sent to the ICS WS process.

 The button "Send" takes care to send the selected cmds to ICS.

 

 PUBLIC METHODS

 icbpanICSControl  xxx

    constructor. Calls "initFunction" which initialize the option

    buttons with the list of valid ICS cmds and the corresponding

    list of valid parameters. Both lists are extracted from CDT

    by quering the cmdManager process. The Send button uses the

    internal method "sendParString" to actual send the constructed

    list of command(s) to the ICS process.

 

 PUBLIC VARIABLES

 procName

    name of the front-end WS ICS process

 

 FILES

    $INS_ROOT/SYSTEM/COMMON/CONFIGFILES/*CONFIG.cfg

 

 ENVIRONMENT

    INS_ROOT        Instrument root area

    INTROOT         Integration area

    VLTROOT         VLT area

 

 SEE ALSO

 ctooCONFIG(8), icbpanLib

 

 

 

 

### generated by docDeroff ###

 

 


6.1.6                       icbpanICSDevControl.tcl

 

 icbpanICSDevControl  

                                        

 NAME

 icbpanICSDevControl - wrapper class for icbpanICSDevControl_uifClass

 

 SYNOPSIS

 icbpanICSControl .w 

            -background Grey90   

            -allDevices $devicesList 

            -cfgObj $cfgObj          

            -procName $procName      

            -relief raised]

  where cfgObj is a ctooCONFIG object;

        procName is the name of the ICS control process

        allDevices is the list containing all devices to be controlled

 

 DESCRIPTION

 Itcl wrapper class to handle ICS functions.The corresponding

 ibcpanICSDevControl_uifClass contains a set of (option) buttons

 to send OFF/STANDBY/ONLINE/SETUP/STOP cmds and to change simulaton level.

 All cmds affect only devices selected by toggling on the checkbutton.

 

 

 PUBLIC METHODS

 icbpanICSDevControl  xxx

    constructor. By looking for the "isSensor" public variable

    a split is made between the motors/lamps/shutters devices and

    sensors devices (this is necessary because not all

    devices behave in the same way; e.g. for sensors the SETUP/STOP

    cmds doesn't have any effect).

    It calls then "initFunction" which initialize every button with the

    appropriate function (called whenever the corresponding button

    is selected). These functions

    allow to change the state of selected devices (chgFuncState),

    to change the operational mode (chgFuncOpMode) or to send

    a setup/stop cmd (moveFunc/stopFunc).

    Before sending the requested cmd, every function checks the current

    state of all checkbuttons (by calling the isSelected method).

    The cmd is sent only if the checkbutton of the corresponding

    device is selected.

 

 PUBLIC VARIABLES

 cfgObj

    ctooCONFIG object (configuration file interface)

 procName

    name of the front-end WS ICS process

 allDevices

    list containing all devices to be controlled

 

 FILES

    $INS_ROOT/SYSTEM/COMMON/CONFIGFILES/*CONFIG.cfg

 

 ENVIRONMENT

    INS_ROOT        Instrument root area

    INTROOT         Integration area

    VLTROOT         VLT area

 

 SEE ALSO

 ctooCONFIG(8), icbpanLib

 

 

 

 

### generated by docDeroff ###


6.1.7                       icbpanLamp.tcl

 

 icbpanLamp  

                                        

 NAME

 icbpanLamp - wrapper class for icbpanLamp_uifClass

 

 SYNOPSIS

 icbpanLamp .w 

           -background Grey90 

           -relief flat       

           -cfgObj $cfgObj    

           -cwp "<alias>${devName}" 

           -devType $devType]

 

  where cfgObj is a ctooCONFIG object;

        devType is extracted from INS.CON.DEVICE${i}

        devName is extracted from ${devType}.DEVNAME

 

 DESCRIPTION

 Itcl wrapper class to handle ICB LAMP device. The corresponding

 ibcpanLamp_uifClass contains a set of output widget (linked to OLDB)

 which in turn display the device name, keyword used to identify the

 device, the current simulation level (N=normal,S=simulate), the current

 device state, handset mode (H, if active) and the current position

 (named and in encoder unit). The class contains also an option

 button to select among various setup parameters and an entry widget

 for setting position values. Finally a checkbutton is used to

 indicate if the corresponding device is selected for some actions.

 

 PUBLIC METHODS

 icbpanLamp  xxx

    constructor. Calls "initFunction" which initialize the option

    button with appropriate parameters.

 isSelected

    get the current status of the checkbutton (0/1).

 setSelected 0/1

    set the checkbutton state to 0 or 1 (unselected or selected).

 getKeyw

    returns the associated setup keyw. + value. This method reads

    from the option button and entry widget the current user

    settings and prepare a string to be sent to ICS control process.

    This method is normally called when the SETUP cmd is invoked.

 setKeyw val

    extract from "val" the keyword parameter + value and fill the

    corresponding option button + entry. This method is called usually

    during a reading of a previously saved setup file.

 

 PUBLIC VARIABLES

 cfgObj

    ctooCONFIG object (configuration file interface)

 devType

    device type extracted from INS.CON.DEVICE${i}

 

 FILES

    $INS_ROOT/SYSTEM/COMMON/CONFIGFILES/*CONFIG.cfg

 

 ENVIRONMENT

    INS_ROOT        Instrument root area

    INTROOT         Integration area

    VLTROOT         VLT area

 

 SEE ALSO

 ctooCONFIG(8)

 

 

 

 

### generated by docDeroff ###

 

 


6.1.8                       icbpanShutter.tcl

 

 icbpanShutter  

                                        

 NAME

 icbpanShutter - wrapper class for icbpanShutter_uifClass

 

 SYNOPSIS

 icbpanShutter .w 

           -background Grey90 

           -relief flat       

           -cfgObj $cfgObj    

           -cwp "<alias>${devName}" 

           -devType $devType]

 

  where cfgObj is a ctooCONFIG object;

        devType is extracted from INS.CON.DEVICE${i}

        devName is extracted from ${devType}.DEVNAME

 

 DESCRIPTION

 Itcl wrapper class to handle ICB SHUT device. The corresponding

 ibcpanShutter_uifClass contains a set of output widget (linked to OLDB)

 which in turn display the device name, keyword used to identify the

 device, the current simulation level (N=normal,S=simulate), the current

 device state, handset mode (H, if active) and the current position

 (named and in encoder unit). The class contains also an option

 button to select among various setup parameters and an entry widget

 for setting position values. Finally a checkbutton is used to

 indicate if the corresponding device is selected for some actions.

 

 PUBLIC METHODS

 icbpanShutter  xxx

    constructor. Calls "initFunction" which initialize the option

    button with appropriate parameters.

 isSelected

    get the current status of the checkbutton (0/1).

 setSelected 0/1

    set the checkbutton state to 0 or 1 (unselected or selected).

 getKeyw

    returns the associated setup keyw. + value. This method reads

    from the option button and entry widget the current user

    settings and prepare a string to be sent to ICS control process.

    This method is normally called when the SETUP cmd is invoked.

 setKeyw val

    extract from "val" the keyword parameter + value and fill the

    corresponding option button + entry. This method is called usually

    during a reading of a previously saved setup file.

 

 PUBLIC VARIABLES

 cfgObj

    ctooCONFIG object (configuration file interface)

 devType

    device type extracted from INS.CON.DEVICE${i}

 

 FILES

    $INS_ROOT/SYSTEM/COMMON/CONFIGFILES/*CONFIG.cfg

 

 ENVIRONMENT

    INS_ROOT        Instrument root area

    INTROOT         Integration area

    VLTROOT         VLT area

 

 SEE ALSO

 ctooCONFIG(8)

 

 

 

 

### generated by docDeroff ###

 

 


6.1.9                       icbpanNamedPos.tcl

 

 icbpanNamedPos  

                                        

 NAME

 icbpanNamedPos - wrapper class for icbpanNamedPos_uifClass

 

 SYNOPSIS

 icbpanNamedPos .w 

           -background Grey90 

           -relief flat       

           -cfgObj $cfgObj    

           -cwp "<alias>${devName}" 

           -devType $devType]

 

  where cfgObj is a ctooCONFIG object;

        devType is extracted from INS.CON.DEVICE${i}

        devName is extracted from ${devType}.DEVNAME

 

 DESCRIPTION

 Itcl wrapper class to handle ICB motorized devices with discrete (named)

 positions, such as FILT, MIRR, OPTI etc. The corresponding

 ibcpanNamedPos_uifClass contains a set of output widget (linked to OLDB)

 which in turn display the device name, keyword used to identify the

 device, the current simulation level (N=normal,S=simulate), the current

 device state, handset mode (H, if active) and the current position

 (named and in encoder unit). The class contains also an option

 button to select among various setup parameters and an entry widget

 for setting position values. Finally a checkbutton is used to

 indicate if the corresponding device is selected for some actions.

 

 PUBLIC METHODS

 icbpanNamedPos  xxx

    constructor. Calls "initFunction" which initialize the option

    button with appropriate parameters.

 isSelected

    get the current status of the checkbutton (0/1).

 setSelected 0/1

    set the checkbutton state to 0 or 1 (unselected or selected).

 getKeyw

    returns the associated setup keyw. + value. This method reads

    from the option button and entry widget the current user

    settings and prepare a string to be sent to ICS control process.

    This method is normally called when the SETUP cmd is invoked.

 setKeyw val

    extract from "val" the keyword parameter + value and fill the

    corresponding option button + entry. This method is called usually

    during a reading of a previously saved setup file.

 

 PROTECTED METHODS

 updateWdg item

    this method is called to modify on-the-fly the appareance of

    the widgets. E.g. if a particular param. selection requires also some

    input values, the corresponding entry widget is enabled,

    otherwise it is disabled. User can override this method to

    implement some specific behaviour.

 

 PUBLIC VARIABLES

 cfgObj

    ctooCONFIG object (configuration file interface)

 devType

    device type extracted from INS.CON.DEVICE${i}

 

 FILES

    $INS_ROOT/SYSTEM/COMMON/CONFIGFILES/*CONFIG.cfg

 

 ENVIRONMENT

    INS_ROOT        Instrument root area

    INTROOT         Integration area

    VLTROOT         VLT area

 

 SEE ALSO

 ctooCONFIG(8)

 

 

 

 

### generated by docDeroff ###

 

 


6.1.10                   icbpanContPos.tcl

 

 icbpanContPos  

                                        

 NAME

 icbpanContPos - wrapper class for icbpanContPos_uifClass

 

 SYNOPSIS

 icbpanContPos .w 

           -background Grey90 

           -relief flat       

           -cfgObj $cfgObj    

           -cwp "<alias>${devName}" 

           -devType $devType]

 

  where cfgObj is a ctooCONFIG object;

        devType is extracted from INS.CON.DEVICE${i}

        devName is extracted from ${devType}.DEVNAME

 

 DESCRIPTION

 Itcl wrapper class to handle ICB POS device. The corresponding

 ibcpanPos_uifClass contains a set of output widget (linked to OLDB)

 which in turn display the device name, keyword used to identify the

 device, the current simulation level (N=normal,S=simulate), the current

 device state, handset mode (H, if active) and the current position

 (named and in encoder unit). The class contains also an option

 button to select among various setup parameters and an entry widget

 for setting position values. Finally a checkbutton is used to

 indicate if the corresponding device is selected for some actions.

 

 PUBLIC METHODS

 icbpanContPos  xxx

    constructor. Calls "initFunction" which initialize the option

    button with appropriate parameters.

 isSelected

    get the current status of the checkbutton (0/1).

 setSelected 0/1

    set the checkbutton state to 0 or 1 (unselected or selected).

 getKeyw

    returns the associated setup keyw. + value. This method reads

    from the option button and entry widget the current user

    settings and prepare a string to be sent to ICS control process.

    This method is normally called when the SETUP cmd is invoked.

 setKeyw val

    extract from "val" the keyword parameter + value and fill the

    corresponding option button + entry. This method is called usually

    during a reading of a previously saved setup file.

 

 PROTECTED METHODS

 updateWdg item

    this method is called to modify on-the-fly the appareance of

    the widgets. E.g. if a particular param. selection requires also some

    input values, the corresponding entry widget is enabled,

    otherwise it is disabled. User can override this method to

    implement some specific behaviour.

 

 PUBLIC VARIABLES

 cfgObj

    ctooCONFIG object (configuration file interface)

 devType

    device type extracted from INS.CON.DEVICE${i}

 

 FILES

    $INS_ROOT/SYSTEM/COMMON/CONFIGFILES/*CONFIG.cfg

 

 ENVIRONMENT

    INS_ROOT        Instrument root area

    INTROOT         Integration area

    VLTROOT         VLT area

 

 SEE ALSO

 ctooCONFIG(8)

 

 

 

 

### generated by docDeroff ###

 

 


6.1.11                   icbpanSlit2Len.tcl

 

 icbpanSlit2Len   

                                        

 NAME

 icbpanSlit2Len - wrapper class for icbpanSlit2Len_uifClass

 

 SYNOPSIS

 icbpanSlit2Len .w 

           -background Grey90 

           -relief flat       

           -cfgObj $cfgObj    

           -cwp "<alias>${devName}" 

           -devType $devType]

 

  where cfgObj is a ctooCONFIG object;

        devType is extracted from INS.CON.DEVICE${i}

        devName is extracted from ${devType}.DEVNAME

 

 DESCRIPTION

 Itcl wrapper class to handle ICB SLIT2 device. The corresponding

 ibcpanSlit2Len_uifClass contains a set of output widget (linked to OLDB)

 which in turn display the device name, keyword used to identify the

 device, the current simulation level (N=normal,S=simulate), the current

 device state, handset mode (H, if active) and the current position

 (named and in encoder unit -left/right). The class contains also an option

 button to select among various setup parameters and an entry widget

 for setting position values. Finally a checkbutton is used to

 indicate if the corresponding device is selected for some actions.

 

 PUBLIC METHODS

 icbpanSlit2Len  xxx

    constructor. Calls "initFunction" which initialize the option

    button with appropriate parameters.

 isSelected

    get the current status of the checkbutton (0/1).

 setSelected 0/1

    set the checkbutton state to 0 or 1 (unselected or selected).

 getKeyw

    returns the associated setup keyw. + value. This method reads

    from the option button and entry widget the current user

    settings and prepare a string to be sent to ICS control process.

    This method is normally called when the SETUP cmd is invoked.

 setKeyw val

    extract from "val" the keyword parameter + value and fill the

    corresponding option button + entry. This method is called usually

    during a reading of a previously saved setup file.

 

 PROTECTED METHODS

 updateWdg item

    this method is called to modify on-the-fly the appareance of

    the widgets. E.g. if a particular param. selection requires also some

    input values, the corresponding entry widget is enabled,

    otherwise it is disabled. User can override this method to

    implement some specific behaviour.

 

 PUBLIC VARIABLES

 cfgObj

    ctooCONFIG object (configuration file interface)

 devType

    device type extracted from INS.CON.DEVICE${i}

 

 FILES

    $INS_ROOT/SYSTEM/COMMON/CONFIGFILES/*CONFIG.cfg

 

 ENVIRONMENT

    INS_ROOT        Instrument root area

    INTROOT         Integration area

    VLTROOT         VLT area

 

 SEE ALSO

 ctooCONFIG(8)

 

 

 

 

### generated by docDeroff ###

 

 


6.1.12                   icbpanSlit2Wid.tcl

 

 icbpanSlit2Wid  

                                        

 NAME

 icbpanSlit2Wid - wrapper class for icbpanSlit2Wid_uifClass

 

 SYNOPSIS

 icbpanSlit2Wid .w 

           -background Grey90 

           -relief flat       

           -cfgObj $cfgObj    

           -cwp "<alias>${devName}" 

           -devType $devType]

 

  where cfgObj is a ctooCONFIG object;

        devType is extracted from INS.CON.DEVICE${i}

        devName is extracted from ${devType}.DEVNAME

 

 DESCRIPTION

 Itcl wrapper class to handle ICB SLIT2 device. The corresponding

 ibcpanSlit2Wid_uifClass contains a set of output widget (linked to OLDB)

 which in turn display the device name, keyword used to identify the

 device, the current simulation level (N=normal,S=simulate), the current

 device state, handset mode (H, if active) and the current position

 (named and in encoder unit -left/right). The class contains also an option

 button to select among various setup parameters and an entry widget

 for setting position values. Finally a checkbutton is used to

 indicate if the corresponding device is selected for some actions.

 

 PUBLIC METHODS

 icbpanSlit2Wid  xxx

    constructor. Calls "initFunction" which initialize the option

    button with appropriate parameters.

 isSelected

    get the current status of the checkbutton (0/1).

 setSelected 0/1

    set the checkbutton state to 0 or 1 (unselected or selected).

 getKeyw

    returns the associated setup keyw. + value. This method reads

    from the option button and entry widget the current user

    settings and prepare a string to be sent to ICS control process.

    This method is normally called when the SETUP cmd is invoked.

 setKeyw val

    extract from "val" the keyword parameter + value and fill the

    corresponding option button + entry. This method is called usually

    during a reading of a previously saved setup file.

 

 PROTECTED METHODS

 updateWdg item

    this method is called to modify on-the-fly the appareance of

    the widgets. E.g. if a particular param. selection requires also some

    input values, the corresponding entry widget is enabled,

    otherwise it is disabled. User can override this method to

    implement some specific behaviour.

 

 PUBLIC VARIABLES

 cfgObj

    ctooCONFIG object (configuration file interface)

 devType

    device type extracted from INS.CON.DEVICE${i}

 

 FILES

    $INS_ROOT/SYSTEM/COMMON/CONFIGFILES/*CONFIG.cfg

 

 ENVIRONMENT

    INS_ROOT        Instrument root area

    INTROOT         Integration area

    VLTROOT         VLT area

 

 SEE ALSO

 ctooCONFIG(8)

 

 

 

 

### generated by docDeroff ###

 

 


6.1.13                   icbpanTilt.tcl

 

 icbpanTilt  

                                        

 NAME

 icbpanTilt - wrapper class for icbpanTilt_uifClass

 

 SYNOPSIS

 icbpanTilt .w 

           -background Grey90 

           -relief flat       

           -cfgObj $cfgObj    

           -cwp "<alias>${devName}" 

           -devType $devType]

 

  where cfgObj is a ctooCONFIG object;

        devType is extracted from INS.CON.DEVICE${i}

        devName is extracted from ${devType}.DEVNAME

 

 DESCRIPTION

 Itcl wrapper class to handle ICB TILT device. The corresponding

 ibcpanTilt_uifClass contains a set of output widget (linked to OLDB)

 which in turn display the device name, keyword used to identify the

 device, the current simulation level (N=normal,S=simulate), the current

 device state, handset mode (H, if active) and the current position

 (named and in encoder unit). The class contains also an option

 button to select among various setup parameters and an entry widget

 for setting position values. Finally a checkbutton is used to

 indicate if the corresponding device is selected for some actions.

 

 PUBLIC METHODS

 icbpanTilt  xxx

    constructor. Calls "initFunction" which initialize the option

    button with appropriate parameters.

 isSelected

    get the current status of the checkbutton (0/1).

 setSelected 0/1

    set the checkbutton state to 0 or 1 (unselected or selected).

 getKeyw

    returns the associated setup keyw. + value. This method reads

    from the option button and entry widget the current user

    settings and prepare a string to be sent to ICS control process.

    This method is normally called when the SETUP cmd is invoked.

 setKeyw val

    extract from "val" the keyword parameter + value and fill the

    corresponding option button + entry. This method is called usually

    during a reading of a previously saved setup file.

 

 PROTECTED METHODS

 updateWdg item

    this method is called to modify on-the-fly the appareance of

    the widgets. E.g. if a particular param. selection requires also some

    input values, the corresponding entry widget is enabled,

    otherwise it is disabled. User can override this method to

    implement some specific behaviour.

 

 PUBLIC VARIABLES

 cfgObj

    ctooCONFIG object (configuration file interface)

 devType

    device type extracted from INS.CON.DEVICE${i}

 

 FILES

    $INS_ROOT/SYSTEM/COMMON/CONFIGFILES/*CONFIG.cfg

 

 ENVIRONMENT

    INS_ROOT        Instrument root area

    INTROOT         Integration area

    VLTROOT         VLT area

 

 SEE ALSO

 ctooCONFIG(8)

 

 

 

 

### generated by docDeroff ###

 

 


6.1.14                   icbpanGrat.tcl

 

 icbpanGrat  

                                        

 NAME

 icbpanGrat - wrapper class for icbpanGrat_uifClass

 

 SYNOPSIS

 icbpanAdc .w 

           -background Grey90 

           -relief flat       

           -cfgObj $cfgObj    

           -cwp "<alias>${devName}" 

           -devType $devType]

 

  where cfgObj is a ctooCONFIG object;

        devType is extracted from INS.CON.DEVICE${i}

        devName is extracted from ${devType}.DEVNAME

 

 DESCRIPTION

 Itcl wrapper class to handle ICB GRAT device. The corresponding

 ibcpanGrat_uifClass contains a set of output widget (linked to OLDB)

 which in turn display the device name, keyword used to identify the

 device, the current simulation level (N=normal,S=simulate), the current

 device state, handset mode (H, if active) and the current position

 (named and in encoder unit). The class contains also an option

 button to select among various setup parameters and two entry widget

 for setting position values (wlen/encoder + order). Finally a

 checkbutton is used to indicate if the corresponding device is

 selected for some actions.

 

 PUBLIC METHODS

 icbpanGrat  xxx

    constructor. Calls "initFunction" which initialize the option

    button with appropriate parameters.

 isSelected

    get the current status of the checkbutton (0/1).

 setSelected 0/1

    set the checkbutton state to 0 or 1 (unselected or selected).

 getKeyw

    returns the associated setup keyw. + value. This method reads

    from the option button and entry widget the current user

    settings and prepare a string to be sent to ICS control process.

    This method is normally called when the SETUP cmd is invoked.

 setKeyw val

    extract from "val" the keyword parameter + value and fill the

    corresponding option button + entry. This method is called usually

    during a reading of a previously saved setup file.

 

 PROTECTED METHODS

 updateWdg item

    this method is called to modify on-the-fly the appareance of

    the widgets. E.g. if a particular param. selection requires also some

    input values, the corresponding entry widget is enabled,

    otherwise it is disabled. User can override this method to

    implement some specific behaviour.

 

 PUBLIC VARIABLES

 cfgObj

    ctooCONFIG object (configuration file interface)

 devType

    device type extracted from INS.CON.DEVICE${i}

 

 FILES

    $INS_ROOT/SYSTEM/COMMON/CONFIGFILES/*CONFIG.cfg

 

 ENVIRONMENT

    INS_ROOT        Instrument root area

    INTROOT         Integration area

    VLTROOT         VLT area

 

 SEE ALSO

 ctooCONFIG(8)

 

 

 

 

### generated by docDeroff ###

 

 


6.1.15                   icbpanDpol.tcl

 

 icbpanDpol  

                                        

 NAME

 icbpanDpol - wrapper class for icbpanDpol_uifClass

 

 SYNOPSIS

 icbpanDpol .w 

           -background Grey90 

           -relief flat       

           -cfgObj $cfgObj    

           -cwp "<alias>${devName}" 

           -devType $devType]

 

  where cfgObj is a ctooCONFIG object;

        devType is extracted from INS.CON.DEVICE${i}

        devName is extracted from ${devType}.DEVNAME

 

 DESCRIPTION

 Itcl wrapper class to handle ICB DPOR device. The corresponding

 ibcpanDpol_uifClass contains a set of output widget (linked to OLDB)

 which in turn display the device name, keyword used to identify the

 device, the current simulation level (N=normal,S=simulate), the current

 device state, handset mode (H, if active) and the current position

 (named and in encoder unit). The class contains also an option

 button to select among various setup parameters and an entry widget

 for setting position values. Finally a checkbutton is used to

 indicate if the corresponding device is selected for some actions.

 

 PUBLIC METHODS

 icbpanDpol  xxx

    constructor. Calls "initFunction" which initialize the option

    button with appropriate parameters.

 isSelected

    get the current status of the checkbutton (0/1).

 setSelected 0/1

    set the checkbutton state to 0 or 1 (unselected or selected).

 getKeyw

    returns the associated setup keyw. + value. This method reads

    from the option button and entry widget the current user

    settings and prepare a string to be sent to ICS control process.

    This method is normally called when the SETUP cmd is invoked.

 setKeyw val

    extract from "val" the keyword parameter + value and fill the

    corresponding option button + entry. This method is called usually

    during a reading of a previously saved setup file.

 

 PROTECTED METHODS

 updateWdg item

    this method is called to modify on-the-fly the appareance of

    the widgets. E.g. if a particular param. selection requires also some

    input values, the corresponding entry widget is enabled,

    otherwise it is disabled. User can override this method to

    implement some specific behaviour.

 

 PUBLIC VARIABLES

 cfgObj

    ctooCONFIG object (configuration file interface)

 devType

    device type extracted from INS.CON.DEVICE${i}

 

 FILES

    $INS_ROOT/SYSTEM/COMMON/CONFIGFILES/*CONFIG.cfg

 

 ENVIRONMENT

    INS_ROOT        Instrument root area

    INTROOT         Integration area

    VLTROOT         VLT area

 

 SEE ALSO

 ctooCONFIG(8)

 

 

 

 

### generated by docDeroff ###

 

 


6.1.16                   icbpanAdc.tcl

 

 icbpanAdc  

                                        

 NAME

 icbpanAdc - wrapper class for icbpanAdc_uifClass

 

 SYNOPSIS

 icbpanAdc .w 

           -background Grey90 

           -relief flat       

           -cfgObj $cfgObj    

           -cwp "<alias>${devName}" 

           -devType $devType]

 

  where cfgObj is a ctooCONFIG object;

        devType is extracted from INS.CON.DEVICE${i}

        devName is extracted from ${devType}.DEVNAME

 

 DESCRIPTION

 Itcl wrapper class to handle ICB ADC device. The corresponding

 ibcpanAdc_uifClass contains a set of output widget (linked to OLDB)

 which in turn display the device name, keyword used to identify the

 device, the current simulation level (N=normal,S=simulate), the current

 device state, handset mode (H, if active) and the current position

 (named and in encoder unit). The class contains also an option

 button to select among various setup parameters and an entry widget

 for setting position values. Finally a checkbutton is used to

 indicate if the corresponding device is selected for some actions.

 

 PUBLIC METHODS

 icbpanAdc  xxx

    constructor. Calls "initFunction" which initialize the option

    button with appropriate parameters.

 isSelected

    get the current status of the checkbutton (0/1).

 setSelected 0/1

    set the checkbutton state to 0 or 1 (unselected or selected).

 getKeyw

    returns the associated setup keyw. + value. This method reads

    from the option button and entry widget the current user

    settings and prepare a string to be sent to ICS control process.

    This method is normally called when the SETUP cmd is invoked.

 setKeyw val

    extract from "val" the keyword parameter + value and fill the

    corresponding option button + entry. This method is called usually

    during a reading of a previously saved setup file.

 

 PROTECTED METHODS

 updateWdg item

    this method is called to modify on-the-fly the appareance of

    the widgets. E.g. if a particular param. selection requires also some

    input values, the corresponding entry widget is enabled,

    otherwise it is disabled. User can override this method to

    implement some specific behaviour.

 

 PUBLIC VARIABLES

 cfgObj

    ctooCONFIG object (configuration file interface)

 devType

    device type extracted from INS.CON.DEVICE${i}

 

 FILES

    $INS_ROOT/SYSTEM/COMMON/CONFIGFILES/*CONFIG.cfg

 

 ENVIRONMENT

    INS_ROOT        Instrument root area

    INTROOT         Integration area

    VLTROOT         VLT area

 

 SEE ALSO

 ctooCONFIG(8)

 

 

 

 

### generated by docDeroff ###

 

 


6.1.17                   icbpanDrot.tcl

 

 icbpanDrot  

                                        

 NAME

 icbpanDrot - wrapper class for icbpanDrot_uifClass

 

 SYNOPSIS

 icbpanDrot .w 

           -background Grey90 

           -relief flat       

           -cfgObj $cfgObj    

           -cwp "<alias>${devName}" 

           -devType $devType]

 

  where cfgObj is a ctooCONFIG object;

        devType is extracted from INS.CON.DEVICE${i}

        devName is extracted from ${devType}.DEVNAME

 

 DESCRIPTION

 Itcl wrapper class to handle ICB DROT device. The corresponding

 ibcpanDrot_uifClass contains a set of output widget (linked to OLDB)

 which in turn display the device name, keyword used to identify the

 device, the current simulation level (N=normal,S=simulate), the current

 device state, handset mode (H, if active) and the current position

 (named and in encoder unit). The class contains also an option

 button to select among various setup parameters and an entry widget

 for setting position values. Finally a checkbutton is used to

 indicate if the corresponding device is selected for some actions.

 

 PUBLIC METHODS

 icbpanDrot  xxx

    constructor. Calls "initFunction" which initialize the option

    button with appropriate parameters.

 isSelected

    get the current status of the checkbutton (0/1).

 setSelected 0/1

    set the checkbutton state to 0 or 1 (unselected or selected).

 getKeyw

    returns the associated setup keyw. + value. This method reads

    from the option button and entry widget the current user

    settings and prepare a string to be sent to ICS control process.

    This method is normally called when the SETUP cmd is invoked.

 setKeyw val

    extract from "val" the keyword parameter + value and fill the

    corresponding option button + entry. This method is called usually

    during a reading of a previously saved setup file.

 

 PROTECTED METHODS

 updateWdg item

    this method is called to modify on-the-fly the appareance of

    the widgets. E.g. if a particular param. selection requires also some

    input values, the corresponding entry widget is enabled,

    otherwise it is disabled. User can override this method to

    implement some specific behaviour.

 

 PUBLIC VARIABLES

 cfgObj

    ctooCONFIG object (configuration file interface)

 devType

    device type extracted from INS.CON.DEVICE${i}

 

 FILES

    $INS_ROOT/SYSTEM/COMMON/CONFIGFILES/*CONFIG.cfg

 

 ENVIRONMENT

    INS_ROOT        Instrument root area

    INTROOT         Integration area

    VLTROOT         VLT area

 

 SEE ALSO

 ctooCONFIG(8)

 

 

 

 

### generated by docDeroff ###

 

 


6.1.18                   icbpanSensor.tcl

  

 icbpanSensor  

                                        

 NAME

 icbpanSensor - wrapper class for icbpanSensor_uifClass

 

 SYNOPSIS

 icbpanSensor .w 

           -background Grey90 

           -relief flat       

           -cfgObj $cfgObj    

           -cwp "<alias>${devName}" 

           -devType $devType]

 

  where cfgObj is a ctooCONFIG object;

        devType is extracted from INS.CON.DEVICE${i}

        devName is extracted from ${devType}.DEVNAME

 

 DESCRIPTION

 Itcl wrapper class to handle sensor devices. The corresponding

 ibcpanSensor_uifClass contains a set of output widget (linked to OLDB)

 which in turn display the device name, the current simulation level

 (N=normal,S=simulate)  and the current device state. A checkbutton

 is used to indicate if the corresponding device is selected.

 

 PUBLIC METHODS

 icbpanSensor  xxx

    constructor. Read from ICS configuration file the number of

    sensors, the corresponding names and descriptions. Dinamically

    construct a set of output widgets linked to OLDB; every widget displays

    the current value reported by the corresponding sensor. The

    description is used as a short help text.

    Calls "initFunction" which initialize every output widget with

    data read from OLDB. It also attach an OLDB event to display every

    change in the sensor's reported value. This is done by means of

    the public method "dbUpdate".

 isSelected

    get the current status of the checkbutton (0/1).

 setSelected 0/1

    set the checkbutton state to 0 or 1 (unselected or selected).

 dbUpdate

    update output widgets associated to OLDB vector "last"

 evtDbRestart

    detach and attach event on OLDB vector "last"

 

 PUBLIC VARIABLES

 cfgObj

    ctooCONFIG object (configuration file interface)

 devType

    device type extracted from INS.CON.DEVICE${i}

 isSensor

    used (internally) during the construction

    of the control panel to distinguish between a "normal" device

    and a "sensor" device (see icbpanGUIcfg).

 

 FILES

    $INS_ROOT/SYSTEM/COMMON/CONFIGFILES/*CONFIG.cfg

 

 ENVIRONMENT

    INS_ROOT        Instrument root area

    INTROOT         Integration area

    VLTROOT         VLT area

 

 SEE ALSO

 ctooCONFIG(8), icbpanGUIcfg(8)

 

 

 

 

### generated by docDeroff ###

 

 

 

6.1.19                   icbpanSensorVer.tcl

 

 icbpanSensorVer  

                                        

 NAME

 icbpanSensorVer - subclass of icbpanSensor disposing sensors vertically

 

 SYNOPSIS

 icbpanSensorVer .w 

           -background Grey90 

           -relief flat       

           -cfgObj $cfgObj    

           -cwp "<alias>${devName}" 

           -devType $devType]

 

  where cfgObj is a ctooCONFIG object;

        devType is extracted from INS.CON.DEVICE${i}

        devName is extracted from ${devType}.DEVNAME

 

 DESCRIPTION

 Subclass of icbpanSensor to handle sensor devices.

 Sensor values are displayed vertically.

 

 SEE ALSO

 icbpanSensor(8)

 

 

 

 

### generated by docDeroff ###

 

 


6.1.20                   icbpanSensorHor.tcl

 

 icbpanSensorHor  

                                        

 NAME

 icbpanSensorHor - subclass of icbpanSensor disposing sensors horizontally

 

 SYNOPSIS

 icbpanSensorHor .w 

           -background Grey90 

           -relief flat       

           -cfgObj $cfgObj    

           -cwp "<alias>${devName}" 

           -devType $devType]

 

  where cfgObj is a ctooCONFIG object;

        devType is extracted from INS.CON.DEVICE${i}

        devName is extracted from ${devType}.DEVNAME

 

 DESCRIPTION

 Subclass of icbpanSensor to handle sensor devices.

 Sensor values are displayed horizontally.

 

 SEE ALSO

 icbpanSensor(8)

 

 

 

 

### generated by docDeroff ###

 

 


6.1.21                   icbpanSensorSqr.tcl

 

 icbpanSensorSqr  

                                        

 NAME

 icbpanSensorSqr - subclass of icbpanSensor optimizing space in a square

 

 SYNOPSIS

 icbpanSensorSqr .w 

           -background Grey90 

           -relief flat       

           -cfgObj $cfgObj    

           -cwp "<alias>${devName}" 

           -devType $devType]

 

  where cfgObj is a ctooCONFIG object;

        devType is extracted from INS.CON.DEVICE${i}

        devName is extracted from ${devType}.DEVNAME

 

 DESCRIPTION

 Subclass of icbpanSensor to handle sensor devices.

 Sensor values are displayed equally distributed

 vertically and horizontally.

 

 SEE ALSO

 icbpanSensor(8)

 

 

 

 

### generated by docDeroff ###

 

 


6.1.22                   icbpanPmt.tcl

 

 icbpanPmt  

                                        

 NAME

 icbpanPmt - wrapper class for icbpanPmt_uifClass

 

 SYNOPSIS

 icbpanPmt .w 

           -background Grey90 

           -relief flat       

           -cfgObj $cfgObj    

           -cwp "<alias>${devName}" 

           -devType $devType]

 

  where cfgObj is a ctooCONFIG object;

        devType is extracted from INS.CON.DEVICE${i}

        devName is extracted from ${devType}.DEVNAME

 

 DESCRIPTION

 Itcl wrapper class to handle ICB PMT (photomultiplier) device. The corresponding

 ibcpanPmt_uifClass contains a set of output widget (linked to OLDB)

 which in turn display the device name, keyword used to identify the

 device, the current simulation level (N=normal,S=simulate), the current

 device state, handset mode (H, if active), the current and the cumulated counts.

 Finally a checkbutton is used to indicate if the corresponding device is

 selected for some actions.

 

 PUBLIC METHODS

 icbpanPmt  xxx

    constructor. Calls "initFunction" which initialize the option

    button with appropriate parameters.

 isSelected

    get the current status of the checkbutton (0/1).

 setSelected 0/1

    set the checkbutton state to 0 or 1 (unselected or selected).

 getKeyw

    returns the associated setup keyw. + value. Dummy

 setKeyw val

    This method is called usually during a reading of a previously

    saved setup file. Dummy

 

 PUBLIC VARIABLES

 cfgObj

    ctooCONFIG object (configuration file interface)

 devType

    device type extracted from INS.CON.DEVICE${i}

 

 FILES

    $INS_ROOT/SYSTEM/COMMON/CONFIGFILES/*CONFIG.cfg

 

 ENVIRONMENT

    INS_ROOT        Instrument root area

    INTROOT         Integration area

    VLTROOT         VLT area

 

 SEE ALSO

 ctooCONFIG(8)

 

 

 

 

### generated by docDeroff ###

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

___oOo___



[1] Sensor devices may control a rather big number of sensors. It is important to have control on the geometry of the corresponding widget. The module icbpan provides three classes, which can be used for sensors devices:

·          icbpanSensorVer (default): all sensors are listed vertically

·          icbpanSensorHor: all sensors are listed horizontally

·          icbpanSensorSqr: all sensors are equally distributed horizontally and vertically

 

 

[2] For historical reasons, the coding of states for icb standard devices (e.g. lamp in the Template Instrument) and special devices (e.g. yyyy in the Template Instrument) are different. If an instrument has a special device (e.g. a sensor) with the same functionality as one of the icb standard devices, but different hardware, one of the standard uifClass widgets provided by icbpan could be used. In this case, in order to get the right display of the state, the keyword UIFSPECIAL must be T.