SOFTWARE INTERFACE

    1. The ATCS Interface
    2. The Auxiliary Telescope Control System software interfaces toward the VLTI Interferometer Supervisor Software are essentially based on the already existing VLT Unit Telescope TCS interfaces [AD10], since the two systems must behave as much as possible in the same way from the point of view of higher level control.

      In this document we will describe only the basic concepts and the specific list of commands and database items that are implemented on the Auxiliary Telescopes. For more details on the way interfacing programs have to be written, man pages of the API classes and of commands, look at the VLT TCS User Manual [AD10].

      TCS for any telescope of the VLT family is composed of a lot of software modules, each of them consisting of one or more processes. To unify and simplify the access from users to the TCS functions any telescope exposes a public TCS Interface, represented by the atif module.

      The atif module is responsible for providing the central and only command interface between external users and the TCS. The VLTI Interferometer Supervisor Software is the most typical high level user for the VLTI Auxiliary Telescopes.

      The VLTI Supervisor Software user processes communicate with the ATCS by sending commands to and receiving replies from the atif. The atif internally dispatches the commands to the responsible TCS processes, receives their replies and passes them back to the caller.

      The atif module uses all functionality of the tif module, but has a specific CDT file and special database clasess.

      In order to use atif also tif is required.

      To enable multiple read access to TCS public data, a Data Query Library is provided which is linked to the user process and thus is not subject to the booking system. Also a public Event Configuration Library is provided to attach events to TCS data items. These libraries are described in section Application Programming Interface.

    3. Commands
    4. This section gives a list of all TCS commands available up to now, together with a brief description. See the VLT TCS User Manual [AD10] for a detailed description of each command and for sample programs.

      The following table alphabetically lists the telescope control commands. On top of these TCS commands, the tif control process accepts all the usual VLT standard commands and a small set of specific commands used for maintenance purposes.

      The complete set of commands accepted by the atif control process is described in the CDT in appendix

      Units and coordinate systems for command parameters follow VLT conventions.

      These are perhaps not the ones some users would expect, or might be different to what is used in other contexts (like FITS Headers). Please, make sure that you always check units and conventions in the Command Definition Table.

      This document describes the interface between AT and ISS, i.e. all the interfaces needed to control the ATs for VLTI observations. TIF in itself will probably also have more commands, used to control the telescope not for pure VLTI coordinating purposes. This anyway does not include operations performed by the operators on control panels. For example operating the enclosure is done via a dedicated AT control panel, that uses internal AT commands, not defined in tif. This is because we do not want enclosure commands to be public for other applications than the operator control panels and AT internal procedures.

      tif is a highly flexible piece of software that allows publishing a set of TCS commands and data.
      Usually a subset of all available TCS commands is made publicly available. The list can be easily changed and extended or reduced.
      ISS will interact with ATCS only through atif. Only data and commands relevant for ISS will be published by ATCS.
      Further data and access can be retrieved by the operator via ATCS specific user interfaces, e.g. check of temperatures etc.

      1. Telescope Commands
      2. Command
        Description

        CLRSTP

        Clear ready SETUP file with default values

        DETCGS

        Detect guide star and offset telescope to center it.

        GETINS

        Get currently selected instrument

        GETINSD

        Get instrument configuration parameters

        OFFSADG

        Issue an RA/DEC combined offset step

        OFFSGUV

        Offset of the guide probe in UW.

        ONECAL

        Active Optics calibrated mirror corrections, based on current telescope altitude.

        OPTCGS

        Optimize strap guiding loop.

        PRSCOOR

        Preset telescope to given RA/DEC coordinates (tracking)

        PRSNAME

        Preset telescope to named fixed position

        RESUME

        Resume Coude guiding after a suspend

        SELINS

        Select the logical observing instrument

        SETINSD

        Set instrument configuration parameters

        SETUP

        Define a new setup configuration (standard format, as defined in INS Common Software Specification [RD10], for FITS keywords see section FITS Header Data)

        STOPCAG

        Stop autoguiding. Stops normal autoguiding (using FAS) or field stabilisation (using STRAP)

        STOPCHP

        Stop chopping

        STOPTRK

        Stop tracking and stay at actual position

        STRTCAG

        Start autoguiding. Starts normal autoguiding (using FAS) or field stabilisation (using STRAP)

        STRTCHP

        Start chopping immediately or at a given time in the future

        SUSPEND

        Temporary suspend Coude' guiding

         

      3. Sending commands to TIF processes

