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

 

 

 

 

 

---

 

 

 

 

 

Doc. No.:

Issue:

Date:

 

 

 

 

 

Name Date Signature

Prepared:

 

Name Date Signature

Approved:

Name Date Signature

Released:

 

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

28/11/1999

All

First issue, containing only ICS part

2.0

08/04/2001

All

Second issue, containing the whole instrument, including OS

3

28/03/2002

4.7.2 5.3 10.5 10.10.4

MAR2002, Added ICS stand-alone GUI, SPR VLTSW20010501, VLTSW20010502.

       

 

 

TABLE OF CONTENTS

 

 

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.7.1 Data Flow and Processor Model Diagrams *

1.8 Naming Conventions *

1.9 Problem Reporting/Change Request *

2 OVERVIEW *

2.1 Hardware architecture *

2.1.1 Devices *

2.1.2 Computers *

2.1.3 LANs *

2.1.4 Special connections *

2.2 Software Architecture *

2.2.1 Software Modules *

2.2.2 Environments *

2.2.3 Standards *

3 INSTALLATION GUIDE *

3.1 Requirements *

3.1.1 Hardware *

3.1.2 Software *

3.2 Installation procedure *

3.2.1 Preparation *

3.2.2 Operational hw configuration (all LCUs available) *

3.2.3 Development hw configuration (not all LCUs available) *

4 OPERATOR’S GUIDE *

4.1 System Start-up *

4.1.1 Log-in *

4.1.2 Telescope availability *

4.1.3 Midas availability *

4.1.4 Instrument Software Start-up *

4.1.5 Begin of operations *

4.1.6 End of operations *

4.2 System Shut-down *

4.3 User Station *

4.4 Observations with Templates *

4.5 Alarms *

4.6 Data files location *

4.7 Engineering *

4.7.1 OS Engineering GUI *

4.7.2 ICS Engineering GUI *

5 PROGRAMMER'S GUIDE *

5.1 Instrument Modes *

5.2 Subsystems Identifiers *

5.3 ICS Software Devices *

5.3.1 ICS Special devices *

5.3.2 ICS Assemblies *

5.4 Exposures *

5.4.1 Exposure types *

5.4.2 Exposure Id *

5.4.3 Exposure Status *

5.4.4 Exposure Parallelism *

5.4.5 Exposure Life Cycle *

5.4.6 Exposure execution *

5.5 Operational States *

5.6 Commands *

5.6.1 OS Special commands *

5.6.2 ICS Special commands *

5.6.3 DCS Special commands *

5.7 Tcl libraries *

5.8 Dictionaries *

5.9 Alias files *

5.10 Configuration files *

5.11 Setup files and keywords *

5.11.1 OCS keywords *

5.11.2 INS keywords *

5.11.3 DCS keywords *

5.12 FITS files *

5.13 Public on-line database attributes *

5.14 Operational logs *

5.15 Templates *

5.15.1 Acquisition Templates *

5.15.2 Calibration Templates *

5.15.3 Observation Templates *

6 CONFIGURATION *

6.1 Change Instrument Configuration Parameters *

7 MAINTENANCE *

7.1 General *

7.1.1 Instrument Self-Test *

7.1.2 Module xxins *

7.1.3 Module dicXXXX *

7.2 OS *

7.2.1 Module xxo *

7.2.2 Module xxopan *

7.2.3 Module xxotsf *

7.2.4 Module xxoseq *

7.3 ICS *

7.3.1 ICS Self-Test *

7.3.2 Module xxi *

7.3.3 Module xxipan *

7.3.4 Module xxidev *

7.4 DCS *

7.4.1 Engineering *

7.5 MS *

7.5.1 Maintenance Templates *

7.5.2 Module xxmcfg *

7.5.3 Module xxmseq *

7.5.4 Module xxmtsf *

8 FAQ AND TROUBLESHOOTING *

8.1 Problems at System Start-up *

8.1.1 Log-in fails *

8.1.2 Start-up of GUIs fails *

8.1.3 Start-up of control processes fails *

8.1.4 xxiControl starts with a wrong simulation level *

8.1.5 TCCD starts with a wrong simulation level and fails to go STANDBY *

8.1.6 xxoControl tries to access sub-systems declared as not available *

8.1.7 Going ONLINE fails *

8.2 Problems when running exposures *

8.2.1 Cannot send commands to TCS or access tif *

8.2.2 Templates cannot access Midas *

9 ERROR DEFINITIONS *

10 REFERENCE *

10.1 Programs *

10.1.1 Command Definition Table for program xxoControl *

10.2 Scripts *

10.2.1 xxinsStartup *

10.2.2 xxinsStart *

10.2.3 xxinsStop *

10.2.4 xxinsCreateNewInstrument *

10.3 Include Files *

10.4 Tcl libraries *

10.4.1 xxoseqICS *

10.5 Configuration files *

10.5.1 xxmcfgCONFIG.cfg *

10.5.2 xxmcfgINS.cfg *

10.5.3 xxmcfgSTART.cfg *

10.6 Setup files *

10.6.1 Example of Reference Setup file *

10.6.2 Example of Instrument Setup File *

10.7 Templates *

10.7.1 IR Imaging acquisition template *

10.7.2 IR Imaging observation template *

10.7.3 IR Spectroscopy acquisition template *

10.7.4 IR Spectroscopy observation template *

10.7.5 Optical Imaging acquisition template *

10.7.6 Optical Imaging observation template *

10.7.7 Optical Imaging bias calibration template *

10.7.8 Optical Imaging flat-field calibration template *

10.7.9 Optical Imaging detector linearity calibration template *

10.7.10 Optical Imaging focus calibration template *

10.8 FITS files *

10.8.1 Example of FITS header *

10.9 Log files *

10.9.1 Example of Operational Log (FITS format) *

10.10 Panels *

10.10.1 OS Control *

10.10.2 OS Status *

10.10.3 OS Engineering *

10.10.4 ICS stand-alone *

10.11 Error files *

10.11.1 xxoErrors.h *

10.11.2 xxo_ERRORS *

Appendix A. Create a new Instrument *

.1 OS sub-classing and method overloading *

.2 Add special commands to OS *

.3 Add special handling of set-up keywords in OS *

.4 Implement a class library for templates *

.5 Implement an ICS special device on LCU *

.6 Implement an ICS special device on WS *

.7 ICS WS sub-classing and method overloading *

.8 ICS WS Assemblies *

Appendix B. Installation using different environments *

  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. The Template Instrument (called XXXX) is a fictitious instrument, which incorporates the basic functionality of VLT instruments.

      It is supposed to help Instrumentation Software developers, by providing them with examples of code and related files. It is also used internally at ESO to validate, through a complete instrument, the Instrumentation Common Software packages before a new VLT sw release is issued.

      This document is the User Manual of the Template Instrument Control Software.

      This package is fully based on VLT Instrumentation Common Software packages, such as icb (base ICS, see [RD 16] and [RD 26]), boss (base OS, see [RD 17]), tpl (library for templates, see [RD 24]).pkgin (installation tool, see [RD 18]), ctoo (configuration tool, see [RD 25]) and stoo (startup tool, see [RD 19]).

      This document can also be used as template for the User and Maintenance Manual of another instrument.

    3. Scope
    4. This document covers only the control part of the Template Instrument Software. It does not deal with other parts of the Data Flow, such as the pipeline.

      It is aimed at operators of the instrument and software developers, who are responsible for its installation and maintenance.

      This document is also aimed at software developers, who need to develop Instrumentation Software for VLT instruments or in general instrumentation according to VLT standards.

      It is also meant for ESO engineers, responsible for the integration of new VLT Software releases, to validate the VLT Instrumentation Common Software packages.

    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]

      GEN-SPE-ESO-19400-0794

      1.1

      25/11/1997

      DICB - Data Interface Control Document

      [AD 02]

      VLT-SPE-ESO-10000-0011

      2.0

      30/09/1992

      VLT Software Requirements Specification

      [AD 03]

      VLT-PRO-ESO-10000-0228

      1.0

      10/03/1993

      VLT Software Programming Standards

      [AD 04]

      VLT-PLA-ESO-10000-0441

      1.0

      01/05/1995

      VLT Science Operation Plan

      [AD 05]

      VLT-MAN-ESO-17210-0667

      1.0

      03/12/1997

      Guidelines for VLT applications.

      [AD 06]

      VLT-SPE-ESO-17212-0001

      2.0

      23/02/1995

      INS Software Specification

      [AD 07]

      VLT-SPE-ESO-17240-0385

      2.1

      15/07/1996

      INS Common Software Specification

      [AD 08]

      VLT-ICD-ESO-17240-19400

      2.6

      17/11/1997

      ICD between VCS and Archive

      [AD 09]

      VLT-ICD-ESO-17240-19200

      1.3

      07/06/2000

      ICD between VCS and OH

    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-SPE-ESO-17120-1355

      1.2

      12/01/1999

      Final Lay-out of VLT Control LANs

      [RD 04]

      VLT-MAN-SBI-17210-0001

      3.6

      01/03/2001

      LCU Common Software User Manual

      [RD 05]

      VLT-MAN-ESO-17210-0600

      1.7

      02/10/1998

      Motor Control sw User Manual API/ACI

      [RD 06]

      VLT-MAN-ESO-17210-0669

      1.4

      20/10/1997

      Motor Engineering Interface User Manual

      [RD 07]

      VLT-MAN-ESO-17210-0619

      2.2

      31/03/2002

      Central Control Software User Manual

      [RD 08]

      VLT-MAN-ESO-17210-0707

      1.6

      30/09/1999

      On Line Database Loader User Manual

      [RD 09]

      VLT-MAN-ESO-17210-0771

      1.8

      06/10/2001

      EVH User Manual

      [RD 10]

      VLT-MAN-ESO-17210-0770

      1.8

      30/09/2001

      Extended CCS User Manual

      [RD 11]

      VLT-MAN-ESO-17210-0690

      4.3

      31/03/2002

      Panel Editor User Manual

      [RD 12]

      VLT-MAN-ESO-17240-0853

      1.4

      25/04/2001

      INS Common sw - oslx User Manual

      [RD 13]

      VLT-MAN-ESO-17240-0672

      1.6

      25/09/1998

      CCD Detectors Control Software User Manual

      [RD 14]

      VLT-MAN-ESO-13640-1388

      1.2

      22/11/1999

      FIERA Control Software User Manual

      [RD 15]

      VLT-MAN-ESO-14100-1878

      1.1

      19/10/1999

      IRACE-DCS User Manual

      [RD 16]

      VLT-MAN-ESO-17240-0934

      3

      30/03/2002

      Base ICS User Manual

      [RD 17]

      VLT-MAN-ESO-17240-2265

      1.1

      25/04/2001

      Base OS Stub User Manual

      [RD 18]

      VLT-MAN-ESO-17240-1913

      2

      30/03/2002

      Installation Tool for VLT Sw packages

      [RD 19]

      VLT-MAN-ESO-17240-2153

      2

      30/03/2002

      INS Startup Tool User Manual

      [RD 20]

      VLT-MAN-ESO-17220-0737

      3

      28/03/2002

      HOS - Sequencer User Manual

      [RD 21]

      P.Ward, S.Mellor, Yourdon Press,

       

      1985

      Structured Development for Real-Time Systems

      [RD 22]

      J. Rumbaugh et. al., Prentice Hall,

       

      1991

      Object-Oriented Modeling and Design

      [RD 23]

      VLT-MAN-ESO-17220-1999

      2

      27/03/2002

      Broker for Observation Blocks User Manual

      [RD 24]

      VLT-MAN-ESO-17240-2240

      2

      28/03/2002

      INS Common Software for Templates

      [RD 25]

      VLT-MAN-ESO-17240-2325

      2

      30/03/2002

      INS Configuration tool User Manual

      [RD 26]

      VLT-MAN-ESO-17240-2606

      3

      30/03/2002

      Base ICS GUI 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

      DCS

      Detector Control Software

      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

      ISAAC

      Infrared Spectrograph and Array Camera

      IWS

      Instrument Workstation

      LAN

      Local Area Network

      LCC

      LCU Common Software

      LCU

      Local Control Unit

      MS

      Maintenance Software

      N/A

      Not Applicable

      OMT

      Object Modeling Technique

      OO

      Object Oriented

      OOD

      Object Oriented Design

      OS

      Observation Software

      RAM

      Random Access Memory

      SW

      Software

      TBC

      To Be Clarified

      TBD

      To Be Defined

      TCS

      Telescope Control Software

      TIM

      Time Interface Module

      TRS

      Time Reference System

      UIF

      (Portable) User Interface (Toolkit)

      UVES

      UltraViolet Visual Echelle Spectrograph

      VLT

      Very Large Telescope

      VME

      Versa Module Eurocard

      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.

      1. Data Flow and Processor Model Diagrams

      Data Flow and processor Model Diagrams are based on De Marco/Yourdon notation for real-time systems [RD 21].

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

    17. Problem Reporting/Change Request

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

  3. OVERVIEW

This chapter gives a short overview of the instrument and its architecture.

The rest of the manual is organized as follows:

    1. Hardware architecture
      1. Devices

The Instrument consists of:

      1. Computers

The computers on which the Instrument Software runs are shown in Figure 1:

Note: the ATM board belongs to the standard configuration of Instrumentation Workstation and detectors UltraSparc. They are however not needed to run the Template Instrument Software and are mentioned here just to remind that for real instruments they should be present. The same consideration applies to the LCU TIM boards, whereby also in the case of real instruments the presence of the TIM board is mandatory only if the time precision needed on that LCU requires it.

      1. LANs
      2. The Instrument LAN follows the lay-out of VLT Control LANs (see [RD 03]) and is shown in Figure 1

      3. Special connections

The Template Instrument architecture does not foresee any special connection.

 

 

 

 

 

 

 

 

 

Figure 1 Hardware architecture

    1. Software Architecture
    2. The architecture of the Control Software follows the VLT standard operational scheme and is shown in Figure 2

      Observation Blocks, created with the P2PP toolkit, are sent to the Broker for Observation Blocks (BOB), which executes sequentially the templates defined in them.

      In turn, each template consists normally of a sequence of commands sent to the OS Server. This process is responsible to interpret the commands received and convert them into commands for the controlled sub-systems (ICS, DCSs and TCS), taking care of the corresponding replies.

      At the end of an exposure, the OS Server process is also responsible for merging all data/information into one FITS file and archive it, through the dedicated processes VOLAC/VCSOLAC/OLAS.

      1. Software Modules
      2. The XXXX Instrument Software consists of the following modules (the prefix id xx corresponds to the Instrument ID):

        cmm Module

        INS Module

        Platform

        Description

        xxins

        N/A

        WS

        integration module

        dicXXXX

        N/A

        WS

        FITS dictionaries

        xxi

        ICS

        WS

        ICS WS front-end and LCU simulator

        xxipan

        ICS

        WS

        ICS stand-alone GUI

        xxidev

        ICS

        LCU

        ICS special devices.

        xxo

        OS

        WS

        OS Server

        xxopan

        OS

        WS

        OS GUI

        xxoseq

        OS

        WS

        Observation Template scripts

        xxotsf

        OS

        WS

        Observation Template Signature Files

        xxmcfg

        MS

        WS

        Instrument Configuration Files

        xxmseq

        MS

        WS

        Maintenance Template scripts

        xxmtsf

        MS

        WS

        Maintenance Template Signature Files

      3. Environments

The Instrument uses the following CCS environments:

 

      1. Standards

The Instrument Software is based on the standard packages distributed with VLT Software releases. In particular:



Figure 2 Template Instrument Architecture

  1. INSTALLATION GUIDE
  2. The installation uses the VLT standard tool pkgin (see [RD 18]).

    1. Requirements
      1. Hardware

The following computers must be available (see section 2.1.2):

Furthermore, a more complete functionality is achieved if also the following computers (some or all of them) are available:

      1. Software

XXXX runs both on fullCCS or CCSLite.

    1. Installation procedure
    2. Normally an Instrument Software User Manual should describe only the installation procedure needed in the operational configuration, i.e. when all computers used by that instrument are available (see3.2.2). However, due to the nature of XXXX (example for all instrument developers, working at different places under different hw configurations), we include also a section (3.2.3) describing the procedure to be followed depending on the computers availability.

      This section describes the installation procedure used up to the Commissioning Phase. Once the instrument is at Paranal and enters into operations, the Installation procedure will slightly change. In fact, in order to minimize downtime on target Workstations, the first part of the Installation procedure at Paranal (up to step BUILD_ENV of pkginBuild) is executed on a dedicated off-line Workstation. The results are copied to the target IWS, where the remaining steps (from START_WSENV) are then executed.

      The whole installation procedure must be executed as user xxxxmgr (in development environments this is not mandatory) and will take at least 30 minutes.

      During the installation, it is recommended to have a logMonitor window active, in order to see possible error logs.

      At the end of the installation, check for error logs in file $HOME/XXXXSource/INSTALL/pkginBuild.err.

      1. Preparation
  1. Run the utility vccEnv and verify that the following CCS environments are known and correctly configured in the ACC database:
  2. wxxxx for the instrument

    wxxtcs for the simulated TCS

    The same should be done for the environments associated to available LCUs, if any:

    lxxics1 for ICS LCU 1

    lxxics2 for ICS LCU 2

    lxxtccd for TCCD DCS LCU

    wxxfier for the FIERA SLCU

  3. Verify that the environment variables INTROOT and INS_ROOT are defined.
  4. % echo $INTROOT

    % echo $INS_ROOT

  5. Verify that the file $HOME/.bobrc exists and is a symbolic link to $INTROOT/config/xxins.bobrc. If not, run:
  6. % ln –s $INTROOT/config/xxins.bobrc $HOME/.bobrc

  7. Create an empty directory as root for the source code, e.g.:

% mkdir $HOME/XXXXSource

During the installation the following directories are created:

xxins Installation support module (for pkginBuild).

INSTALL It contains logs and error logs of the installation.

ICS It contains all ICS modules (see 2.2.1)

OS It contains all OS modules (see 2.2.1)

MS It contains all MS modules (see 2.2.1), in particular xxmcfg, with the whole set of configuration files.

VLTSW_new It contains an upgraded version of modules, if any, belonging to VLT sw releases. If all modules as from VLTROOT are taken, this directory is missing.

      1. Operational hw configuration (all LCUs available)
      2. % cd $HOME/XXXXSource

        % cmmCopy xxins 3.3

        % pkginBuild xxins

      3. Development hw configuration (not all LCUs available)

The first step involves only WS environments and must be executed independently from the LCUs availability:

% cd $HOME/XXXXSource

% cmmCopy xxins 3.3

% pkginBuild xxins –env wxxxx wxxtcs

At the end of this step, if no error has been found, the WS environments must be active.

If not all LCUs are available, periodic errors are logged, because the logManager tries periodically to access all LCUs. In order to avoid this, edit the file $VLTDATA/ENVIRONMENTS/wxxxx/logLCU.config and remove the lines corresponding to not available LCUs.

The next steps are needed only if LCUs are available.

Run:

% pkginBuild xxins –env lxxtccd –fromstep BUILD_ENV

Run:

% pkginBuild xxins –env lxxics1 lxxics2 –fromstep BUILD_ENV

As a matter of fact, XXXX ICS is configured for two LCUs:

    1. LCU 1 controls all motorized devices
    2. LCU 2 controls all the other devices (lamps/shutters/sensors)

Assuming you are interested in motorized devices, you should declare LCU 1 available and LCU 2 not available (otherwise do the opposite):

##INS.CON.LCUAV2 F

% cd $HOME/XXXXSource

