Go to the documentation of this file.
56 #ifndef __SICK_GENERIC_CALLBACK_H_INCLUDED
57 #define __SICK_GENERIC_CALLBACK_H_INCLUDED
59 #include <condition_variable>
68 #if __ROS_VERSION == 2 // ROS-2 (Linux or Windows)
69 #include <sick_scan_xd/msg/sick_ldmrs_object_array.hpp>
164 std::list<callbackFunctionPtr> listeners =
getListener(handle);
165 for(
typename std::list<callbackFunctionPtr>::iterator iter_listener = listeners.begin(); iter_listener != listeners.end(); iter_listener++)
169 (*iter_listener)(handle,
msg);
176 std::vector<HandleType> handle_list;
179 for(
typename std::map<HandleType, std::list<callbackFunctionPtr>>::iterator iter_listeners =
m_listeners.begin(); iter_listeners !=
m_listeners.end(); iter_listeners++)
180 handle_list.push_back(iter_listeners->first);
182 for(
int n = 0; n < handle_list.size(); n++)
191 std::list<callbackFunctionPtr> & listeners =
m_listeners[handle];
192 for(
typename std::list<callbackFunctionPtr>::iterator iter_listener = listeners.begin(); iter_listener != listeners.end(); )
194 if (*iter_listener == listener)
196 iter_listener = listeners.erase(iter_listener);
210 std::list<callbackFunctionPtr> & listeners =
m_listeners[handle];
211 for(
typename std::list<callbackFunctionPtr>::iterator iter_listener = listeners.begin(); iter_listener != listeners.end(); iter_listener++)
213 if (*iter_listener == listener)
250 uint64_t timeout_microsec = std::max<uint64_t>((uint64_t)(1), (uint64_t)(timeout_sec * 1.0e6));
274 (*iter_handler)->message_callback(
node,
msg);
290 if (*iter_handler == handler)
303 (*iter_handler)->signal_shutdown();
320 ROS_INFO_STREAM(
"SickScanApiWaitEventHandler::message_callback(): message recceived");
352 #endif // __SICK_GENERIC_CALLBACK_H_INCLUDED
void(* NAV350mNPOSDataCallback)(rosNodePtr handle, const NAV350mNPOSData *msg)
void notifyListener(const MsgType *msg)
SickWaitForMessageHandler< rosNodePtr, ros_visualization_msgs::MarkerArray > WaitForVisualizationMarkerMessageHandler
std::mutex m_listeners_mutex
::sensor_msgs::Imu_< std::allocator< void > > Imu
PointCloud2withEcho(const ros_sensor_msgs::PointCloud2 *msg, int32_t _num_echos, int32_t _segment_idx, const std::string &_topic)
void removeNavPoseLandmarkListener(rosNodePtr handle, NAV350mNPOSDataCallback listener)
void notifyLdmrsObjectArrayListener(rosNodePtr handle, const sick_scan_msg::SickLdmrsObjectArray *msg)
void notifyLIDoutputstateListener(rosNodePtr handle, const sick_scan_msg::LIDoutputstateMsg *msg)
void removeLIDoutputstateListener(rosNodePtr handle, LIDoutputstateCallback listener)
bool isImuListenerRegistered(rosNodePtr handle, ImuCallback listener)
::sensor_msgs::PointCloud2_< std::allocator< void > > PointCloud2
void removePolarPointcloudListener(rosNodePtr handle, PointCloud2Callback listener)
void addVisualizationMarkerListener(rosNodePtr handle, VisualizationMarkerCallback listener)
bool isLdmrsObjectArrayListenerRegistered(rosNodePtr handle, SickLdmrsObjectArrayCallback listener)
void notifyPolarPointcloudListener(rosNodePtr handle, const sick_scan_xd::PointCloud2withEcho *msg)
void notifyImuListener(rosNodePtr handle, const ros_sensor_msgs::Imu *msg)
void removeLFErecListener(rosNodePtr handle, LFErecCallback listener)
void removeVisualizationMarkerListener(rosNodePtr handle, VisualizationMarkerCallback listener)
SickWaitForMessageHandler< rosNodePtr, sick_scan_xd::PointCloud2withEcho > WaitForPolarPointCloudMessageHandler
void addRadarScanListener(rosNodePtr handle, RadarScanCallback listener)
::sick_scan_xd::SickLdmrsObjectArray_< std::allocator< void > > SickLdmrsObjectArray
void addLIDoutputstateListener(rosNodePtr handle, LIDoutputstateCallback listener)
::sick_scan_xd::LFErecMsg_< std::allocator< void > > LFErecMsg
bool isListenerRegistered(HandleType handle, callbackFunctionPtr listener)
void removeListener(HandleType handle, callbackFunctionPtr listener)
void addLFErecListener(rosNodePtr handle, LFErecCallback listener)
void removeRadarScanListener(rosNodePtr handle, RadarScanCallback listener)
void(* PointCloud2Callback)(rosNodePtr handle, const PointCloud2withEcho *msg)
void notifyVisualizationMarkerListener(rosNodePtr handle, const ros_visualization_msgs::MarkerArray *msg)
SickWaitForMessageHandler< rosNodePtr, sick_scan_xd::NAV350mNPOSData > WaitForNAVPOSDataMessageHandler
#define ROS_INFO_STREAM(...)
void notifyListener(HandleType handle, const MsgType *msg)
bool isNavPoseLandmarkListenerRegistered(rosNodePtr handle, NAV350mNPOSDataCallback listener)
void(* LFErecCallback)(rosNodePtr handle, const sick_scan_msg::LFErecMsg *msg)
void removeLdmrsObjectArrayListener(rosNodePtr handle, SickLdmrsObjectArrayCallback listener)
SickWaitForMessageHandler< rosNodePtr, sick_scan_msg::LFErecMsg > WaitForLFErecMessageHandler
::visualization_msgs::MarkerArray_< std::allocator< void > > MarkerArray
void addImuListener(rosNodePtr handle, ImuCallback listener)
void addCartesianPointcloudListener(rosNodePtr handle, PointCloud2Callback listener)
::sick_scan_xd::LIDoutputstateMsg_< std::allocator< void > > LIDoutputstateMsg
bool isCartesianPointcloudListenerRegistered(rosNodePtr handle, PointCloud2Callback listener)
void notifyLFErecListener(rosNodePtr handle, const sick_scan_msg::LFErecMsg *msg)
SickWaitForMessageHandler< rosNodePtr, ros_sensor_msgs::Imu > WaitForImuMessageHandler
void(* RadarScanCallback)(rosNodePtr handle, const sick_scan_msg::RadarScan *msg)
void(* VisualizationMarkerCallback)(rosNodePtr handle, const ros_visualization_msgs::MarkerArray *msg)
SickWaitForMessageHandler< rosNodePtr, sick_scan_msg::RadarScan > WaitForRadarScanMessageHandler
bool isLIDoutputstateListenerRegistered(rosNodePtr handle, LIDoutputstateCallback listener)
void removeCartesianPointcloudListener(rosNodePtr handle, PointCloud2Callback listener)
std::list< callbackFunctionPtr > getListener(HandleType handle)
void removeImuListener(rosNodePtr handle, ImuCallback listener)
void notifyRadarScanListener(rosNodePtr handle, const sick_scan_msg::RadarScan *msg)
void(* ImuCallback)(rosNodePtr handle, const ros_sensor_msgs::Imu *msg)
bool isRadarScanListenerRegistered(rosNodePtr handle, RadarScanCallback listener)
void(* callbackFunctionPtr)(HandleType handle, const MsgType *msg)
void(* LIDoutputstateCallback)(rosNodePtr handle, const sick_scan_msg::LIDoutputstateMsg *msg)
SickWaitForMessageHandler< rosNodePtr, sick_scan_msg::SickLdmrsObjectArray > WaitForLdmrsObjectArrayMessageHandler
SickWaitForMessageHandler< rosNodePtr, sick_scan_msg::LIDoutputstateMsg > WaitForLIDoutputstateMessageHandler
void addNavPoseLandmarkListener(rosNodePtr handle, NAV350mNPOSDataCallback listener)
::sick_scan_xd::RadarScan_< std::allocator< void > > RadarScan
SickWaitForMessageHandler< rosNodePtr, sick_scan_xd::PointCloud2withEcho > WaitForCartesianPointCloudMessageHandler
void addListener(HandleType handle, callbackFunctionPtr listener)
void notifyCartesianPointcloudListener(rosNodePtr handle, const sick_scan_xd::PointCloud2withEcho *msg)
void addPolarPointcloudListener(rosNodePtr handle, PointCloud2Callback listener)
bool isPolarPointcloudListenerRegistered(rosNodePtr handle, PointCloud2Callback listener)
bool isLFErecListenerRegistered(rosNodePtr handle, LFErecCallback listener)
void(* SickLdmrsObjectArrayCallback)(rosNodePtr handle, const sick_scan_msg::SickLdmrsObjectArray *msg)
bool isVisualizationMarkerListenerRegistered(rosNodePtr handle, VisualizationMarkerCallback listener)
void notifyNavPoseLandmarkListener(rosNodePtr handle, NAV350mNPOSData *msg)
void addLdmrsObjectArrayListener(rosNodePtr handle, SickLdmrsObjectArrayCallback listener)
ros_sensor_msgs::PointCloud2 pointcloud
std::map< HandleType, std::list< callbackFunctionPtr > > m_listeners
sick_scan_xd
Author(s): Michael Lehning
, Jochen Sprickerhof , Martin Günther
autogenerated on Fri Oct 25 2024 02:47:10