21 #define LIST_ALL_MSGS \ 33 DOFOR(NV_OEM6_GENERIC_FRAME) \ 34 DOFOR(NV_OEM6_BESTPOS) \ 36 DOFOR(NV_OEM6_GENERIC_SHORT_FRAME) \ 37 DOFOR(NV_OEM6_INSPVAS) \ 38 DOFOR(NV_OEM6_RANGECMP) \ 39 DOFOR(NV_OEM6_RXSTATUS) \ 40 DOFOR(NV_OEM6_RAWEPHEM) \ 41 DOFOR(NV_OEM6_VERSION) \ 42 DOFOR(NV_OEM6_RAWIMUS) \ 43 DOFOR(NV_OEM6_MARKPOS) \ 44 DOFOR(NV_OEM6_MARKTIME) \ 45 DOFOR(NV_OEM6_MARK2TIME) \ 51 #define DOFOR(_MSG_ID) \ 53 return new Message_##_MSG_ID(); 64 #define DOFOR(_MSG_ID) \ 76 const std::string& gnss_message::getMessageTypeAsString()
const 78 static bool first_call =
true;
79 static std::map<gnss_message_type_t, std::string> gnss_type2str;
83 #define DOFOR(_MSG_ID) gnss_type2str[_MSG_ID] = #_MSG_ID; 88 return gnss_type2str[this->message_type];
94 out.WriteAs<int32_t>(message_type);
95 this->internal_writeToStream(
out);
104 this->internal_readFromStream(in);
107 void gnss_message::dumpToConsole(std::ostream& o)
const 123 gnss_message::Factory(static_cast<gnss_message_type_t>(msg_id));
126 "Error deserializing gnss_message: unknown message type '%i'",
127 static_cast<int>(msg_id));
134 gnss_message_ptr::gnss_message_ptr() =
default;
148 ptr = gnss_message::readAndBuildFromStream(arch);
void timestampToParts(TTimeStamp t, TTimeParts &p, bool localTime=false)
Gets the individual parts of a date/time (days, hours, minutes, seconds) - UTC time or local time...
mrpt::system::TTimeStamp getAsTimestamp(const mrpt::system::TTimeStamp &date) const
Build an MRPT timestamp with the hour/minute/sec of this structure and the date from the given timest...
gnss_message_type_t
List of all known GNSS message types.
void readFromStream(mrpt::serialization::CArchive &in)
Save to binary stream.
mrpt::system::TTimeStamp buildTimestampFromParts(const mrpt::system::TTimeParts &p)
Builds a timestamp from the parts (Parts are in UTC)
gnss_message_ptr & operator=(const gnss_message_ptr &o)
CArchiveStreamBase< STREAM > archiveFrom(STREAM &s)
Helper function to create a templatized wrapper CArchive object for a: MRPT's CStream, std::istream, std::ostream, std::stringstream.
mrpt::Clock::time_point TTimeStamp
A system independent time type, it holds the the number of 100-nanosecond intervals since January 1...
virtual ~gnss_message_ptr()
Dtor: it frees the pointee memory.
#define ASSERT_EQUAL_(__A, __B)
Assert comparing two values, reporting their actual values upon failure.
This CStream derived class allow using a memory buffer as a CStream.
The parts of a date/time (it's like the standard 'tm' but with fractions of seconds).
uint64_t Seek(int64_t Offset, CStream::TSeekOrigin Origin=sFromBeginning) override
Introduces a pure virtual method for moving to a specified position in the streamed resource...
static gnss_message * readAndBuildFromStream(mrpt::serialization::CArchive &in)
Load from binary stream and creates object detecting its type (class factory).
void writeToStream(mrpt::serialization::CArchive &out) const
Save to binary stream.
GNSS (GPS) data structures, mainly for use within mrpt::obs::CObservationGPS.
double second
Minute (0-59)
bool getAllFieldDescriptions(std::ostream &o) const override
uint8_t minute
Hour (0-23)
Virtual base class for "archives": classes abstracting I/O streams.
mrpt::vision::TStereoCalibResults out
Pure virtual base for all message types.
virtual void internal_readFromStream(mrpt::serialization::CArchive &in)=0
Save to binary stream.
void set(gnss_message *p)
Replaces the pointee with a new pointer.
#define THROW_EXCEPTION_FMT(_FORMAT_STRING,...)
bool getAllFieldValues(std::ostream &o) const override
void writeToStream(mrpt::serialization::CArchive &out) const
Save to binary stream.
A smart pointer to a GNSS message.