% pkginBuild xxins –env lxxics1 –fromstep BUILD_ENV

  1. OPERATOR’S GUIDE
  2. This chapter is intended to give instrument operators all information they need to work with the Instrument Software through its Graphical User Interface.

    Note: For Instruments operational at Paranal, after proper log-in on the User Station, the CDE (or VUE) menu is customized to the specific Instrument to be operated, such that dedicated options to start-up/shutdown control processes or individual panels are provided. An example of such functionality is not available for the Template Instrument yet.

    1. System Start-up
    2. In the following it is assumed that the installation (see chapter 3) has been successfully completed and environments are active.

      1. Log-in
      2. In order to operate the instrument properly, the user has to log-in on all terminals in the User Station as user xxxx (not mandatory in a development environment).

        Unless otherwise specified, all UNIX shell commands, described in the next sections, have to be typed on a xterm window running on the Instrument Workstation.

        After log-in, check that the environment variables needed to run properly the Instrument software are defined. To list the environment variables that should be defined type:

        % osbEnvSet XXXX

        The setting of these variables is done within the file $INTROOT/config/xxins-misc-all.env (or xxins.cshrc if vue is used). This file is automatically sourced whenever you login or any new xterm is opened. Make sure that this is the case.

      3. Telescope availability

If TCS is supposed to be used, make sure that it is running and ONLINE, before starting the Instrumentation Software:

% xxinsStart –panel OS_ENGINEERING

Figure 3 OS Engineering panel

The OS engineering panel (see Figure 3) pops-up.

Simulation à TCS à Auto-guider à Stop and then Start

Simulation à TCS à Active Optics à Stop and then Start

      1. Midas availability
      2. Normally the Instrumentation Software does not need any data reduction package installed and running on the Instrument Workstation. The only exception is when such a package is needed to perform on-line data reduction operations, whose results are then used by the Instrumentation Software. Even in this case, normally no control process accesses the on-line data reduction package, because this should be done at templates level.

        Some XXXX templates need a data reduction package and Midas is used for this purpose.

        Midas FEB2001 must therefore be installed. If this is not possible, for whatever reason, then templates can still be executed (e.g. for test purposes) by setting the environment variable DEBUG_MIDAS (access to Midas from templates is disabled):

        %export DEBUG_MIDAS=1 (or setenv DEBUG_MIDAS 1 if vue is used)

         

      3. Instrument Software Start-up

The system start-up is based on the common startup tool stoo (see [RD 19]).

There are two ways to start-up the Instrument Software:

  1. Through dedicated GUI. Recommended after a new installation or whenever some start-up configuration parameter needs to be changed. Type on a xterm window:
  2. % xxinsStartup

    The Start-up GUI (Figure 4) pops-up. This panel allows defining which sub-systems are available and at which level of simulation they should start, in particular if they have to access the LCUs or they should simulate the LCU functionality at WS level. It also allows specifying which GUIs will be automatically started.

     

    Figure 4 Startup panel

    Finally, by pressing the button Start, all specified GUIs and sub-systems control processes are started. A log window shows the various phases of the startup procedure.

    When successfully completed, the log window disappears and all sub-systems should be in state STANDBY.

    If any error occurs, the log window remains active and shows the reason of the failure.

  3. Directly from the UNIX shell. Type on a xterm window:

% xxinsStart

This command has the same effect of pressing the Start button in the start-up GUI.

      1. Begin of operations
      2. Before being able to operate the instrument and take exposures, it has to be ONLINE.

        On the OS Control panel (see Figure 5), check the global State. If it is not ONLINE, select the menu option

        Instrument à ONLINE.

        Please wait till the global State turns to ONLINE.

        Figure 5 OS Control panel

      3. End of operations

After operating the instrument, whenever it is foreseen to leave it idle for long time (e.g. during daytime), the instrument has to be brought to a safe state, also called STANDBY.

On the OS Control panel (see Figure 5), select the menu option

Instrument à STANDBY.

Please wait till the global State turns to STANDBY.

    1. System Shut-down

There are two ways to shutdown the Instrument Software:

  1. From the OS Control GUI select the menu item Instrument à SHUTDOWN.
  2. Only the control processes are terminated. Panels remain up.

  3. Type on a xterm window:

% xxinsStop

All control processes and panels are terminated.

    1. User Station
    2. The GUIs distribution on the User Station screens is shown in Figure 6 and Figure 7.

      Figure 6 User Station screen #1

      Figure 7 User Station screen #2

       

    3. Observations with Templates

This is the usual way to do observations at the VLT.

In this section we illustrate a simple example of observing run. We run the Observation Block (OB) defined in the file XXXX_gen_tec_SelfTest.obd. This OB executes sequentially all templates defined for XXXX. It is supposed to be used as self-test procedure to verify that the instrument is working properly (see also [RD 24]).

Normally Observation Blocks (OBs) exercise all instrument sub-systems, as well as the telescope (if declared available).

It is therefore VERY IMPORTANT to verify the status of instrument and telescope before starting this OB, to avoid damages.

OBs are prepared through the P2PP tool on a separate Workstation (wxxdhs).

In order to run them:

  1. Select the OB to be executed in the P2PP GUI
  2. Load this OB in the BOB GUI (File à Load Obs à 1).
  3. Press the Start button.
  4. Wait till the OB has been completely executed.

If necessary, during the execution of the OB, one can abort it (button Abort in BOB).

The running exposure can be aborted by pressing the Abort button in the OS Control panel.

See sections 5.15 and 7.2.3 for a more detailed description of the available templates.

    1. Alarms
    2. No alarms are at present defined for the instrument.

      Description

      Severity

      Operator’s Action

           

       

    3. Data files location

All data files used and/or generated by the Instrument Software are located under $INS_ROOT as follows:

$INS_ROOT/SYSTEM/COMMON/CONFIGFILES

$INS_ROOT/SYSTEM/DETDATA

$INS_ROOT/SYSTEM/COMMON/SETUPFILES/<type>

<type> is one of the following: REF, INS, DET, TARG

$INS_ROOT/SYSTEM/COMMON/TEMPLATES/TSF

$INS_ROOT/SYSTEM/COMMON/TEMPLATES/OBD

    1. Engineering
      1. OS Engineering GUI
      2. The OS Engineering GUI (see Figure 3) allows to startup/shutdown, change state and startup the stand-alone GUI of single sub-systems, e.g. whenever there are problems with one specific sub-systems. To start it up:

        %xxinsStart –panel OS_ENGINEERING

      3. ICS Engineering GUI

While the detectors and the telescope stand-alone GUIs are provided by the associated standard software packages, the ICS GUI is necessarily specific to the instrument (see Figure 8). It is based on icbpan (see [RD 26]). To start it up:

%xxinsStart –panel ICS

Figure 8 ICS Engineering GUI

  1. PROGRAMMER'S GUIDE
  2. This part of the document provides a description of the programmatic interface of the Instrument Software.

    For people having no experience with Instrumentation software yet, it is recommended, although not necessary, before starting to read this section, first to have a look at the interactive usage of the instrument at chapter 4 and possibly try it out. It can help to get a better idea of how Instrumentation software works.

    1. Instrument Modes

XXXX defines the following modes:

Subsystems involved are IRACE, ICS and TCS.

Subsystems involved are TCCD, ICS and TCS.

Subsystems involved are IRACE, TCCD, ICS and TCS.

In this mode two independent exposure, one for each detector (IR and TCCD), can be executed in a semi-parallel way, i.e. the exposures on the two detectors are started at different points in time, however there is a time interval, during which both exposures are running. For more information see [RD 17].

Subsystems involved are FIERA, ICS and TCS.

    1. Subsystems Identifiers
    2. OS must be able to associate one or more sub-systems to each short-FITS keyword associated to a SETUP command. The filtering criteria are defined in the configuration file $INS_ROOT/SYSTEM/COMMON/CONFIGFILES/xxmcfgINS.cfg

      (see also 10.5.2).

      The table below provides a summary.

      Subsystem

      FITS Prefix

      OS

      OCS

      ICS

      INS

      IRDCS

      DET1

      TCCD

      DET2

      FIERA

      DET3

      TCS

      TEL

       

    3. ICS Software Devices

The ICS Software devices are defined in the configuration file $INS_ROOT/SYSTEM/COMMON/CONFIGFILES/xxmcfgINS.cfg (see also 10.5.2):

#

Name

Description

Positions

Motor

Axis

FITS Prefix

ICB Class

LCU

1

lamp

Sample lamp

ON/OFF

N/A

INS.LAMP1

icbLAMP

2

2

tsh

Sample shutter

OPEN/CLOSED

N/A

INS.SHUT1

icbSHUTTER

2

3

adc

Sample ADC device

continuous

circular

INS.ADC1

icbMOT_ADC

1

4

dpor

Sample depolarizer

continuous

circular

INS.DPOR

icbMOT_DPOR

1

5

drot

Sample derotator

continuous

circular

INS.DROT

icbMOT_DROT

1

6

filt

Sample filter wheel

discrete

circular

INS.FILT1

icbMOT_FILTER

1

7

grat

Sample grating wheel

continuous

circular

INS.GRAT1

icbMOT_GRATING2

1

8

mirr

Sample mirror wheel /slide

discrete

circ./lin.

INS.MIRR1

icbMOT_MIRROR

1

9

iods

Sample slide

discrete

linear

INS.OPTI1

icbMOT_OPTI

1

10

gris

Sample wheel

discrete

circular

INS.GRIS1

icbMOT_OPTI

1

11

focu

Sample slide

continuous

linear

INS.FOCU1

icbMOT_POS

1

12

rot

Sample wheel

continuous

circular

INS.ROT1

icbMOT_POS

1

13

dekk

Sample dekker (two jaws)

continuous

excentric

INS.SLIT1.LEN

icbMOT_SLIT2_LEN

1

14

slit

Sample slit (two jaws)

continuous

excentric

INS.SLIT1.WID

icbMOT_SLIT2_WID

1

15

slits

Sample slit wheel/slide

discrete

circ./lin.

INS.SLIT2

icbMOT_SLITS

1

16

tilt

Sample tilt device

continuous

excentric

INS.TILT1

icbMOT_TILT

1

17

fcs

Cryostat sensor

N/A

N/A

INS.SENSOR1

icbSEN_ADAM

2

18

baro

Pressure sensor

N/A

N/A

INS.SENSOR2

icbSEN_BAROMETER

2

19

fctc

Cryostat temp. sensor

N/A

N/A

INS.SENSOR3

icbSEN_CN77000

2

20

ccc1

Cooling control sensor

N/A

N/A

INS.SENSOR4

icbSEN_COOLING

2

21

dis1

Digital sensors

N/A

N/A

INS.SENSOR5

icbSEN_DIGITAL

2

22

ench

Humidity sensor

N/A

N/A

INS.SENSOR6

icbSEN_HUMIDITY

2

23

temp

Temperature sensor

N/A

N/A

INS.SENSOR7

icbSEN_ESTERS

2

24

yyyy

Sample special device

N/A

N/A

INS.MIRR2

Special device

2

Some remarks:

      1. ICS Special devices
      2. The only special device is yyyy. It is a simple sample software device that has two double attributes in its OLDB point. These two double attributes can be set with the SETUP command (with FITS keywords INS.MIRR2.DATA1 and INS.MIRR2.DATA2). These values can be retrieved with the STATUS command.

      3. ICS Assemblies

The ICS assemblies are defined in the configuration file $INS_ROOT/SYSTEM/COMMON/CONFIGFILES/xxmcfgINS.cfg (see also 10.5.2):


#

Name

Description

Commands

Values

1

INS.PRESLIT

All pre-slit devices

STATUS

N/A

2

INS.INFRARED

All devices used in the infrared arm

STATUS

N/A

3

INS.OPTICAL

All devices used in the optical arm

STATUS

N/A

4

INS.MODE

Instrument mode

SETUP

STATUS

See 5.1

5

INS.PATH

Light path

EXPSTRT

EXPEND

STATUS

INFRARED

OPT_TCCD

OPT_SCCD

<blank>

 

    1. Exposures
      1. Exposure types
      2. The Exposure types accepted are those defined by the standard IRACE, FIERA and TCCD Software packages (see respective manuals).

      3. Exposure Id
      4. The OS exposure Id is a positive integer value uniquely identifying an exposure from the OS point of view.

        The first SETUP command must be issued with the expoId 0 parameter, and the Exposure Id returned by the successful completion of this command must be used for every other SETUP command, as well any other command (START, END, PAUSE, CONTINUE, ABORT, WAIT, STATUS) referring to the same exposure.

      5. Exposure Status
      6. OS keeps track of the global exposure status, taking into account the current status of each detector and possible parallel exposures. It is stored in the OLDB attribute <alias>xxo:exposure.expStatus and its values are those specified by the BOSS package (see [RD 17]).

      7. Exposure Parallelism
      8. In mode IR_SPECTROSCOPY, where two detectors are involved (IRDCS and TCCD), the instrument has the same level of exposures parallelism supported by BOSS (see [RD 17]).

      9. Exposure Life Cycle
  1. An exposure is initially defined with a SETUP command with
  1. A new Exposure Id is generated and returned in the reply. Every Additional SETUP command shall contain this Id.
  2. A command START –expoId <exposure Id> will initiate the Exposure, that will go through the following phases:
  1. Exposure preparation:

Note: the default behavior of BOSS is to send first EXPSTRT to ICS and then START to DCS(s). The reversed order in XXXX has the sole purpose to provide an example of BOSS method overloading (see Appendix A.1)

  1. Exposure execution. It consists of:
  1. Exposure termination:

      1. Exposure execution

The following is an example of sequence of commands needed to define and execute exposures:

SETUP –expoId 0 –file mySetup.ref–function INS.MODE OPT_IMAGING DET3.WIN1.UIT1 5.0

14 ß returned exposure Id

START –expoId 14

OK

WAIT –expoId 14

OK

    1. Operational States
    2. The instrument global state is the lowest state of its sub-systems and is recorded in the OLDB attribute <alias>xxo:status.state

      The table below gives the list of available states and the commands (uppercase) and/or scripts (italics) needed to change the current state.

      To

      From

      OFF

      LOADED

      STAND-BY

      ON-LINE

      OFF

      ---

      xxinsStart

      xxinsStart

      ---

      LOADED

      xxinsStop

      ---

      STANDBY

      ONLINE

      STAND-BY

      xxinsStop

      ---

      ---

      ONLINE

      ON-LINE

      xxinsStop

      ---

      STANDBY

      ---

       

    3. Commands
    4. According to the standard VLT Instrumentation Software architecture, all commands to the instrument must be sent to the OS Server process xxoControl. The commands available are listed in the Command Definition Table file $INTROOT/CDT/xxoControl.cdt

       

      1. OS Special commands
      2. In addition to the standard commands defined by BOSS, OS implements the special command TESTCMD (not in the present release).

        The sole purpose of TESTCMD is to show an example how to add a command to an OS based on BOSS. See also Appendix A.2.

      3. ICS Special commands
      4. None

      5. DCS Special commands

      None

    5. Tcl libraries
    6. The tcl class library for templates xxoseq uses the base classes provided by the standard VLT library for templates tpl (see [RD 24]). See also Appendix A.4.

      This library is registered in the BOB configuration file ($INTROOT/config/xxins.bobrc)

    7. Dictionaries

The Instrument Software uses several dictionaries to handle setup keywords and to create FITS files with proper header:

The following dictionaries are instead not used at runtime, but for installation and/or startup purposes:

All instrument specific dictionaries are contained in module dicXXXX.

After installation, the dictionaries can be found in one of the following directories

$INS_ROOT/SYSTEM/Dictionary

$INTROOT/config

$VLTROOT/config

    1. Alias files
    2. No alias file is used.

    3. Configuration files
    4. After installation, all configuration files used by the Instrument Software are located in the directory $INS_ROOT/SYSTEM/COMMON/CONFIGFILES.

      See chapter 6 and 10.5 for more detailed information on the contents of the individual files.

    5. Setup files and keywords
      1. OCS keywords
      2. OS treats these keywords. The instrument does not implement any special OCS keyword: it uses only standard keywords defined by the BOSS package (see [RD 17]) and described in the dictionary ESO-VLT-DIC.OSB.

      3. INS keywords

OS and ICS treat these keywords.

The table below shows the keywords used:


Setup keyword

Device

Units

Description

Values

INS.MODE

(assembly)

N/A

Instrument mode

See 5.1

INS.LAMP1.ST

lamp

N/A

Turn ON/OFF

T/F

INS.SHUT1.ST

tsh

N/A

OPEN/CLOSE

T/F

INS.ADC1.MODE

adc

N/A

ADC mode

OFF/AUTO

INS.DPOR.ST

dpor

N/A

Start/Stop continuous rotation

T/F

INS.DROT.RA

INS.DROT.DEC

INS.DROT.POSANG

INS.DROT.MODE

INS.DROT.STATINDX

drot

hhmmss.mm

ddmmss.mm

deg

none

none

Right Ascension

Declination

Start position angle

Derotator mode

Offset index for STAT mode

 

0-360

STAT/SKY/ELEV

See 10.5.1

INS.FILT1.NAME

filt

N/A

Filter name

See 10.5.1

INS.GRAT1.NAME

INS.GRAT1.WLEN

grat

N/A

nm

Grating name

Central wavelength

See 10.5.1

See 10.5.1

INS.MIRR1.NAME

mirr

N/A

Mirror name

See 10.5.1

INS.OPTI1.NAME

iods

N/A

Slide position name

See 10.5.1

INS.GRIS1.NAME

gris

N/A

Slide position name

See 10.5.1

INS.FOCU2.POS

focu

mm

Focus position

See 10.5.1

INS.ROT1.POS

rot

deg

Position angle

See 10.5.1

INS.SLIT1.LEN

dekk

mm

Decker length

See 10.5.1

INS.SLIT1.WID

slit

mm

Slit width

See 10.5.1

INS.SLIT2.NAME

slits

N/A.

Position name

See 10.5.1

INS.TILT1.POS

tilt

micron

Tilt position

See 10.5.1

INS.MIRR2.DATA1

INS.MIRR2.DATA2

yyyy

mm

deg

Sample special device setup keyw.

Sample special device setup keyw.

any float number

any float number

Remarks:

      1. DCS keywords

OS and DCS treat these keywords.

The instrument does not implement any special DCS keyword: it uses only keywords defined by the standard DCS packages IRACE (see [RD 15]), FIERA (see [RD 14]) and CCD (see [RD 13]).

    1. FITS files
    2. Images, as result of exposures, are written on WS disk in FITS format (see [AD 01]).

      An example of complete FITS header is given in 10.8.1

      The VLT on-line Archive is informed of each new complete file ready for archiving, according to the standard protocol defined in [AD 08].

    3. Public on-line database attributes
    4. This section is applicable only to those instruments, which are supposed to work in conjunction with other instruments (e.g. through Super-OS).

      No OLDB attribute is publicly available.

    5. Operational logs
    6. An example of operational log in FITS format is given in 10.9.1.

    7. Templates
    8. This section describes briefly the templates implemented for the instrument.

       

      1. Acquisition Templates

 

      1. Calibration Templates

 

      1. Observation Templates

 

  1. CONFIGURATION
This section is reserved to engineers responsible of the instrument maintenance.
It describes where instrument configuration parameters are stored and the way, in which they can be changed, saved and kept under configuration control.

The instrument configuration is based on the Configuration Tool (ctoo, see User Manual [RD 25]).
In order to be able to operate the instrument properly and reliably, the instrument configuration parameters must be kept under configuration control. For this reason, all files containing configuration parameter values are put in one single dedicated cmm module, called xxmcfg (directory config).

After installation, all configuration files are located in $INS_ROOT/SYSTEM/COMMON/CONFIGFILES, except IRACE configuration and clock files, located under $INS_ROOT/SYSTEM/MISC/IRACE.

The files containing information related to the instrument configuration are:

    1. Change Instrument Configuration Parameters

For configuration changes to take effect, they have to be applied to the files stored in the $INS_ROOT.

Once a new stable configuration has been found, this configuration has to be stored in the xxmcfg module, as this is the only way to save permanently any change to the instrument configuration.

The accepted sequence of operations, which allow keeping control over changes to the instrument configuration, is:

    1. Edit the files in the $INS_ROOT, that contain the parameters to be modified:
    1. If the changes done affect ICS LCU devices, run:
    2. % icbConfigSet XXXX

    3. Test the Instrument in the new configuration
    4. 
      
    5. Repeat the steps above as many times as needed.
    6. At the end of the configuration change, one of the following steps MUST be performed to keep proper configuration control:
    1. The configuration changes are rejected.
    2. Re-install the latest well-known configuration stored in the xxmcfg module:

      % cmmCopy xxmcfg

      % cd xxmcfg/src

      % make clean all man install

      % icbConfigSet XXXX

    3. The configuration changes are accepted:

