Software Maintenance Manual


Created: 23 February 2001

Last modified: 21 March 2001






Mark Jarnyk and Peter Young


Research School of Astronomy and Astrophysics

Institute of Advanced Studies

Australian National University


Revision History


Revision No.

Author &


Approval &



Revision 1

Mark Jarnyk

9 January 2001


Draft Document Outline.

Revision 2

Peter Young

23 February 2001

Peter J. McGregor

8 March 2001

Revisions and included DC





1 Purpose. 3

2 Applicable Documents. 3

3 Introduction. 3

4 System Overview.. 3

5 Software Design. 3

6 Software Implementation Detail 4

7 File Organization. 6

8 Software Building Instructions. 6

9 Software Configuration. 7

10 Starting the NIFS Software. 7

11 Testing and Verification. 7

12 Software Operation. 8

13 Appendix: Listings. 10


 [Note: in the final document, the table of contents will be to third level]


1 Purpose


The Software Maintenance Manual describes the procedures for installation and maintenance of the software for the Gemini Near-infrared Integral Field Spectrograph (NIFS).


2 Applicable Documents


Document ID





Programmatic Requirements for Gemini Instrumentation Development



NIFS CDR Documentation



3 Introduction


Section 19.4.3 of the document “Programmatic Requirements for Gemini Instrumentation Development” states the requirements for the Software Maintenance Manual.


This manual should describe the software at a sufficient level of detail so that a programmer familiar with the Gemini environment, but not initially familiar with the software, can maintain it properly. It should include:

·         Detailed written descriptions of all software systems and sub-systems.

·         Systems analyses.

·         Data flow diagrams.

·         Data dictionaries.

·         Structure charts.

·         Specifications.

·         Listings of all software including firmware (DSP code).


3.1 Scope


This section will include an identification of the system. It will summarize the purpose and content of the manual, and indicate the intended audience.


4 System Overview


4.1 Software Application


A brief description of the intended uses of the software – what it does.


4.2 Software Environment


Identifies the hardware, software, manual operations, and all other resources needed to perform the actions described in this manual. This will include things such as:

  1. Computer equipment required, the amount of memory needed, disk-space required, peripheral devices etc.
  2. Operating System (version etc.).
  3. Support software systems (DHS etc.).


5 Software Design


5.1 Software Architecture


5.2 Instrument Sequencer


5.3 Components Controller


5.4 OIWFS Components Controller


5.5 Detector Controller


6 Software Implementation Detail


6.1 Instrument Sequencer


6.1.1 Databases CAD/CAR Status and Alarm


6.1.2 SNL Code


6.1.3 C Code


6.2 Components Controller


6.2.1 Databases CAD/CAR Status and Alarm Mechanism Temperature


6.2.2 SNL Code


6.2.3 C Code Records Device Handlers Drivers CAD Record Support Routines


This section will contain snam & inam stuff etc.


6.3 OIWFS Components Controller


6.3.1 Databases CAD/CAR Status and Alarm Mechanism


6.3.2 SNL Code


6.3.3 C Code Records Device Handlers Drivers CAD Record Support Routines


This section will contain snam & inam stuff etc.


6.4 Detector Controller


6.4.1 Databases CAD/CAR Database Status and Alarm Database


6.4.2 SNL Code


6.4.3 C Code Records Device Handlers Drivers CAD Record Support Routines


This section will contain snam & inam stuff etc.


6.4.4 C++ Code SDSU_IR/NIFS Camera Class Parameter and Status Database Classes DHS Transfer Class


6.5 SDSU II DSP Code


6.6 VxWorks Tasks


6.6.1 Components Controller IOC


6.6.2 Detector Controller IOC Control Tasks Slave Task Readout Task Data Task


6.7 Simulators


6.7.1 Mechanisms Simulators


6.7.2 Temperature Simulator


6.7.3 Detector Simulator


6.8 Utilities


This section will describe startup scripts and Tcl/Tk programs for generating the mechanisms lookup tables.


6.9 Edd/dm Screens for the Engineering Interface


7 File Organization


This section will describe the directory structure and locations of different software components.


8 Software Building Instructions


8.1 Hardware Pre-requisites


8.1.1 Components Controller IOC


8.1.2 Detector Controller IOC


8.2 VxWorks Build Requirements


This section will describe the VxWorks build configuration.


8.3 EPICS Build Requirements


8.4 Building the NIFS Software


8.4.1 Unpacking the Software


8.4.2 Setting Up The Environment


This section will describe which shell variables to change, how to create the NIFS login file, and how to run applSetup which creates UAE.


8.4.3 Compiling the Software


This section will describe how to run make from the top level. This will generate the EPICS databases, generate the engineering interface, and compile the C support routine, the C++ classes, the SNL code, and the detector DSP code.


9 Software Configuration


9.1 Configuring the EPICS Databases


This section will describe how to use pvload files to initialize the EPICS database.


9.2 Setting Up The Mechanism Positions


This section will describe the configuration set and tools available for manipulating it.


10 Starting the NIFS Software


10.1 Booting the Components Controller IOC


10.1.1 VxWorks Startup Script


10.2 Booting the Detector Controller IOC


10.2.1 VxWorks Startup Script


10.3 Starting the Engineering Interface


11 Testing and Verification


This section will describe a set of test procedures using the engineering interface to verify correct operation.


11.1 Instrument Sequencer


11.2 Components Controller


11.3 OIWFS Components Controller


11.4 Detector Controller


12 Software Operation


12.1 Using the Engineering Interface


This section will be a users manual for the engineering interface.


12.1.1 Top Level Control


This section will describe how to run the system using the CAD/CAR/Apply records. Instrument Sequencer


This section will describe the use of the Instrument Sequencer control screen which simulate OCS sequence commands including the OBSERVE command. Components Controller OIWFS Components Controller Detector Controller Observation Control


This section will describe how to setup parameters for an observation.


12.1.2 Direct Control


This section will describe how to directly access the low level EPICS records. Components Controller Mechanisms OIWFS Components Controller Mechanisms Temperature Control Inspecting Interlocks Setting the Simulation Level


12.2 Data Handling


12.2.1 Quick Look Displays


12.2.2 FITS File Server


12.2.3 DHS Interface


12.3 Recovery From Errors, Malfunctions, and Emergencies


12.4 Messages Explained


13 Appendix: Listings


13.1 Software Inventory


13.2 Capfast Schematics


13.3 SNL Code


13.4 C Code


13.5 C++ Code


13.6 DSP Code


13.7 Engineering Interface ADL Files


13.8 Startup Scripts


13.9 Lookup Tables


13.10 Sequence Scripts


13.11 PVLOAD Files