30 RCLCPP_INFO_STREAM(
getLogger(),
"TRANSITION RULE TRIGGERED: " << transitionType->getFullName());
35 if (currstateinfo !=
nullptr)
38 for (
auto & transition : currstateinfo->transitions_)
40 std::string transitionCandidateName = transition.transitionTypeInfo->getFullName();
43 if (transitionType->getFullName() == transitionCandidateName)
53 "Transition happened, from current state "
54 << currstateinfo->getDemangledFullName()
55 <<
" but there is not any transitioninfo match available to publish transition: "
56 << transitionType->getFullName());
59 auto stateinfo = currstateinfo;
61 for (
auto & transition : currstateinfo->transitions_)
63 std::string transitionCandidateName = transition.transitionTypeInfo->getFullName();
64 RCLCPP_ERROR_STREAM(
getLogger(),
"- candidate transition: " << transitionCandidateName);
67 RCLCPP_ERROR(
getLogger(),
"Ancestors candidates: ");
69 std::list<const SmaccStateInfo *> ancestors;
70 stateinfo->getAncestors(ancestors);
72 for (
auto & ancestor : ancestors)
74 RCLCPP_ERROR_STREAM(
getLogger(),
" * Ancestor " << ancestor->getDemangledFullName() <<
":");
75 for (
auto & transition : ancestor->transitions_)
77 std::string transitionCandidateName = transition.transitionTypeInfo->getFullName();
78 RCLCPP_ERROR_STREAM(
getLogger(),
"- candidate transition: " << transitionCandidateName);
79 if (transitionType->getFullName() == transitionCandidateName)
89 getLogger(),
"Transition happened, but current state was not set. Transition candidates:");
void publishTransition(const SmaccTransitionInfo &transitionInfo)
rclcpp::Logger getLogger()
virtual std::string getClassName()
virtual ISmaccStateMachine & getStateMachine()=0
const smacc2::introspection::SmaccStateInfo * stateInfo_
void notifyTransitionFromTransitionTypeInfo(std::shared_ptr< smacc2::introspection::TypeInfo > &transitionTypeInfo)
std::shared_ptr< TypeInfo > Ptr
std::string demangleSymbol(const std::string &name)