This is for testing, when set to true, subactions which are
initiated will never complete, use with extreme caution
and always reset for a live system.
This is the valid list of subactions associated with this
mechanism which may be executed upon the 4MS microprocessor
currently attached to the port Server.
This method allows a sub-action to be cancelled it actually
does nothing to the 4MS but resets the state of the SubAction
to SUBACTIONIDLE so that it may be called again.
This is part of the interface to the SubActions operations
which we are bound to implement, it results in the subaction
being cancelled but in effect does nothing as this action is
completed immediately as it only interacts with the software
controller and not the 4MS itself
This is responsible for casting the input value to the type
dictacted by the FourMSParameterType and then add it to the list
of converted message parameters.
This method will be called when there is an incoming message
from the 4MS and will check if the ACK received corresponds to
the message that was sent from by this message poster.
This is an obligation to the CORBA instrument controller
interface which permits the application to be closed down in a
controlled manner.When the application is requested to close
down, it will take a snapshot of the instrument configuration
before it actually shuts down
This class will be used to take snap shots of the state of the
current instrument configuration which is included in the observing
system which is indicated by the environment variable
INSTRUMENT which is initialised as part of the setup of the
observing system.
This is used to hold a database connection to the WHT OCS
postgres database where the configuration data for the
mechanisms which are to be simulated is held
This is used to hold a database connection to the WHT OCS
postgres database where the configuration data for the
mechanisms which are to be simulated is held
This an active connection to the ICS databas which will be used
to establish the optical qualities of the optical component which is
currently in the optical component wheel
This method will be responsible for going through the
mechanisms that it knows about and then passing on to the
appropriate ER412 software mechanism, the details of the
message so that it can be processed.
This is a hash table which contains the offsets engineering
values for filter positions to the nominal starting position of
1 in the filter management system.
This object will be informed when a message comes in and it
will be it's responsibility to handle the message and
ultimately pass it on to another object which will have the
responsibility of processing the message
This will be used for listening to messages coming in from the
4MS microprocessor and then handing them over to the ER412
message handler for processing.
This operation can be used to convert a filter position to an actual filter name
It is intended that this operation will only be called from a class which is subclassing it as it needs additional
information in order to perform the conversion such as the filter name, mechanism and instrument.
This class will monitor the time of the last communications from
the 4MS module and should no comms be received from the module in
the allocated time, the class will bring this to the attention of
the system by creating an entry in the syslog and also setting a
noticeboard item.
This a precompiled regular expression which will be used to
find the first 4MS message which adheres to ER412 protocol
contained in a string in the input buffer.
This a precompiled regular expression which will be used to
find the first 4MS message which adheres to ER412 protocol
contained in a string in the input buffer.
This class contains the methods necessary to perform conversion for
the parameters associated with different mechanisms and message
types between engineering and logical units.
This returns the details of the current command error should
there be one, the details of the command error is returned by
status calls to the 4MS and the details of the command error
are extracted from the WHTOCS database
This returns the details of the current mechanism error should
there be one, the details of the mechanism error is returned by
status calls to the 4MS and the details of the mechanism error
are extracted from the WHTOCS database
Returns a CORBA reference to the instrument controller
interface associated with the instrument controller which was
specified as part of the argument sequence.
Break down the environment variable INSTRUMENT and then
retrieves from the INSTRUMENTCAMERASTATIONS table in the whtics
database, the names of the instruments which are associated
with those camera stations.
This is an obligation to the CORBA instrument controller
interface which permits a third party to ascertain if the
instrument controller is responding.
This is an obligation to the CORBA instrument controller
interface which permits a third party to ascertain if the
instrument controller is responding.
This conversion method is expected to convert an integer to a hex number to
send out to the 4MS and vice-versa
depending on the direction of the conversion to be applied.
This interface provides a means through which the controller
message dispatcher can send back the details of messages that come
back from the 4MS controller to be processed.
We keep all of the incoming message data buffered so that in
the event of parts of messages being received, we can buffer
them until the rest of the message is received
This is a callback which is used to inform the subaction
initiator subaction completion callback if there was a problem
in the initial transmission of the message to the ER412
receiver.
Informs the subaction initiator that the subaction that he
initiated has completed, it uses the data items returned by the
last subaction initiated by this subclass when reporting that
the subaction has finished.
This is a flag which is record whether or not we have received
the ACK from the message that we sent out to the 4MS
transceiver on initiation of the subaction
This is an exception that is raised when an attempt to look up the details of an instrument in the 4MS database but the
instrument that was specified does not exist.
Interprets the incoming message based on the mechanism
configuration data which has been extracted from the 4MS OCS
database and examines the message in order to to ensure that it
complies with the structure of the message as outlined in the
the database configuration for that particular message
This is the interface that must be implemented by each instrument
controller task which is expecting to transform the raw unconverted
items which come from the status responses from a 4MS.
This method will be called and will result in the application
starting up a listening thread which will be responsible for
listening for input coming back from the 4MS which is attached
to this controller.
When called it starts the listening thread which will result in
the object listening for input from the simulator if we are in
simulation mode or alternatively, from the 4MS portserver.
This is the maximum number of outstanding messages which can be
active at any one point, by this I mean the number of messages
that have been sent by the object which are awaiting
acknowledgement from the intended receiver.
This is a callback which is called when there is a message
coming back from the 4MS which relates to a mechanism which may
have been initiated by a outstanding subaction.
This is a reference to an object which will be responsible for
dispatching the incoming messages to the appropriate object
for providing the semantics associated with the requested action
This class wraps up the syslog classes into a standard method of
accessing the syslog which is applicable to the way that we use the
syslog here at the ING.
This class is a threaded class which will be used to monitor the
input port which will be responsible for piping into an application
data that is coming from an input stream from for example, a 4MS
simulator or from the 4MS itself.
This is a reference to the object that sent the message in the
first instance which will be informed when the message has
either been delivered or not delivered
Describes a single message which is sent from software/simulator
controller and includes methods which will be used to verify the
correct acknowledgments are received, timeouts are executed and
retries are made.
This is the message sequence number of the next message to be
transmitted, this will be used in constructing any responses to
the ER412 protocol transmitter which initiated a response from
the object in the first instance
This is an index into the ExpectedSubactionIncomingMsgTypes
array which details the delivery position number of the next
incoming message from ER412 transmitter
This is a hash table which will be used to store the details of
the conversion routines which will be used when converting
engineering units to logical units and vice-versa.
This is reference to the remote proxy CORBA object which will
be used to access the parameter noticeboard so that we may
store status information that comes back from the 4MS
The purpose of this method will be used to parse the incoming
message buffer looking for the first well formed ER412
compliant message, then to break the message down into it's
constituent parts and return the result to the caller.
Forms a part of the IDL ConfigSnapshot interface and will
result in the application verifying if the current instrument
configuration differs from the previous instrument
configuration which is held in the database.
Forms a part of the IDL ConfigSnapshot interface and will
result in the application verifying if the current instrument
configuration differs from the previous instrument
configuration which is held in the database.
Obligation of the TimerTask interface and is used to
intermittingly check the 4MS message listener to see if we the
4MS has communicated with us in the last timeout period and if
not then we create an alarm in the syslog and set a parameter noticeboard item
This is this classes obligation to implement the timer interface
Any classes that want to inherit from this class and want to use timers
should override this method
This satifies the requirement of the runnable interface as this
object has it's own thread This method is called and results in
the object going into a wait state waiting for input from the
transmitter and subsequently sending the incoming data onto the
message handler.
This operation can be used to convert a position in a
selectable mechanism such as a dekker tray for example to and
from it's engineering value to it's logical value.
Builds a message packet suitable to be sent to the 4MS and then
creates a MessagePoster object which will be responsible for
delivering the message and handling the retries should not ACK
be sent.
If specified by the CORBA client when the subaction sequence
was initiated, a CORBA subaction completion object which will
be informed when the sequence subaction has completed.
This method will be used to set the output port so that the
message poster objects have a reference to a valid file
descriptor upon which to transmit data.
This allows the setting of the message end point ie the
expected values for the source and destination fields in
incoming messages to the software system.
This is an obligation to the CORBA instrument controller
interface which permits the trace level of the application to
be set, in this application there is no different trace
levels enabled.
This is an obligation to the CORBA instrument controller
interface which permits the trace level of the application to
be set, in this application there is no different trace
levels enabled.
In the case that we are using a standard TCP/IP socket to
connect to the ER412 transmitter, we need to know the port
number of the listening socket which we need to open
This object will be used to affect the type conversions which
will be necessary, normally it will be specific to the
instrument which is being controlled and the methods will be
accessed through the reflection interface
This is an subaction which can be used to update the noticeboard
items which hold the details of the optical components for each of
the mechanisms which can hold optical components which are located in
a specified instrument controller system.
Inner class which is used to store the details of how we will
use SQL to access the data asssociated with the optical
components in the selectable mechanisms