![]() |
![]() |
![]() |
![]() |
5 THE VLT COMMON SOFTWARE
5.1 GENERAL
The VLT Common Software is intended to provide VLT Software application developers the basic tools for development of VLT applications.
The software and the documentation in VLT Common Software (July 95 version or higher) allow the developer to:
· develop LCU applications using the services provided by the LCU Common Software and Motor Control, including the handling of LCU standardized boards.
The VLT Common Software provides libraries and include files for programmatic usage as well as several utility programs, some with graphical user interface, to make development and debugging of VLT applications easier.
The VLT Common Software currently includes:
All the relevant documentation is available in both printed and PostScript file format.
The distribution kit contains all the sources needed to regenerate the software on HP or SUN systems. Distributing the sources also provides developers with:
To allow an easier distribution, the common software includes also the Third Parties software (Free Software Foundation, tcl/tk, etc.) used in the development process.
The following sections are a brief description of the main components. For a complete description of each mentioned module, please refer to the corresponding User Manual.
5.1.1 Copyright
The VLT Common Software is distributed outside ESO for the development of applications related to the VLT Project and ruled by the "General Conditions of ESO Contracts". Any other use is not allowed without prior authorization from ESO.
The rights of Third Parties (Free Software Foundation, VxWorks, etc.), whose software is for convenience copied on the VLT Software Release 1 tape, are ruled by their copyright notice included in their software.
The file COPYING, included in the distribution kit, contains the full copyright notice.
5.1.2 VLT Development Utilities
These are a set of programs, scripts, etc., provided to help in the development of VLT applications, both WS and LCU, and to enforce the application of the VLT Programming Standards[3]. For each utility one or more man-pages are provided. At present, the provided utility modules are:
REMARK: the usage of vltMake, as described in the man-page Makefile(5), is mandatory for both WS and LCU application.
the templates in the distribution kit supersede those in [3]. The use of such templates is mandatory.
The vltDirectoryStructure(5) man-page provides the updated rules for the mandatory directory structure of software modules.
compat
to point out possible incompatibility between the software that has already been developed and a newer version of the VLT Common Software
5.1.3 Central Common Software (CCS) and LCU Common Software
The core of the VLT Common Software is the Central Common Software (CCS) and its VxWorks implementation, the LCU Common Software (LCC). AS far as possible, they provide the same services in terms of behavior and interface, but, of course, with different implementation. In addition to such services, each product provides a set of WS or LCU specific services.
The CCS is built on top of RTAP (Real-Time Application Platform from Hewlett-Packard) [2], that provides the basic services for the real time data base and interprocess communication. For developments dealing only with LCU applications, e.g., telescope sub-systems, there is a special version of CCS (CCS-Lite), that does not require the RTAP product. CCS-Lite provides LCU application developers with a minimum WS environment to support engineering tools and to develop test programs, simple UIF for commissioning, etc.
The LCC implements a subset of the RTAP functionality.
The provided services can be grouped in the following categories (the acronym n brackets is the module name):
basic services available for both WS and LCU (some specific functions are only available in the CCS implementation and not in the LCC or vice-versa).
Event Handler (CCS/evh, evhEt, fnd) that provides a standard architecture for WS applications (functionally similar to the LCU Command Interpreter)
It allows to build, on a WS, panels able to access local and remote database and to interact, via message system, with WS and/or LCU applications. It is a powerful tool to build both target UIF and test or debugging utilities for both WS and LCU development.
CCS Engineering Interface (ccsei) that provides a palette of tools to perform typical debugging and test activities like exchanging commands to applications, monitoring database or logs, etc.
LCC Engineering Interface (lccei) (the first interface historically available, left for compatibility)
5.1.4 WS-LCU Communication Software
The communication software consists of two modules:
qsemu (WS)
if RTAP is not available, provides WS of the communication engine to support a subset of the Message System.
5.1.5 HOS/Sequencer
The Sequencer is a general purpose tool, which allows execution of a predefined series of commands.
Only the first part of the Sequencer project is now available, namely the tcl-extensions seqWish and seqSh. They include the basic tcl, tk, some publicly available extensions like itcl, blt, etc., and the interface to some of the CCS services (accessing data, sending messages, etc.). At present they are used as an internal layer by the panel editor (the produced panel are seqWish-scripts). Due to the interpreter nature of the tcl language, seqWish or seqSh cannot be used to develop application having strong time requirements, but can be used to build prototypes of applications or test applications.
5.1.6 Drivers
Drivers form a family of software modules interfacing the hardware boards directly. These modules are:
· engineering user interfaces for direct access to the driver callable interface: there is one panel for each standard board
Drivers should not be accessed directly by applications, but via higher level software (LCC, Motor Control). If you need to access directly a driver, please check with ESO if your case cannot be covered by an existing or planned function of LCC or Motor Control.
The need for new drivers shall be verified with ESO and, in case development is needed, the new driver shall follow the structure set up by the existing ones (see xxx skeleton).
5.1.7 Motor Control
The Motor Control Module forms a service layer between application level and device driver level to provide a standardized, hardware independent interface between applications and motors. An application attaches a required motor and performs operations with that motor by use of Motor Control Module routines without knowing details about drivers or boards.
The Motor Control Module is designed for a standard LCU environment, consisting of a VMEbus system with a CPU board, running the VxWorks operating system, version 5.1 or higher. The Motor Control Module makes extensive use of the LCU Common Software facilities, such as the Event Logging, Error Handling and Signal Handling facilities and, in particular, the Local Database module.
5.1.8 INS Common Software
The INS common SW modules provide general purpose utilities and library functions, for VLT instruments. So far the following modules have been implemented:
dxf: Data transfer module. Provides a facility to send large amounts of data, such as images, from an LCU to a WS and between two WSs. Two on-the-fly compression algorithms are supported.
slx: Setup file handling utilities and library functions. Provides various tools primarily for manipulating set-up files.
pco: Protocol Converter. An interface between CCS processes and external processes like on-line MIDAS and ARCHIVE. For now only On-Line MIDAS is supported. It is possible to execute MIDAS commands, and MIDAS batches, and to read and write MIDAS keys via this interface. It is foreseen to include ARCHIVE in the next release, and possibly a generic socket interface if needed.
ist: INS System Tools provided system services like: disk space monitor, MIDAS table conversion, etc.
rtd: Real Time Display provides new widgets for rapid display of images, coming for instance from a CCD camera. (REMARK: This product is still a prototype)
5.1.9 Simple Examples
As installation verification test, a simple example of a complete application involving both LCU and WS is provided.
The example consists of two modules: lcuapp and wsapp.
These two modules use some of the VLT Common Software features and provide a minimal tutorial for the development of VLT applications.
5.2 SUPPORTED CONFIGURATION
The following is a qualitative list of hardware and software supported. For the exact identification of each supported part, please refer to the Installation Manual of the specific version you are going to use.
5.2.1 Hardware
5.2.2 Software
REMARK: For both SUN and HP, these libraries are an add-on to the basic OS. You are required to install the appropriate extensions in order to be able to compile and link graphical applications:
And according to your application you may need RTAP and/or VxWorkx.
5.3 DISTRIBUTION
Each version of the VLT Common Software is identified by the month and the year in which it is internally available at ESO. The external availability is normally from the following month.
The VLT Common Software distribution considts of:
· one tape (DAT) containing the software. For convenience, the tape also contains some public domain software used in the generation of the VLT Software.
anonymous ftp.
(ftp to ftp.hq.eso.org to get the name of the ftp server for VLT documentation. Then connect to that host and follow the instructions provided.
WWW
connect to http://http.hq.eso.org to get ESO Home page, then select "VLT project" and "VLT Software Documentation". The list of currently available documents in the ftp area is provided.
5.4 EVOLUTION AND BACKWARD COMPATIBILITY
There are several reasons to provide new versions:
· the software compatible with new version of the operating system or with any other under-laying software.
There will be two new versions per year, one mainly for bug fixes and the other to add new features. When available, a new version of the VLT Common Software shall be installed according to the Installation Manual and the software currently under development shall be recompiled.
It is ESO commitment to keep the VLT Common Software backward compatible. The FEB95 version is the baseline for CCS and LCC.
Although ESO will try to avoid it, it may happen that some interfaces need to be changed or some function withdrawn. This may require editing existing code. To identify potential incompatibilities, the "compat" utility and a list of keywords to be searched are provided with each new release.
It may happen that new modules are made available while still under development and before that their interfaces can be considered stable and, therefore, baseline for future compatibility. The documentation of each part clearly indicates whether the distributed version should be intended as a prototype or can be considered a stable baseline.
![]() Quadralay Corporation http://www.webworks.com Voice: (512) 719-3399 Fax: (512) 719-3606 sales@webworks.com |
![]() |
![]() |
![]() |
![]() |