Archive the new configuration in the xxmcfg module:

% ctooConfigArchive XXXX

ctooConfigArchive (should be accessible also from a GUI menu) executes the following steps:

When a complete software (re-)installation on the IWS is going to be done, a snapshot of the current instrument configuration (as described above in point 5b) MUST be archived before starting the new installation.

  1. MAINTENANCE
    1. General
      1. Instrument Self-Test

A special OB executes sequentially all templates defined for the instrument. It is supposed to be used as self-test procedure to verify that the instrument is working properly (see also [RD 24]).

To run it:

  1. Load file XXXX_gen_tec_SelfTest.obd into the BOB panel (File à Load Obs à From File …).
  2. Press the Start button.
  3. Wait till the OB has been completely executed.

If necessary, during the execution of the OB, one can abort it (button Abort in BOB).

The running exposure can be aborted by pressing the Abort button in the OS Control panel.

      1. Module xxins

This module is dedicated to the installation of the instrument software.

      1. Module dicXXXX

This module contains the instrument specific dictionaries.

 

    1. OS
      1. Module xxo

This module contains the code for the OS processes.

It contains various module test scripts

 

      1. Module xxopan

This module contains the code for the OS GUIs.

 

      1. Module xxotsf

This module contains the files contributing to the Instrument Package, needed by the DFS, and in particular P2PP.

The VLT utility oslxCompileTsf is used by make to generate the .tsf files (directory config) from the tsfx files.

DET.EXPLEVEL

INS.FILT1.NAME

INS.MODE

DET1.DIT

DET1.NDIT

DET3.WIN1.ST

DET3.WIN1.STRX

DET3.WIN1.STRY

DET3.WIN1.NX

DET3.WIN1.NY

DET3.WIN1.BINX

DET3.WIN1.BINY

DET3.WIN1.UIT1

DET3.WIN1.UIT1

SEQ.NEXPO

DET2.WIN1.UIT1

TEL.PRESET.NEW

TEL.TARG.ALPHA

TEL.TARG.DELTA

TEL.TARG.EQUINOX

TEL.TARG.OFFANGLE

TEL.TARG.ADDVELALPHA

TEL.TARG.ADDVELDELTA

TEL.TARG.PMA

TEL.TARG.PMD

TEL.GS1.ALPHA

TEL.GS1.DELTA

TEL.GS1.MAG

 

      1. Module xxoseq

This module contains the Template Script files, as well as the Reference Setup files used by Templates and test OBs.

    1. ICS
      1. ICS Self-Test
      2. A self-test of the ICS functionality can be executed by running:

        %ic0SelfTest XXXX

        The sequence of commands executed is defined by the keywords INS.TEST.* in the configuration file $INS_ROOT/SYSTEM/COMMON/CONFIGFILES/xxmcfgINS.cfg.

         

      3. Module xxi

It contains the code and files for ICS WS part.

 

      1. Module xxipan

This module contains the code for the ICS GUIs.

 

      1. Module xxidev

It contains the code and files for ICS LCU part, in particular the yyyy special device.

 

    1. DCS
      1. Engineering

Engineering/Maintenance Operations on DCS sub-systems can be performed through the standard stand-alone GUIs:

%xxinsStart –panel TCCD

%xxinsStart –panel FIERA

%xxinsStart –panel IRDCS

    1. MS
      1. Maintenance Templates
      2. At present no maintenance template is implemented.

      3. Module xxmcfg

This module contain the files describing the current configuration of the instrument

 

      1. Module xxmseq
      2. It should contain the maintenance Template Script Files.

        At present it is empty

         

      3. Module xxmtsf

It should contain the maintenance Template Signature Files.

At present it is empty

 

  1. FAQ AND TROUBLESHOOTING
  2. All suggestions presented in this chapter aim to allow the user to solve themselves the most common problems they may encounter.

    In all cases, it is recommended to use the utility logMonitor to look for detailed reasons of the failure.

    1. Problems at System Start-up
      1. Log-in fails
    1. Make sure that the terminal is booting from the right host (wxxxx)
    2. Make sure you have entered the right user name (xxxx) and password.

      1. Start-up of GUIs fails
    1. Make sure you issued the command from a xterm running on the Instrument Workstation (wxxx) as user xxxx. Type:
    2. %whoami

    3. Check the Start-up configuration (file xxmcfgSTART.cfg, see also 10.5.3).

      1. Start-up of control processes fails
    1. Start the OS Engineering GUI:
    2. %xxinsStart –panel OS_ENGINEERING

    3. Make sure that the sub-system associated to the failing process is supposed to run at a simulation level compatible with the hw available (cross-check also with the contents of the file xxmcfgSTART.cfg).
    4. If the failure is related to the LCU sw (e.g. LCU not responding), a reboot of the LCU may help.

      1. xxiControl starts with a wrong simulation level
    1. The simulation level at which xxiControl is supposed to start is specified by the keyword INS.CON.OPMODE, defined in xxmcfgSTART.cfg (NOT in xxmcfgINS.cfg !!).

      1. TCCD starts with a wrong simulation level and fails to go STANDBY
    1. If the TCCD LCU is available, but no TCCD system is connected to it, xxmcfgSTART.cfg should contain:

OCS.DET2.SWSIM "HW_SIM"

      1. xxoControl tries to access sub-systems declared as not available
    1. Information about availability of sub-systems is provided through the keywords OCS.*.ACCESS in the file xxmcfgSTART.cfg.

      1. Going ONLINE fails
    1. Start the OS Engineering GUI:
    2. %xxinsStart –panel OS_ENGINEERING

    3. Check which sub-system failed to go online
    4. Start the related stand-alone panel
    5. If the failing sub-system is ICS, the most common case is that one of its devices has been disconnected (e.g. one motor) or set to handset/manual mode (e.g. one lamp or shutter). The failing device can be immediately recognized because its state is NOT online.
    1. If the failing sub-system is TCCD, the most common case is that the connection to the ACE box is down
    1. If the failing sub-system is FIERA, the most common case is that the controller is powered off (e.g. because of overheating protections).
    2. If the failing sub-system is IRACE, the most common case is that the WS part tries to access the Sparc, whereby this computer is not available. Check the definition of environment variables, in particular SDMA_HOST (it must be the host name of the IWS, when the Sparc is not available).

    1. Problems when running exposures
      1. Cannot send commands to TCS or access tif
    1. Make sure that TCS is running and ONLINE.
    2. Make sure that TCS RA and DEC are OK. If the RA and DEC background color in the OS Control Panel is gray, then probably TCS is not operational. See also 4.1.2.

      1. Templates cannot access Midas
    1. Make sure that MIDAS NOV99 or higher is installed on the IWS. If not, disable MIDAS access from templates (see 4.1.3)

  1. ERROR DEFINITIONS

The Instrument Software uses the standard mechanism defined and provided by the CCS error system to log and return error information, both at functional and command level, on LCU and WS.

Errors are defined in the following files:

