sbg_ros_helpers.h
Go to the documentation of this file.
1 
34 #ifndef SBG_ROS_ROS_HELPERS_H
35 #define SBG_ROS_ROS_HELPERS_H
36 
37 // SbgECom headers
38 #include <sbgEComLib.h>
39 
40 // Sbg headers
41 #include <sbg_vector3.h>
42 
43 // STL headers
44 #include <cstdint>
45 
46 namespace sbg::helpers
47 {
51  enum class NmeaGGAQuality: int32_t
52  {
53  INVALID = 0,
54  SINGLE = 1,
55  DGPS = 2,
56  PPS = 3,
57  RTK_FIXED = 4,
58  RTK_FLOAT = 5,
59  DEAD_RECKONING = 6,
60  STATIC_POSITION = 7,
61  SIMULATED = 8,
62  };
63 
70  float wrapAnglePi(float angle_rad);
71 
78  float wrapAngle360(float angle_deg);
79 
86  uint32_t getNumberOfDaysInYear(uint16_t year);
87 
95  uint32_t getNumberOfDaysInMonth(uint16_t year, uint8_t month_index);
96 
103  bool isLeapYear(uint16_t year);
104 
116  int32_t getUtcOffset(bool first_valid_utc, uint32_t gps_tow, uint8_t sec);
117 
125 
126  /*
127  * Convert latitude, longitude, altitude to ECEF coordinates.
128  *
129  * \param[in] latitude Latitude, in degrees [-90 to +90].
130  * \param[in] longitude Longitude, in degrees [-180 to +180].
131  * \param[in] altitude Altitude, in meters.
132  * \return Vector containing ECEF coordinates in meters.
133  */
134  sbg::SbgVector3d convertLLAtoECEF(double latitude, double longitude, double altitude);
135 
136  template<class T>
137  const T& clamp(const T &value, const T &min, const T &max)
138  {
139  if (value < min)
140  {
141  return min;
142  }
143  else if (max < value)
144  {
145  return max;
146  }
147  return value;
148  }
149 }
150 
151 #endif // #ifndef SBG_ROS_ROS_HELPERS_H
sbg::SbgVector3
Definition: sbg_vector3.h:72
sbg::helpers::convertSbgGpsTypeToNmeaGpsType
NmeaGGAQuality convertSbgGpsTypeToNmeaGpsType(SbgEComGpsPosType sbg_gps_type)
Definition: sbg_ros_helpers.cpp:105
SbgEComGpsPosType
enum _SbgEComGpsPosType SbgEComGpsPosType
sbg::helpers::NmeaGGAQuality::INVALID
@ INVALID
sbg::helpers::NmeaGGAQuality
NmeaGGAQuality
Definition: sbg_ros_helpers.h:51
sbg::helpers
Definition: sbg_ros_helpers.h:46
sbg::helpers::getNumberOfDaysInMonth
uint32_t getNumberOfDaysInMonth(uint16_t year, uint8_t month_index)
Definition: sbg_ros_helpers.cpp:54
sbg::helpers::getUtcOffset
int32_t getUtcOffset(bool first_valid_utc, uint32_t gps_tow, uint8_t sec)
Definition: sbg_ros_helpers.cpp:82
sbg::helpers::convertLLAtoECEF
sbg::SbgVector3d convertLLAtoECEF(double latitude, double longitude, double altitude)
Definition: sbg_ros_helpers.cpp:144
sbg::helpers::wrapAngle360
float wrapAngle360(float angle_deg)
Definition: sbg_ros_helpers.cpp:25
sbg::helpers::getNumberOfDaysInYear
uint32_t getNumberOfDaysInYear(uint16_t year)
Definition: sbg_ros_helpers.cpp:42
sbg::helpers::NmeaGGAQuality::DGPS
@ DGPS
sbg::helpers::NmeaGGAQuality::STATIC_POSITION
@ STATIC_POSITION
sbg::helpers::NmeaGGAQuality::RTK_FLOAT
@ RTK_FLOAT
sbg::helpers::clamp
const T & clamp(const T &value, const T &min, const T &max)
Definition: sbg_ros_helpers.h:137
sbg::helpers::NmeaGGAQuality::RTK_FIXED
@ RTK_FIXED
sbgEComLib.h
sbg::helpers::NmeaGGAQuality::DEAD_RECKONING
@ DEAD_RECKONING
sbg::helpers::wrapAnglePi
float wrapAnglePi(float angle_rad)
Definition: sbg_ros_helpers.cpp:10
sbg::helpers::isLeapYear
bool isLeapYear(uint16_t year)
Definition: sbg_ros_helpers.cpp:77
sbg_vector3.h
Handle a X,Y,Z vector.
sbg::helpers::NmeaGGAQuality::PPS
@ PPS
sbg::helpers::NmeaGGAQuality::SINGLE
@ SINGLE
sbg::helpers::NmeaGGAQuality::SIMULATED
@ SIMULATED


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