TOC PREV NEXT INDEX

Put your logo here!


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:

· set up the VLT directory structure
· install standardized development tools like compiler, make, etc.
· develop WS applications using the services provided by the Central Common Software
· develop LCU applications using the services provided by the LCU Common Software and Motor Control, including the handling of LCU standardized boards.
· develop applications using the services provided by the Instrument Common Software

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:

· VLT development utilities
· Central Common Software (CCS)
· LCU Common Software (LCC)
· WS-LCU communication software (Qserver)
· Drivers
· Motor Control
· Sequencer
· Instrumentation Common Software (INS/<xxx>)
· installation and installation verification procedures
· examples

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:

· examples of applications (e.g., test programs)
· skeletons for the development of similar modules (e.g., drivers)

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:

vlt
background structure for Makefile, based on GNU Make, and manpage viewer.
REMARK: the usage of vltMake, as described in the man-page Makefile(5), is mandatory for both WS and LCU application.
templates
menu driven access to various VLT standard templates for coding, problem reporting, etc.
REMARKS:
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.
doc
man-page extractor, formatter, browser on document directory tree, etc.
mod
current software module list
emacs
to customize emacs with additional menus to access templates, insert comments, etc.
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).
General (ccs),
Logging (log),
Event Handling (evt),
Error System (err),
Message System (msg),
Database (db),
Time Handling (tims),
Alarm management (alrm),
Access control (book).
Command handling (cmd),
Common Access Interface (cai)

WS services interacting with the LCU:
Time synchronization system (ntp)
LCU database variables monitoring (scan),
database variable sampling tool (samp)

LCU only services:
LCU Management,
I/O Signal Handling,
LCU Access Control,
Command Interpreter, that provides a standard architecture for LCU applications
a "template" application using the Command Interpreter (citmp)

WS only services
Extended CCS, i.e., the CCS C++ interface (CCS/eccs)
Event Handler (CCS/evh, evhEt, fnd) that provides a standard architecture for WS applications (functionally similar to the LCU Command Interpreter)

graphical user interface development kit
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.
UIF Panel Editor (CCS/panel)
UIF Widget library (CCS/uif)

WS and LCU database development tools
Database Loader (CCS/dbl)
Database Class Browser (CCS/dblcb)

debugging tools
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:

lqs (LCU)
provides the LCU of the communication interface toward the outside world.
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:

· utilities common to all drivers
driver log utility (lculog)
driver common utilities and graphical interactive debug utility (lcudrv)
· drivers
Analog I/O driver (aio)
ACROMAG Digital I/O driver (acro)
Time Board driver (tim)
MACCON driver (mcon)
Servo Amplifier driver (ampl)
Heidenhain IK320 encoder (ikon)
an empty skeleton (xxx)
· 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

WS
· HP 9000/700 series
· SUN SPARC

LCU:
· Motorola MVME 167 CPU board
· VMIVME-3111 Analog I/O board
· ACROMAG AVME948X Digital I/O board
· ESO Time Reference Board
· VME4SA-X1 4-channel DC Servo Amplifier
· MACCON - MAC4 INC motion controller incremental encoder
· Heidenhein IK320 Encoder board

5.2.2 Software

UNIX Operating System:
SUN: Solaris 2
HP: HP-UX

Graphical Libraries: X11R5 and Motif1.2.
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.
· the documentation kit. Documents are provided:
· as paper copy.
· as PostScript files (included in the tape)

REMARK: the PostScript copy of nearly all VLT Software documents can also be retrieved from:
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:

· bugs in already distributed software are fixed
· new functions are provided,
· 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.


____oOo____



Quadralay Corporation
http://www.webworks.com
Voice: (512) 719-3399
Fax: (512) 719-3606
sales@webworks.com
TOC PREV NEXT INDEX