See also section 10.11

  1. REFERENCE
    1. Programs
      1. Command Definition Table for program xxoControl

      //*****************************************************************************

      // E.S.O. - VLT project

      //

      // "@(#) $Id: xxoControl.cdt,v 1.24 2001/03/15 17:45:39 vltsccm Exp $"

      //

      // who when what

      // ---------- -------- ----------------------------------------------

      // gzins 28/11/99 Created

      // epozna adopted fpr boss

      // epozna use common interface (osb)

      // epozna 10/10/00 remove colons after PUBLIC_COMMANDS

       

      //************************************************************************

      // NAME

      // xxoServer.cdt - command definition table

      //

      // DESCRIPTION

      // This file describes the standard commands defined in a process

      // xxoServer (Supervisory Observation Software server).

      //

      //------------------------------------------------------------------------

      //

      //************************************************************************

      PUBLIC_COMMANDS

      //------------------------------------------------------------------------

      // BOSS Common Commands

      //********************************************************************

       

      //********************************************************************

      //

      #include "osbControl.cdt"

       

       

    2. Scripts
      1. xxinsStartup
      2. xxinsStartup

        NAME

        xxinsStartup - configure and start XXXX main application

        SYNOPSIS

        xxinsStartup

        DESCRIPTION

        This script starts the XXXX startup configuration panel

        and then starts XXXX if the START button is pressed.

        The user can set several options in the startup panel

        before starting XXXX:

        Telescope (TCS):

        - Available: select if the telescope can be accessed or not.

        Instrument (ICS):

        - Available: normally true.

        - WS Simulation: normally false, unless the instrument

        is not available.

        - User Interface: start the ICS stand-alone panel.

        Detectors (DCS):

        - Available: normally true; set to false, if the

        detector should not be used.

        - WS Simulation: normally false; set to true, if the

        detector hardware is not available.

        - User Interface: start the detector stand-alone panel.

        - Start RTD: start the detector RTD.

        Miscelaneous:

        - Start BOB: start the BOB panel, normally true.

        - Start OS Control: start the OS control panel.

        - Start Alarm Display: start the alarm display.

        FILES

        xxmcfgSTART.cfg start configuration file

        Located in $INS_ROOT/SYSTEM/COMMON/CONFIGFILES

        EXAMPLES

        xxinsStartup

        SEE ALSO

        xxinsStart xxinsStop

         

         

         

        ### generated by docDeroff ###

         

      3. xxinsStart
      4. xxinsStart

        NAME

        xxinsStart - start XXXX application

        SYNOPSIS

        xxinsStart [-log] [-proc <appl>] [-panel <panel>]

        [-restart] [-loglevel <n>]

        DESCRIPTION

        This script starts the XXXX application.

        - Default panels are stopped.

        - All subsystems are started.

        - The Observation Software is started.

        - Default panels are started.

        Options:

        no option: Check that OS and its subsystems are running,

        start them if necessary.

        Restart default panels.

        -proc <name> Start the application <name>.

        <name> may be the name of a subsystem

        (e.g. ICS) or OS.

        To obtain a list of known panels, use e.g.:

        'xxinsStart -proc show'

        -panel <name> Start the panel <name>.

        To obtain a list of known panels, use e.g.:

        'xxinsStart -panel show'

        Option modifiers:

        -restart Restart the application.

        OS and subsystems are stopped, then restarted.

        Only default panels are stopped and restarted.

        -log Open a log window

        (-log MUST always be the first option).

        FILES

        xxmcfgSTART.cfg start configuration file

        xxmcfgINS.cfg instrument configuration file

        Both are in $INS_ROOT/SYSTEM/COMMON/CONFIGFILES

        EXAMPLES

        xxinsStart -panel OS_CONTROL

        SEE ALSO

        xxinsStop

         

         

         

        ### generated by docDeroff ###

         

      5. xxinsStop
      6. xxinsStop

        NAME

        xxinsStop - stop XXXX application

        SYNOPSIS

        xxinsStop [-log] [-proc <appl>] [-panel <panel>]

        [-standby] [-loglevel <n>]

        DESCRIPTION

        This script stops the XXXX application.

        - OS is placed in state STANDBY.

        - All panels are stopped.

        - OS and all subsystems are stopped.

        Options:

        no option: Place OS in state STANDBY, stop all panels

        and stop OS and all subsystems.

        -proc <name> Stop the application <name>.

        <name> may be the name of a subsystem

        (e.g. ICS) or OS.

        To obtain a list of known panels, use e.g.:

        'xxinsStop -proc show'

        -panel <name> Stop the panel <name>.

        To obtain a list of known panels, use e.g.:

        'xxinsStop -panel show'

        -standby Only place OS in state STANDBY.

        Leave all panels and processes running.

        Option modifiers:

        -log Open a log window

        (-log MUST always be the first option).

        FILES

        xxmcfgSTART.cfg start configuration file

        xxmcfgINS.cfg instrument configuration file

        Both are in $INS_ROOT/SYSTEM/COMMON/CONFIGFILES

        EXAMPLES

        xxinsStop -panel OS_CONTROL

        SEE ALSO

        xxinsStart

         

         

         

        ### generated by docDeroff ###

         

      7. xxinsCreateNewInstrument

      xxinsCreateNewInstrument

      NAME

      xxinsCreateNewInstrument - create a new instrument from template XXXX

      SYNOPSIS

      xxinsCreateNewInstrument <INS id> <INS prefix>

      DESCRIPTION

      This utility converts modules and files written for the XXXX Template

      Instrument Software in files for a new instrument.

      It assumes that pkginBuild xxins has already been executed from the

      same directory where this utility is called.

      <INS id> is a the instrument identifier (upper case)

      See keyword INS.CON.ID in file xxmcfg/config/xxmcfgINS.cfg

      and description in VLT-MAN-ESO-17240-0934

      <INS prefix> is a two-letter prefix (lower case) for instrument files

      See keyword INS.CON.PREFIX in file xxmcfg/config/xxmcfgINS.cfg

      and description in VLT-MAN-ESO-17240-0934

      It copies the contents of the current directory to ../<INS id>Source

      The outcome should be a new working instrument, identical to XXXX for

      what concerns the functionality. To build and run it:

      cd ../<INS id>Source

      pkginBuild <INS prefix>ins

      The results of this utility can be taken as a starting point for

      the development of a new instrument.

      ENVIRONMENT

      It is assumed that the following environments are registered in ACC

      w<INS id> (lower case) Example: wamber

      w<INS prefix>tcs Example: wamtcs

      l<INS prefix>ics1 Example: wamics1

      l<INS prefix>ics2 Example: wamics2

      l<INS prefix>tccd Example: wamtccd

      EXAMPLES

      cd $HOME/XXXXSource

      pkginBuild xxins

      xxinsCreateNewInstrument AMBER am

      SEE ALSO

      Base ICS User Manual VLT-MAN-ESO-17240-0934 2.1

       

       

       

      ### generated by docDeroff ###

       

    3. Include Files
    4. All include files are private to the instrument.

    5. Tcl libraries
    6. The library xxoseq provides classes used for the development of XXXX Templates. The man-pages presented in this section refer to classes belonging to that library.

      1. xxoseqICS

      xxoseqICS

      NAME

      xxoseqICS - XXXX ICS interface for templates.

      SYNOPSIS

      xxoseqICS ics

      DESCRIPTION

      XXXX ICS interface for BOB templates.

      PARENT

      tplICS

      PUBLIC METHODS

      see tplICS man page.

      SEE ALSO

      tplICS

       

       

       

      ### generated by docDeroff ###

       

    7. Configuration files
      1. xxmcfgCONFIG.cfg
      2. #******************************************************************************

        # E.S.O. - VLT project

        #

        # "@(#) $Id: xxmcfgCONFIG.cfg,v 1.48 2001/11/05 13:32:47 vltsccm Exp $"

        #

        # ctoo configuration

        #

        # who when what

        # -------- -------- ----------------------------------------------

        # rschmutz 2000-09-28 CONFIG.SET1.NAME="XXXX" (instead of "XXXX").

        # rschmutz 12/10/00 OSB_CFG replaced with OSB.

        # rschmutz 03/09/00 created.

        #

        PAF.HDR.START; # Start of PAF Header

        PAF.TYPE "Configuration"; # Type of PAF

        PAF.ID " "; # ID for PAF

        PAF.NAME " "; # Name of PAF

        PAF.DESC " "; # Short description of PAF

        PAF.CRTE.NAME " "; # Name of creator

        PAF.CRTE.DAYTIM " "; # Civil Time for creation

        PAF.LCHG.NAME " "; # Name of person/appl. changing

        PAF.LCHG.DAYTIM " "; # Timestamp of last change

        PAF.CHCK.NAME " "; # Name of appl. checking

        PAF.HDR.END; # End of PAF Header

        CONFIG.SET1.NAME "XXXX";

        CONFIG.SET1.DICT "ICB_CFG OSB STOO_CFG XXXX_CFG";

        CONFIG.SET1.FILE1 "xxmcfgINS*.cfg";

        CONFIG.SET1.PERM1 644;

        CONFIG.SET1.FILE2 "xxmcfgSTART.cfg";

        CONFIG.SET1.PERM2 664;

        CONFIG.SET1.BACKUP T;

        CONFIG.SET1.LOG T;

        CONFIG.SET2.NAME "XXXX_START";

        CONFIG.SET2.DICT "ICB_CFG OSB STOO_CFG XXXX_CFG";

        CONFIG.SET2.FILE1 "xxmcfgSTART.cfg";

        CONFIG.SET2.PERM1 664;

        CONFIG.SET2.BACKUP T;

        CONFIG.SET2.LOG T;

        CONFIG.ARCHIVE.NAME "XXXX";

        ##CONFIG.ARCHIVE.USER "xxxxmgr";

        CONFIG.ARCHIVE.MODULE "xxmcfg";

        CONFIG.ARCHIVE.FILE1 "xxmcfg*.cfg";

        CONFIG.ARCHIVE.FILE2 "xxmcfg*.dbcfg";

        # ___oOo___

         

      3. xxmcfgINS.cfg
      4. #******************************************************************************

        # E.S.O. - VLT project

        #

        # "@(#) $Id: xxmcfgINS.cfg,v 1.48 2001/11/05 13:32:46 vltsccm Exp $"

        #

        # who when what

        # -------- -------- ----------------------------------------------

        # epozna 05/11/01 fixed bug at DBROOT declaration for FIERA

        # rschmutz 25/10/01 added INS.*.PREFCT/POSTFCT in comments.

        # epozna 19/10/01 added OCS.TEL.ID (VLTSW20010448)

        # added OCS.<CATi>.DBROOT (VLTSW20010010)

        # (use defaults when possible for DBSTATE,DBNEWDT,DBEXPSTS,DBROOT)

        # update value of INS.SENSOR7.STAT2 (alongino)

        # alongino 18/09/01 added sensors statistics configuration

        # alongino 05/09/01 added INS.CON.LCUAV2 (optional)

        # rschmutz 04/09/01 FCTC: use icbSEN_CN77000, TEMP: use icb_SEN_ESTERS.

        # alongino 08/08/01 added ICS stand-alone GUI configuration

        # rschmutz 11/05/01 INS.POSi.UNITFCT/PARAM added.

        # rschmutz 29/04/01 expm device: INS.DETi.* keywords added.

        # rschmutz 29/04/01 INS.GRATi.ORDERMAX, INS.*.TEMPRAMP=0 added.

        # rschmutz 25/03/01 START.MIDAS.AVAIL=T added.

        # rschmutz 24/03/01 VLTSW20010147: Index in INS.SENSOR4.* keywords fixed.

        # epozna 06/02/01 VLTSW20010054 OCS.OCS.NUM changed to OCS.OS.NUM

        # rschmutz 31/01/01 INS.CON.DBROOT added in comments.

        # alongino 02/02/01 added INS.ASSEMBLY6 (VLTSW20000506 VLTSW20000503)

        # alongino 24/01/01 removed ACCESS keywords (in xxmcfgSTART.cfg). Dedicated IRACE .cfg file

        # epozna 12/01/01 VLTSW20010007: added OS config keywords (moved from xxoControl.cfg)

        # alongino 03/01/01 INS.CON.OPMODE removed (set in xxmcfgSTART.cfg)

        # rschmutz 11/12/00 INS.GRATi.TEMPREF,TEMPRAMPi added.

        # rschmutz 10/12/00 ADC1 device added.

        # rschmutz 07/12/00 IRCCD keywords added.

        # alongino 08/11/00 removed all keys already defined in xxmcfgSTART.cfg

        # alongino 16/10/00 adapted to xxo 1.19

        # rschmutz 12/10/00 adapted to osb 1.5.

        # alongino 13/06/00 added INS.CON.CONFIGSET as example for special devices

        # rschmutz 07/06/00 startup config. added (shared with OS).

        # alongino 18/05/00 SENSORi.NUM set to correct value

        # alongino 04/02/00 GRIS and ROT devices added.

        # rschmutz 01/02/00 FOCU function added.

        # alongino 25/01/00 added ASSEMBLY and TEST part

        # rschmutz 09/12/99 one device/type added.

        # rsc/tph 19/08/99 INS.CON.ONLINE added.

        # rschmutz 08/08/99 device configurations added.

        # rschmutz 30/10/98 created

        #

        #************************************************************************

        #

        # The instrument XXXX is supposed to be used as an example for

        # instrumentation ICS development.

        # It contains examples of all type of standard devices currently

        # available in icb, as well as one special device.

        # The following table summarizes the type of devices available and the

        # corresponding name in XXXX

        #==============================================================================================================================================

        # Description | Positions | Motor Axis | Units| short-FITS | setup parameters | XXXX | icb class | Remarks

        #==============================================================================================================================================

        # Lamp | ON/OFF | N/A | N/A | INS.LAMP |ST | lamp | icbLAMP |

        # Shutter | OPEN/CLOSED| N/A | N/A | INS.SHUT |ST | tsh | icbSHUTTER |

        # Filter wheel | discrete | circular | none | INS.FILT |NAME | filt | icbMOT_FILTER |

        # Mirror wheel or slide | discrete | circ. or lin. | none | INS.MIRR |NAME | mirr | icbMOT_MIRROR |

        # Slit wheel or slide | discrete | circ. or lin. | none | INS.SLIT |NAME | slits| icbMOT_SLITS |

        # Generic wheel | discrete | circular | none | any |NAME | gris | icbMOT_OPTI |

        # Generic slide | discrete | linear | none | any |NAME | iods | icbMOT_OPTI |

        # Generic wheel | continuous | circular | any | any |POS | focu | icbMOT_POS | units formula linear

        # Generic slide | continuous | linear | any | any |POS | rot | icbMOT_POS | units formula linear

        # Decker with two slides| continuous | excentric | mm | INS.SLIT2 |LEN | dekk | icbMOT_SLIT2_LEN | two motors device

        # Slit with two slides | continuous | excentric | mm | INS.SLIT2 |WID | slit | icbMOT_SLIT2_WID | two motors device

        # Camera tilt | continuous | excentric | pix | INS.TILT |POS | tilt | icbMOT_TILT |

        # Grating wheel | continuous | circular | nm | INS.GRAT |NAME,WLEN | grat | icbMOT_GRATING2 | pos.= zero(NAME)+offset(WLEN)

        # Depolarizer | continuous | circular | deg | INS.DPOR |ST | dpor | icbMOT_DPOR | continuously rotating

        # Derotator | continuous | circular | deg | INS.DROT |RA,DEC,POSANG,MODE | drot | icbMOT_DROT | various tracking modes.

        # ADC wheel | continuous | circular | deg | INS.ADC1 |MODE | adc1 | icbMOT_ADC | ADC tracking mode.

        # Cryostat sensor | continuous | N/A | any | INS.SENSOR |none | fcs | icbSEN_ADAM | ADAM 4017 (RS-485)

        # Pressure sensor | continuous | N/A | mbar | INS.SENSOR |none | baro | icbSEN_BAROMETER | VAISALA PTB220B (RS-232)

        # Cryost. temp. sensor | continuous | N/A | C deg| INS.SENSOR |none | fctc | icbSEN_CN77000 | OMEGA CN77000 (RS-485)

        # Cabinet cool. sensor | continuous | N/A | any | INS.SENSOR |none | ccc1 | icbSEN_COOLING | ESO standard (RS-232)

        # Digital sensor | 1/0 | N/A | any | INS.SENSOR |none | dis1 | icbSEN_DIGITAL | Acromag digital I/O

        # Humidity sensor | continuous | N/A | any | INS.SENSOR |none | ench | icbSEN_HUMIDITY | VAISALA (RS-232)

        # Temperature sensor | continuous | N/A | C deg| INS.SENSOR |none | temp | icbSEN_ESTERS | Esters DC24 (RS-232)

        # Exposure meter sensor | continuous | N/A | - | INS.DET |UIT,OFFDRK,OFFSKY | expm | icbSEN_EXPM | via HP 53131A (RS-232/GP-IB)

        # Special device | any | N/A | any | any |DATA | yyyy | none |

        #==============================================================================================================================================

        PAF.HDR.START; # Start of PAF Header

        PAF.TYPE "Configuration"; # Type of PAF

        PAF.ID " "; # ID for PAF

        PAF.NAME " "; # Name of PAF

        PAF.DESC " "; # Short description of PAF

        PAF.CRTE.NAME " "; # Name of creator

        PAF.CRTE.DAYTIM " "; # Civil Time for creation

        PAF.LCHG.NAME " "; # Name of person/appl. changing

        PAF.LCHG.DAYTIM " "; # Timestamp of last change

        PAF.CHCK.NAME " "; # Name of appl. checking

        PAF.HDR.END; # End of PAF Header

        #

        # 1.0 Startup config.

        #

        START.CON.TYPE "INS"; # Application type

        ##START.CON.TCLFILE "xxinsStoo"; # Startup user extensions

        #

        # 1.1 General instrument config.

        #

        INS.CON.ID "XXXX"; # Instrument identifier

        INS.ID "XXXX/$Revision: 1.48 $"; # Instrument identifier

        INS.CON.PREFIX "xx"; # Name prefix for modules and servers

        #INS.CON.DBROOT ":Appl_data:XXXX"; # Instrument OLDB root point

        #

        # 1.2 Environments and LCUs

        #

        INS.CON.WSENV "wxxxx"; # Workstation RTAP environment

        INS.CON.LCUNUM 2; # Number of instrument LCUs

        INS.CON.LCUENV1 "lxxics1"; # LCU 1 environment

        INS.CON.LCUENV2 "lxxics2"; # LCU 2 environment

        ##INS.CON.LCUAV2 F; # LCU 2 not available

        #

        # 2.1 ICS general config.

        #

        # INS.CON.OPMODE removed (set in xxmcfgSTART.cfg)

        INS.CON.ONLINE F; # If T, sensors are placed online during booting.

        INS.CON.CONFIGSET "xxiConfigSet"; # User script called by icbConfigSet

        #INS.CON.CMDTOUT 15000; # Timeout for other cmds. [msec]

        INS.CON.MOVETOUT 120000; # Timeout for movement cmds. [msec]

        #INS.CON.MOVETDIF 1; # Interval between parallel movements [msec]

        #INS.CON.MONTIME 60000; # Device monitoring period [msec]

        #INS.CON.MOVEMAX 100; # Max. number of devices moving in parallel

        INS.CON.DEVNUM 25; # Number of ICS devices

        INS.CON.DEVICE1 "INS.LAMP1"; # Device FITS prefix used in the config file

        INS.CON.DEVICE2 "INS.SHUT1"; # Device FITS prefix used in the config file

        INS.CON.DEVICE3 "INS.ADC1"; # Device FITS prefix used in the config file

        INS.CON.DEVICE4 "INS.DPOR"; # Device FITS prefix used in the config file

        INS.CON.DEVICE5 "INS.DROT"; # Device FITS prefix used in the config file

        INS.CON.DEVICE6 "INS.FILT1"; # Device FITS prefix used in the config file

        INS.CON.DEVICE7 "INS.GRAT1"; # Device FITS prefix used in the config file

        INS.CON.DEVICE8 "INS.MIRR1"; # Device FITS prefix used in the config file

        INS.CON.DEVICE9 "INS.OPTI1"; # Device FITS prefix used in the config file

        INS.CON.DEVICE10 "INS.OPTI2"; # Device FITS prefix used in the config file

        INS.CON.DEVICE11 "INS.POS1"; # Device FITS prefix used in the config file

        INS.CON.DEVICE12 "INS.POS2"; # Device FITS prefix used in the config file

        INS.CON.DEVICE13 "INS.SLIT11"; # Device FITS prefix used in the config file

        INS.CON.DEVICE14 "INS.SLIT12"; # Device FITS prefix used in the config file

        INS.CON.DEVICE15 "INS.SLIT2"; # Device FITS prefix used in the config file

        INS.CON.DEVICE16 "INS.TILT1"; # Device FITS prefix used in the config file

        INS.CON.DEVICE17 "INS.SENSOR1"; # Device FITS prefix used in the config file

        INS.CON.DEVICE18 "INS.SENSOR2"; # Device FITS prefix used in the config file

        INS.CON.DEVICE19 "INS.SENSOR3"; # Device FITS prefix used in the config file

        INS.CON.DEVICE20 "INS.SENSOR4"; # Device FITS prefix used in the config file

        INS.CON.DEVICE21 "INS.SENSOR5"; # Device FITS prefix used in the config file

        INS.CON.DEVICE22 "INS.SENSOR6"; # Device FITS prefix used in the config file

        INS.CON.DEVICE23 "INS.SENSOR7"; # Device FITS prefix used in the config file

        INS.CON.DEVICE24 "INS.DET1"; # Device FITS prefix used in the config file

        INS.CON.DEVICE25 "INS.MIRR2"; # Special device

        #

        # Sample lamp

        #

        INS.LAMP1.DEVNAME "lamp"; # Name of the ICS device

        INS.LAMP1.DEVDESC "ThAr lamp"; # Description of the ICS device

        INS.LAMP1.LCUID 2; # Id. of the LCU managing the device

        INS.LAMP1.SWSIM T; # If T, function is software simulated

        INS.LAMP1.ID "TAL";

        INS.LAMP1.NAME "ThAr_Lamp";

        INS.LAMP1.SIGDEV "/acro0";

        INS.LAMP1.SIGBIT1 52;

        INS.LAMP1.IGFAULT T;

        #

        # Sample shutter

        #

        INS.SHUT1.DEVNAME "tsh"; # Name of the ICS device

        INS.SHUT1.DEVDESC "Telescope shutter"; # Description of the ICS device

        INS.SHUT1.LCUID 2; # Id. of the LCU managing the device

        INS.SHUT1.SWSIM T; # If T, function is software simulated

        INS.SHUT1.ID "TSH";

        INS.SHUT1.NAME "Tel_Shutter";

        INS.SHUT1.SIGDEV "/acro0";

        INS.SHUT1.SIGBIT1 0;

        INS.SHUT1.IGFAULT T;

        #

        # Sample ADC

        #

        INS.ADC1.DEVNAME "adc1"; # Name of the ICS device

        INS.ADC1.DEVDESC "ADC wheel"; # Description of the ICS device

        INS.ADC1.LCUID 1; # Id. of the LCU managing the device

        INS.ADC1.SWSIM T; # If T, function is software simulated

        INS.ADC1.PERIOD 15000;

        INS.ADC1.REFENC 0;

        INS.ADC1.MOTSIGN 1;

        INS.ADC1.FORMULA 1;

        INS.ADC1.MINELEV 27.64;

        INS.ADC1.POSOFFST 90;

        INS.ADC1.COFFSET 1.7387;

        INS.ADC1.PSLOPE 0.0023;

        INS.ADC1.POFFSET 743;

        INS.ADC1.TSLOPE -0.0061;

        INS.ADC1.TOFFSET 12;

        INS.ADC1.AFACTOR 3.32;

        INS.ADC1.DROTFACT 0; # use 2 or -2 if derotator is present

        #

        # Sample depolarizer

        #

        INS.DPOR.DEVNAME "dpor"; # Name of the ICS device

        INS.DPOR.DEVDESC "Depolarizer rotate"; # Description of the ICS device

        INS.DPOR.LCUID 1; # Id. of the LCU managing the device

        INS.DPOR.SWSIM T; # If T, function is software simulated

        # Optional LCU C functions to check interlocks, clamp/unclamp brake

        #INS.DPOR.PREFCT "xxidevDporPreMove"; # User pre-movement function

        # sample: ic0devMotUsrPreMoveSample.c

        #INS.DPOR.POSTFCT "xxidevDporPostMove"; # User post-movement function

        # sample: ic0devMotUsrPostMoveSample.c

        #

        # Sample derotator

        #

        INS.DROT.DEVNAME "drot"; # Name of the ICS device

        INS.DROT.DEVDESC "Image derotator"; # Description of the ICS device

        INS.DROT.LCUID 1; # Id. of the LCU managing the device

        INS.DROT.SWSIM T; # If T, function is software simulated

        INS.DROT.STATENC 0;

        INS.DROT.STATENC1 0;

        INS.DROT.STATENC2 10000;

        INS.DROT.STATENC3 10000;

        INS.DROT.STATENC4 5341500;

        INS.DROT.STATENC5 0;

        INS.DROT.ANGSGN 1;

        INS.DROT.PERIOD 5000;

        INS.DROT.SKYENC 0;

        INS.DROT.ELEVENC 0;

        INS.DROT.RESOLSGN -1;

        INS.DROT.SPDMIN 0.01;

        INS.DROT.SPDMAX 5;

        #

        # Sample filter wheel

        #

        INS.FILT1.DEVNAME "filt"; # Name of the ICS device

        INS.FILT1.DEVDESC "Filter wheel"; # Description of the ICS device

        INS.FILT1.LCUID 1; # Id. of the LCU managing the device

        INS.FILT1.SWSIM T; # If T, function is software simulated

        # Optional LCU C functions to check interlocks, clamp/unclamp brake

        #INS.FILT1.PREFCT "xxidevFilt1PreMove"; # User pre-movement function

        #INS.FILT1.POSTFCT "xxidevFilt1PostMove"; # User post-movement function

        INS.FILT1.POSNUM 16;

        INS.FILT1.POSID1 "PS1";

        INS.FILT1.POSID2 "PS2";

        INS.FILT1.POSID3 "PS3";

        INS.FILT1.POSID4 "PS4";

        INS.FILT1.POSID5 "PS5";

        INS.FILT1.POSID6 "PS6";

        INS.FILT1.POSID7 "PS7";

        INS.FILT1.POSID8 "PS8";

        INS.FILT1.POSID9 "PS9";

        INS.FILT1.POSID10 "PS10";

        INS.FILT1.POSID11 "PS11";

        INS.FILT1.POSID12 "NONE1";

        INS.FILT1.POSID13 "NONE2";

        INS.FILT1.POSID14 "NONE3";

        INS.FILT1.POSID15 "NONE4";

        INS.FILT1.POSID16 "FREE";

        INS.FILT1.ID1 "PS1";

        INS.FILT1.NAME1 "U";

        INS.FILT1.ID2 "PS2";

        INS.FILT1.NAME2 "B";

        INS.FILT1.ID3 "PS3";

        INS.FILT1.NAME3 "V";

        INS.FILT1.ID4 "PS4";

        INS.FILT1.NAME4 "R";

        INS.FILT1.ID5 "PS5";

        INS.FILT1.NAME5 "I";

        INS.FILT1.ID6 "PS6";

        INS.FILT1.NAME6 "UG5";

        INS.FILT1.ID7 "PS7";

        INS.FILT1.NAME7 "ND1";

        INS.FILT1.ID8 "PS8";

        INS.FILT1.NAME8 "ND2";

        INS.FILT1.ID9 "PS9";

        INS.FILT1.NAME9 "ND3";

        INS.FILT1.ID10 "PS10";

        INS.FILT1.NAME10 "ND4";

        INS.FILT1.ID11 "PS11";

        INS.FILT1.NAME11 "ND5";

        INS.FILT1.ID12 "NONE1";

        INS.FILT1.NAME12 "NONE";

        INS.FILT1.ID13 "NONE2";

        INS.FILT1.NAME13 "NONE";

        INS.FILT1.ID14 "NONE3";

        INS.FILT1.NAME14 "NONE";

        INS.FILT1.ID15 "NONE4";

        INS.FILT1.NAME15 "NONE";

        INS.FILT1.ID16 "FREE";

        INS.FILT1.NAME16 "FREE";

        #

        # Sample grating wheel

        #

        INS.GRAT1.DEVNAME "grat"; # Name of the ICS device

        INS.GRAT1.DEVDESC "Crossdispersor"; # Description of the ICS device

        INS.GRAT1.LCUID 1; # Id. of the LCU managing the device

        INS.GRAT1.SWSIM T; # If T, function is software simulated

        INS.GRAT1.RESOL -15000; # Encoder resolution

        INS.GRAT1.ROT 22.5; # Grating rot angle

        INS.GRAT1.TEMPREF 12.0; # Temperature reference

        # Optional LCU C functions to check interlocks, clamp/unclamp brake

        #INS.GRAT1.PREFCT "xxidevGrat1PreMove"; # User pre-movement function

        #INS.GRAT1.POSTFCT "xxidevGrat1PostMove"; # User post-movement function

        INS.GRAT1.POSNUM 2; # Number of element positions

        INS.GRAT1.POSID1 "CD#1"; # Identifier of the mounted element

        INS.GRAT1.POSID2 "CD#2"; # Identifier of the mounted element

        INS.GRAT1.ID1 "CD#1"; # Element unique identifier

        INS.GRAT1.NAME1 "CD#1"; # Element name

        INS.GRAT1.TYPE1 "GRATING"; # Element type

        INS.GRAT1.WLENMIN1 0; # Min. grating central wavelength

        INS.GRAT1.WLENMAX1 1847.8; # Max. grating central wavelength

        #INS.GRAT1.ORDERMAX1 10; # Max. grating order number

        INS.GRAT1.ZORDER1 3917147; # Grating zero order position

        INS.GRAT1.GROOVES1 0.001; # Grating grooves / nm

        INS.GRAT1.TEMPRAMP1 0; # Temperature slope

        #INS.GRAT1.PIXSCALE1 0.246; # Pixel scale

        INS.GRAT1.ORDERMAX1 5; # Enables sending INS.GRAT1.ORDER in SETUP

        INS.GRAT1.ID2 "CD#2"; # Element unique identifier

        INS.GRAT1.NAME2 "CD#2"; # Element name

        INS.GRAT1.TYPE2 "GRATING"; # Element type

        INS.GRAT1.WLENMIN2 0; # Min. grating central wavelength

        INS.GRAT1.WLENMAX2 2799.6; # Max. grating central wavelength

        #INS.GRAT1.ORDERMAX2 10; # Max. grating order number

        INS.GRAT1.ZORDER2 1217310; # Grating zero order position

        INS.GRAT1.GROOVES2 0.00066; # Grating grooves / nm

        INS.GRAT1.TEMPRAMP2 0; # Temperature slope

        #INS.GRAT1.PIXSCALE2 0.246; # Pixel scale

        INS.GRAT1.ORDERMAX2 5; # Enables sending INS.GRAT1.ORDER in SETUP

        #

        # Sample mirror wheel

        #

        INS.MIRR1.DEVNAME "mirr"; # Name of the ICS device

        INS.MIRR1.DEVDESC "Calib. mirror slide"; # Description of the ICS device

        INS.MIRR1.LCUID 1; # Id. of the LCU managing the device

        INS.MIRR1.SWSIM T; # If T, function is software simulated

        # Optional LCU C functions to check interlocks, clamp/unclamp brake

        #INS.MIRR1.PREFCT "xxidevMirr1PreMove"; # User pre-movement function

        #INS.MIRR1.POSTFCT "xxidevMirr1PostMove"; # User post-movement function

        INS.MIRR1.POSNUM 4;

        INS.MIRR1.POSID1 "FREE";

        INS.MIRR1.POSID2 "MIR1";

        INS.MIRR1.POSID3 "MIR2";

        INS.MIRR1.POSID4 "MIR3";

        INS.MIRR1.ID1 "FREE";

        INS.MIRR1.NAME1 "IRED";

        INS.MIRR1.TYPE1 "FREE";

        INS.MIRR1.ID2 "MIR1";

        INS.MIRR1.NAME2 "OPTIC";

        INS.MIRR1.ID3 "MIR2";

        INS.MIRR1.NAME3 "SPHERE";

        INS.MIRR1.ID4 "MIR3";

        INS.MIRR1.NAME4 "THAR";

        #

        # Sample discrete positions function, linear axis

        #

        INS.OPTI1.DEVNAME "iods"; # Name of the ICS device

        INS.OPTI1.DEVDESC "Iodine slide"; # Description of the ICS device

        INS.OPTI1.LCUID 1; # Id. of the LCU managing the device

        INS.OPTI1.SWSIM T; # If T, function is software simulated

        # Optional LCU C functions to check interlocks, clamp/unclamp brake

        #INS.OPTI1.PREFCT "xxidevOpti1PreMove"; # User pre-movement function

        #INS.OPTI1.POSTFCT "xxidevOpti1PostMove"; # User post-movement function

        INS.OPTI1.POSNUM 2;

        INS.OPTI1.POSID1 "OUT";

        INS.OPTI1.POSID2 "IN";

        INS.OPTI1.ID1 "OUT";

        INS.OPTI1.NAME1 "OUT";

        INS.OPTI1.TYPE1 "FREE"; # Element type

        INS.OPTI1.ID2 "IN";

        INS.OPTI1.NAME2 "IN";

        INS.OPTI1.TYPE2 "MIRROR"; # Element type

        #

        # Sample discrete positions function, circular axis

        #

        INS.OPTI2.DEVNAME "gris"; # Name of the ICS device

        INS.OPTI2.DEVDESC "Grisms wheel"; # Description of the ICS device

        INS.OPTI2.PREFIX "INS.GRIS1"; # FITS prefix

        INS.OPTI2.LCUID 1; # Id. of the LCU managing the device

        INS.OPTI2.SWSIM T; # If T, function is software simulated

        # Optional LCU C functions to check interlocks, clamp/unclamp brake

        #INS.OPTI2.PREFCT "xxidevOpti2PreMove"; # User pre-movement function

        #INS.OPTI2.POSTFCT "xxidevOpti2PostMove"; # User post-movement function

        INS.OPTI2.POSNUM 3;

        INS.OPTI2.POSID1 "GRIS1";

        INS.OPTI2.POSID2 "GRIS2";

        INS.OPTI2.POSID3 "FREE";

        INS.OPTI2.ID1 "GRIS1";

        INS.OPTI2.NAME1 "GRIS1";

        INS.OPTI2.TYPE1 "GRISM"; # Element type

        INS.OPTI2.ID2 "GRIS2";

        INS.OPTI2.NAME2 "GRIS2";

        INS.OPTI2.TYPE2 "GRISM"; # Element type

        INS.OPTI2.ID3 "FREE";

        INS.OPTI2.NAME3 "FREE";

        INS.OPTI2.TYPE3 "FREE"; # Element type

        #

        # Sample continuous position function, linear axis

        #

        INS.POS1.DEVNAME "focu"; # Name of the ICS device

        INS.POS1.DEVDESC "Focus"; # Description of the ICS device

        INS.POS1.PREFIX "INS.FOCU1"; # FITS prefix

        INS.POS1.LCUID 1; # Id. of the LCU managing the device

        INS.POS1.SWSIM T; # If T, function is software simulated

        # Optional LCU C functions to check interlocks, clamp/unclamp brake

        #INS.POS1.PREFCT "xxidevPos1PreMove"; # User pre-movement function

        #INS.POS1.POSTFCT "xxidevPos1PostMove"; # User post-movement function

        INS.POS1.UNIT "mm"; # Unit

        #

        # If a user unit conversion function is used, then the function

        # "ic0devMotUsr2Enc" must be registered in the MCM OLDB (e.g.

        # in xxmcfgFOCUM.dbcfg). ic0devMotUsr2Enc will call the function

        # registered in INS.POSi.UNITFCT with the right parameters

        # (ic0devMotUsr2EncSample is a sample user unit conversion function).

        #

        #INS.POS1.UNITFCT "xxidevMotPos2Enc"; # User unit conversion function

        #INS.POS1.UNITFCT "ic0devMotUsr2EncSample"; # sample unit conversion function

        #

        INS.POS1.OFFSET 16325; # Reference position

        INS.POS1.RAMP -100; # Ramp

        INS.POS1.POSMIN -153.4; # Min. focus position

        INS.POS1.POSMAX 153.4; # Max. focus position

        INS.POS1.TEMPRAMP 0; # Temperature slope

        INS.POS1.TEMPREF 12; # Temperature reference

        #

        # Sample continuous position function, circular axis

        #

        INS.POS2.DEVNAME "rot"; # Name of the ICS device

        INS.POS2.DEVDESC "Wheel"; # Description of the ICS device

        INS.POS2.PREFIX "INS.ROT1"; # FITS prefix

        INS.POS2.LCUID 1; # Id. of the LCU managing the device

        INS.POS2.SWSIM T; # If T, function is software simulated

        # Optional LCU C functions to check interlocks, clamp/unclamp brake

        #INS.POS2.PREFCT "xxidevPos2PreMove"; # User pre-movement function

        #INS.POS2.POSTFCT "xxidevPos2PostMove"; # User post-movement function

        INS.POS2.UNIT "deg"; # Unit

        INS.POS2.OFFSET 1000; # Reference position

        INS.POS2.RAMP 10; # Ramp

        INS.POS2.POSMIN -90.0; # Min. focus position

        INS.POS2.POSMAX 90.0; # Max. focus position

        INS.POS2.TEMPRAMP 0; # Temperature slope

         

        #

        # Sample dekker

        #

        INS.SLIT11.DEVNAME "dekk"; # Name of the ICS device

        INS.SLIT11.DEVDESC "Dekker slide"; # Description of the ICS device

        INS.SLIT11.LCUID 1; # Id. of the LCU managing the device

        INS.SLIT11.SWSIM T; # If T, function is software simulated

        INS.SLIT11.DEVTYPE "LEN2"; # Device type

        INS.SLIT11.PREFIX "INS.SLIT1"; # FITS prefix

        INS.SLIT11.LENMIN 0.13; # Min. slit length

        INS.SLIT11.LENMAX 31.21; # Max. slit length

        INS.SLIT11.X1OFFSET 2401; # Motor 1 reference position

        INS.SLIT11.X2OFFSET 2328; # Motor 2 reference position

        INS.SLIT11.X1RESOL 40; # Motor 1 encoder resolution

        INS.SLIT11.X2RESOL 40; # Motor 2 encoder resolution

        INS.SLIT11.X1LENMIN 0.064; # Motor 1 min. position

        INS.SLIT11.X1LENMAX 15.786; # Motor 1 max. position

        INS.SLIT11.X2LENMIN 0.066; # Motor 2 min. position

        INS.SLIT11.X2LENMAX 15.429; # Motor 2 max. position

        #

        # Sample slit

        #

        INS.SLIT12.DEVNAME "slit"; # Name of the ICS device

        INS.SLIT12.DEVDESC "Slit slide"; # Description of the ICS device

        INS.SLIT12.LCUID 1; # Id. of the LCU managing the device

        INS.SLIT12.SWSIM T; # If T, function is software simulated

        INS.SLIT12.DEVTYPE "WID2"; # Device type

        INS.SLIT12.PREFIX "INS.SLIT1"; # FITS prefix

        INS.SLIT12.WIDMIN 0.14; # Min. slit width

        INS.SLIT12.WIDMAX 11.04; # Max. slit width

        INS.SLIT12.Y1OFFSET 4742; # Motor 1 reference position

        INS.SLIT12.Y2OFFSET 4540; # Motor 2 reference position

        INS.SLIT12.Y1RESOL 40; # Motor 1 encoder resolution

        INS.SLIT12.Y2RESOL 40; # Motor 2 encoder resolution

        INS.SLIT12.Y1WIDMIN 0.072; # Motor 1 min. position

        INS.SLIT12.Y1WIDMAX 5.500; # Motor 1 max. position

        INS.SLIT12.Y2WIDMIN 0.068; # Motor 2 min. position

        INS.SLIT12.Y2WIDMAX 5.535; # Motor 2 max. position

        #

        # Sample slits wheel

        #

        INS.SLIT2.DEVNAME "slits"; # Name of the ICS device

        INS.SLIT2.DEVDESC "Image slicer slide"; # Description of the ICS device

        INS.SLIT2.LCUID 1; # Id. of the LCU managing the device

        INS.SLIT2.SWSIM T; # If T, function is software simulated

        INS.SLIT2.DEVTYPE "WHEEL"; # Device type

        # Optional LCU C functions to check interlocks, clamp/unclamp brake

        #INS.SLIT2.PREFCT "xxidevSlit2PreMove"; # User pre-movement function

        #INS.SLIT2.POSTFCT "xxidevSlit2PostMove"; # User post-movement function

        INS.SLIT2.POSNUM 5;

        INS.SLIT2.POSID1 "FREE";

        INS.SLIT2.POSID2 "SLIT#1";

        INS.SLIT2.POSID3 "SLIT#2";

        INS.SLIT2.POSID4 "SLIT#3";

        INS.SLIT2.POSID5 "PINH#1";

        INS.SLIT2.ID1 "FREE";

        INS.SLIT2.NAME1 "FREE";

        INS.SLIT2.WID1 0;

        INS.SLIT2.LEN1 0;

        INS.SLIT2.ID2 "SLIT#1";

        INS.SLIT2.NAME2 "SLIT#1";

        INS.SLIT2.WID2 0.5;

        INS.SLIT2.LEN2 10;

        INS.SLIT2.ID3 "SLIT#2";

        INS.SLIT2.NAME3 "SLIT#2";

        INS.SLIT2.WID3 1.0;

        INS.SLIT2.LEN3 10;

        INS.SLIT2.ID4 "SLIT#3";

        INS.SLIT2.NAME4 "SLIT#3";

        INS.SLIT2.WID4 1.5;

        INS.SLIT2.LEN4 10;

        INS.SLIT2.ID5 "PINH#1";

        INS.SLIT2.NAME5 "PINH#1";

        INS.SLIT2.WID5 0;

        INS.SLIT2.LEN5 0;

        #

        # Sample tilt

        #

        INS.TILT1.DEVNAME "tilt"; # Name of the ICS device

        INS.TILT1.DEVDESC "Camera tilt"; # Description of the ICS device

        INS.TILT1.LCUID 1; # Id. of the LCU managing the device

        INS.TILT1.SWSIM T; # If T, function is software simulated

        # Optional LCU C functions to check interlocks, clamp/unclamp brake

        #INS.TILT1.PREFCT "xxidevTilt1PreMove"; # User pre-movement function

        #INS.TILT1.POSTFCT "xxidevTilt1PostMove"; # User post-movement function

        INS.TILT1.OFFSET 16325; # Tilt reference position

        INS.TILT1.RESOL -100; # Encoder resolution

        INS.TILT1.POSMIN -153.4; # Min. camera tilt position

        INS.TILT1.POSMAX 153.4; # Max. camera tilt position

        INS.TILT1.TEMPRAMP 0; # Temperature slope

        #

        # Sample FIERA cryostat status

        #

        INS.SENSOR1.DEVNAME "fcs"; # Name of the ICS device

        INS.SENSOR1.DEVDESC "CCD cryostat status"; # Description of the ICS device

        INS.SENSOR1.DEVTYPE "ADAM"; # Device type

        INS.SENSOR1.LCUID 2; # Id. of the LCU managing the device

        INS.SENSOR1.SWSIM T; # If T, function is software simulated

        INS.SENSOR1.PORT "/iser0"; # Hardware device

        INS.SENSOR1.NUM 5; # Number of managed sensor values

        INS.SENSOR1.NAME1 "FCRS"; # Sensor value name

        INS.SENSOR1.DESC1 "Cryostat regeneration"; # Sensoar value description

        INS.SENSOR1.HEADER1 F; # If T, report sensor value in image header

        INS.SENSOR1.FITS1 "INS.SENS1.STAT"; # Sensor value FITS keyword

        INS.SENSOR1.SENUNIT1 ""; # Sensor value unit

        INS.SENSOR1.SENADDR1 04; # Sensor value hardware address

        INS.SENSOR1.SENTYPE1 "ON_OFF"; # Sensor value report type

        INS.SENSOR1.SENREF1 2.0; # Sensor value reference parameter

        INS.SENSOR1.SENRAMP1 -1.0; # Sensor value ramp parameter

        INS.SENSOR1.NAME2 "FCPC"; # Sensor value name

        INS.SENSOR1.DESC2 "Cryostat pump"; # Sensoar value description

        INS.SENSOR1.HEADER2 F; # If T, report sensor value in image header

        INS.SENSOR1.FITS2 "INS.SENS2.STAT"; # Sensor value FITS keyword

        INS.SENSOR1.SENUNIT2 ""; # Sensor value unit

        INS.SENSOR1.SENADDR2 05; # Sensor value hardware address

        INS.SENSOR1.SENTYPE2 "ON_OFF"; # Sensor value report type

        INS.SENSOR1.SENREF2 2.0; # Sensor value reference parameter

        INS.SENSOR1.SENRAMP2 -1.0; # Sensor value ramp parameter

        INS.SENSOR1.NAME3 "FCVV"; # Sensor value name

        INS.SENSOR1.DESC3 "Cryostat vacuum valve"; # Sensoar value description

        INS.SENSOR1.HEADER3 F; # If T, report sensor value in image header

        INS.SENSOR1.FITS3 "INS.SENS3.STAT"; # Sensor value FITS keyword

        INS.SENSOR1.SENUNIT3 ""; # Sensor value unit

        INS.SENSOR1.SENADDR3 06; # Sensor value hardware address

        INS.SENSOR1.SENTYPE3 "OPEN_CLOSED2"; # Sensor value report type

        INS.SENSOR1.SENREF3 -2.0; # Sensor value reference parameter

        INS.SENSOR1.SENRAMP3 -2.0; # Sensor value ramp parameter

        INS.SENSOR1.NAME4 "FCV"; # Sensor value name

        INS.SENSOR1.DESC4 "Cryostat vacuum"; # Sensoar value description

        INS.SENSOR1.HEADER4 F; # If T, report sensor value in image header

        INS.SENSOR1.FITS4 "INS.SENS4.STAT"; # Sensor value FITS keyword

        INS.SENSOR1.SENUNIT4 "mbar"; # Sensor value unit

        INS.SENSOR1.SENADDR4 01; # Sensor value hardware address

        INS.SENSOR1.SENTYPE4 "PRESSURE"; # Sensor value report type

        INS.SENSOR1.SENREF4 -6.33; # Sensor value reference parameter

        INS.SENSOR1.SENRAMP4 1.667; # Sensor value ramp parameter

        INS.SENSOR1.NAME5 "FCL"; # Sensor value name

        INS.SENSOR1.DESC5 "Cryostat LN2 tank level"; # Sensoar value description

        INS.SENSOR1.HEADER5 F; # If T, report sensor value in image header

        INS.SENSOR1.FITS5 "INS.SENS5.STAT"; # Sensor value FITS keyword

        INS.SENSOR1.SENUNIT5 "%"; # Sensor value unit

        INS.SENSOR1.SENADDR5 00; # Sensor value hardware address

        INS.SENSOR1.SENTYPE5 "ANALOG"; # Sensor value report type

        INS.SENSOR1.SENREF5 -17.0; # Sensor value reference parameter

        INS.SENSOR1.SENRAMP5 27.0; # Sensor value ramp parameter

        #

        # Sample barometer

        #

        INS.SENSOR2.DEVNAME "baro"; # Name of the ICS device

        INS.SENSOR2.DEVDESC "Barometer"; # Description of the ICS device

        INS.SENSOR2.DEVTYPE "BAROMETER"; # Device type

        INS.SENSOR2.LCUID 2; # Id. of the LCU managing the device

        INS.SENSOR2.SWSIM T; # If T, function is software simulated

        INS.SENSOR2.PORT "/iser5"; # Hardware device

        INS.SENSOR2.NUM 1; # Number of managed sensor values

        INS.SENSOR2.NAME1 "BARO"; # Sensor value name

        INS.SENSOR2.DESC1 "Barometer pressure"; # Sensoar value description

        INS.SENSOR2.HEADER1 T; # If T, report sensor value in image header

        INS.SENSOR2.FITS1 "INS.SENS26.STAT"; # Sensor value FITS keyword

        INS.SENSOR2.STAT1 "MIN MAX MEAN RMS"; # Statistical keywords to be added to the FITS header

        #

        # Sample FIERA cryostat temp. controller

        #

        INS.SENSOR3.DEVNAME "fctc"; # Name of the ICS device

        INS.SENSOR3.DEVDESC "CCD cryostat temp. ctrl."; # Description of the ICS device

        INS.SENSOR3.DEVTYPE "CN77000"; # Device type

        INS.SENSOR3.LCUID 2; # Id. of the LCU managing the device

        INS.SENSOR3.SWSIM T; # If T, function is software simulated

        INS.SENSOR3.PORT "/iser2"; # Hardware device

        INS.SENSOR3.NUM 10; # Number of managed sensor values

        INS.SENSOR3.NAME1 "FCPT"; # Sensor value name

        INS.SENSOR3.DESC1 "Cryostat cold plate temp."; # Sensoar value description

        INS.SENSOR3.HEADER1 F; # If T, report sensor value in image header

        INS.SENSOR3.FITS1 "INS.TEMP11.VAL"; # Sensor value FITS keyword

        INS.SENSOR3.SENUNIT1 "C"; # Sensor value unit

        INS.SENSOR3.SENADDR1 10; # Sensor value hardware address

        INS.SENSOR3.NAME2 "FCPR"; # Sensor value name

        INS.SENSOR3.DESC2 "Cryostat cold plate ref."; # Sensoar value description

        INS.SENSOR3.HEADER2 F; # If T, report sensor value in image header

        INS.SENSOR3.FITS2 "INS.TEMP11.REF"; # Sensor value FITS keyword

        INS.SENSOR3.SENUNIT2 "C"; # Sensor value unit

        INS.SENSOR3.SENADDR2 11; # Sensor value hardware address

        INS.SENSOR3.NAME3 "FCGT"; # Sensor value name

        INS.SENSOR3.DESC3 "Cryostat exhaust gas temp."; # Sensoar value description

        INS.SENSOR3.HEADER3 F; # If T, report sensor value in image header

        INS.SENSOR3.FITS3 "INS.TEMP12.VAL"; # Sensor value FITS keyword

        INS.SENSOR3.SENUNIT3 "C"; # Sensor value unit

        INS.SENSOR3.SENADDR3 20; # Sensor value hardware address

        INS.SENSOR3.NAME4 "FCGR"; # Sensor value name

        INS.SENSOR3.DESC4 "Cryostat exhaust gas ref."; # Sensoar value description

        INS.SENSOR3.HEADER4 F; # If T, report sensor value in image header

        INS.SENSOR3.FITS4 "INS.TEMP12.REF"; # Sensor value FITS keyword

        INS.SENSOR3.SENUNIT4 "C"; # Sensor value unit

        INS.SENSOR3.SENADDR4 21; # Sensor value hardware address

        INS.SENSOR3.NAME5 "FCST"; # Sensor value name

        INS.SENSOR3.DESC5 "Cryostat sorption temp."; # Sensoar value description

        INS.SENSOR3.HEADER5 F; # If T, report sensor value in image header

        INS.SENSOR3.FITS5 "INS.TEMP13.VAL"; # Sensor value FITS keyword

        INS.SENSOR3.SENUNIT5 "C"; # Sensor value unit

        INS.SENSOR3.SENADDR5 30; # Sensor value hardware address

        INS.SENSOR3.NAME6 "FCSR"; # Sensor value name

        INS.SENSOR3.DESC6 "Cryostat sorption ref."; # Sensoar value description

        INS.SENSOR3.HEADER6 F; # If T, report sensor value in image header

        INS.SENSOR3.FITS6 "INS.TEMP13.REF"; # Sensor value FITS keyword

        INS.SENSOR3.SENUNIT6 "C"; # Sensor value unit

        INS.SENSOR3.SENADDR6 31; # Sensor value hardware address

        INS.SENSOR3.NAME7 "FCWT"; # Sensor value name

        INS.SENSOR3.DESC7 "Cryostat warm-up temp."; # Sensoar value description

        INS.SENSOR3.HEADER7 F; # If T, report sensor value in image header

        INS.SENSOR3.FITS7 "INS.TEMP14.VAL"; # Sensor value FITS keyword

        INS.SENSOR3.SENUNIT7 "C"; # Sensor value unit

        INS.SENSOR3.SENADDR7 40; # Sensor value hardware address

        INS.SENSOR3.NAME8 "FCWR"; # Sensor value name

        INS.SENSOR3.DESC8 "Cryostat warm-up ref."; # Sensoar value description

        INS.SENSOR3.HEADER8 F; # If T, report sensor value in image header

        INS.SENSOR3.FITS8 "INS.TEMP14.REF"; # Sensor value FITS keyword

        INS.SENSOR3.SENUNIT8 "C"; # Sensor value unit

        INS.SENSOR3.SENADDR8 41; # Sensor value hardware address

        INS.SENSOR3.NAME9 "FCCT"; # Sensor value name

        INS.SENSOR3.DESC9 "Cryostat cooling temp."; # Sensoar value description

        INS.SENSOR3.HEADER9 F; # If T, report sensor value in image header

        INS.SENSOR3.FITS9 "INS.TEMP15.VAL"; # Sensor value FITS keyword

        INS.SENSOR3.SENUNIT9 "C"; # Sensor value unit

        INS.SENSOR3.SENADDR9 50; # Sensor value hardware address

        INS.SENSOR3.NAME10 "FCCR"; # Sensor value name

        INS.SENSOR3.DESC10 "Cryostat cooling ref."; # Sensoar value description

        INS.SENSOR3.HEADER10 F; # If T, report sensor value in image header

        INS.SENSOR3.FITS10 "INS.TEMP15.REF"; # Sensor value FITS keyword

        INS.SENSOR3.SENUNIT10 "C"; # Sensor value unit

        INS.SENSOR3.SENADDR10 51; # Sensor value hardware address

        #

        # Sample cooling controller sensor

        #

        INS.SENSOR4.DEVNAME "ccc1"; # Name of the ICS device

        INS.SENSOR4.DEVDESC "Cooling controller"; # Description of the ICS device

        INS.SENSOR4.DEVTYPE "COOLING"; # Device type

        INS.SENSOR4.LCUID 2; # Id. of the LCU managing the device

        INS.SENSOR4.SWSIM T; # If T, function is software simulated

        INS.SENSOR4.PORT "/iser0";

        INS.SENSOR4.NUM 8;

        INS.SENSOR4.NAME1 "CAOT";

        INS.SENSOR4.DESC1 "Cooling outlet temp.";

        INS.SENSOR4.HEADER1 F;

        INS.SENSOR4.FITS1 "INS.TEMP21.VAL";

        INS.SENSOR4.SENUNIT1 "C";

        INS.SENSOR4.SENADDR1 1;

        INS.SENSOR4.NAME2 "CAIT";

        INS.SENSOR4.DESC2 "Cooling inlet temp.";

        INS.SENSOR4.HEADER2 F;

        INS.SENSOR4.FITS2 "INS.TEMP22.VAL";

        INS.SENSOR4.SENUNIT2 "C";

        INS.SENSOR4.SENADDR2 2;

        INS.SENSOR4.NAME3 "CACT";

        INS.SENSOR4.DESC3 "Cabinet temp.";

        INS.SENSOR4.HEADER3 F;

        INS.SENSOR4.FITS3 "INS.TEMP23.VAL";

        INS.SENSOR4.SENUNIT3 "C";

        INS.SENSOR4.SENADDR3 3;

        INS.SENSOR4.NAME4 "CAAT";

        INS.SENSOR4.DESC4 "Ambient temp.";

        INS.SENSOR4.HEADER4 F;

        INS.SENSOR4.FITS4 "INS.TEMP24.VAL";

        INS.SENSOR4.SENUNIT4 "C";

        INS.SENSOR4.SENADDR4 4;

        INS.SENSOR4.NAME5 "CAF1";

        INS.SENSOR4.DESC5 "Flow rate 1";

        INS.SENSOR4.HEADER5 F;

        INS.SENSOR4.FITS5 "INS.SENS11.VAL";

        INS.SENSOR4.SENUNIT5 "l/min";

        INS.SENSOR4.SENADDR5 5;

        INS.SENSOR4.NAME6 "CAF2";

        INS.SENSOR4.DESC6 "Flow rate 2";

        INS.SENSOR4.HEADER6 F;

        INS.SENSOR4.FITS6 "INS.SENS12.VAL";

        INS.SENSOR4.SENUNIT6 "l/min";

        INS.SENSOR4.SENADDR6 6;

        INS.SENSOR4.NAME7 "CAF3";

        INS.SENSOR4.DESC7 "Flow rate 3";

        INS.SENSOR4.HEADER7 F;

        INS.SENSOR4.FITS7 "INS.SENS13.VAL";

        INS.SENSOR4.SENUNIT7 "l/min";

        INS.SENSOR4.SENADDR7 7;

        INS.SENSOR4.NAME8 "CDO1";

        INS.SENSOR4.DESC8 "Cabinet door open";

        INS.SENSOR4.HEADER8 F;

        INS.SENSOR4.FITS8 "INS.SENS17.VAL";

        INS.SENSOR4.SENADDR8 8;

        #

        # Sample digital sensors

        #

        INS.SENSOR5.DEVNAME "dis1"; # Name of the ICS device

        INS.SENSOR5.DEVDESC "Digital sensors 1"; # Description of the ICS device

        INS.SENSOR5.DEVTYPE "DIGITAL"; # Device type

        INS.SENSOR5.LCUID 2; # Id. of the LCU managing the device

        INS.SENSOR5.SWSIM T; # If T, function is software simulated

        INS.SENSOR5.PORT "/acro0";

        INS.SENSOR5.NUM 4;

        INS.SENSOR5.NAME1 "VPS2";

        INS.SENSOR5.DESC1 "VME B power supply status";

        INS.SENSOR5.HEADER1 F;

        INS.SENSOR5.FITS1 "INS.SENS20.STAT";

        INS.SENSOR5.SIGBIT1 17;

        INS.SENSOR5.SIGWIDTH1 1;

        INS.SENSOR5.SIGLOW1 F;

        INS.SENSOR5.SIGVAL010 "OK";

        INS.SENSOR5.SIGVAL011 "ERROR";

        INS.SENSOR5.NAME2 "APSI";

        INS.SENSOR5.DESC2 "Aux. power supply status";

        INS.SENSOR5.HEADER2 F;

        INS.SENSOR5.FITS2 "INS.SENS21.STAT";

        INS.SENSOR5.SIGBIT2 19;

        INS.SENSOR5.SIGWIDTH2 1;

        INS.SENSOR5.SIGLOW2 F;

        INS.SENSOR5.SIGVAL020 "OK";

        INS.SENSOR5.SIGVAL021 "ERROR";

        INS.SENSOR5.NAME3 "CCM1";

        INS.SENSOR5.DESC3 "Cabinet cooling malfunction";

        INS.SENSOR5.HEADER3 F;

        INS.SENSOR5.FITS3 "INS.SENS22.STAT";

        INS.SENSOR5.SIGBIT3 16;

        INS.SENSOR5.SIGWIDTH3 1;

        INS.SENSOR5.SIGLOW3 F;

        INS.SENSOR5.SIGVAL030 "OK";

        INS.SENSOR5.SIGVAL031 "ERROR";

        INS.SENSOR5.NAME4 "ENCL";

        INS.SENSOR5.DESC4 "Enclosure open";

        INS.SENSOR5.HEADER4 F;

        INS.SENSOR5.FITS4 "INS.SENS24.STAT";

        INS.SENSOR5.SIGBIT4 59;

        INS.SENSOR5.SIGWIDTH4 2;

        INS.SENSOR5.SIGLOW4 F;

        INS.SENSOR5.SIGVAL040 "CLOSED";

        INS.SENSOR5.SIGVAL041 "OPEN";

        INS.SENSOR5.SIGVAL042 "OPEN";

        INS.SENSOR5.SIGVAL043 "OPEN";

        #

        # Sample humidity sensor

        #

        INS.SENSOR6.DEVNAME "ench"; # Name of the ICS device

        INS.SENSOR6.DEVDESC "Humidity monitor"; # Description of the ICS device

        INS.SENSOR6.DEVTYPE "HUMIDITY"; # Device type

        INS.SENSOR6.LCUID 2; # Id. of the LCU managing the device

        INS.SENSOR6.SWSIM T; # If T, function is software simulated

        INS.SENSOR6.PORT "/iser4";

        INS.SENSOR6.NUM 3;

        INS.SENSOR6.NAME1 "EHST";

        INS.SENSOR6.DESC1 "Humidity sensor temp.";

        INS.SENSOR6.HEADER1 F;

        INS.SENSOR6.FITS1 "INS.TEMP29.VAL";

        INS.SENSOR6.SENUNIT1 "C";

        INS.SENSOR6.SENADDR1 0;

        INS.SENSOR6.NAME2 "EHRH";

        INS.SENSOR6.DESC2 "Relative humidity";

        INS.SENSOR6.HEADER2 F;

        INS.SENSOR6.FITS2 "INS.SENS25.VAL";

        INS.SENSOR6.SENUNIT2 "%";

        INS.SENSOR6.SENADDR2 1;

        INS.SENSOR6.NAME3 "EHDP";

        INS.SENSOR6.DESC3 "Dew point";

        INS.SENSOR6.HEADER3 F;

        INS.SENSOR6.FITS3 "INS.TEMP30.VAL";

        INS.SENSOR6.SENUNIT3 "C";

        INS.SENSOR6.SENADDR3 2;

        #

        # Sample temperature sensors

        #

        INS.SENSOR7.DEVNAME "temp"; # Name of the ICS device

        INS.SENSOR7.DEVDESC "Temperatures"; # Description of the ICS device

        INS.SENSOR7.DEVTYPE "ESTERS"; # Device type

        INS.SENSOR7.LCUID 2; # Id. of the LCU managing the device

        INS.SENSOR7.SWSIM T; # If T, function is software simulated

        INS.SENSOR7.PORT "/iser1";

        INS.SENSOR7.NUM 7;

        INS.SENSOR7.NAME1 "TMC";

        INS.SENSOR7.DESC1 "Temp. camera";

        INS.SENSOR7.HEADER1 F;

        INS.SENSOR7.FITS1 "INS.TEMP1.VAL";

        INS.SENSOR7.SENUNIT1 "C";

        INS.SENSOR7.SENADDR1 0; # Sensor value hardware address

        INS.SENSOR7.NAME2 "TMT";

        INS.SENSOR7.DESC2 "Temp. table";

        INS.SENSOR7.HEADER2 T;

        INS.SENSOR7.FITS2 "INS.TEMP2.VAL";

        INS.SENSOR7.SENUNIT2 "C";

        INS.SENSOR7.SENADDR2 1; # Sensor value hardware address

        INS.SENSOR7.STAT2 "MIN MAX MEAN RMS TMMEAN GRAD DETCOEF"; # Statistical keywords to be add to the FITS header

        INS.SENSOR7.NAME3 "TMIA";

        INS.SENSOR7.DESC3 "Temp. inside air";

        INS.SENSOR7.HEADER3 F;

        INS.SENSOR7.FITS3 "INS.TEMP3.VAL";

        INS.SENSOR7.SENUNIT3 "C";

        INS.SENSOR7.SENADDR3 2; # Sensor value hardware address

        INS.SENSOR7.NAME4 "TMOA";

        INS.SENSOR7.DESC4 "Temp. outside air";

        INS.SENSOR7.HEADER4 F;

        INS.SENSOR7.FITS4 "INS.TEMP4.VAL";

        INS.SENSOR7.SENUNIT4 "C";

        INS.SENSOR7.SENADDR4 3; # Sensor value hardware address

        INS.SENSOR7.NAME5 "TMD";

        INS.SENSOR7.DESC5 "Temp. derotator";

        INS.SENSOR7.HEADER5 F;

        INS.SENSOR7.FITS5 "INS.TEMP5.VAL";

        INS.SENSOR7.SENUNIT5 "C";

        INS.SENSOR7.SENADDR5 4; # Sensor value hardware address

        INS.SENSOR7.NAME6 "TMCR";

        INS.SENSOR7.DESC6 "Temp. cryostat";

        INS.SENSOR7.HEADER6 F;

        INS.SENSOR7.FITS6 "INS.TEMP6.VAL";

        INS.SENSOR7.SENUNIT6 "C";

        INS.SENSOR7.SENADDR6 5; # Sensor value hardware address

        INS.SENSOR7.NAME7 "TMN";

        INS.SENSOR7.DESC7 "Temp. LN2 lines";

        INS.SENSOR7.HEADER7 F;

        INS.SENSOR7.FITS7 "INS.TEMP7.VAL";

        INS.SENSOR7.SENUNIT7 "C";

        INS.SENSOR7.SENADDR7 6; # Sensor value hardware address

        #

        # Sample exposure meter

        #

        INS.DET1.DEVNAME "expm"; # Name of the ICS device

        INS.DET1.DEVDESC "Exp. Meter PMT"; # Description of the ICS device

        INS.DET1.LCUID 2; # Id. of the LCU managing the device

        INS.DET1.SWSIM T; # If T, function is software simulated

        INS.DET1.DEVTYPE "EXPM"; # Device type

        INS.DET1.PORT "/iser3"; # Hardware device

        INS.DET1.UIT 1; # Default integration time [sec]

        INS.DET1.OFFDRK 0; # Average dark background counts

        INS.DET1.OFFSKY 1; # Average sky background counts

        INS.DET1.SIMVALUE 10; # Simulation CTLAST value

        INS.DET1.LOG F; # If T, log CTLAST values

        #

        # Special device

        #

        INS.MIRR2.DEVNAME "yyyy"; # Name of the ICS device

        INS.MIRR2.DEVDESC "Special device"; # Description of the ICS device

        INS.MIRR2.DEVTYPE "ANALOG"; # Device type

        INS.MIRR2.LCUID 2; # Id. of the LCU managing the device

        INS.MIRR2.SWSIM T; # If T, function is software simulated

        INS.MIRR2.PORT "/aio0";

        #

        # 2.2 ICS Assemblies

        #

        # PRESLIT consists of LAMP1 SHUT1 DROT DPOR and SLIT2

        INS.ASSEMBLY1 "INS.PRESLIT"; # Assembly FITS name

        INS.ASSEMBLY1.KEY1 ""

        INS.ASSEMBLY1.VAL1 "INS.LAMP1 INS.SHUT1 INS.DROT INS.DPOR INS.ADC1"

        # SENSORS consists of all sensor devices

        INS.ASSEMBLY2 "INS.SENSORS"; # Assembly FITS name

        INS.ASSEMBLY2.KEY1 ""

        INS.ASSEMBLY2.VAL1 "INS.SENSOR1 INS.SENSOR2 INS.SENSOR3 INS.SENSOR4 INS.SENSOR5 INS.SENSOR6 INS.SENSOR7"

        # INFRARED arm consists of GRAT1 SLIT1 and SLIT2

        INS.ASSEMBLY3 "INS.INFRARED"; # Assembly FITS name

        INS.ASSEMBLY3.KEY1 ""

        INS.ASSEMBLY3.VAL1 "INS.PRESLIT INS.SENSORS INS.GRAT1 INS.SLIT1 INS.SLIT2"

        # OPTICAL ARM consists of FILT1 TILT1, MIRR2 and DET1

        INS.ASSEMBLY4 "INS.OPTICAL"; # Assembly FITS name

        INS.ASSEMBLY4.KEY1 ""

        INS.ASSEMBLY4.VAL1 "INS.PRESLIT INS.SENSORS INS.FILT1 INS.TILT1 INS.MIRR2 INS.DET1"

        # INS.MODE

        # accept any value of INS.MODE and do not forward this key to the LCUs

        INS.ASSEMBLY5 "INS.MODE"; # Assembly FITS name

        INS.ASSEMBLY5.KEY1 "*"

        INS.ASSEMBLY5.VAL1 ""

        # INS.PATH used for EXPSTRT/EXPEND -path

        # Paths must be consistant with OS configuration

        INS.ASSEMBLY6 "INS.PATH; # Assembly FITS name

        INS.ASSEMBLY6.KEY1 "INFRARED"

        INS.ASSEMBLY6.VAL1 "INS.INFRARED"

        INS.ASSEMBLY6.KEY2 "OPT_TCCD"

        INS.ASSEMBLY6.VAL2 "INS.PRESLIT INS.MIRR2"

        INS.ASSEMBLY6.KEY3 "OPT_SCCD"

        INS.ASSEMBLY6.VAL3 "INS.OPTICAL"

        INS.ASSEMBLY6.KEY4 ""

        INS.ASSEMBLY6.VAL4 ""

        # INS.LAMP: Example of multi-step setup capability

        # INS.LAMP ON is executed in three steps

        # Step 1: move iods OUT and turn lamp on

        # Step 2: move iods IN

        # Step 3: open shutter

        # INS.LAMP OFF is executed in one step only:

        # Step 1: move iods OUT, turn lamp off and close shutter

        INS.ASSEMBLY7 "INS.LAMP"; # Assembly FITS name

        INS.ASSEMBLY7.HEADER T; # Last setup value goes in the FITS header

        INS.ASSEMBLY7.KEY1 "ON"

        INS.ASSEMBLY7.VAL1 "INS.OPTI1.NAME OUT INS.LAMP1.ST T,INS.OPTI1.NAME IN , INS.SHUT1.ST T"

        INS.ASSEMBLY7.KEY2 "OFF"

        INS.ASSEMBLY7.VAL2 "INS.OPTI1.NAME OUT INS.LAMP1.ST F INS.SHUT1.ST F"

        #

        # 2.3 ICS self-test utility (ic0SelfTest) commands

        #

        INS.TEST.COMMAND1 "SETUP"

        INS.TEST.PARAM1 "-file xxmcfgIcsSelfTest_1.ins -function INS.MODE IR_IMAGING"

        INS.TEST.COMMAND2 "EXPSTRT"

        INS.TEST.PARAM2 "-path INFRARED"

        INS.TEST.COMMAND3 "EXPEND"

        INS.TEST.PARAM3 "-path INFRARED"

        INS.TEST.COMMAND4 "STATUS"

        INS.TEST.PARAM4 "-header -dumpFits IcsSelfTest_1.ins"

        INS.TEST.COMMAND5 "SETUP"

        INS.TEST.PARAM5 "-file xxmcfgIcsSelfTest_2.ins -function INS.MODE GUIDING"

        INS.TEST.COMMAND6 "EXPSTRT"

        INS.TEST.PARAM6 "-path OPT_TCCD"

        INS.TEST.COMMAND7 "EXPEND"

        INS.TEST.PARAM7 "-path OPT_TCCD"

        INS.TEST.COMMAND8 "STATUS"

        INS.TEST.PARAM8 "-header -dumpFits IcsSelfTest_2.ins"

        INS.TEST.COMMAND9 "SETUP"

        INS.TEST.PARAM9 "-file xxmcfgIcsSelfTest_3.ins -function INS.MODE IR_SPECTROSCOPY"

        INS.TEST.COMMAND10 "EXPSTRT"

        INS.TEST.PARAM10 "-path INFRARED"

        INS.TEST.COMMAND11 "EXPEND"

        INS.TEST.PARAM11 "-path INFRARED"

        INS.TEST.COMMAND12 "STATUS"

        INS.TEST.PARAM12 "-header -dumpFits IcsSelfTest_3.ins"

        INS.TEST.COMMAND13 "SETUP"

        INS.TEST.PARAM13 "-file xxmcfgIcsSelfTest_4.ins -function INS.MODE OPT_IMAGING"

        INS.TEST.COMMAND14 "EXPSTRT"

        INS.TEST.PARAM14 "-path OPT_SCCD"

        INS.TEST.COMMAND15 "EXPEND"

        INS.TEST.PARAM15 "-path OPT_SCCD"

        INS.TEST.COMMAND16 "STATUS"

        INS.TEST.PARAM16 "-header -dumpFits IcsSelfTest_4.ins"

        INS.TEST.COMMAND17 "SETUP"

        INS.TEST.PARAM17 "-file xxmcfgIcsSelfTest_5.ins"

        INS.TEST.COMMAND18 "EXPSTRT"

        INS.TEST.PARAM18 ""

        INS.TEST.COMMAND19 "EXPEND"

        INS.TEST.PARAM19 ""

        INS.TEST.COMMAND20 "STATUS"

        INS.TEST.PARAM20 "-header -dumpFits IcsSelfTest_5.ins"

        INS.TEST.COMMAND21 "SETUP"

        INS.TEST.PARAM21 "-file xxmcfgIcsSelfTest_6.ins"

        INS.TEST.COMMAND22 "SETUP"

        INS.TEST.PARAM22 "-file xxmcfgIcsSelfTest_7.ins"

        INS.TEST.COMMAND23 "SETUP"

        INS.TEST.PARAM23 "-file xxmcfgIcsSelfTest_8.ins"

        INS.TEST.COMMAND24 "SETUP"

        INS.TEST.PARAM24 "-file xxmcfgIcsSelfTest_9.ins"

        INS.TEST.COMMAND25 "SETUP"

        INS.TEST.PARAM25 "-file xxmcfgIcsSelfTest_10.ins"

        INS.TEST.COMMAND26 "SETUP"

        INS.TEST.PARAM26 "-file xxmcfgIcsSelfTest_11.ins"

        INS.TEST.COMMAND27 "SETUP"

        INS.TEST.PARAM27 "-file xxmcfgIcsSelfTest_12.ins -function INS.LAMP ON"

        INS.TEST.COMMAND28 "SETUP"

        INS.TEST.PARAM28 "-file xxmcfgIcsSelfTest_13.ins -function INS.LAMP OFF"

        #

        # 2.4 ICS stand-alone GUI configuration

        #

        INS.UIF.NBOOKS 2

        INS.UIF1.TABS 3

        INS.UIF2.TABS 7

        INS.UIF1.LABEL1 "Motors"

        INS.UIF1.LABEL2 "Lamps/shutters"

        INS.UIF1.LABEL3 "Exposure meter"

        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"

        INS.LAMP1.UIFNB 1

        INS.LAMP1.UIFTB 2

        INS.SHUT1.UIFNB 1

        INS.SHUT1.UIFTB 2

        INS.DET1.UIFNB 1

        INS.DET1.UIFTB 3

        INS.GRAT1.UIFCLASS "xxipanGrat"

        INS.MIRR2.UIFCLASS "xxipanSpecial"

        INS.SENSOR1.UIFNB 2

        INS.SENSOR1.UIFTB 1

        INS.SENSOR2.UIFNB 2

        INS.SENSOR2.UIFTB 2

        INS.SENSOR3.UIFCLASS "icbpanSensorSqr"

        INS.SENSOR3.UIFNB 2

        INS.SENSOR3.UIFTB 3

        INS.SENSOR4.UIFCLASS "icbpanSensorSqr"

        INS.SENSOR4.UIFNB 2

        INS.SENSOR4.UIFTB 4

        INS.SENSOR5.UIFNB 2

        INS.SENSOR5.UIFTB 5

        INS.SENSOR6.UIFCLASS "icbpanSensorHor"

        INS.SENSOR6.UIFNB 2

        INS.SENSOR6.UIFTB 6

        INS.SENSOR7.UIFCLASS "icbpanSensorSqr"

        INS.SENSOR7.UIFNB 2

        INS.SENSOR7.UIFTB 7

        #

        # 2.5 ICS OLDB "scan" feature

        #

        INS.SCAN.PERIOD 5

        INS.SCAN1.DBFROM "<alias>TCS:coord.ra2000"

        INS.SCAN1.DBTO "@lxxics1<alias>DROT.ra"

        INS.SCAN2.DBFROM "<alias>TCS:coord.dec2000"

        INS.SCAN2.DBTO "@lxxics1<alias>DROT.dec"

        INS.SCAN3.DBFROM "<alias>TCS:coord.ra2000"

        INS.SCAN3.DBTO "@lxxics1<alias>ADC1.ra"

        INS.SCAN4.DBFROM "<alias>TCS:coord.dec2000"

        INS.SCAN4.DBTO "@lxxics1<alias>ADC1.dec"

        # Next SCANi are just for testing ic0

        ##INS.SCAN5.DBFROM "@lxxics1:PARAMS:SCALARS.scalar_int32"; # from LCU1 scalar (poll)

        ##INS.SCAN5.DBTO "@lxxics2:PARAMS:SCALARS.scalar_int32"; # to LCU2 scalar

        ##INS.SCAN6.DBFROM ":PARAMS:VECTORS.vector_double"; # from WS vector (poll)

        ##INS.SCAN6.DBTO "@lxxics2:PARAMS:VECTORS.vector_double"; # to LCU2 vector

        ##INS.SCAN7.DBFROM "@lxxics1:PARAMS:VECTORS.vector_double(3)"; # from LCU1 vector el. (poll)

        ##INS.SCAN7.DBTO "@lxxics2:PARAMS:SCALARS.scalar_double"; # to LCU2 scalar

        ##INS.SCAN8.DBFROM ":PARAMS:SCALARS.scalar_float"; # from WS scalar (srbx)

        ##INS.SCAN8.DBTO "@lxxics2:PARAMS:SCALARS.scalar_float"; # to LCU2 scalar

        ##INS.SCAN8.POLL F

        ##INS.SCAN9.DBFROM "@lxxics1:PARAMS:SCALARS.scalar_string32"; # from LCU1 scalar (srbx)

        ##INS.SCAN9.DBTO "@lxxics2:PARAMS:SCALARS.scalar_string32"; # to LCU2 scalar

        ##INS.SCAN9.POLL F

        ##INS.SCAN10.DBFROM ":PARAMS:VECTORS.vector_float"; # from WS vector (srbx)

        ##INS.SCAN10.DBTO "@lxxics2:PARAMS:VECTORS.vector_float"; # to LCU2 vector

        ##INS.SCAN10.POLL F

        ##INS.SCAN11.DBFROM "@lxxics1:PARAMS:VECTORS.vector_int16(4)"; # from LCU1 vector el. (poll)

        ##INS.SCAN11.DBTO "@lxxics2:PARAMS:SCALARS.scalar_int16"; # to LCU2 scalar

        ##INS.SCAN11.POLL F

        #************************************************************************

        # 5. OS configuration

        #

        OCS.CON.RELEASE "2000-06-16"; # Release date "yyyy-mm-dd"

        OCS.CON.ORIGIN "TEST"; # Origin

        OCS.CON.LOGLEVEL 0;

        #

        # 5. OS Subsystems

        #

        #

        # 5.1 OS telescope control subsystems

        #

        OCS.TEL.NAME "UT0"; # Telescope name ('UT1','UT2','UT3' or 'UT4')

        OCS.TEL.FOCUS "NA"; # Telescope focus

        OCS.TEL.DICT "TCS"; # dictionary

        OCS.TEL.ENVNAME "wxxtcs"; #

        OCS.TEL.PROCNAME "tifNA" ; # process name

        #OCS.TEL.DBROOT "<alias>TCS"; # db root (default)

        #OCS.TEL.DBSTATE "<alias>TCS:tcsState.tcsSubstate"; # db address of state (default)

        OCS.TEL.KEYWFILT "TEL.*.*.*.*.*.*"; # keyword filter

        OCS.TEL.TIMEOUT 180000; # timout in seconds

        OCS.TEL.ID "Tel name not set"; # value for TELESCOP kw ('ESO-VLT-Ui')

        #

        # 5.2 OS instrument control subsystems

        #

        # Category indices are always removed before forwarding the FITS keyword.

        #

        OCS.INS.NUM 1;

        # subsystem: ICS

        # -----------------------------------------------------------------------------------------------

        OCS.INS1.NAME "ICS";

        OCS.INS1.DICT1 "XXXX_ICS";

        OCS.INS1.ENVNAME "wxxxx";

        OCS.INS1.PROCNAME "xxiControl";

        #OCS.INS1.DBROOT "<alias>XXXX:ICS"; # db root (as default)

        #OCS.INS1.DBSTATE "<alias>XXXX:ICS:PROCESSES:WS:icsControl.state";

        OCS.INS1.KEYWFILT "INS.*.*.*.*.*.*";

        OCS.INS1.TIMEOUT 60000;

        OCS.INS1.STRTUIF F;

         

        #

        # 5.3 OS detector control subsystems

        #

        # Category indices are always removed before forwarding the FITS keyword.

        #

        OCS.DET.NUM 3;

        # subsystem: DET1 IRACE

        # -----------------------------------------------------------------------------------------------

        OCS.DET1.NAME "IRDCS"; # name of the IRACE detector

        OCS.DET1.DICT "IRACE"; # dictionary : ESO-VLT-DICT.IRACE

        OCS.DET1.ENVNAME "wxxxx"; # environment where proc. is running

        OCS.DET1.PROCNAME "iracqServer"; # name of the IRACE detector process

        OCS.DET1.KEYWFILT "DET1.*.*.*.*.*.*"; # keywords forwarded to subsystem

        OCS.DET1.TIMEOUT 1000 ; # timeout for the process (seconds)

        OCS.DET1.DBROOT "<alias>iracq"; # db Root

        #OCS.DET1.DBSTATE "<alias>iracq:irace.state"; # db address of 'state'

        #OCS.DET1.DBNEWDT "<alias>iracq:exposure.newDataFileName"; # db address of 'new data file'

        #OCS.DET1.DBEXPSTS "<alias>iracq:exposure.expStatus" ; # db address of 'exposure status'

        OCS.DET1.TYPE "IRACE";

        OCS.DET1.SDMAHOST "wxxirac";

        OCS.DET1.SYSCFG "xxmcfgIRDCS.cfg";

        # subsystem: DET2 TCCD

        # ------------------------------------------------------------------------------------------------

        OCS.DET2.NAME "TCCD"; # name of the tech. detector

        OCS.DET2.DICT1 "CCDDCS"; # dictionary : ESO-VLT-DICT.CCDDCS

        OCS.DET2.ENVNAME "wxxxx"; # environment

        OCS.DET2.PROCNAME "ccdconCI_tccd"; # name of the process

        OCS.DET2.KEYWFILT "DET2.*.*.*.*.*.*,DET.*.*.*.*.*.*"; # keywords forwarded to subsystem

        OCS.DET2.TIMEOUT 1000 ; # timeout in seconds

        OCS.DET2.DBROOT "<alias>tccd"; # db address of subsystem

        #OCS.DET2.DBSTATE "<alias>tccd.opState"; # db address of 'state'

        #OCS.DET2.DBNEWDT "<alias>tccd:exposures:exposure_1:transfer.fileNameUnComp";

        #OCS.DET2.DBEXPSTS "<alias>tccd:exposures:exposure_1.expStatus";

        OCS.DET2.TYPE "ACE";

        OCS.DET2.CCDNAME "tccd";

        OCS.DET2.CCDLENV "lxxtccd";

        OCS.DET2.DBFILE "ccdTec105.dbcfg";

         

        # subsystem: DET3 FIERA

        # ------------------------------------------------------------------------------------------------

        OCS.DET3.NAME "FIERA" ;

        OCS.DET3.DICT "FCDDCS";

        OCS.DET3.ENVNAME "wxxxx";

        OCS.DET3.PROCNAME "fcdconCI_fiera";

        OCS.DET3.KEYWFILT "DET3.*.*.*.*.*.*";

        OCS.DET3.TIMEOUT 1000;

        OCS.DET3.DBROOT "<alias>fiera";

        #OCS.DET3.DBSTATE "<alias>fiera.opState";

        #OCS.DET3.DBNEWDT "<alias>fiera:exposures:exposure_1:transfer.fileNameUnComp";

        #OCS.DET3.DBEXPSTS "<alias>fiera:exposures:exposure_1.expStatus";

        OCS.DET3.TYPE "FIERA";

        OCS.DET3.CCDNAME "fiera";

        OCS.DET3.CCDLENV "wxxfier";

        OCS.DET3.DBFILE "fcdSciTemplate.dbcfg";

        #

        # 5.4 OS observation software subsystems

        #

        OCS.OS.NUM 0;

         

        #

        # 5.5 Instrument modes

        #

        OCS.MODE1.NAME "IR_IMAGING"; # name of the instrmode

        OCS.MODE1.SETUP "-function INS.MIRR1.NAME IRED INS.DROT.POSANG 90.0"; # setup the mode

        OCS.MODE1.SUBSYST "IRDCS UT0 ICS"; # subsystems involved in the given mode

        OCS.MODE1.PATH "INFRARED"; # instrument path (EXPSTRT, EXPEND)

        OCS.MODE2.NAME "GUIDING"; # name of the instrmode

        OCS.MODE2.SETUP "-file guidingMode.ref -file ccd.det"; # setup of the given mode

        OCS.MODE2.SUBSYST "TCCD ICS UT0"; # subsystems involved in the given mode

        OCS.MODE2.PATH "OPT_TCCD"; # instrument path (EXPSTRT, EXPEND)

        OCS.MODE3.NAME "IR_SPECTROSCOPY"; # name of the instrmode

        OCS.MODE3.SETUP "-function INS.MIRR1.NAME IRED INS.DROT.POSANG 10.0"; # setup of mode

        OCS.MODE3.SUBSYST "IRDCS TCCD ICS UT0"; # subsystems involved in the given mode

        OCS.MODE3.PATH "INFRARED"; # instrument path (EXPSTRT, EXPEND)

        OCS.MODE4.NAME "OPT_IMAGING"; # name of the instrmode

        OCS.MODE4.SETUP "-function INS.MIRR1.NAME OPTIC INS.DROT.POSANG 180.0"; # setup of mode

        OCS.MODE4.SUBSYST "FIERA ICS UT0"; # subsystems

        OCS.MODE4.PATH "OPT_SCCD"; # instrument path

         

         

         

        #************************************************************************

        # 6. Midas

        #

        # Normally, image processing is done by the pipeline.

        # On-line MIDAS should be enabled only if needed.

        #

        START.MIDAS.AVAIL T;

         

        #************************************************************************

        # 7. Additional panels

        #

        START.PANEL1.NAME "ALARM"; # Panel name

        START.PANEL1.EXECMD "xxopanAlarm"; # Command to start the panel

        START.PANEL1.DESC "XXXX Alarms"

        START.PANEL1.DEFAULT F;

         

        START.PANEL2.NAME "OS_ENGINEERING"; # Panel name

        START.PANEL2.EXECMD "xxopanEngineering"; # Command to start the panel

        START.PANEL2.DESC "XXXX OS Engineering"

        START.PANEL2.DEFAULT F;

         

        #************************************************************************

        # ___oOo___

         

         

      5. xxmcfgSTART.cfg

      #******************************************************************************

      # E.S.O. - VLT project

      #

      # "@(#) $Id: xxmcfgSTART.cfg,v 1.48 2001/11/05 13:32:46 vltsccm Exp $"

      #

      #************************************************************************

      PAF.HDR.START ""; # Start of PAF Header

      PAF.TYPE "Configuration"; # Type of PAF

      PAF.ID " "; # ID for PAF

      PAF.NAME " "; # Name of PAF

      PAF.DESC " "; # Short description of PAF

      PAF.CRTE.NAME " "; # Name of creator

      PAF.CRTE.DAYTIM " "; # Civil Time for creation

      PAF.LCHG.NAME "Config. Tool"; # Name of person/appl. changing

      PAF.LCHG.DAYTIM "2001-08-28T18:36:33"; # Timestamp of last change

      PAF.CHCK.NAME " "; # Name of appl. checking

      PAF.HDR.END ""; # End of PAF Header

      INS.CON.OPMODE "LCU_SIM"; # Operational mode.

      OCS.CON.DEFAULT T; # Start OS application on start-up.

      OCS.CON.LOGLEVEL 0; # Default standard log level.

      OCS.DET1.ACCESS "NORMAL"; # Sub-system access mode.

      OCS.DET1.DEFAULT T; # Start DCS application on start-up.

      OCS.DET1.STRTRTD F; # Start associated RTD on start-up.

      OCS.DET1.STRTUIF F; # Start associated stand-alone panel on start-up.

      OCS.DET1.SWSIM "LCU_SIM"; # Software simulation.

      OCS.DET2.ACCESS "NORMAL"; # Sub-system access mode.

      OCS.DET2.DEFAULT T; # Start DCS application on start-up.

      OCS.DET2.STRTRTD F; # Start associated RTD on start-up.

      OCS.DET2.STRTUIF F; # Start associated stand-alone panel on start-up.

      OCS.DET2.SWSIM "LCU_SIM"; # Software simulation.

      OCS.DET3.ACCESS "NORMAL"; # Sub-system access mode.

      OCS.DET3.DEFAULT T; # Start DCS application on start-up.

      OCS.DET3.STRTRTD F; # Start associated RTD on start-up.

      OCS.DET3.STRTUIF F; # Start associated stand-alone panel on start-up.

      OCS.DET3.SWSIM "LCU_SIM"; # Software simulation.

      OCS.INS1.ACCESS "NORMAL"; # Sub-system access mode.

      OCS.INS1.DEFAULT T; # Start ICS application on start-up.

      OCS.INS1.STRTUIF F; # Start associated stand-alone panel on start-up.

      OCS.TEL.ACCESS "IGNORE"; # Sub-system access mode.

      START.ALARM.DEFAULT F; # Start Alarm display.

      START.BOB.DEFAULT T; # Start BOB.

      START.LOGMON.DEFAULT T; # Start log monitor.

      START.MIDAS.DEFAULT F; # Start MIDAS.

      START.OSCTRL.DEFAULT T; # Start OS control panel.

      START.OSSTAT.DEFAULT F; # Start OS status panel.

      START.PANEL1.DEFAULT F; # Panel default flag.

      # ___oOo___

       

    8. Setup files
      1. Example of Reference Setup file
      2. TBD

      3. Example of Instrument Setup File

      #******************************************************************************

      # E.S.O. - VLT project

      #

      # "@(#) $Id: xxmcfgIcsSelfTest_1.ins,v 1.48 2001/11/05 13:32:47 vltsccm Exp $"

      #

      # who when what

      # ---------- -------- ----------------------------------------------

      # alongino 04/01/01 created

      #

      #************************************************************************

      PAF.HDR.START; # Start of PAF Header

      PAF.TYPE "Instrument Setup"; # Type of PAF

      PAF.ID " "; # ID for PAF

      PAF.NAME " "; # Name of PAF

      PAF.DESC " "; # Short description of PAF

      PAF.CRTE.NAME " "; # Name of creator

      PAF.CRTE.DAYTIM " "; # Civil Time for creation

      PAF.LCHG.NAME " "; # Name of person/appl. changing

      PAF.LCHG.DAYTIM " "; # Timestamp of last change

      PAF.CHCK.NAME " "; # Name of appl. checking

      PAF.HDR.END; # End of PAF Header

      INS.LAMP1.ST "T"; # lamp on/off

      INS.SHUT1.ST "T"; # shutter on/off

      INS.ADC1.MODE "OFF"; # adc off/auto

      INS.DPOR.ST "T"; # dpor on/off

      INS.DROT.MODE "STAT"; # drot mode

      INS.DROT.POSANG 0.00; # drot start angle (deg)

      INS.FILT1.NAME "U"; # device named position

      INS.GRAT1.NAME "CD#1"; # device named position

      INS.GRAT1.WLEN 0.00; # central wavelength

      INS.MIRR1.NAME "IRED"; # device named position

      INS.OPTI1.NAME "OUT"; # device named position

      INS.GRIS1.NAME "GRIS1"; # device named position

      INS.FOCU1.POS -153.4; # device continuous position

      INS.ROT1.POS -90.00; # device continuous position

      INS.SLIT1.LEN 0.13; # device continuous position

      INS.SLIT1.WID 0.14; # device continuous position

      INS.SLIT2.NAME "FREE"; # device named position

      INS.TILT1.POS -153.4; # device continuous position

      INS.MIRR2.DATA1 -10.00; # special device data

      INS.MIRR2.DATA2 -20.00; # special device data

      # --- oOo ---

       

       

    9. Templates
      1. IR Imaging acquisition template
      2. XXXX_irimg_acq

        NAME

        XXXX_irimg_acq - XXXX Acquisition Template signature file

        DESCRIPTION

        Target acquisition : presetting to coordinates

         

         

         

        ### generated by docDeroff ###

         

      3. IR Imaging observation template
      4. XXXX_irimg_obs_exp.tsf

        NAME

        XXXX_irimg_obs_exp.tsf - XXXX Observation Template signature file

        DESCRIPTION

        normal exposure

         

         

         

        ### generated by docDeroff ###

         

      5. IR Spectroscopy acquisition template
      6. XXXX_irspec_acq.tsf

        NAME

        XXXX_irspec_acq.tsf - XXXX Acquisition Template signature file

        DESCRIPTION

        Target acquisition : interactive presetting to pixel position

         

         

         

        ### generated by docDeroff ###

         

      7. IR Spectroscopy observation template
      8. XXXX_irspec_obs_exp.tsf

        NAME

        XXXX_irspec_obs_exp.tsf - XXXX Observation Template signature file

        DESCRIPTION

        normal exposure

         

         

         

        ### generated by docDeroff ###

         

         

      9. Optical Imaging acquisition template
      10. XXXX_optimg_acq

        NAME

        XXXX_optimg_acq - XXXX Acquisition Template signature file

        DESCRIPTION

        Target acquisition : presetting to coordinates

         

         

         

        ### generated by docDeroff ###

         

      11. Optical Imaging observation template
      12. XXXX_optimg_obs_exp.tsf

        NAME

        XXXX_optimg_obs_exp.tsf - XXXX Observation Template signature file

        DESCRIPTION

        normal exposure

         

         

         

        ### generated by docDeroff ###

         

      13. Optical Imaging bias calibration template
      14. XXXX_optimg_cal_bias.tsf

        NAME

        XXXX_optimg_cal_bias.tsf - XXXX Calibration Template signature file

        DESCRIPTION

        SEQ.NEXPO XXXX Biases or Darks

         

         

         

        ### generated by docDeroff ###

         

      15. Optical Imaging flat-field calibration template
      16. XXXX_optimg_cal_calunitflat.tsf

        NAME

        XXXX_optimg_cal_calunitflat.tsf - XXXX Flat Field Calibration Template signature file

        DESCRIPTION

        Flats : after 1 bias and a 1 sec. flat, calculate

        : exposure time to reach DET.EXPLEVEL

        : and make SEQ.NEXPO dome flats.

         

         

         

        ### generated by docDeroff ###

         

      17. Optical Imaging detector linearity calibration template
      18. XXXX_optimg_cal_linearity.tsf

        NAME

        XXXX_optimg_cal_linearity.tsf - XXXX Calibration Template signature file

        DESCRIPTION

        Linearity sequence

         

         

         

        ### generated by docDeroff ###

         

      19. Optical Imaging focus calibration template

      XXXX_optimg_cal_focus.tsf

      NAME

      XXXX_optimg_cal_focus.tsf - XXXX Calibration Template THRU FOCUS signature file

      DESCRIPTION

      Thu focus sequence

       

       

       

      ### generated by docDeroff ###

       

    10. FITS files
      1. Example of FITS header

      TBD

    11. Log files
      1. Example of Operational Log (FITS format)

      TBD

    12. Panels
      1. OS Control
      2. xxopanControl

        NAME

        xxopanControl - Control panel for XXXX OS

        MENU BAR

        "File" menu

        "Quit"

        exit the application

        "Options" menu

        "Refresh"

        Refresh all output fields as from the IWS OLDB.

        "Engineering" menu

        "GUI"

        Start the XXXX OS Engineering GUI

        "Telescope" menu

        "ENABLED"

        If not set, TCS is ignored (not implemented yet)

        "Instrument" menu

        "STARTUP"

        Start all XXXX control processes

        "STANDBY"

        Bring the XXXX Instrument to STANDBY state

        "ONLINE"

        Bring the XXXX Instrument to ONLINE state

        "SHUTDOWN"

        Terminate all XXXX control processes

        "Help" menu

        Extended Help. Not implemented yet

        APPLICATION AREA

        "ABORT"

        Abort the running exposure with the related DCS

         

         

         

        ### generated by docDeroff ###

         

      3. OS Status
      4. xxopanStatus

        NAME

        xxopanStatus - Status panel for XXXX OS

        MENU BAR

        "File" menu

        "Quit"

        exit the application

        "Std. Options" menu

        "Refresh Database values"

        Refresh all output fields as from the IWS OLDB.

        "Re-Start Database Events"

        Re-Start all OLDB Events associated to output widgets

        "Help" menu

        Extended Help. Not implemented yet

         

         

         

        ### generated by docDeroff ###

         

      5. OS Engineering
      6. xxopanEngineering

        NAME

        xxopanEngineering - Engineering panel for XXXX OS

        MENU BAR

        "File" menu

        "Quit"

        exit the application

        "Std. Options" menu

        "Refresh Database values"

        Refresh all output fields as from the IWS OLDB.

        "Re-Start Database Events"

        Re-Start all OLDB Events associated to output widgets

        "Simulation" menu

        "IR DCS"

        "No simulation"

        IRACE Slcu available and connected to IRACE controller

        "Slcu simulated"

        IRACE Slcu NOT available (simulated on the IWS)

        "Irace simulated"

        IRACE Slcu available and NOT connected to IRACE controller

        "TCCD DCS"

        "No simulation"

        TCCD lcu available and connected to ACE controller

        "Lcu simulated"

        TCCD lcu NOT available (simulated on the IWS)

        "Ace simulated"

        TCCD lcu available and NOT connected to ACE controller

        "FIERA DCS"

        "No simulation"

        FIERA Slcu available and connected to FIERA controller

        "Slcu simulated"

        FIERA Slcu NOT available (simulated on the IWS)

        "Head simulated"

        FIERA Slcu available and NOT connected to FIERA controller

        "ICS"

        "Simulate device hw on LCU"

        ICS LCUs available but NO device hardware connected to them

        "TCS"

        "Active Optics"

        "Start"

        Simulate starting active optics

        "Stop"

        Simulate stopping active optics

        "Auto-guider"

        "Start"

        Simulate starting auto-guiding

        "Stop"

        Simulate stopping auto-guiding

        "Help" menu

        Extended Help. Not implemented yet

        APPLICATION AREA

        "STARTUP"

        Start the control processes for the related sub-system

        "STANDBY"

        Bring the related sub-system to STANDBY state

        "ONLINE"

        Bring the related sub-system to ONLINE state

        "SHUTDOWN"

        Terminate the control processes for the related sub-system

        "GUI"

        Start the stand-alone GUI for the related sub-system

         

         

         

        ### generated by docDeroff ###

         

      7. ICS stand-alone

      xxipanControl

      NAME

      xxipanControl - XXXX ICS stand-alone GUI

      MENU BAR

      "File" menu

      "Quit"

      exit the application

      "Selection" menu

      "Select all functions"

      Set the check button associated to each device

      "Deselect all functions"

      Reset the check button associated to each device

      "Setup" menu

      "Save"

      Save the current setup in setup file xxipan.ins

      "Save As ..."

      Save the current setup in the specified setup file

      "Load ..."

      Load in the panel the contents of the specified setup file

      "Maintenance" menu

      "Edit cfg. file ..."

      Start the default text editor and open the xxmcfgINS.cfg file

      "Set LCU cfg."

      Execute icbConfigSet XXXX

      "Reboot LCUi"

      Reboot the specified LCU

      "Tools" menu

      "logMonitor"

      Start the CCS utility logMonitor

      "Motors"

      "motei"

      Start the motor engineering interface

      "Lamps"

      "acroxInducer"

      Start the acromag digital I/O board engineering interface

      "Sensors"

      "acroxInducer"

      Start the acromag digital I/O board engineering interface

      "Std. Options" menu

      "Refresh Database values"

      Refresh all OLDB values in the panel.

      "Re-Start Database events"

      Configure again all events attached to OLDB values.

      Useful e.g. after one LCU has rebooted.

      "Help" menu

      Extended Help. Not implemented.

      APPLICATION AREA

      "Global Control"

      "Startup"

      Start the ICS WS processes

      "State control"

      Bring ICS to the specified state

      The command is issued as soon the option button is released

      "Shutdown"

      Terminate the ICS WS processes

      "Command"

      Select the command to be sent

      "Parameters"

      Set the command parameters to be sent

      "Send"

      Send the specified command and parameters to xxiControl

      "Functions control"

      "SETUP"

      Send a SETUP command to xxiControl for all selected devices

      "STOP"

      Emergency stop. All devices are stopped.

      "Change State"

      Bring the selected devices to the specified state

      "Simulate"

      Bring the selected devices to the selected simulation mode.

      Each device uifClass has the following widgets

      Check button to select the device for the next operation (e.g. SETUP)

      Device name

      Short-FITS device prefix

      Simulation flag

      State

      Handset flag (not for sensors)

      Status value(s)

      Encoder position (only for motors)

      Setup option button

      Setup input field(s) for numerical values

      "Command Feedback Window"

      It shows the last commands and replies to/from xxiControl as

      well as the main ongoing actions (e.g. LCU rebooting).

       

       

      ### generated by docDeroff ###

       

    13. Error files
      1. xxoErrors.h
      2. /***********************************************************

        # "@(#) $Id: xxoErrors.h,v 1.24 2001/03/15 17:45:37 vltsccm Exp $"

        #

        # Error Include File Created on Mar 15 17:43:40 2001

        #

        # This file has been generated by a utility

        #

        # !!!!!!!!!!! DO NOT MANUALLY EDIT THIS FILE !!!!!!!!!!!

        #

        ***********************************************************/

        #ifndef xxoERRORS_H

        #define xxoERRORS_H

        #ifndef CCS_H

        #include "ccs.h"

        #endif

        #define xxoErrOffset 0

        #define xxoERR_DB_READ ((vltINT16) ( xxoErrOffset + 1 ))

        #define xxoERR_DB_WRITE ((vltINT16) ( xxoErrOffset + 2 ))

        #define xxoERR_LOAD_DICTIONARY ((vltINT16) ( xxoErrOffset + 3 ))

        #define xxoERR_LOAD_ALIAS_TABLE ((vltINT16) ( xxoErrOffset + 4 ))

        #define xxoERR_INVALID_STATE ((vltINT16) ( xxoErrOffset + 5 ))

        #define xxoERR_CMD_ABORTED ((vltINT16) ( xxoErrOffset + 6 ))

        #define xxoERR_CACHE_FILE_EXISTS ((vltINT16) ( xxoErrOffset + 7 ))

        #define xxoERR_NO_KEYW_TO_SAVE ((vltINT16) ( xxoErrOffset + 8 ))

        #define xxoERR_KEYW_NOT_SAVED ((vltINT16) ( xxoErrOffset + 9 ))

        #define xxoERR_NO_FILE_SPECIFIED ((vltINT16) ( xxoErrOffset + 10 ))

        #define xxoERR_CONFLICT_OFFSET ((vltINT16) ( xxoErrOffset + 11 ))

        #define xxoERR_OPTION_CONFLICT ((vltINT16) ( xxoErrOffset + 12 ))

        #define xxoERR_EXPO_FILE_MISSING ((vltINT16) ( xxoErrOffset + 13 ))

        #define xxoERR_SEQ_EXPO ((vltINT16) ( xxoErrOffset + 14 ))

        #define xxoERR_INVALID_NAMING_TYPE ((vltINT16) ( xxoErrOffset + 15 ))

        #define xxoERR_INVALIDE_EXP_MODE ((vltINT16) ( xxoErrOffset + 16 ))

        #endif

         

         

         

      3. xxo_ERRORS

