1 #include <marnav/nmea/xte.hpp>
2 #include <marnav/nmea/io.hpp>
9 constexpr sentence_id
xte::ID
;
10 constexpr const char * xte::TAG
;
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_
);
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_
));