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

 

 

 

 

 

---

Base ICS control panel

 

 

 

 

 

Doc. No.:

Issue:

Date:

 

 

 

 

 

Name Date Signature

Prepared: A.Longinotti

 

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 *

1.1 Purpose *

1.2 Scope *

1.3 Applicable Documents *

1.4 Reference Documents *

1.5 Abbreviations and Acronyms *

1.6 Glossary *

1.7 Stylistic Conventions *

1.8 Naming Conventions *

1.9 Problem Reporting/Change Request *

2 OVERVIEW *

2.1 ICS control panel architecture *

2.1.1 Software Modules *

3 OPERATOR’S GUIDE *

3.1 Panel Start-up *

3.1.1 Menu bar *

3.1.2 Global ICS Control *

3.1.3 Single Devices Control *

4 TUTORIAL: IMPLEMENTING ICS CONTROL PANEL FROM SCRATCH *

4.1 Create the ICS control panel module *

4.2 Design the ICS control panel layout *

4.3 Configure the ICS control panel layout *

4.4 Starting the ICS control panel *

4.5 Creating a special device *

4.5.1 Overriding default behavior *

4.5.2 Building an uifClass from scratch *

5 CONFIGURATION GUIDE *

6 REFERENCE *

6.1 icbpan specific *

6.1.1 icbpanLib.tcl *

6.1.2 icbpanGUIcfg.tcl *

6.1.3 icbpanUIF.tcl *

6.1.4 icbpanICSControl.tcl *

6.1.5 icbpanICSCmd.tcl *

6.1.6 icbpanICSDevControl.tcl *

6.1.7 icbpanLamp.tcl *

6.1.8 icbpanShutter.tcl *

6.1.9 icbpanNamedPos.tcl *

6.1.10 icbpanContPos.tcl *

6.1.11 icbpanSlit2Len.tcl *

6.1.12 icbpanSlit2Wid.tcl *

6.1.13 icbpanTilt.tcl *

6.1.14 icbpanGrat.tcl *

6.1.15 icbpanDpol.tcl *

6.1.16 icbpanAdc.tcl *

6.1.17 icbpanDrot.tcl *

6.1.18 icbpanSensor.tcl *

6.1.19 icbpanSensorVer.tcl *

6.1.20 icbpanSensorHor.tcl *

6.1.21 icbpanSensorSqr.tcl *

6.1.22 icbpanPmt.tcl *

  1. INTRODUCTION
  2. 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. Purpose
    2. 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.

    3. Scope
    4. 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 .

    5. Applicable Documents
    6. 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

    7. Reference Documents
    8. 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

    9. Abbreviations and Acronyms
    10. 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

    11. Glossary
    12. No special definition is introduced in this manual

    13. Stylistic Conventions
    14. 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.

    15. Naming Conventions
    16. This implementation follows the naming conventions as outlined in [AD 01].

    17. Problem Reporting/Change Request

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

  3. 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:

    1. ICS control panel architecture
    2. 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

      Pressure sensor

      icbSEN_BAROMETER

      icbpanSensor_uifClass

      icbpanSensornnn

      Cryo. Temp. sensor

      icbSEN_CN77000

      icbpanSensor_uifClass

      icbpanSensornnn

      Cabinet cool. sensor

      icbSEN_COOLING

      icbpanSensor_uifClass

      icbpanSensornnn

      Digital sensor

      icbSEN_DIGITAL

      icbpanSensor_uifClass

      icbpanSensornnn

      Temp. sensor

      icbSEN_ESTERS

      icbpanSensor_uifClass

      icbpanSensornnn

      Humidity sensor

      icbSEN_HUMIDITY

      icbpanSensor_uifClass

      icbpanSensornnn

      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

      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.

  1. OPERATOR’S GUIDE
  2. 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.

    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:

 

      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:

Figure 2: ICS GUI menu section

      1. Global ICS Control
      2. 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. 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:

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:

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

  1. 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]).

    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

    1. rename the module directory

    1. rename all module files

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

    1. 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

    1. 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

 

    1. Configure the ICS control panel layout
    2. 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

    3. Starting the ICS control panel
    4. 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

    5. Creating a special device
    6. 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.

      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.

 

      1. 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).
    2. Figure 6: Example of special class construction

    3. create a wrapper class which inherits the just created "*_uifClass.tcl" (see xxipanSpecial.tcl and the corresponding man page);
    4. 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).

    1. 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.

 

  1. CONFIGURATION GUIDE
  2. 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. 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.

  3. REFERENCE
    1. icbpan specific
      1. icbpanLib.tcl
      2. 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 ###

         

      3. icbpanGUIcfg.tcl
      4. 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 ###

         

      5. icbpanUIF.tcl
      6. 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 ###

         

      7. icbpanICSControl.tcl
      8. 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 ###

         

      9. icbpanICSCmd.tcl
      10. 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 ###

         

      11. icbpanICSDevControl.tcl
      12. 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 ###

      13. icbpanLamp.tcl
      14. 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 ###

         

      15. icbpanShutter.tcl
      16. 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 ###

         

      17. icbpanNamedPos.tcl
      18. 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 ###

         

      19. icbpanContPos.tcl
      20. 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 ###

         

      21. icbpanSlit2Len.tcl
      22. 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 ###

         

      23. icbpanSlit2Wid.tcl
      24. 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 ###

         

      25. icbpanTilt.tcl
      26. 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 ###

         

      27. icbpanGrat.tcl
      28. 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 ###

         

      29. icbpanDpol.tcl
      30. 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 ###

         

      31. icbpanAdc.tcl
      32. 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 ###

         

      33. icbpanDrot.tcl
      34. 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 ###

         

      35. icbpanSensor.tcl
      36. 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 ###

         

         

      37. icbpanSensorVer.tcl
      38. 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 ###

         

      39. icbpanSensorHor.tcl
      40. 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 ###

         

      41. icbpanSensorSqr.tcl
      42. 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 ###

         

      43. 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___