#include <actionsApp.hpp>
We override some actions from RAD App because of the more fine-grained control they give. Perhaps could be merged to RAD in the future.
TODO: Make methods of rad::ActionsApp virtual. Currently we violate https://isocpp.org/wiki/faq/strange-inheritance#redefining-nonvirtuals.
◆ ActionsApp() [1/2]
| hlcc::trksim::ActionsApp::ActionsApp |
( |
rad::Application & | appl, |
|
|
ActionMgr & | action_mgr, |
|
|
DataContext & | data ) |
Constructor.
- Parameters
-
| appl | Reference to the Application used to inject internal events. |
| action_mgr | Reference to the ActionMgr used to trigger the re-initialize notification to all ActionGroup and Activity objects when processing the Init request. |
| data | Data shared within the application among actions and activities. |
◆ ~ActionsApp()
| hlcc::trksim::ActionsApp::~ActionsApp |
( |
| ) |
|
|
virtual |
◆ ActionsApp() [2/2]
| hlcc::trksim::ActionsApp::ActionsApp |
( |
const ActionsApp & | | ) |
|
|
delete |
◆ operator=()
Disable copy constructor.
◆ TrsBadHealthGoIdle()
| void hlcc::trksim::ActionsApp::TrsBadHealthGoIdle |
( |
scxml4cpp::Context * | c | ) |
|
Implementation of the TrsBadHealthGoIdle action.
Our SM, when in states "On::Operational::Presetting" or "On::Operational::Tracking", calls this action for a "TrsEvents.HealthBad" event. If SCXML and our stack of tools would support running 2 actions for 1 event, we could define the SM to run actions "ActionsApp.TrsHealth" and "ActionsStopMoving". But instead we run this separate action that combines them into one.
Another note on SM design: With our estimator-driven design, it does not help to add target="On::Operational::Idle" to the "HealthBad" event in states Presetting and Tracking. Without disabling the RA/DEC target (which the stop action does, and we also do here in TrsBadHealthGoIdle), the estimator would immediately produce "EstimatedStateIsTrackingUnexpected" and thus bring the SM back from Idle to Tracking.
- Parameters
-
| [in] | c | Context containing the last event received by the State Machine. |
The documentation for this class was generated from the following files:
- /home/abuild/rpmbuild/BUILD/hlcc-v2.2.0/software/trksim/app/src/include/trksim/actionsApp.hpp
- /home/abuild/rpmbuild/BUILD/hlcc-v2.2.0/software/trksim/app/src/actionsApp.cpp