29template <
typename ClientType>
55 template <
typename TOrthogonal,
typename TSourceObject>
63 "[CbDefaultGenericSensorBehavior] Connecting to components for client type '%s'",
73 "[CbDefaultGenericSensorBehavior] Failed to get CpTopicSubscriber component!");
89 getLogger(),
"[CbDefaultGenericSensorBehavior] Connected to subscriber component");
106 "[CbDefaultGenericSensorBehavior] Connected to timeout component (watchdog active)");
109 catch (
const std::exception & e)
113 "[CbDefaultGenericSensorBehavior] Timeout component not found (watchdog disabled): %s",
120 template <
typename EvType>
124 getLogger(),
"[CbDefaultGenericSensorBehavior] Propagating message event: %s",
127 auto event =
new EvType();
128 event->msgData = msg;
133 template <
typename EvType>
137 getLogger(),
"[CbDefaultGenericSensorBehavior] Propagating timeout event: %s",
146 getLogger(),
"[CbDefaultGenericSensorBehavior] onEntry. Requires client of type '%s'",
159 "[CbDefaultGenericSensorBehavior] Sensor client behavior needs a client of type: "
166 RCLCPP_INFO(
getLogger(),
"[CbDefaultGenericSensorBehavior] Sensor behavior initialized");
170 void onExit()
override { RCLCPP_INFO(
getLogger(),
"[CbDefaultGenericSensorBehavior] onExit"); }
smacc2::client_core_components::CpTopicSubscriber< TMessageType > * subscriberComponent_
void propagateTimeoutEvent()
virtual void onMessageCallback(const TMessageType &)
static std::string getEventLabel()
void propagateMessageEvent(const TMessageType &msg)
ClientType::TMessageType TMessageType
CbDefaultGenericSensorBehavior()
void onStateOrthogonalAllocation()
cl_generic_sensor::components::CpMessageTimeout< TMessageType > * timeoutComponent_
std::function< void()> deferredComponentConnection
boost::signals2::connection onMessageTimeout(void(T::*callback)(), T *object)
virtual rclcpp::Logger getLogger() const
void requiresClient(SmaccClientType *&storage)
void requiresComponent(SmaccComponentType *&storage, ComponentRequirement requirementType=ComponentRequirement::SOFT)
boost::signals2::connection onMessageReceived(void(T::*callback)(const MessageType &), T *object)
boost::signals2::connection onFirstMessageReceived(void(T::*callback)(const MessageType &), T *object)
std::string demangleSymbol()