NMEA: remove deprecated type talker_id
[marnav.git] / src / marnav / nmea / xte.cpp
blobc1772004dc711d1fd565623f35c27dc8f170b63b
1 #include <marnav/nmea/xte.hpp>
2 #include <marnav/nmea/io.hpp>
3 #include <stdexcept>
5 namespace marnav
7 namespace nmea
9 constexpr sentence_id xte::ID;
10 constexpr const char * xte::TAG;
12 xte::xte()
13 : sentence(ID, TAG, talker::global_positioning_system)
17 xte::xte(talker talk, fields::const_iterator first, fields::const_iterator last)
18 : sentence(ID, TAG, talk)
20 const auto size = std::distance(first, last);
21 if ((size < 5) || (size > 6))
22 throw std::invalid_argument{"invalid number of fields in xte"};
24 read(*(first + 0), status1_);
25 read(*(first + 1), status2_);
26 read(*(first + 2), cross_track_error_magnitude_);
27 read(*(first + 3), direction_to_steer_);
28 read(*(first + 4), cross_track_unit_);
30 if (size == 6)
31 read(*(first + 5), mode_ind_);
34 void xte::append_data_to(std::string & s) const
36 append(s, to_string(status1_));
37 append(s, to_string(status2_));
38 append(s, to_string(cross_track_error_magnitude_));
39 append(s, to_string(direction_to_steer_));
40 append(s, to_string(cross_track_unit_));
41 append(s, to_string(mode_ind_));