In order to be able to send commands to atif processes it is necessary:

    1. Application Programming Interface

The ATCS Interface provides some public libraries to be called by any user process to get access to ATCS data and to interact programmatically with specific ATCS subsystems.

The data access libraries are not subject to booking constraints, allowing multiple read access to the ATCS data. 

Both libraries use the concept of addressing data items by "name". These names are character strings and are also available as #defines. At implementation level, data items are configured via online database tables to allow an easier configuration.

      1. Data Query Library

The Data Query Library is intended to export all ATCS data items, which might be of interest for a user without forcing him to have detailed knowledge about the ATCS database. The library has one general routine that retrieves single data items, three special functions that return groups of related data and two functions that produces FITS header data. The FITS functions are described in the following section.

The list of supported data items (configured by tif in the database) is loaded at startup or init of any tif application.

The set of functions that return groups of related data items in structures:

The general routine

The Named Data Items table below presents a list of all currently supported named data items and their data types.

The actual name for the name to be used in the call to tifGetByName() is obtained adding the prefix tifDATA_ to the name in the first column of the table. The name and the corresponding define are identical.

Units and coordinate systems for command parameters follow VLT conventions.

These are perhaps not the ones some users would expect, or might be different to what is used in other contexts (like FITS Headers). Please, make sure that you always check units and conventions here and on the man pages before using these values

Entries in the "Unit" column mean:

Named Data Items

Name
Type
Unit
Description

AG_DEC

vltDOUBLE

DMS

actual Declination for current Guide 

Star (J2000 coordinates) 

Format: +/-DDMMSS.F, Range: -900000.0 - 900000.0

AG_RA

vltDOUBLE

HMS

actual Right Ascension for current Guide Star (J2000 coordinates)

Format: HHMMSS.F, Range 0 - 240000.0

AG_STATUS

vltINT32

status ID

Autoguiding substate (see agwsDefines.h):

evhSTATE_UNK 0

agwsSTATE_IDLE 7

agwsSTATE_ERROR 6

agwsSTATE_OPERATING 121

agwsSTATE_GUIDING 122

agwsSTATE_MANUAL 123

AIRMASS

vltDOUBLE

none

actual airmass

ALT

vltDOUBLE

deg

actual Altitude position

Range: 0.0 - 90.0

ALT_REF

vltDOUBLE

deg

Reference Altitude position

Range: 0.0 - 90.0

ASM_COH_TIME

vltDOUBLE

sec

Coherence time reported from ASM

ASM_SEEING

vltDOUBLE

arcsec

Seeing reported from asm

ASM_WINDDIR

vltDOUBLE

deg

Wind direction as reported from the ASM

(0 - 360) (0 = north, 90 = east)

ASM_WINDSPEED

vltDOUBLE

m/sec

Wind speed as reported from the ASM
AZ

vltDOUBLE

deg

actual Azimuth position

Range: -180.0 - 360.0 (South=0, Est=90)

AZ_REF

vltDOUBLE

deg

actual Azimuth position

Range: -180.0 - 360.0 (South=0, Est=90)

CCD_ON_SKY

vltDOUBLE

deg

Angle on sky og Guide Probe TCCD

CHOP_FREQ

vltDOUBLE

Hz

chop frequency

CHOP_OFFSET

vltDOUBLE

arcsec

chop offset

CHOP_POI

vltINT32

ID

chop position of optimum image:

chopwsOPTIMUM_IMAGE_OFF ... 0

chopwsOPTIMUM_IMAGE_ON ... 1

hopwsOPTIMUM_IMAGE_CENTRE ... 2

CHOP_POSANG

vltDOUBLE

deg

chop orientation

CHOP_PVR

vltDOUBLE

ratio

chop peak to valley ratio

CHOP_STATUS

vltINT32

status ID

chop status:

chopwsCHOP_INACTIVE ... 0

chopwsCHOP_ACTIVE ... 1

chopwsCHOP_UNDEFINED ... 2

CHOP_STOP_TIME

vltDOUBLE

UTC

chop stop time in ISO format: yyyy-mm-ddThh:mm[:ss.[uuuuuu]]

CHOP_STRT_TIME