#

# Version Id. is specified at the end of the file

#

# Error Definition File Created on Jun 15 14:11:41 2000

#

# This file has been generated by a utility

#

# !!!!!!!!!!! DO NOT MANUALLY EDIT THIS FILE !!!!!!!!!!!

#

###########################################################

define xxoErrOffset 0

1 S xxoErrOffset

xxoERR_DB_READ : Could not read database attribute '%.80s'

noHelp.hlp

2 S xxoErrOffset

xxoERR_DB_WRITE : Could not write database attribute '%.80s'

noHelp.hlp

3 W xxoErrOffset

xxoERR_LOAD_DICTIONARY : Could not load dictionary %.80s

noHelp.hlp

4 W xxoErrOffset

xxoERR_LOAD_ALIAS_TABLE : Could not load alias table %.80s

noHelp.hlp

5 W xxoErrOffset

xxoERR_INVALID_STATE : Command %.80s cannot be executed in the current state: %.80s/%.80s

noHelp.hlp

6 W xxoErrOffset

xxoERR_CMD_ABORTED : Command %.80s execution aborted

noHelp.hlp

7 W xxoErrOffset

xxoERR_CACHE_FILE_EXISTS : The file '%.80s' already exists in cache directory

xxoERR_CACHE_FILE_EXISTS.hlp

