The Telescope Control System consists of various modules and applications that work together to control the positioning of the telescope and its associated hardware and the dome. At the heart of the system is the IFATelescope Command Service, a Windows system service written in C# that starts at boot time. The service connects to the Motion Engineering, Inc. (MEI) motion control API and is the only module that communicates directly with the motor control hardware. It links to IFASolarC DLL (C++) which provides specific telescope functionality unique to SolarC. IFASolarC DLL in turn links to IFATelescope DLL (C++) which provides a generic telescope control interface. IFAAxis DLL (C++) is one layer below and provides a generic motor axis interface that hides the details of the vendor specific Motion Programming Interface (MPI Lib) provided by MEI. In principle, if the motor control hardware changed only IFAAxis DLL would have to be rewritten in order for the system to work.
Written in IDL and running on luna, the TIC application provides a GUI that gives the user fine-grained control over critical aspects of the telescope. In particular, users can position the secondary mirror via the hexapod interface, acquire solar images, position the telescope precisely on the limb region and correct for any tracking drift.
On hibiscus, an application written in IDL called TBD interfaces to the NICMOS detector via a module provided by TBD that communicates with the PCI hardware.
All SolarC system software source code can be found under the root directory: C:\IFA\Software\ on the SolarC PC. Below the root directory the two important directories are IDL and Telescope Control System which respectfully contain source files for the TeleAPI IDL interface and the IFATelescope Command Service and related DLLs.