vltDOUBLE

UTC

chop start time in ISO format: yyyy-mm-ddThh:mm[:ss.[uuuuuu]]

CHOP_THROW

vltDOUBLE

arcsec

chop throw (amplitude)

CHOP_TPA

vltINT32

ID

chop telescope pointing axis:

chopwsTEL_POINTING_AXIS_OFF ... 0

chopwsTEL_POINTING_AXIS_ON ... 1

chopwsTEL_POINTING_AXIS_OPTIMUM ... 2

chopwsTEL_POINTING_AXIS_INDEPENDENT ... 3

DEC

vltDOUBLE

DMS

actual Declination (apparent places `now') 

Format: +/-DDMMSS.F, Range: -900000.0 - 900000.0

DEC2000

vltDOUBLE

DMS

actual Declination at mean place of J2000

Format: +/-DDMMSS.F, Range: -900000.0 - 900000.0

DEC2000DEG

vltDOUBLE

deg

actual Declination at mean place of J2000

Range: -90.0 - 90.0

DOME_STATUS

vltINT32

Station ID

FULLY-OPEN, PART-OPEN, CLOSED or VIGNETTING

DVELDEC

vltDOUBLE

arcsec /sec

actual differential velocity in Declination with respect to normal sidereal rate, Range: -15.0 - +15.0

DVELRA

vltDOUBLE

arcsec /sec

actual differential velocity in RA with respect to normal sidereal rate, Range: -15.0 - +15.0

FOCU_VALUE

vltDOUBLE

mm

Position of mirror 2 in z-axis

FOCULEN_CO

vltDOUBLE

m

Focal length for Coude'focus

FOCUS

vltINT32

focus ID

Current focus station. Can be one of (see mswDefines.h): 

mswUNDEFINED_FOCUS 0

mswNASMYTH_A_FOCUS 2

mswnNASMYTH_B_FOCUS 3

mswCASSEGRAIN_FOCUS 4

mswCOUDE_FOCUS 5

mswINTERMEDIATE_D_FOCUS 6

FOCUSCALE_CO

vltDOUBLE

arcsec/mm

Focal scale for Coude'focus

HA

vltDOUBLE

HMS

actual Hour Angle

Format: HHMMSS.F, Range: 0 - 240000.0

INSTALLED

vltBYTES80

string

TCS Installation date and information

LATI

vltDOUBLE

rad

telescope site Latitude, south is negative (station dependant)

LEVEL

vltDOUBLE

m

telescope site Height above sea level

LOC_FS_COH_TIME

vltDOUBLE

sec

Local coherence time reported from field stab measurements.

LOC_FS_SEEING

vltDOUBLE

arcsec

Local seeing reported from field stab measurements.

LONGI

vltDOUBLE

rad

telescope site Longitude, west is positive (station dependant)

LST

vltDOUBLE

HMS

Local Sidereal Time 

Format: HHMMSS.F, Range: 0 - 240000.0

OPER

vltBYTES32

string

Name of telescope operator

PRLTIC

vltDOUBLE

deg

actual parallactic angle

Range: 0.0 - 360.0

PROBE_DEC

vltDOUBLE

DMS

Guide probe DEC J2000 coordinate (DMS)

PROBE_IN_POS

vltLOGICAL

0/1

Guide probe in position

PROBE_RA

vltDOUBLE

HMS

Guide probe RA J2000 coordinate (HMS)uide probe X coordinate.

RA

vltDOUBLE

HMS

actual Right Ascension (apparent places `now')

Format: HHMMSS.F, Range 0 - 240000.0

RA2000

vltDOUBLE

HMS

actual Right Ascension at mean place of J2000

Format: HHMMSS.F, Range 0 - 240000.0

RA2000DEG

vltDOUBLE

deg

actual Right Ascension at mean place of J2000

Range 0 - 360.0

REMLIMIT

vltDOUBLE

sec

limit value for event triggering of remaining tracking time

REMTIME

vltDOUBLE

sec

actual remaining tracking time

STATION

vltINT32

Station ID

Current location (station) of the AT.

TELESCOP

vltBYTES20

string

Telescope name

TRACK

vltLOGICAL

BOOL

flag, indicating if currently in tracking state

UTC

vltDOUBLE

MJD

Universal Time Coordinated as modified julian date

VERSION

vltBYTES80

string

Version of TCS software

 

FITS header data

The Data Query Library provides two functions to obtain the standard ATCS FITS keywords, synchronized to when the functions are called. It is recommended the VISS software makes use of these functions in order to obtain the latest version of ATCS FITS keywords as approved by DICB. These functions internally make use of tifGetByName, and they produce an ASCII file ready to be incorporated in the completed FITS file.

The table below gives all possible keywords produced by these functions

Units and coordinate systems for FITS Header Keywords follow ESO Data Interface Control Board conventions [AD 16].

These are not always identical to VLT conventions, used for the TCS control software development. Please, make sure that you always check units and conventions before using these values.

TCS FITS Header Keywords
FITS Keyword
Unit
Description
     

.

      1. Event Configuration Library

The Event Configuration Library provides functions to attach events to certain ATCS database attributes, by using the CCS event system. This enables the user to configure events from his functional viewpoint, e.g. on LOSS OF TRACKING, without needing knowledge by which ATCS database attribute this event is reflected.; see the following table for a list of supported events and also the man-page of the Event Configuration Library in the VLT TCS User Manual [AD10].

The supported event items (configured by tif in the database) are read only once at startup of any tif application.

The routines

are provided to respectively attach and detach database events by name (actually, using an enum).

The following table presents a list of all currently supported named events.

The actual name for the enum to be used in the call to tifAttachEvent()is obtained adding the prefix tifEVENT to the name in the first column of the table.

This list will be extended in subsequent releases of this document and software.

Database Events
Name
Description

TRACKING_LOST

This event is triggered when the TCS leaves state ONLINE, sub-state TRACKING unexpectedly, i.e. on an error. A presetting command will make TCS leave sub-state TRACKING but in a controlled way, so the event is not triggered in that case!

REMTRACK_LOW

This event is triggered whenever the remaining tracking time goes below a defined limit (variable REMLIMIT, see table above).

CHOP_PARM_CHANGE

This event is triggered whenever chopping parameters are reconfigured.

CHOP_STATUS

This event is triggered whenever the chopping status changes.

GUIDING_LOST

This event is triggered whenever the guiding is lost unexpectedly

      1. Using the ATCS Database and Event Interface Library

In order to use the ATCS Database Interface Library it is necessary:

    1. Online Database Access Classes
    2. The atif module provides a set of public on-line database classes to allow access to ATCS public data items via the on-line database instead that via the tif Data Query Library.

      The class atifTCS_PUBLIC can be instantiated in any user database to provide a local image of the ATCS public data items. This class is used when the TCS database, real or simulated, is NOT in the same environment as the user database. In this case, the scan system is used to update the user database with values from the ATCS environment (real or simulated).

      The class atifTCS_LOCAL has the same structure as atifTCS_PUBLIC (it is a subclass) and provides the same items, but can be instantiated in the same environment where TCS itself is running, i.e. when simulated TCS data are a part of the user database. In this case, the items are updated using the calculation engine, instead of the scan system.

      These classes have been implemented to provide access to ATCS data for UIF instrument panels and Sequencer scripts, while C and C++ applications should use the tif Query Library.

      For performance reasons, not more than one instance of the classes should be used in each environment.

      1. Structure of the atifTCS_XXX public on-line database classes
      2. The atifTCS_PUBLIC on-line database class (see the man page for details) is structured in sub-points that group the public items by category.

        This has been done in order to allow a more structured access to the items themselves and to optimize performance on the update of the items, that is based on the RTAP calculation engine.

        What follows is the structure of the class:

        atifTCS_PUBLIC

        tcsState - Global TCS state information

        tcsState - TCS global state, as in Mode Switching

        tcsSubstate - TCS substate, as in Mode Switching

        track - TCS tracking flag (0/1)

        domeStatus - Current dome Status

        times - Time items

        lst - Local Sideral Time

        utc - Universal Time Coordinated

        coord - Target coordinates

        ha - Target actual Hour Angle

        ra - Target actual RA

        dec - Target actual declination

        ra2000 - RA at mean place of J2000 in HHMMSS

        dec2000 - dec at mean place of J2000 in DDMMSS

        ra 2000deg - RA at mean place of J2000 in deg

        dec2000deg - dec at mean place of J2000 in deg

        alt - Telescope altitude

        az - Telescope azimuth

        prltic - Actual parallactic angle

        track - Tracking parameters

        airmass - Actual airmass

        dvelra - Differential velocity RA

        dveldec - Differential velocity dec

        remtime - Remaining tracking time

        remlimit - Remaining tracking time limit

        trackingLost - Event flag for lost tracking

        remTimeLow - Event flag for low remaining trk. time

        coude - Coude parameters

        state - Guide state

        guidingStatus - Guide status

        guidingMode - Guide status

        trackingState - Tracking state

        trackingStatus - Tracking status

        RA2000 - RA of current guide star J2000 (HMS)

        DEC2000 - dec of current Guide Star J2000 (HMS)

        mag - Guide star magnitude

        wavelen - Guide star wavelen

        probeRA2000 - RA of current guide star J2000 (HMS)

        probeDEC2000 - dec of current Guide Star J2000 (HMS)

        probeInPos - Guide probe in position

        guidingLost - Event: Unexpected loss of guiding

        trackingLost - Event: Unexpected loss of tracking

        m2 - M2 parameters

        focuValue

        info - General information

        telescop - Telescope name

        version - TCS software version in use

        installed - TCS software installation date

        oper - Telescope Operator name

        foculenCO Focus length coude

        focuscaleCO Focus scale coude

        site - Site information

        longi - Longitude

        lati - Latitude

        level - Height above see level
        station - station id string

        chop Chopping configuration

        status - chopping status (active or not)

        startTime - starting time (ISO string)

        stopTime - stop time (ISO string)

        freq - frequency

        throw - amplitude

        posOptImage - optimal position for image

        peakValleyRatio - peak to valley ratio

        telPointingAxis - telescope pointing axes

        posAng - chopping angle

        offsetChop - chopping offset with respect to center position

        asm - Astronomical site monitor

        seeing

        windspeed

        winddir

        For more information about the meaning of the items, their units and their availability, see the Data Query Library and in particular Named Data Item Table .

        Note: Add location (station), local seeing (mean, median, max & min), observatory and local coherence time (mean, median, max & min) of the AT.

         

      3. Using the atifTCS_PUBLIC database class

This class can be instantiated in any place in a user environment to get access to TCS public data via the scan system.

It cannot be instantiated in the same environment on which TCS itself is running.

In order to use the class, it is necessary to perform the following steps (for an example see the modular test of the tif module:

    1. Configure the ATCS database to allow scanning from the remote user environment.

    2. To this purpose it is necessary to add a scan device for the environment in the ATCS database.
      For example, add the following lines in the USER.db file of the ATCS environment:
      POINT "<VLT scan dev" ccs_config:scan\ config:LAN:wsIns
      BEGIN
      ALIASwsIns
      END

    3. Configure the user database to perform scanning from the ATCS environment.

    4. To this purpose it is necessary to add a scan device for the ATCS environment in the user database.
      For example, add the following lines in the USER.db file of the user (instrument) environment:

      POINT "<VLT scan dev" ccs_config:scan\ config:LAN:wsTcs

      BEGIN
      ALIAS wsTcs
      END

    5. Add an instance of the atifTCS_PUBLIC class anywhere in the user database. The Makefile must contain proper definitions for the TARGET_TCS to be built (see VLT TCS User Manual [AD10])
    6. Configure the scan system by using the atifTCS.scan scan configuration file.

    7. See the man page for details on the command.
      If a standard ATCS configuration is used and if the environment variables are properly set, it is only necessary to pass the "-p" parameter with the symbolic address of the instance of the atifTCS_PUBLIC class.

    8. In order to minimize the resources used by the scan system, it is suggested to disable the scan links for all the items not used, by using the CCS Engineering Interface tools or writing a proper script for this purpose.

      1. Using the atifTCS_LOCAL database class

This class can be instantiated in any place in a ATCS environment to get access to ATCS public data via calculation engine expressions. This is typically used when a simulated ATCS database is part of a user (instrument) database, and it is then used during simulation to temporary replace an instance of atifTCS_PUBLIC.

 

The class can also be used internally within ATCS, by applications running on the ATCS workstation.

If the ATCS database is not placed in the standard branch Appl_data:TCS, it is necessary to (re)define tifTCS_DBROOT BEFORE including atifTCS_LOCAL.class in the database configuration file.