ISISPController
Class ISISPController

java.lang.Object
  extended by OCSEPICS.EPICSController
      extended by ISISPController.ISISPController
All Implemented Interfaces:
iInstrumentController.InstrumentControllerOperations

 class ISISPController
extends EPICSController

This class is the main class for the ISISP instrument controller task which sets up an instance of an EPICS based instrument controller which can be used to control the ISISP IOC and provide all of the high level commands which will be used by the ISISP client suite.

The configuration of the application is largely driven from data which is located in the ICS database and utilises the classes which were developed to control the WYFFOS IOC also. These are augmented by ISISP specific functions which have been developed.

The application is a CORBA based application and references to the subactions which can be used to drive the instrument controller can be found in the context ISISPController in the local COS naming service.

Version:
$Id: ISISPController.java,v 1.3 2006/08/21 10:20:02 cb Exp $
Author:
Craige Bevil

Field Summary
(package private)  java.lang.String TopWaveplate
          The waveplate which is located on the within the top waveplate
 
Fields inherited from class OCSEPICS.EPICSController
DatabaseHost, DBConnection, EPICSContext, InstrumentName, InstrumentPVs, JCA, Mechanisms, OCSCorba, Orb, ParameterConvertor, ParameterNoticeBoard, Poa, RootNamingServiceContext, SimulationMode, SyslogMessageHandler
 
Constructor Summary
ISISPController(java.lang.String[] args, MessageHandler SyslogMessageHandler, boolean SimulationMode, java.lang.String DatabaseHostMachine)
          The constructor for the class.
 
Method Summary
private  boolean createSoftwareControllerSubactions()
          This method is responsible for creating all of the compound sequence subactions specific to ISISP including those which are software controller specific.
private  void initialiseNoticeBoardItems()
          Initialises the items which are expected to be present in the noticeboard which all of the ISISP system will use.
static void main(java.lang.String[] args)
          This is the main entry point which will be used to start the ISISP controller.
 
Methods inherited from class OCSEPICS.EPICSController
closeDown, handshake, setDebugState, setTraceLevel, SetupInstrumentControllerActions
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TopWaveplate

java.lang.String TopWaveplate
The waveplate which is located on the within the top waveplate

Constructor Detail

ISISPController

ISISPController(java.lang.String[] args,
                MessageHandler SyslogMessageHandler,
                boolean SimulationMode,
                java.lang.String DatabaseHostMachine)
The constructor for the class. This will result in all of the PVs which are to be used by this instrument system being configured and all of the actions which are associated with the controller being read in from the database and configured.

Parameters:
args - Command line arguments which were passed into the application
SyslogMessageHandler - A syslog message handler
SimulationMode - Whether the system should be run in simulation mode or not.
DatabaseHostMachine - The host name of the machine which is hosting the ICS database.
Method Detail

createSoftwareControllerSubactions

private boolean createSoftwareControllerSubactions()
This method is responsible for creating all of the compound sequence subactions specific to ISISP including those which are software controller specific.

Each of the subaction CORBA servants which are created by the method are persistent and are registered in the name service once they are incarnated. The details of the subactions which are created and their function is outlined in the following table. Note that each of the name bindings can be found in the naming context ISISPController/SequenceActions in the local naming service.

Name service Binding Purpose
ISISPController/SequenceActions/SetTopWavePlate Allows a client to set the name of the waveplate which is in the top waveplate.
ISISPController/SequenceActions/StopRotationMechanismAction Allows a client to stop the rotation of the specified waveplate.
ISISPController/SequenceActions/SetFocusAction Allows a client to the automatic focus mode which is to applied.
ISISPController/SequenceActions/MoveSlideHWMechanismAction Allows a client to move the HW slide mechanism with focus correction applied
ISISPController/SequenceActions/MoveSlideQWMechanismAction Allows a client to move the QW slide mechanism with focus correction applied
ISISPController/SequenceActions/SetFocusOffset Allows a client to set the focus offsets for the telescope and the television.

Returns:
boolean

True if we managed to set up the subactions successfully


initialiseNoticeBoardItems

private void initialiseNoticeBoardItems()
Initialises the items which are expected to be present in the noticeboard which all of the ISISP system will use. Some of the data which is used in the intialisation is done from the ICS database table ISISPCONFIGDATA which is used to store permanent data across restarts of the application.


main

public static void main(java.lang.String[] args)
This is the main entry point which will be used to start the ISISP controller.

The following command line arguments are respected

Option Default Semantics
-d Debug on Start application in debug mode
-c Console output off Logging information is sent to the console
-h whtics.roque.ing.iac.es The name of the machine which is hosting the ICS database
-s N/A Simulation is not currently implemented

Parameters:
args - Command line arguments which are to be passed into the application.