36 addState<Statechart_Robot>(
"RobotControl");
78 RobotControl::createStaticInstance()
84 assert(stateList.size() > 0);
85 int robotFunctionalStateId = stateList.begin()->first;
89 const std::string proxyName = getProperty<std::string>(
"XMLStatechartProfile").getValue() +
90 getProperty<std::string>(
"proxyName").getValue();
91 const std::string stateName = getProperty<std::string>(
"stateName").getValue();
94 if (!proxyName.empty() && !stateName.empty())
106 state->getObjectScheduler()->waitForObjectState(eManagedIceObjectStarted, 5000);
107 EventPtr evt = createEvent<EvLoadScenario>();
108 evt->eventReceiverName =
"toAll";
109 evt->properties[
"proxyName"] =
new SingleVariant(proxyName);
110 evt->properties[
"stateName"] =
new SingleVariant(stateName);
124 StateBasePtr stateFunctional = setInitState(addState<StateRobotControl>(
"Functional"));
129 addTransition<Failure>(stateFunctional, stateFailure);
130 addTransition<EvStopRobot>(stateFunctional, stateStopped);
131 addTransition<EvStartRobot>(stateStopped, stateFunctional);
132 addTransition<EvStartRobot>(stateFailure, stateFunctional);
141 addState<RobotPreInitialized>(
"RobotPreInitialized");
142 StateBasePtr stateRobotInitialized = addState<State>(
"RobotInitialized");
143 StateBasePtr stateScenarioRunning = addDynamicRemoteState(
"DynamicScenarioState");
144 StateBasePtr stateFatalError = addState<FailureState>(
"FatalError");
146 setInitState(stateRobotInitialized);
148 addTransition<EvInit>(stateIdling, stateRobotPreInitialized);
149 addTransition<EvInitialized>(stateRobotPreInitialized, stateRobotInitialized);
150 addTransition<EvLoadScenario>(stateRobotInitialized,
151 stateScenarioRunning,
153 addTransition<EvInit>(stateScenarioRunning, stateRobotPreInitialized);
154 addTransition<Success>(stateScenarioRunning, stateRobotInitialized);
157 addTransition<EvLoadingFailed>(stateScenarioRunning, stateFatalError);
158 addTransition<EvConnectionLost>(stateScenarioRunning, stateFatalError);
159 addTransition<EvInitFailed>(stateRobotPreInitialized, stateFatalError);
160 addTransitionFromAllStates<Failure>(stateFatalError);