8 W xxoErrOffset

xxoERR_NO_KEYW_TO_SAVE : No keywords were given to save into file '%.80s'

xxoERR_NO_KEYW_TO_SAVE.hlp

9 W xxoErrOffset

xxoERR_KEYW_NOT_SAVED : The keyword '%.80s' was not saved in this file

xxoERR_KEYW_NOT_SAVED.hlp

10 W xxoErrOffset

xxoERR_NO_FILE_SPECIFIED : No filename has been specified in command '%.80s'

xxoERR_NO_FILE_SPECIFIED.hlp

11 W xxoErrOffset

xxoERR_CONFLICT_OFFSET : Conflict in required offsets in command OFFSET: RA/DEC=%.2f/%.2f arcsec, X/Y=%.2f/%.2f pixels, rotator=%.2f deg, focus=%.2f mm

xxoERR_CONFLICT_OFFSET.hlp

12 W xxoErrOffset

xxoERR_OPTION_CONFLICT : Conflict in options %.80s and %.80s

noHelp.hlp

13 W xxoErrOffset

xxoERR_EXPO_FILE_MISSING : Exposure FITS filename missing. Must be set before starting exposure.

noHelp.hlp

14 W xxoErrOffset

xxoERR_SEQ_EXPO : Wrong exposure control sequence. Call first %.20s.

