2005-04-19 19:53:18 +00:00
|
|
|
{
|
2006-03-05 16:26:25 +00:00
|
|
|
GLOBAL = {
|
2007-10-10 21:59:36 +00:00
|
|
|
ENTER = ("setSpeedTo: 0.0", requestDockingCoordinates, "setStateTo: AWAIT_COORDS");
|
|
|
|
EXIT = ();
|
|
|
|
UPDATE = ();
|
|
|
|
};
|
2005-06-08 10:22:59 +00:00
|
|
|
"AWAIT_COORDS" = {
|
2007-10-10 21:59:36 +00:00
|
|
|
"APPROACH" = ("setStateTo: APPROACH");
|
|
|
|
"APPROACH_COORDINATES" = ("setStateTo: GO_TO_COORDS");
|
|
|
|
"BACK_OFF" = ("setStateTo: RETREAT");
|
|
|
|
"HOLD_POSITION" = ("setStateTo: STATIONKEEPING");
|
|
|
|
"DOCKING_ABORTED" = ("setStateTo: ABORT");
|
|
|
|
"TRY_AGAIN_LATER" = ("pauseAI: 30.0", "setStateTo: ABORT");
|
|
|
|
"COLLISION" = ("setStateTo: ABORT");
|
|
|
|
"RESTART_DOCKING" = ("setStateTo: GLOBAL");
|
|
|
|
DOCKED = ("setStateTo: EXIT_SYSTEM");
|
|
|
|
ENTER = ();
|
|
|
|
EXIT = ();
|
|
|
|
UPDATE = ();
|
|
|
|
};
|
2006-03-05 16:26:25 +00:00
|
|
|
STATIONKEEPING = {
|
2007-10-10 21:59:36 +00:00
|
|
|
ENTER = (performIdle, "setSpeedTo: 0.0", "pauseAI: 10.0");
|
|
|
|
EXIT = ();
|
|
|
|
UPDATE = (requestDockingCoordinates, "setStateTo: AWAIT_COORDS");
|
|
|
|
};
|
2006-03-05 16:26:25 +00:00
|
|
|
APPROACH = {
|
2007-10-13 19:24:06 +00:00
|
|
|
ENTER = (recallDockingInstructions, "setSpeedFactorTo: 1.0", performFlyToRangeFromDestination);
|
2007-10-10 21:59:36 +00:00
|
|
|
"DESIRED_RANGE_ACHIEVED" = (requestDockingCoordinates, "setStateTo: AWAIT_COORDS");
|
|
|
|
"DOCKING_ABORTED" = ("setStateTo: ABORT");
|
|
|
|
"COLLISION" = ("setStateTo: ABORT");
|
|
|
|
"RESTART_DOCKING" = ("setStateTo: GLOBAL");
|
|
|
|
EXIT = ();
|
|
|
|
UPDATE = ();
|
|
|
|
};
|
2006-03-05 16:26:25 +00:00
|
|
|
RETREAT = {
|
2007-10-10 21:59:36 +00:00
|
|
|
ENTER = (recallDockingInstructions, "setSpeedTo: 0.0", setDestinationToDockingAbort, performFaceDestination);
|
|
|
|
"FACING_DESTINATION" = ("setSpeedFactorTo: 1.0", "setDesiredRangeTo: 500.0", performFlyToRangeFromDestination);
|
|
|
|
"DESIRED_RANGE_ACHIEVED" = ("setSpeedTo: 0.0", requestDockingCoordinates, "setStateTo: AWAIT_COORDS");
|
|
|
|
"DOCKING_ABORTED" = ("setStateTo: ABORT");
|
|
|
|
"COLLISION" = ("setStateTo: ABORT");
|
|
|
|
"RESTART_DOCKING" = ("setStateTo: GLOBAL");
|
|
|
|
EXIT = ();
|
|
|
|
UPDATE = ();
|
|
|
|
};
|
2005-06-08 10:22:59 +00:00
|
|
|
"GO_TO_COORDS" = {
|
2005-10-02 14:36:08 +00:00
|
|
|
ENTER = (performFaceDestination);
|
2007-10-10 21:59:36 +00:00
|
|
|
FRUSTRATED = ("setSpeedTo: 0.0", performFaceDestination);
|
|
|
|
"FACING_DESTINATION" = (recallDockingInstructions, performFlyToRangeFromDestination);
|
|
|
|
"DESIRED_RANGE_ACHIEVED" = (requestDockingCoordinates, "setStateTo: AWAIT_COORDS");
|
|
|
|
"DOCKING_ABORTED" = ("setStateTo: ABORT");
|
|
|
|
"COLLISION" = ("setStateTo: ABORT");
|
|
|
|
"RESTART_DOCKING" = ("setStateTo: GLOBAL");
|
|
|
|
EXIT = ();
|
2005-06-08 10:22:59 +00:00
|
|
|
UPDATE = ();
|
2007-10-13 19:24:06 +00:00
|
|
|
};
|
2006-03-05 16:26:25 +00:00
|
|
|
ABORT = {
|
2007-10-10 21:59:36 +00:00
|
|
|
ENTER = (abortDocking, "setSpeedTo: 0.0", setDestinationToDockingAbort, "setDesiredRangeTo: 500.0", performFaceDestination);
|
|
|
|
"FACING_DESTINATION" = ("setSpeedFactorTo: 1.0", "setDesiredRangeTo: 500.0", performFlyToRangeFromDestination);
|
|
|
|
EXIT = ();
|
|
|
|
"RESTART_DOCKING" = ("setStateTo: GLOBAL");
|
|
|
|
"REACHED_SAFETY" = (performIdle, "setStateTo: GLOBAL");
|
|
|
|
"DESIRED_RANGE_ACHIEVED" = (performIdle, "setStateTo: GLOBAL");
|
|
|
|
UPDATE = ();
|
|
|
|
};
|
|
|
|
"EXIT_SYSTEM" = {ENTER = (performDocking, exitAI); EXIT = (); UPDATE = (); };
|
2006-03-05 16:26:25 +00:00
|
|
|
}
|