Class CpLifecycleEventMonitor

Inheritance Relationships

Base Type

  • public smacc2::ISmaccComponent

Class Documentation

class CpLifecycleEventMonitor : public smacc2::ISmaccComponent

Component that monitors ROS2 lifecycle node transition events.

CpLifecycleEventMonitor subscribes to lifecycle transition events and parses them to detect specific transition types. It emits SMACC2 signals for each transition, enabling event-driven responses to lifecycle state changes.

This component handles the complex state-pair matching logic required to distinguish between transition starts, successes, failures, and errors.

Public Functions

CpLifecycleEventMonitor(std::string nodeName)

Constructor with node name.

Parameters:

nodeName – Name of the lifecycle node to monitor

virtual ~CpLifecycleEventMonitor() = default
inline void setOwner(smacc2::ISmaccClient *owner, smacc2::ISmaccStateMachine *stateMachine)

Set the owner client and state machine for this component.

Parameters:
  • owner – Pointer to the owning client

  • stateMachine – Pointer to the state machine

std::optional<lifecycle_msgs::msg::TransitionEvent> getLastTransitionEvent() const

Get the last received transition event.

Returns:

Optional transition event (empty if none received)

void onInitialize() override

Component initialization - creates subscription.

template<typename TOrthogonal, typename TClient>
inline void onStateOrthogonalAllocation()

Configure event posting with orthogonal template parameter This is called from the client’s onStateOrthogonalAllocation to set up type-safe event posting.

Public Members

smacc2::SmaccSignal<void()> onTransitionCreate_
smacc2::SmaccSignal<void()> onTransitionConfigure_
smacc2::SmaccSignal<void()> onTransitionActivate_
smacc2::SmaccSignal<void()> onTransitionDeactivate_
smacc2::SmaccSignal<void()> onTransitionCleanup_
smacc2::SmaccSignal<void()> onTransitionUnconfiguredShutdown_
smacc2::SmaccSignal<void()> onTransitionInactiveShutdown_
smacc2::SmaccSignal<void()> onTransitionActiveShutdown_
smacc2::SmaccSignal<void()> onTransitionDestroy_
smacc2::SmaccSignal<void()> onTransitionOnConfigureSuccess_
smacc2::SmaccSignal<void()> onTransitionOnConfigureFailure_
smacc2::SmaccSignal<void()> onTransitionOnConfigureError_
smacc2::SmaccSignal<void()> onTransitionOnActivateSuccess_
smacc2::SmaccSignal<void()> onTransitionOnActivateFailure_
smacc2::SmaccSignal<void()> onTransitionOnActivateError_
smacc2::SmaccSignal<void()> onTransitionOnDeactivateSuccess_
smacc2::SmaccSignal<void()> onTransitionOnDeactivateFailure_
smacc2::SmaccSignal<void()> onTransitionOnDeactivateError_
smacc2::SmaccSignal<void()> onTransitionOnCleanupSuccess_
smacc2::SmaccSignal<void()> onTransitionOnCleanupFailure_
smacc2::SmaccSignal<void()> onTransitionOnCleanupError_
smacc2::SmaccSignal<void()> onTransitionOnShutdownSuccess_
smacc2::SmaccSignal<void()> onTransitionOnShutdownFailure_
smacc2::SmaccSignal<void()> onTransitionOnShutdownError_
smacc2::SmaccSignal<void()> onTransitionOnActiveShutdownSuccess_
smacc2::SmaccSignal<void()> onTransitionOnActiveShutdownFailure_
smacc2::SmaccSignal<void()> onTransitionOnActiveShutdownError_
smacc2::SmaccSignal<void()> onTransitionOnErrorSuccess_
smacc2::SmaccSignal<void()> onTransitionOnErrorFailure_
smacc2::SmaccSignal<void()> onTransitionOnErrorError_