38#include "model/ocpn_utils.h"
40std::string NavAddr::BusToString(NavAddr::Bus b) {
42 case NavAddr::Bus::N0183:
45 case NavAddr::Bus::N2000:
48 case NavAddr::Bus::Signalk:
51 case NavAddr::Bus::Onenet:
54 case NavAddr::Bus::Plugin:
57 case NavAddr::Bus::TestBus:
60 case NavAddr::Bus::Undef:
67NavAddr::Bus NavAddr::StringToBus(
const std::string& s) {
68 if (s ==
"nmea0183")
return NavAddr::Bus::N0183;
69 if (s ==
"nmea2000")
return NavAddr::Bus::N2000;
70 if (s ==
"SignalK")
return NavAddr::Bus::Signalk;
71 if (s ==
"Onenet")
return NavAddr::Bus::Onenet;
72 if (s ==
"Plugin")
return NavAddr::Bus::Plugin;
73 if (s ==
"TestBus")
return NavAddr::Bus::TestBus;
74 return NavAddr::Bus::Undef;
77static std::string CharToString(
unsigned char c) {
80 ss << setfill(
'0') << hex << setw(2) << (c & 0x00ff);
86 std::for_each(payload.begin(), payload.end(),
87 [&s](
unsigned char c) { s.append(CharToString(c)); });
94 ss << NavAddr::BusToString(bus) <<
" " <<
key() <<
" " <<
talker <<
type
virtual std::string to_string() const
Return printable string for logging etc without trailing nl.
std::string key() const
Return unique key used by observable to notify/listen.
const std::string type
For example 'GGA'.
const std::string talker
For example 'GP'.
const std::string payload
Complete NMEA0183 sentence, also prefix.
std::string to_string() const
Return printable string for logging etc without trailing nl.
std::string to_string() const
Print "bus key id payload".
Communication driver layer.
std::string printable(const std::string str)
Return copy of str with non-printable chars replaced by hex like "<0D>".