message_publisher.h
Go to the documentation of this file.
1 
32 #ifndef SBG_ROS_MESSAGE_PUBLISHER_H
33 #define SBG_ROS_MESSAGE_PUBLISHER_H
34 
35 // Project headers
36 #include <config_store.h>
37 #include <message_wrapper.h>
38 
39 namespace sbg
40 {
45 {
46 private:
47 
69 
71  sbg_driver::SbgImuData sbg_imu_message_;
72  sbg_driver::SbgEkfQuat sbg_ekf_quat_message_;
73  sbg_driver::SbgEkfNav sbg_ekf_nav_message_;
74  sbg_driver::SbgEkfEuler sbg_ekf_euler_message_;
75 
84 
86 
88  uint32_t max_messages_;
89  std::string frame_id_;
90 
91  //---------------------------------------------------------------------//
92  //- Private methods -//
93  //---------------------------------------------------------------------//
94 
101  std::string getOutputTopicName(SbgEComMsgId sbg_message_id) const;
102 
111  void initPublisher(ros::NodeHandle& ref_ros_node_handle, SbgEComMsgId sbg_msg_id, SbgEComOutputMode output_conf, const std::string &ref_output_topic);
112 
119  void defineRosStandardPublishers(ros::NodeHandle& ref_ros_node_handle, bool odom_enable, bool enu_enable);
120 
126  void publishIMUData(const SbgBinaryLogData &ref_sbg_log);
127 
131  void processRosVelMessage();
132 
136  void processRosImuMessage();
137 
141  void processRosOdoMessage();
142 
148  void publishMagData(const SbgBinaryLogData &ref_sbg_log);
149 
155  void publishFluidPressureData(const SbgBinaryLogData &ref_sbg_log);
156 
162  void publishEkfNavigationData(const SbgBinaryLogData &ref_sbg_log);
163 
169  void publishUtcData(const SbgBinaryLogData &ref_sbg_log);
170 
177  void publishGpsPosData(const SbgBinaryLogData &ref_sbg_log, SbgEComMsgId sbg_msg_id);
178 
179 public:
180 
181  //---------------------------------------------------------------------//
182  //- Constructor -//
183  //---------------------------------------------------------------------//
184 
189 
190  //---------------------------------------------------------------------//
191  //- Operations -//
192  //---------------------------------------------------------------------//
193 
200  void initPublishers(ros::NodeHandle& ref_ros_node_handle, const ConfigStore &ref_config_store);
201 
209  void publish(SbgEComClass sbg_msg_class, SbgEComMsgId sbg_msg_id, const SbgBinaryLogData &ref_sbg_log);
210 };
211 }
212 
213 #endif // SBG_ROS_MESSAGE_PUBLISHER_H
sbg::MessagePublisher::message_wrapper_
MessageWrapper message_wrapper_
Definition: message_publisher.h:87
sbg::MessagePublisher::sbg_event_B_pub_
ros::Publisher sbg_event_B_pub_
Definition: message_publisher.h:63
sbg::MessagePublisher::sbg_ship_motion_pub_
ros::Publisher sbg_ship_motion_pub_
Definition: message_publisher.h:54
sbg::MessagePublisher::sbg_event_A_pub_
ros::Publisher sbg_event_A_pub_
Definition: message_publisher.h:62
ros::Publisher
sbg::MessagePublisher::sbg_imu_message_
sbg_driver::SbgImuData sbg_imu_message_
Definition: message_publisher.h:71
sbg::MessagePublisher::nmea_gga_pub_
ros::Publisher nmea_gga_pub_
Definition: message_publisher.h:85
sbg::MessagePublisher::sbg_ekf_nav_message_
sbg_driver::SbgEkfNav sbg_ekf_nav_message_
Definition: message_publisher.h:73
sbg::MessagePublisher::sbg_odo_vel_pub_
ros::Publisher sbg_odo_vel_pub_
Definition: message_publisher.h:61
sbg::MessagePublisher::sbg_ekf_quat_message_
sbg_driver::SbgEkfQuat sbg_ekf_quat_message_
Definition: message_publisher.h:72
sbg::MessagePublisher::sbg_mag_pub_
ros::Publisher sbg_mag_pub_
Definition: message_publisher.h:55
sbg::MessagePublisher::sbg_imu_short_pub_
ros::Publisher sbg_imu_short_pub_
Definition: message_publisher.h:67
sbg::MessagePublisher::getOutputTopicName
std::string getOutputTopicName(SbgEComMsgId sbg_message_id) const
Definition: message_publisher.cpp:21
sbg::MessagePublisher::sbg_gps_vel_pub_
ros::Publisher sbg_gps_vel_pub_
Definition: message_publisher.h:57
SbgEComOutputMode
enum _SbgEComOutputMode SbgEComOutputMode
sbg::MessagePublisher::processRosVelMessage
void processRosVelMessage()
Definition: message_publisher.cpp:321
sbg::MessagePublisher::sbg_utc_time_pub_
ros::Publisher sbg_utc_time_pub_
Definition: message_publisher.h:49
sbg::MessagePublisher::fluid_pub_
ros::Publisher fluid_pub_
Definition: message_publisher.h:78
sbg::MessagePublisher::publishIMUData
void publishIMUData(const SbgBinaryLogData &ref_sbg_log)
Definition: message_publisher.cpp:304
sbg::MessagePublisher::temp_pub_
ros::Publisher temp_pub_
Definition: message_publisher.h:76
sbg::MessagePublisher::sbg_gps_pos_pub_
ros::Publisher sbg_gps_pos_pub_
Definition: message_publisher.h:58
sbg::MessagePublisher::publishMagData
void publishMagData(const SbgBinaryLogData &ref_sbg_log)
Definition: message_publisher.cpp:378
sbg::MessagePublisher::processRosImuMessage
void processRosImuMessage()
Definition: message_publisher.cpp:336
sbg::MessagePublisher::sbg_event_E_pub_
ros::Publisher sbg_event_E_pub_
Definition: message_publisher.h:66
sbg::MessagePublisher::max_messages_
uint32_t max_messages_
Definition: message_publisher.h:88
sbg::MessagePublisher::velocity_pub_
ros::Publisher velocity_pub_
Definition: message_publisher.h:80
sbg::ConfigStore
Definition: config_store.h:60
message_wrapper.h
Handle creation of messages.
sbg::MessagePublisher
Definition: message_publisher.h:44
sbg::MessagePublisher::sbg_event_C_pub_
ros::Publisher sbg_event_C_pub_
Definition: message_publisher.h:64
sbg::MessagePublisher::publishEkfNavigationData
void publishEkfNavigationData(const SbgBinaryLogData &ref_sbg_log)
Definition: message_publisher.cpp:408
sbg::MessagePublisher::MessagePublisher
MessagePublisher()
Definition: message_publisher.cpp:12
sbg::MessagePublisher::publish
void publish(SbgEComClass sbg_msg_class, SbgEComMsgId sbg_msg_id, const SbgBinaryLogData &ref_sbg_log)
Definition: message_publisher.cpp:507
sbg::MessagePublisher::sbg_air_data_pub_
ros::Publisher sbg_air_data_pub_
Definition: message_publisher.h:68
sbg::MessagePublisher::sbg_gps_raw_pub_
ros::Publisher sbg_gps_raw_pub_
Definition: message_publisher.h:60
sbg::MessagePublisher::nav_sat_fix_pub_
ros::Publisher nav_sat_fix_pub_
Definition: message_publisher.h:82
sbg::MessagePublisher::sbg_mag_calib_pub_
ros::Publisher sbg_mag_calib_pub_
Definition: message_publisher.h:56
sbg::MessagePublisher::sbg_event_D_pub_
ros::Publisher sbg_event_D_pub_
Definition: message_publisher.h:65
SbgEComClass
enum _SbgEComClass SbgEComClass
sbg::MessagePublisher::imu_pub_
ros::Publisher imu_pub_
Definition: message_publisher.h:70
sbg::MessagePublisher::publishUtcData
void publishUtcData(const SbgBinaryLogData &ref_sbg_log)
Definition: message_publisher.cpp:423
sbg::MessagePublisher::initPublisher
void initPublisher(ros::NodeHandle &ref_ros_node_handle, SbgEComMsgId sbg_msg_id, SbgEComOutputMode output_conf, const std::string &ref_output_topic)
Definition: message_publisher.cpp:100
sbg::MessagePublisher::pos_ecef_pub_
ros::Publisher pos_ecef_pub_
Definition: message_publisher.h:79
_SbgBinaryLogData
This file is used to parse received binary logs.
Definition: sbgEComBinaryLogs.h:49
sbg::MessagePublisher::frame_id_
std::string frame_id_
Definition: message_publisher.h:89
sbg::MessagePublisher::defineRosStandardPublishers
void defineRosStandardPublishers(ros::NodeHandle &ref_ros_node_handle, bool odom_enable, bool enu_enable)
Definition: message_publisher.cpp:203
sbg::MessagePublisher::sbg_ekf_ruler_pub_
ros::Publisher sbg_ekf_ruler_pub_
Definition: message_publisher.h:51
sbg::MessagePublisher::publishGpsPosData
void publishGpsPosData(const SbgBinaryLogData &ref_sbg_log, SbgEComMsgId sbg_msg_id)
Definition: message_publisher.cpp:442
sbg::MessagePublisher::sbg_ekf_quat_pub_
ros::Publisher sbg_ekf_quat_pub_
Definition: message_publisher.h:52
sbg::MessagePublisher::sbg_gps_hdt_pub_
ros::Publisher sbg_gps_hdt_pub_
Definition: message_publisher.h:59
sbg::MessagePublisher::sbg_status_pub_
ros::Publisher sbg_status_pub_
Definition: message_publisher.h:48
sbg::MessagePublisher::mag_pub_
ros::Publisher mag_pub_
Definition: message_publisher.h:77
sbg::MessagePublisher::odometry_pub_
ros::Publisher odometry_pub_
Definition: message_publisher.h:83
sbg::MessagePublisher::sbg_ekf_nav_pub_
ros::Publisher sbg_ekf_nav_pub_
Definition: message_publisher.h:53
sbg::MessagePublisher::processRosOdoMessage
void processRosOdoMessage()
Definition: message_publisher.cpp:347
sbg
Definition: config_applier.h:45
sbg::MessagePublisher::sbg_ekf_euler_message_
sbg_driver::SbgEkfEuler sbg_ekf_euler_message_
Definition: message_publisher.h:74
SbgEComMsgId
uint8_t SbgEComMsgId
Definition: sbgEComIds.h:289
sbg::MessagePublisher::publishFluidPressureData
void publishFluidPressureData(const SbgBinaryLogData &ref_sbg_log)
Definition: message_publisher.cpp:393
sbg::MessagePublisher::initPublishers
void initPublishers(ros::NodeHandle &ref_ros_node_handle, const ConfigStore &ref_config_store)
Definition: message_publisher.cpp:472
sbg::MessagePublisher::sbg_imu_data_pub_
ros::Publisher sbg_imu_data_pub_
Definition: message_publisher.h:50
sbg::MessagePublisher::utc_reference_pub_
ros::Publisher utc_reference_pub_
Definition: message_publisher.h:81
config_store.h
Class to handle the device configuration.
sbg::MessageWrapper
Definition: message_wrapper.h:87
ros::NodeHandle


sbg_driver
Author(s): SBG Systems
autogenerated on Fri Oct 11 2024 02:13:40