public class CalibrationSimulator extends GenericSimulator
DropTarget, LostGuiding
, LostTarget, NoCalibrationUnit, NoFlatFieldSwitch,
NoGuiding, and RegainedGuiding. LostGuiding may only
be issued if adapter is in guiding mode, after a StartGuidingAdapter
and guiding is not already lost. LostTarget may be issued if adapter
is in guiding mode, regardless if it lost guiding, but only if target was not
already lost. DropTarget is issued in a lost-guiding or lost-target
situation. RegainedGuiding is only issued after guiding or target has
been lost. The other three errors may be issued at any time. To allow testing
of the call-back query (if the adapter needs the telescope azimuth), a
special error is introduced RequestTelescopePosition. This error is
scheduled out of the command cycle and captured in the isAllowed(stella.ErrorEvent)
method in a way that during guiding the remote paramters are queried and the
values retrieved are stored locally (for status commands). For this error,
isAllowed(stella.ErrorEvent) always returns false, because it is not a regular
error that should be thrown at any time.AcquireAdapter, CalibrationOnAdapter,
CalibrationOffAdapter, ExposeAdapter, FindAdapter,
FlatFieldOnAdapter, FlatFieldOffAdapter, InitAdapter,
ParkAdapter, SelectFilterAdapter, StartGuidingAdapter
, StopGuidingAdapter, and StatusAdapter commands. See
processCommand(stella.CommandEvent, int) for details.CommandEvent.getExpectedAcknowledgeNumber().ReceiverTorso.CommandHandlerPropertyResources.Load, PropertyResources.URLResource| Modifier and Type | Field and Description |
|---|---|
private static String[] |
ACKTIMES
The acknowledge times, same order as commands.
|
private boolean |
calibrationdead
True, if a no-calibration error was thrown.
|
private static String[] |
COMMANDS
The known command types, used for acknowledges and true dones.
|
private static String |
DEFERRORCLASSES
The default error list.
|
private static String |
DEFERRORPROBABILITIES
The default error probabilities.
|
private static double |
DEFFAILCALIBRATION
The default error list.
|
private static double |
DEFFAILFILTERPRESENT
The default error list.
|
private static double |
DEFFAILFILTERSTUCK
The default error list.
|
private static double |
DEFFAILFLATFIELD
The default error list.
|
private static double |
DEFFAILMOVE
The default error list.
|
private static String |
DEFQUARTZSWITCH
The default name of the simulated quartz switch .
|
private static String |
DEFTHARSWITCH
The default name of the simulated thar switch .
|
private static String[] |
DIVERT
The divergence factors for the simulation times of the commands.
|
private static String[] |
DONETIMES
The actual simulation times for the commands.
|
private boolean |
flatfielddead
True, if a no-flat-field error was thrown.
|
private static String |
HOME
The resevered position of the stage for ThAr.
|
static String |
KEY_FAILCALIBRATION
The key to the failure probability of the calibration unit.
|
static String |
KEY_FAILFILTERPRESENT
The probability of requesting a non-present guiding filter.
|
static String |
KEY_FAILFILTERSTUCK
The probability of a stuck filter wheel.
|
static String |
KEY_FAILFLATFIELD
The key to the failure probability of the flat field lamp.
|
static String |
KEY_FAILMOVE
The key to the failure probability of the initialization process.
|
static String |
KEY_QUARTZSWITCH
The key to the trigger naming calibration-light.
|
static String |
KEY_THARSWITCH
The key to the trigger naming calibration-light.
|
private ErrorEvent |
lasterror
The last error occured.
|
private static String |
QUARTZ
The resevered position of the stage for ThAr.
|
private Class |
stage
The position of the linear stage.
|
private static String |
THAR
The resevered position of the stage for ThAr.
|
ACKNOWLEDGEPREFIX, DEFUNIQUE, DEVIATEPREFIX, DONEPREFIX, KEY_ACCELERATE, KEY_ERRORCLASSES, KEY_ERRORINTERVAL, KEY_ERRORPROBABILITIES, KEY_GENERICACKNOWLEDGE, KEY_GENERICDEVIATE, KEY_GENERICDONE, KEY_SET, KEY_UNIQUE, randomKEY_BIND, KEY_BINDNAME, KEY_COMMANDCASTER, KEY_ERRORCOOLKEY_ALIVE, KEY_EXPORTPORT, KEY_INIT, KEY_LISTENERNAME, KEY_RETRY, KEY_RETRYSLEEP, KEY_SHUTDOWNDELAYKEY_NOINITONCREATE, POSTFIX_ALPHABET, POSTFIX_BYTES, POSTFIX_DIR, POSTFIX_EXT, POSTFIX_FILE, POSTFIX_LIST, POSTFIX_MODTIME, POSTFIX_URLKEY_LISTSEPARATOR, KEY_MAPKEYVALUECHAR, KEY_MAPSEPARATORNAMING_EXTENSIONNAMING_EXTENSIONKEY_INITDEPTHKEY_URLRESOURCES, KEY_URLUSECONFIG, KEY_URLUSECURRENT, KEY_URLUSEHOMECONFIG, KEY_CLASS| Constructor and Description |
|---|
CalibrationSimulator(Map prop)
Constructs a new adapter simulator.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
accepts(CommandEvent ce)
Returns true if this receiver accepts commands of the type handed over as
an argument.
|
protected long |
getCompletionTime(CommandEvent ce,
int acknr)
Returns the completion time.
|
protected ErrorEvent |
getLastError()
Returns the last error that occured during command processing.
|
protected long |
getSimulationTime(CommandEvent ce,
int acknr)
Returns the simulation time.
|
private void |
init5()
We delay the initialization of the remote values to the last stages of
the intialization to avoid blocking.
|
void |
initStep(int curstep)
We delay the initialization of the remote values to the last stages of
the intialization to avoid blocking.
|
protected boolean |
isAllowed(ErrorEvent ee)
Returns true if the error handed over is allowed.
|
static void |
main(String[] arg)
Constructs a new adapter simulator.
|
private static Map |
myAugment(Map def)
Augmentes the properties for the acknowledge, done, and divert times.
|
protected boolean |
processCommand(CommandEvent ce,
int acknr)
Simulates execution of the adapter commands.
|
augmentProperties, exit, formatWithGlobals, getAcknowledgeNumber, getNoisyTime, getParameter, getParameterByKey, getParameterByName, getParameterCluster, getParameterValueByKey, getParameterValueByName, getTrigger, getUnique, getValue, setParameter, setParameterValueByKey, setParameterValueByName, setTrigger, setValue, shutdown, sleepFor, statusSimulatoraddRmiAcknowledgeListener, addRmiDoneListener, bindDefault, containsRemoteProperty, deregisterAtCaster, equals, getLastError, getRemoteProperties, getRemoteProperty, hashCode, notifyAcknowledgeListener, notifyDoneListener, registerAtCaster, removeRmiAcknowledgeListener, removeRmiDoneListener, rescanned, rmiCommand, sendAllPrematureDone, sendPrematureDone, setLastError, setRemoteProperty, toString, unbindDefaultaddErrorListener, addRmiErrorListener, bindToRegistry, getBindName, isValid, notifyErrorListener, removeErrorListener, removeRmiErrorListener, sendError, sendError, sendError, sendStatus, sendStatus, sendStatus, unbindFromRegistryallBound, blockBinding, blockBinding, disconnect, getIP, getListenerName, isConnected, listenerName, releaseBinding, releaseBinding, startBinding, startBindingclone, createFrom, createFrom, createFrom, createInstance, getApplet, getAsResources, getLocate, getPropertiesToKey, getPropertiesToKey, getResource, getResourceAsStream, getResourceFromKey, getResources, hasLocalURLs, initProperties, keyCreate, keyCreate, reload, setAppletaugment, augment, augment, augment, augment, defaultBoolean, defaultChar, defaultDouble, defaultFloat, defaultInt, defaultLong, defaultObject, defaultObject, defaultProperties, defaultProperty, getAsBoolean, getAsChar, getAsDouble, getAsEnums, getAsFloat, getAsInt, getAsList, getAsLong, getAsMap, getAsMap, getAsObject, getAsObject, getProperties, getProperty, has, isNew, parseObject, parseObject, reload, removeProperty, requires, setObject, setProperties, setProperty, stringPropertiesfinalize, getClass, notify, notifyAll, wait, wait, waitbindToRegistry, isValid, unbindFromRegistryaddErrorListener, removeErrorListenergetListenerNamedisconnect, isConnecteddefaultBoolean, defaultChar, defaultDouble, defaultFloat, defaultInt, defaultLong, defaultObject, defaultObject, defaultProperties, defaultProperty, getAsBoolean, getAsChar, getAsDouble, getAsFloat, getAsInt, getAsList, getAsLong, getAsMap, getAsObject, getAsObject, getProperties, getProperty, has, parseObject, removeProperty, setObject, setProperty, stringPropertiespublic static final String KEY_THARSWITCH
public static final String KEY_QUARTZSWITCH
public static final String KEY_FAILCALIBRATION
public static final String KEY_FAILFILTERPRESENT
public static final String KEY_FAILFILTERSTUCK
public static final String KEY_FAILFLATFIELD
public static final String KEY_FAILMOVE
private static final String DEFTHARSWITCH
private static final String DEFQUARTZSWITCH
private static final double DEFFAILCALIBRATION
private static final double DEFFAILFILTERPRESENT
private static final double DEFFAILFILTERSTUCK
private static final double DEFFAILFLATFIELD
private static final double DEFFAILMOVE
private static final String THAR
private static final String QUARTZ
private static final String HOME
private static final String DEFERRORCLASSES
private static final String DEFERRORPROBABILITIES
private static final String[] COMMANDS
private static final String[] ACKTIMES
private static final String[] DONETIMES
private static final String[] DIVERT
private Class stage
private ErrorEvent lasterror
private boolean calibrationdead
private boolean flatfielddead
public CalibrationSimulator(Map prop) throws RemoteException
processCommand(stella.CommandEvent, int).RemoteExceptionpublic void initStep(int curstep)
throws InitException
initStep in interface StepInitializableinitStep in class GenericSimulatorInitExceptionprivate void init5()
private static Map myAugment(Map def)
public boolean accepts(CommandEvent ce) throws RemoteException
AdapterCommands.RemoteExceptionprotected boolean isAllowed(ErrorEvent ee)
NoCalibrationUnit, NoFlatFieldSwitch, and
NoGuiding errors are always allowed.LostGuiding error is allowed, if the adapter is guiding (
#guide, and if guiding or the target have not already been lost (
#lostguide, #losttarget).LostTarget error is allowed, if the adapter is guiding (
#guide, and if the target has not been lost. Different to
LostGuiding it is also allowed if the guiding has been lost.DropTarget is allowed only if at least the guiding or, this
reflects the more realistic case, the the target was lost. In the
simulator, no distinction is made between allowence after lost guiding or
lost target.RegainedGuiding is allowed only if the target or the guiding
has been lost.RequestTelescopePosition, which is a error
only used during simulation, will always return false (so that it is not
transported to an error handler, but will spark a remote-retrieval of the
telescope position.isAllowed in class GenericSimulatorprotected ErrorEvent getLastError()
protected long getCompletionTime(CommandEvent ce, int acknr)
ExposeAdapter
command and the acknowledge number is zero, add the distorted exposure
time carried by the command to the value returned by the parental method.getCompletionTime in class GenericSimulatorce - The command to process.acknr - The number of the acknowledge that will be sent back.protected long getSimulationTime(CommandEvent ce, int acknr)
ExposeAdapter
command and the acknowledge number is zero, add the distorted exposure
time carried by the command to the value returned by the parental method.getSimulationTime in class GenericSimulatorprotected boolean processCommand(CommandEvent ce, int acknr)
AcquireAdapter: This command is issued when the adapter
should acquire a target star. It therefore compares a list of
field-of-view stars provided with the FindAdapter command with
the current field-of-view obtained by the guiding ccd. Failure is
possible in quite a bunch of ways: A NoGuiding error might be
thrown, #KEY_FAILGUIDE. This error is also command-cycle
independent. Additionally, a NoStarOnAcquire error might be
thrown #KEY_FAILSTAR. This error might occur rather frequently,
it is an indication of cloud coverage. Then, an
AmbiguousStarPattern might occur if the star constellation found
does not coincide with the field-of-view stars transfered in the
FindAdapter command, probability #KEY_FAILAMBIGUOUS. Last
but not least, a TargetStarMagnitude status event might be issued
(#KEY_MAGNITUDE), if the target star was found, but its
brightness is well of the expected value. This status event is intended
for identifying acquiring difficulties and will not block target
acquisition.CalibrationOnAdapter: Fails with KEY_FAILCALIBRATION
to a NoCalibrationUnit. This error may also occur out-of-cycle.
CalibrationOffAdapter: Never fails.ExposeAdapter: Sends back a AdapterFwhm status
message. To allow focus groups to be tested, the current focus position
is queried via RMI in the #focus value. Depending on
#KEY_FOCUSOPTIMUM and #KEY_FOCUSFWHM together with
#KEY_FOCUSDIVERT an artificial FWHM of the star image is
calculated and sent back to the SCS.FindAdapter Never fails.FlatFieldOnAdapter Fails with KEY_FAILFLATFIELD to a
NoFlatFieldSwitch. This error may also occur out-of-cycle.FlatFieldOffAdapter never fails.InitAdapter Fails with a #KEY_FAILINIT probability to
a CannotInitAdapter.ParkAdapter never fails.SelectFilterAdapter Fails with a
KEY_FAILFILTERPRESENT to a NoSuchFilter. Additionally
can throw a NoFilterWheel (KEY_FAILFILTERSTUCK).StartGuidingAdapter Fails with #KEY_FAILGUIDE to a
NoStarOnAcquire.StopGuidingAdapter never fails.StatusAdapter sends back an artificial status command, as
right now no parameter is coupled to this status event.processCommand in class GenericSimulatorpublic static void main(String[] arg) throws RemoteException
RemoteException