Interface to the WHT TCS using CORBA
====================================

   The WHT TCS has a CORBA server that runs as part of the 
observing system on a linux box whtics.ing.iac.es. The CORBA
server is registered in the CORBA name service that runs on 
whtcns.ing.iac.es (although in practice these are the same 
machines). 

   The methods available are defined in an Interface Definition
Language file OCSCorbaDrama.idl. See supplied files below. 
Contact Frank Gribbin or the ING software group to ensure you
have the latest version. 

   In order that a client machine can invoke CORBA methods it
must have installed a ORB. Although in principle any CORBA 
ORB can be used, below are listed some of those that the ING
uses.   

Interfacing from C++
--------------------

   ING uses OmniORB which is free. The home page is found 
at http://omniorb.sourceforge.net/index.html

Interfacing from Python
----------------------

   ING use OmniORBPy which again is free. The home page is
found at http://omniorb.sourceforge.net/index.html. 
It works in conjunction with omniORB for C++, so OmniORB
must be installed. 

Interfacing from Java
---------------------

   ING uses Jacorb. See home page at www.jacorb.org
       
Relation of CORBA methods to TCS user interface commands
--------------------------------------------------------

   The WHT TCS User Manual is available at 
http://www.ing.iac.es/~docs/tcs/manuals.html It explains
in detail how commands entered at the user interferface work. 

   In the table below, I list how the CORBA methods map 
on to TCS commands. 

Corba Method                TCS command and note
------------                --------------------
addSource                   ADD 
                            Add current source to catalogue
cancelGotoTarget            None
                            Cancels GotoTarget. 
dither                      DITHER
                            Apply tanget plane RA Dec Offset
getTCSStatusData            None
                            Get status block
gocat                       GOCAT 
                            Slew to named source 
gotoTarget                  GOTO
                            Slew to position
laserLimitState             LASER_LIMIT
                            Obsolete
setTelescopeFocus           DFOCUS
                            Set focus offset (for filter)
setTelescopeFocusAbsolute   FOCUS
                            Set telescope focus 
setGuidingStatus            AUTOGUIDE
                            start/stop guding 
setGuidingSkips             AUTOGUIDE SKIP
                            Set guide packets to skip 
slowOffset                  SLOWOFFSET
                            Offset telescope at set rate
rotator                     ROTATOR
                            Set rotator position
offset                      OFFSET
                            Offset telescope
probe                       PROBE
                            Inform TCS of probe position

Supplied files 
--------------

corba_interface_to_tcs.txt  - this file 

OCSCorbaDrama.idl - IDL for TCS interface 

OCSCorbaDrama.hh - hh file as generated at ING from IDL 

README.txt - build instructions for use at ING 

tcs_corba_focus.cc - example C++ focus client 
   Note that this connects to CORBA on ING's development 
machine icsdev.ing.iac.es - as it was tested. 

udas_camera_corba.hh -supporting file 

udas_corba_client.cc - supporting file 

udas_corba_client.hh - supporting include file 


Frank Gribbin
11 May 2015

