gphdt.cpp
Go to the documentation of this file.
2 #include <boost/make_shared.hpp>
4 
5 const std::string novatel_gps_driver::GphdtParser::MESSAGE_NAME = "GPHDT";
6 
8 {
9  return 0;
10 }
11 
13 {
14  return MESSAGE_NAME;
15 }
16 
17 novatel_gps_msgs::GphdtPtr novatel_gps_driver::GphdtParser::ParseAscii(const novatel_gps_driver::NmeaSentence& sentence) noexcept(false)
18 {
19  const size_t EXPECTED_LEN = 3;
20 
21  if (sentence.body.size() != EXPECTED_LEN)
22  {
23  std::stringstream error;
24  error << "Expected GPHDT length = "
25  << EXPECTED_LEN << ", "
26  << "actual length = " << sentence.body.size();
27  throw ParseException(error.str());
28  }
29 
30  novatel_gps_msgs::GphdtPtr msg = boost::make_shared<novatel_gps_msgs::Gphdt>();
31  msg->message_id = sentence.body[0];
32 
33  double heading;
34  if (swri_string_util::ToDouble(sentence.body[1], heading))
35  {
36  msg->heading = heading;
37  }
38  else
39  {
40  throw ParseException("Error parsing heading as double in GPHDT");
41  }
42 
43  msg->t = sentence.body[2];
44  return msg;
45 }
46 
msg
const std::string GetMessageName() const override
Definition: gphdt.cpp:12
static const std::string MESSAGE_NAME
Definition: gphdt.h:18
novatel_gps_msgs::GphdtPtr ParseAscii(const NmeaSentence &sentence) noexcept(false) override
Converts sentence into a ROS message pointer and returns it.
Definition: gphdt.cpp:17
bool ToDouble(const std::string &string, double &value)
uint32_t GetMessageId() const override
Definition: gphdt.cpp:7


novatel_gps_driver
Author(s):
autogenerated on Thu Jul 16 2020 03:17:30