digraph G {
rankdir=RL
node[style=filled, shape=box]
TCS[fillcolor=gray]
IIF[fillcolor=lightblue]
INDI[fillcolor=magenta]
IIF->TCS
INDI->IIF
{
rank=same
1[style=invis, shape=point]
node[shape=oval, fillcolor=gold]
IRTC[fillcolor=lightyellow]
LUCI
MODS
LN
LBTI
PEPSI
SHARK[style=dashed]
VIS[style=dashed]
}
1->IIF[style=invis]
IRTC->IIF
LUCI->IIF
MODS->IIF
LN->IIF
LBTI->INDI
PEPSI->IIF
SHARK->IIF[style=dashed]
VIS->IIF[style=dashed]
}
Instruments call
IIF functions (received through ICE), and transform those to
TCS calls.
IIF arbitrates (select) which instrument is in control, and refuse controlling calls from an unauthorized instrument.
The Instrument Interface subsystem (
IIF) is the software which allows instrument software to communicate with the Telescope Control System (
TCS). ICE is used as the preferred communication mechanism. The command set is extensive, and is documented in the VCAN:
- T481s00011 C++ Instrument Interface Control Document
- T481s00013 ICE Instrument Interface Control Document
- T481s00014 C Instrument Interface Control Document
There are two documents describing the
IIF itself in the VCAN:
- T481s00263 IIF Subsystem Software Reference Manual
- T481s00264 IIF Subsystem Software User's Manual
And documents on wiki/web:
Both the ICE and C interfaces are wrappers around the C++ interface. The C interface is used only by the
LBC software. The ICE wrapper is in the
IIF, the C wrapper is not.
The ICE interface instantiates C++ interface objects: one object is instantiated for each unique ICE proxy. The interface is kept in a map keyed by the proxy. Each ICE request then uses the appropriate C++ object.
It is because the map is in the
IIF subsystem that instruments have to re-establish their connection when the
IIF is restarted.
ICE files
IIF ICE files are located at
ICE subdirectory. Please see
481s013 for details. Factory.ice and IIFServer.ice _(don't be misled by "server" in the name that's interface description, one side is the server, the other is the client)_- is all instruments client needs to connect to
IIF. Usually, after turning .ice files into the source code for a language of your choice, using slice2xxxx command, yours instrument software will be able to interface to
IIF.
Preset function
Arguably the most visible
IIF function. Consists of two commands:
- set target and guiding coordinates
- command telescope to move
Once coordinates are received,
IIF:
- command PCS to move to a position *. PCS commands MCSPU to move telescope axes
- if guiding (and wavefront sensing) is required, command GCS