noHelp.hlp

15 W xxoErrOffset

xxoERR_INVALID_NAMING_TYPE : Invalid file naming type '%.80s'

noHelp.hlp

16 F xxoErrOffset

xxoERR_INVALIDE_EXP_MODE : Mode '%.80s' given in the SETUP is invalid.

xxoERR_INVALIDE_EXP_MODE.hlp

#

# "@(#) $Id: xxo_ERRORS,v 1.24 2001/03/15 17:45:41 vltsccm Exp $"

 

 

  1. Create a new Instrument

It is recommended to use the template instrument as the starting point of the development of a new instrument. There is a script available (module xxins, name xxinsCreateNewInstrument, see man-page 10.2.4), which creates a twin copy of the Template Instrument, by simply renaming modules and files and modifying the contents accordingly, keeping of course the same functionality. Such a copy already provides the standard structure (modules and files) of an instrument and should therefore be taken as starting point for the development of the instrument specific code.

The script assumes that the XXXX instrument has already been successfully installed and tested and must be executed from the same directory where pkginBuild xxins has been executed.

After running the script, a directory structure, parallel to XXXX and named with the new instrument ID, will be available.

The new instrument must be now tested, following the same procedure as described in chapter 4.

Once the tests have completed successfully, it is probably time to archive the new modules created by xxinsCreateNewInstrument: they still don’t do what your Instrument is supposed to do, but at least they look like modules belonging to your Instrument. Since probably they are not even registered in the VLT Configuration Control Management System (cmm) there is some preliminary administrative work to be done in order you to get access to the cmm functionality and your new modules to be registered in the system. Please contact the ESO software responsible for your project in order to get this done.

