sbg_device.h
Go to the documentation of this file.
1 
32 #ifndef SBG_ROS_SBG_DEVICE_H
33 #define SBG_ROS_SBG_DEVICE_H
34 
35 // Standard headers
36 #include <iostream>
37 #include <map>
38 #include <string>
39 
40 // ROS headers
41 #include <std_srvs/SetBool.h>
42 #include <std_srvs/Trigger.h>
43 #include <rtcm_msgs/Message.h>
44 
45 // Project headers
46 #include <config_applier.h>
47 #include <config_store.h>
48 #include <message_publisher.h>
49 
50 namespace sbg
51 {
55 class SbgDevice
56 {
57 private:
58 
59  //---------------------------------------------------------------------//
60  //- Static members definition -//
61  //---------------------------------------------------------------------//
62 
63  static std::map<SbgEComMagCalibQuality, std::string> g_mag_calib_quality_;
64  static std::map<SbgEComMagCalibConfidence, std::string> g_mag_calib_confidence_;
65  static std::map<SbgEComMagCalibMode, std::string> g_mag_calib_mode_;
66  static std::map<SbgEComMagCalibBandwidth, std::string> g_mag_calib_bandwidth_;
67 
68  //---------------------------------------------------------------------//
69  //- Private variables -//
70  //---------------------------------------------------------------------//
71 
77 
78  uint32_t rate_frequency_;
79 
85 
87 
88  //---------------------------------------------------------------------//
89  //- Private methods -//
90  //---------------------------------------------------------------------//
91 
102  static SbgErrorCode onLogReceivedCallback(SbgEComHandle* p_handle, SbgEComClass msg_class, SbgEComMsgId msg, const SbgBinaryLogData* p_log_data, void* p_user_arg);
103 
111  void onLogReceived(SbgEComClass msg_class, SbgEComMsgId msg, const SbgBinaryLogData& ref_sbg_data);
112 
116  void loadParameters();
117 
123  void connect();
124 
130  void readDeviceInfo();
131 
138  std::string getVersionAsString(uint32 sbg_version_enc) const;
139 
143  void initPublishers();
144 
148  void initSubscribers();
149 
157  void configure();
158 
166  bool processMagCalibration(std_srvs::Trigger::Request& ref_ros_request, std_srvs::Trigger::Response& ref_ros_response);
167 
175  bool saveMagCalibration(std_srvs::Trigger::Request& ref_ros_request, std_srvs::Trigger::Response& ref_ros_response);
176 
182  bool startMagCalibration();
183 
189  bool endMagCalibration();
190 
197 
202 
206  void exportMagCalibrationResults() const;
207 
213  void writeRtcmMessageToDevice(const rtcm_msgs::Message::ConstPtr &msg);
214 
215 public:
216 
217  //---------------------------------------------------------------------//
218  //- Constructor -//
219  //---------------------------------------------------------------------//
220 
226  SbgDevice(ros::NodeHandle& ref_node_handle);
227 
231  ~SbgDevice();
232 
233  //---------------------------------------------------------------------//
234  //- Parameters -//
235  //---------------------------------------------------------------------//
236 
242  uint32_t getUpdateFrequency() const;
243 
244  //---------------------------------------------------------------------//
245  //- Public methods -//
246  //---------------------------------------------------------------------//
247 
254 
259 
263  void periodicHandle();
264 };
265 }
266 
267 #endif // SBG_ROS_SBG_DEVICE_H
sbg::SbgDevice::initPublishers
void initPublishers()
Definition: sbg_device.cpp:202
sbg::SbgDevice::sbg_interface_
SbgInterface sbg_interface_
Definition: sbg_device.h:73
sbg::SbgDevice::ref_node_
ros::NodeHandle & ref_node_
Definition: sbg_device.h:74
sbg::SbgDevice::exportMagCalibrationResults
void exportMagCalibrationResults() const
Definition: sbg_device.cpp:425
sbg::SbgDevice::onLogReceivedCallback
static SbgErrorCode onLogReceivedCallback(SbgEComHandle *p_handle, SbgEComClass msg_class, SbgEComMsgId msg, const SbgBinaryLogData *p_log_data, void *p_user_arg)
Definition: sbg_device.cpp:99
sbg::SbgDevice::initDeviceForReceivingData
void initDeviceForReceivingData()
Definition: sbg_device.cpp:492
sbg::SbgDevice::g_mag_calib_quality_
static std::map< SbgEComMagCalibQuality, std::string > g_mag_calib_quality_
Definition: sbg_device.h:63
sbg::SbgDevice::displayMagCalibrationStatusResult
void displayMagCalibrationStatusResult() const
Definition: sbg_device.cpp:373
sbg::SbgDevice::mag_calib_results_
SbgEComMagCalibResults mag_calib_results_
Definition: sbg_device.h:82
sbg::SbgDevice::onLogReceived
void onLogReceived(SbgEComClass msg_class, SbgEComMsgId msg, const SbgBinaryLogData &ref_sbg_data)
Definition: sbg_device.cpp:113
sbg::SbgDevice::loadParameters
void loadParameters()
Definition: sbg_device.cpp:121
sbg::SbgDevice::calib_save_service_
ros::ServiceServer calib_save_service_
Definition: sbg_device.h:84
sbg::SbgDevice::rtcm_sub_
ros::Subscriber rtcm_sub_
Definition: sbg_device.h:86
ros::ServiceServer
message_publisher.h
Manage publishing of messages from logs.
sbg::SbgDevice::uploadMagCalibrationToDevice
bool uploadMagCalibrationToDevice()
Definition: sbg_device.cpp:345
sbg::ConfigStore
Definition: config_store.h:60
sbg::MessagePublisher
Definition: message_publisher.h:44
sbg::SbgDevice::saveMagCalibration
bool saveMagCalibration(std_srvs::Trigger::Request &ref_ros_request, std_srvs::Trigger::Response &ref_ros_response)
Definition: sbg_device.cpp:269
sbg::SbgDevice::SbgDevice
SbgDevice(ros::NodeHandle &ref_node_handle)
Definition: sbg_device.cpp:60
sbg::SbgDevice::getUpdateFrequency
uint32_t getUpdateFrequency() const
Definition: sbg_device.cpp:483
sbg::SbgDevice::rate_frequency_
uint32_t rate_frequency_
Definition: sbg_device.h:78
sbg::SbgDevice::initDeviceForMagCalibration
void initDeviceForMagCalibration()
Definition: sbg_device.cpp:508
SbgEComClass
enum _SbgEComClass SbgEComClass
sbg::SbgDevice::config_store_
ConfigStore config_store_
Definition: sbg_device.h:76
sbg::SbgDevice::~SbgDevice
~SbgDevice()
Definition: sbg_device.cpp:69
sbg::SbgDevice::message_publisher_
MessagePublisher message_publisher_
Definition: sbg_device.h:75
sbg::SbgDevice::g_mag_calib_bandwidth_
static std::map< SbgEComMagCalibBandwidth, std::string > g_mag_calib_bandwidth_
Definition: sbg_device.h:66
_SbgBinaryLogData
This file is used to parse received binary logs.
Definition: sbgEComBinaryLogs.h:49
sbg::SbgDevice::com_handle_
SbgEComHandle com_handle_
Definition: sbg_device.h:72
sbg::SbgDevice::mag_calibration_ongoing_
bool mag_calibration_ongoing_
Definition: sbg_device.h:80
sbg::SbgDevice::mag_calibration_done_
bool mag_calibration_done_
Definition: sbg_device.h:81
sbg::SbgDevice::g_mag_calib_confidence_
static std::map< SbgEComMagCalibConfidence, std::string > g_mag_calib_confidence_
Definition: sbg_device.h:64
sbg::SbgDevice::readDeviceInfo
void readDeviceInfo()
Definition: sbg_device.cpp:170
sbg::SbgDevice::getVersionAsString
std::string getVersionAsString(uint32 sbg_version_enc) const
Definition: sbg_device.cpp:194
sbg::SbgDevice::g_mag_calib_mode_
static std::map< SbgEComMagCalibMode, std::string > g_mag_calib_mode_
Definition: sbg_device.h:65
_SbgEComHandle
Definition: sbgECom.h:70
sbg::SbgDevice::startMagCalibration
bool startMagCalibration()
Definition: sbg_device.cpp:300
sbg::SbgDevice::periodicHandle
void periodicHandle()
Definition: sbg_device.cpp:516
_SbgEComMagCalibResults
Definition: sbgEComCmdMag.h:110
sbg::SbgDevice::writeRtcmMessageToDevice
void writeRtcmMessageToDevice(const rtcm_msgs::Message::ConstPtr &msg)
Definition: sbg_device.cpp:465
sbg::SbgDevice::connect
void connect()
Definition: sbg_device.cpp:130
sbg
Definition: config_applier.h:45
config_applier.h
Apply configuration to the device.
SbgEComMsgId
uint8_t SbgEComMsgId
Definition: sbgEComIds.h:289
sbg::SbgDevice::endMagCalibration
bool endMagCalibration()
Definition: sbg_device.cpp:325
SbgErrorCode
enum _SbgErrorCode SbgErrorCode
Header file that defines all error codes for SBG Systems libraries.
_SbgInterface
Definition: sbgInterface.h:131
sbg::SbgDevice
Definition: sbg_device.h:55
uint32
unsigned int uint32
Definition: sbgTypes.h:52
sbg::SbgDevice::configure
void configure()
Definition: sbg_device.cpp:221
sbg::SbgDevice::calib_service_
ros::ServiceServer calib_service_
Definition: sbg_device.h:83
config_store.h
Class to handle the device configuration.
sbg::SbgDevice::processMagCalibration
bool processMagCalibration(std_srvs::Trigger::Request &ref_ros_request, std_srvs::Trigger::Response &ref_ros_response)
Definition: sbg_device.cpp:230
ros::NodeHandle
ros::Subscriber
sbg::SbgDevice::initSubscribers
void initSubscribers()
Definition: sbg_device.cpp:209


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