Title: FLAMINGOS2 SOFTWARE
1FLAMINGOS-2 SOFTWARE
- THIS PAGE INTENTIONALLY LEFT BLANK
2Instrument Software Context
Engineering (Console)
3Conext Observatory System
4Context Intrument (Sub)system(s)
5Gemini Requires Flamingos Software to conform to
the following
- Requirements for IR Imagers Spectrometers (CICS
documentation) - Requirements for Detector Array Controllers (CICS
documentation) - ICD1ab - Command Interface Baseline
Attribute/Value Interface - ICD1c - Baseline Data Handling System (DHS)
Interface - ICD1.9/3.1 - Science Instrument to Observatory
Control System (OCS) - ICD1.9/3.2 - Science Instrument to DHS
- ICD1.9e/3.x -The Flamingos/OCS Interface
- ICD2 - System Status and Alarm Interface
- ICD3 - Bulk Data Transfer (DHS)
- ICD4 - Logging Information
- ICD6 - ICS/TCS Direct Control Interface
- ICD13 - Standard Gemini Instrument Controller
- ICD 14 - How to build a real ICS from the CICS
template - ICD16 - Parameter Definition Format
- SPE-C-G00 Software specification requirements
- SPE-C-G0009 - Software programming standards
- SPE-C-G0011 - Software configuration control plan
- SPE-C-G0014 - Software requirements specification
6Context Full Client Server Architecture
Instrument Engineering Console
Observatory Data Services (DHS)
Cisco Switch
Observatory Data LAN
Observatory Control LAN
Flamingos2 Context Client/Server Architecture
Observatory Data Transfer Agent
Inet Boot Service Executive Agent (Daemon)
Starts Manages All Agents
Pfeiffer Vacuum Monitor Agent
Image Server
Epics IS SAD
Pixel/Image Pre- Process
Epics Channel Server
Frame Grab Daemon
MCE4 Fibre
LakeShore218 Temperature Agent
UFLIBClient
MCE4 Detector Control Agent
LakeShore331 Temperature Agent
PorteScap Motor Agent
Observatory Control LAN
7ICD1.9e/3.x - The Flamingos/OCS Interface
- Specification is 100 Epics Channel Access
- ICS Epics DB exposesa set of top-level Epics
Records to OCS via is Instrument Sequencer (IS) - Top-level (IS) Apply Record accepts Command
Directivesfrom OCS - Command Directives are Abort, Mark, Preset,
Start, Stop - Command Directives are accompanied with a Client
ID - OCS marks IS CAD records to be processed by
setting CAD inputs - OCS monitors IS CAR for command activity
- OCS monitors selected SAD records for flags,
status, and alarms - Each CAD record supports a unique command,
categorized as - Compulsary Sequence Commands
- Engineering Commands
- General (Instrument Specific) Commands
- Observing Tool Sets Nominal CAD Inputs
- Engineering Console Sets Override CAD Inputs
8Epics Client Server Architecture TRECS vs.
FLAMINGOS-2
OCS, AT scripts
OCS, AT scripts
TRECS
FLAMINGOS-2
Solaris/Linux
Solaris/Linux
VxWorks Epics 3.13.4-8 OR Epics 3.14.x
VxWorks Epics 3.13.4
CC, DC, EC Agents
Solaris/Linux
Grand Unification (GU) Potentially
Solaris/Linux Epics 3.14.x (Portable Epics)
Solaris/Linux
EPICS IS Instrument Sequencer DC Detector
Controller CC Component Controller EC
Environment Controller NOT an EPICS DB,
but uses Epics Channel Access
9Flamingos-2 Instrument Sequencer Records
(ICD1.9e/3.x)
- Compulsary or Standard Gemini System CADs (and
CARs) - flamabort (and flamabortR)
- continue(R) datum(R) debug(R) init(R)
observe(R) park(R) pause(R) stop(R) test(R) - Each of the above Command Action Directive (CAD)
records has an associated set of inputs - Each Input must be checked for correctness and
accepted or rejected - Once all inputs are accepted, a CAD is marked
for processing. - Once processing commences a CAD's associated
Comman Action response (CAR) record is BUSY - When the Command completes successfully the CAR
becomes IDLE - If the Command fails or Times-Out the CAR is set
to ERR - Compulsary or Standard Instrument System CADs
(and CARs) - flamdataMode
- flaminstrumentSetup
- flamobservationSetup
- flamreboot
- flamsetDhsInfo
- flamsetWcs
10Flamingos-2 Science Data (DHS ICD 1.9/3.2)
- ObservationID DHS DataLabel
- DataLabel string terminated by Index.SubIndex
field - MEF (MultiExtension FITS) is Gemini Standard
- Primary Header Exposure Seqence in Dither
Pattern - Single Extension Header Dither Index.SubIndex
- 2048x2048 Single Image Data
- 32 bit signed integer raw image
- Archiving Permanence on/off according to SetDHS
CAD - Quick Look Streams Depend on Network Bandwidth
- 512x512 image from 4x4 window averaging
- Banded Image of Spectra
- Full Image Scaled to 16 or even 8 bits?
11Lessons Learned
- Gemini 'Baseline' evolved from Gem6.x to Gem7.x
to current Gem8.4 while TRECS did not. - Preship AT performed with Gem6.0
- Summit AT required substantial upgrade work to
Gem8.4 - Development
- Emulate Summit environment as closely as possible
- Keep development environment sync'd with Summit
- Ensure stability continuity in staff and work
assignments - Unit tests should provide standalone
capabilities - AT (preship)
- Need lab. support for interface tests
- OCS TCS local simulators (not just DHS)
- Deployment Commisioning
- Defer as little as possible
- PPC replaced to support newer VxWorks Epics
baseline - Cisco replaced and reconfigured to support summit
network topology - Other Projects
- NASA RXTE OSS, COTS
- NASA EOS DCE/RPC, COTS
12Work Packages Deliverables
- C Class Libraries, C Lbraries
- Unit Test Applications (clients)
- Daemons (server agents)
- GUI(s) Java or DHTML or Gtk
- Development Test Environment
- OS System Libraries
- Device Driver(s) Libraries
- Compiler Debugger
- Installation (Make) scripts
- Configuration files
- Docs.
13Client/Server Architecture Comparison
- 3-Tier, Fat Client or Thin Client (Fat Server),
Distributed - Peer-to-Peer
- Web Services
- Gui Epics Agenst are all the above
- Gemini
- Epics Channel Access
- Each Channel provides network I/O with DB element
- I/O enumerates DB element processing
- DM processing triggers Instrument Func. Callbacks
- DHS IMP
- C/C RPC like function interface provided by
library - DHSClient calls DHS library functions to
interact/transact - Control, Config, Status
- Header Keywords
- Images
- UFLIB
- C STL (stdlib), Object Serialization over
Sockets (OSS)
14Client/Server Technologies (cont'd)
- GTC CORBA/RPC -- No DB, more like DHS library
- Client/Server with connection mediated by Object
Request Broker - GTC provides Separate Client and Server class
libraries - GTC provides environment of standard services
- Instrument Team develops specialized clients and
servers using above - EOS DCE/RPC now considered obsolete
15Comments on Mothodologies
- Stroustrup
- No Waterfall
- Iterate analysis, design, and implementatio
- Allow for feedback through iterations
- Meyers, others
- Design for change Design by contract
- Progam in the future tense (for change)
- Plan for modification and enhancement
- Kernighan Pike
- Program defensively
- Consistency
- Plan to throw away (at least) once
16UML Standard Diagrams
- Not all required
- Hybrids are allowed
- Model Elements Diagrams
- Use Cases requirments and analysis
- Packages Activities subsystem partitioning
and work units - Classes object specification
- Objects class instances and usage
- Collaborations object interactions
- Components -libraries, applications
- States Activies object and application i/o
and logic flow - Configurations Change Management source code
to (re)install - Deployment install configure
17Elements of UFUML
- Requirements
- Vision, Stakeholder Needs, Use Cases/Scenarios
- Supplementary Specs. (ICDs)
- Classes Objects Collaborations
- Components (Work) Packages
- State (Runtime Transitions) Activities
- CM Deployment
- Activities (Runtime)
- Scenarios Testing
- Unit Tests, Integration Test
- Acceptance Test
- Iterations
18UML Diagrams Interelated
19Elements of UFUML (Hybrids)
20UML Iterative Model
21Vision Stakeholders (Req. Guidelines)
- Support Queued and Classical Observating modes
- Support all Standard Gemini Facility Instrument
Interfaces (OCS TCS Epics, DHS IMP) - Instrument Control Data Acq.
- via Engineering Console
- via Instrument Sequencer (IS) Epics Status and
Alarm Database (SAD) - Telescope Info. from TCS SAD.
- No requirement to merge Flamingos-2 IS (Epics DB)
with WFS IS. - Provide source install config. test
procedures, documentation.
22Use Cases (Func. Reqs.)
- Interface/Architectural Requirements
Guidelines - Instrument Sequencer (IS) provides primary
interface between the Instrument and all external
Observatory Control System elements. Actual
sequencing is fairly minimal. - Internal Subsystems (UFProtocol)
- IS -- Component Controller Agent (CC)
- IS -- Environment Controller Agent (EC)
- IS -- Detector Controller Agent (DC)
- IS -- Data Acquisition Agent (DA)
- IS -- SAD (Epics Channel Access).
- DA -- DHSClient.
- External Subsystems
- IS -- OCS (Epics Channel Access).
- IS -- TCS (Epics Channel Access).
- DHSClient -- DHS Services Archive Quicklook
(IMP).
23Use Cases(cont'd)
- Component Control, Status and Alarms (SAD)
- MOS Cryostat CryoCooler -- power on/off
- Detector Cryostat CryoCooler -- power on/off
- Decker Wheel -- stepper motor via RS232 serial
com. - MOS wheel -- stepper motor via RS232 serial com.
- 2 Filter Wheels -- stepper motor via RS232 serial
com. - Lyot Wheel -- stepper motor via RS232 serial com.
- Grism Wheel -- stepper motor via RS232 serial
com. - Focus Drive -- stepper motor via RS232 serial com.
24Use Cases (cont'd)
- Environment Control, Status and Alarms (SAD)
- Lakeshore 340 (2 channels) via RS232 serial com.
- LakeShore 218 (8 channels) via RS232 serial com.
- Granville-Philips (2 channels) via RS232 serial
com.
25Use Cases (cont'd)
- Detector Control, Status and Alarms (SAD)
- MCE4 -- via RS232 serial com.
- Science Data Acquisition Handling
- EDT Fiber Link from MCE4 (Intra-subsystem)
- Gigabit or 100BaseT Ethernet to Gemini Data LAN
and DHS
26Use Cases (cont'd)
- Engineering Console (GU I)
- Standalone operation of all instrument functions
- Provides OCS - IS interface test tool
- Supports AT and Comissioning
- System and Component Power, (re)configuration,
(re)boot, shutdown - Baytech -- individual power control via network
- (X)Inetd -- network shutdown, (re)boot control
27Network Interfaces Protocols
- TCP/IP over Ethernet
- Separate Data (for DHS) and Control (for Epics)
LANs - Perle Console Server 100BaseT Ethernet (Control
LAN) to RS232 - UFProtocol -- TCP/IP (Sockets)
- Epics Channel Access -- UDP TCP (Sockets)
- h3) DHS IMP -- RPC TCP (currently
Solaris-Sparq will Linux libraries binaries be
available?) - NFS -- RPC UDP
28Implementation Reqs.
- Each instrument subsystem is a network Agent
(Service) and can run on any host. - Reuse many elements of TReCS software, perhaps
some NICCI. - Solaris or Linux, Gnu C/C, avoid VxWorks and
Capfast schematics. - Engineering Console (GUI) - Java or DHTML or
GTK/Gnome - SADs purely Epics Channel Names.
29Implementation Reqs.
- IS is integrated Epics Portable Channel Service
UFProtocol application. - OCS uses IS Epics Channel name types CAD, CAR,
Apply, and SAD only (no GenSub if possible). - Epics Device layer records (CAD, CAR, Apply) used
for unit test with Agents. Not integrated with
IS. - Device control performed by Agents.
- Agents derive from UFLIB and are very similar to
TReCS Agents
30Implementation Reqs.
- TCS is read-only for DataSet header elements (no
IS to TCS or SCS required). - DHS client application will reuse UFLIB class(es)
similar to TReCS but generate GMOS-like data
formats.
31Use Case EC - Dev. Agent
- Obs. DataLabel
- Engineering Console (EC) GUI to Epics Device
Layer DB via Channel Access - Epics Device DB TCP/IP to Agent
- Agent Epics Channel Access to Epics Device DB
SAD
32Use Case IS Dev. Agent
- Obs. DataLabel
- Instruement Sequencer (IS) to Epics DB via
Channel AccessEpics DB TCP/IP to Agent - Agent Epics Channel Access to Epics Device DB
SAD
33Use Case Dev. Agent Perle ConsoleServer RS232
- Agent TCP/IP (socket) to Perle TerminalConsole
via LAN - Perle TerminalConsole to RS232 back
34C Class Libraries
- LibUFProtocol -- Socket Serialization Objects
(Also Java counterpart) - LibUF -- General Posix Runtime
- LibDevice -- Detector, Environment, Component
Control - LibUFFrame -- Frame Acq. EDT Runtime
- LibUFGem -- Epics CA DHS wrappers
- LibUFSerial -- TerminalServer, RPC, Serial
Ports Runtime
35Develop Build (Make)
- RCS with CVS mirror
- ufci ufco, ufcvsco scripts
- GNU Makefiles
- Make includes .makerules .maketargets
- Top Level System Makefiles
- Indevidual subsystem Makefiles
- Dev. Src Tree workspace directories
- libUF, libUFProtocol, libUFSerial,
libUFGem - portescap, lakeshore, granvphil, ufmce
- instrum, instrum.epics, instrum.scripts,
instrum.doc
36Deploy (Install, Config.) Test
- Install Tree UFINSTALL/
- include, lib, slib, bin, sbin, scripts, etc
- instrum.epics/bin, pv
- extern/include, lib, gemini/dhs, epics
- Inetd UFExecutive (All UFAgents)
- (X)Inetd.conf - UFInetBoot
37Instrument Sequencer (IS) UML
Package
Console GUI
Ufcaservd
Ufmotord
UFCAService
Package
Attributes
UFCAServ
Attributes
...
Attributes
UFPV
Attributes
Functions
...
Attributes
Functions
Ufcaservd
Attributes
UFPVAttr
Functions
Functions
...
Functions
Attributes
...
Functions
Functions
Attributes
Functions
...
...
Functions
Functions
ufmotord
...
Functions
Functions
...
Console User
Portescap Indexor(s)
38IS Classes, Objects, Collaborations
39IS Apply(s), CADs, CARs
40Detector Control (DC) Context
41DC Classes, Objects, Collaborations
42DC Apply(s), CADs, CARs
43Environment Control (EC) UML
44EC Classes, Objects, Collaborations
45EC Apply(s), CADs, CARs
46Component Control (CC) UML
47CC Classes, Objects, Collaborations
48CC Apply(s), CADs, CARs
49Status And Alarms (SAD)
50Gemini Device Agent(s) (GDA) UML
51GDA Classes, Objects, Collaborations
52DHS UML
53DHS Classes, Objects, Collaborations
54Engineering Console (GUI) UML
55Console Classes, Objects, Collaborations
56Observations Setup Scenario
57Observe Scenario
58Acceptance Test
59Commissioning
60Documentation