At this point, you can start adapting the existing modules to the actual needs and characteristics of your Instrument.

XXXX provides several examples to help in this process. They are listed below.

    1. OS sub-classing and method overloading
    2. An example of BOSS class bossSERVER method (StartPreProc) overloading is available in the file xxo/src/xxoExpCtrl.C.

    3. Add special commands to OS
    4. TBD

    5. Add special handling of set-up keywords in OS
    6. TBD

    7. Implement a class library for templates
    8. An example of class for template is available in file xxoseq/src/xxoseqICS.tcl.

    9. Implement an ICS special device on LCU

Module xxidev contains the LCU code for the special device yyyy. The special device yyyy is a simple sample software device that has two double attributes in its OLDB point. These two double attributes can be set with the SETUP command (with FITS keywords INS.MIRR2.DATA1 and INS.MIRR2.DATA2). These values can be retrieved with the STATUS command.

File xxidevDeviceCmds.c contains the software device specific code for the CCS commands that the device is capable of receiving.

This function receives the two FITS keywords DATA1 and DATA2, and stores them in the OLDB attributes data1 and data2.

This function returns the values of the OLDB attributes data1 and data2, according to the received parameters DATA1 and DATA2.

See also [RD 16].

    1. Implement an ICS special device on WS
    2. Module xxi contains some examples for ICS WS sw. In particular, file xxiINS_ANALOG.C implements the WS part device yyyy.

      Please note that a LCU special device does not necessarily need to have a special counter part on the WS: it might well happen that the default behavior provided by the class ic0INS_DEVICE perfectly fits the needs for that device at WS level.

      The same applies also the other way around. There might be a device, which need some special treatment on WS, but perfectly falls into one of the standard ICS LCU device categories; in this case, it is sufficient to implement the special functionality on WS.

      In the case of XXXX, we assume that yyyy needs a special treatment both on WS and LCU, just to provide a complete example.

      Please note that the special device and related class (xxiINS_ANALOG) has to be registered in the xxiControl process (see file xxiControl.C).

      See also [RD 16].

    3. ICS WS sub-classing and method overloading
    4. File xxiSERVER.C shows an example of sub-classing (xxiSERVER sub-class of ic0SERVER) and method overloading (StatusCB, callback for the STATUS command).

      In order to let xxiControl use the xxiSERVER class in place of the ic0SERVER (default), also the method NewServer in ic0CtrlMAIN_HANDLER has to be overloaded (see file xxiCtrlMAIN_SERVER.C).

      See also [RD 16].

    5. ICS WS Assemblies

See 5.3.2. and [RD 16].

 

  1. Installation using different environments

It is recommended to use the environment names specified in xxins/config/xxinsINSTALL.cfg and repeated in 2.2.2. However in some cases, for development or test purposes, it might be necessary to use different environment names. The procedure to adapt the XXXX code to this case is described here.

It is assumed that all steps described at 3.2.1 have been done.

Let’s assume that the environment names to be used are:

wyyxx (instead of wxxxx)

wyytcs (instead of wxxtcs)

lyyics1 (instead of lxxics1)

lyyics2 (instead of lxxics2)

lyytccd (instead of lxxtccd)

  1. Retrieve modules from archive and add write permission to files
  2. % cd $HOME/XXXXSource

    % cmmCopy xxins 3.3

    % pkginBuild xxins -step RETRIEVE

    % chmod –R +w .

  3. Change directory names in the module xxins
  4. % cd $HOME/XXXXSource/xxins/ENVIRONMENTS

    % mv wxxxx wyyxx

    % mv wxxtcs wyytcs

    % mv lxxics1 lyyics1

    % mv lxxics2 lyyics2

    % mv lxxtccd lyytccd

  5. Change file names in all modules:
  6. % cd $HOME/XXXXSource

    % find . -type f -print | xargs tooMvReplace wxxxx wyyxx

    % find . -type f -print | xargs tooMvReplace wxxtcs wyytcs

    % find . -type f -print | xargs tooMvReplace lxxics1 lyyics1

    % find . -type f -print | xargs tooMvReplace lxxics2 lyyics2

    % find . -type f -print | xargs tooMvReplace lxxtccd lyytccd

    
    
  7. Change file contents in all modules
  8. % cd $HOME/XXXXSource

    % find . -type f -print | xargs tooReplace wxxxx wyyxx

    % find . -type f -print | xargs tooReplace wxxtcs wyytcs

    % find . -type f -print | xargs tooReplace lxxics1 lyyics1

    % find . -type f -print | xargs tooReplace lxxics2 lyyics2

    % find . -type f -print | xargs tooReplace lxxtccd lyytccd

  9. Build and install the XXXX Software

See 3.2.2 or 3.2.3 for the remaining part of the installation, according to the hw availability.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

___oOo___