39 template <
class MSG_CLASS>
42 return isOfType(MSG_CLASS::msg_type);
119 #define GNSS_MESSAGE_BINARY_BLOCK(DATA_PTR, DATA_LEN) \
121 void internal_writeToStream(mrpt::utils::CStream& out) const override \
123 out << static_cast<uint32_t>(DATA_LEN); \
124 out.WriteBuffer(DATA_PTR, DATA_LEN); \
126 void internal_readFromStream(mrpt::utils::CStream& in) override \
128 uint32_t nBytesInStream; \
129 in >> nBytesInStream; \
130 ASSERT_EQUAL_(nBytesInStream, DATA_LEN); \
131 in.ReadBuffer(DATA_PTR, DATA_LEN); \
136 #define GNSS_BINARY_MSG_DEFINITION_START(_MSG_ID) \
137 struct Message_##_MSG_ID : public gnss_message \
139 GNSS_MESSAGE_BINARY_BLOCK(&fields, sizeof(fields)) \
144 Message_##_MSG_ID() : gnss_message((gnss_message_type_t)msg_type) {} \
147 #define GNSS_BINARY_MSG_DEFINITION_MID \
148 content_t() { ::memset(this, 0, sizeof(*this)); } \
152 void dumpToStream(mrpt::utils::CStream& out) const override;
154 #define GNSS_BINARY_MSG_DEFINITION_MID_END \
158 #define GNSS_BINARY_MSG_DEFINITION_END \
159 GNSS_BINARY_MSG_DEFINITION_MID \
160 GNSS_BINARY_MSG_DEFINITION_MID_END
163 #pragma pack(push, 1)
This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
GLsizei const GLchar ** string
uint64_t TTimeStamp
A system independent time type, it holds the the number of 100-nanosecond intervals since January 1,...
gnss_message_type_t
List of all known GNSS message types.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
UTC (Coordinated Universal Time) time-stamp structure for GPS messages.
void readFromStream(mrpt::utils::CStream &in)
Save to binary stream.
void writeToStream(mrpt::utils::CStream &out) const
Save to binary stream.
bool operator!=(const UTC_time &o) const
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...
bool operator==(const UTC_time &o) const
A smart pointer to a GNSS message.
const gnss_message * get() const
gnss_message_ptr()
Ctor (default: nullptr pointer)
bool operator!=(const gnss_message *o) const
virtual ~gnss_message_ptr()
Dtor: it frees the pointee memory.
const gnss_message * operator->() const
bool operator==(const gnss_message_ptr &o) const
gnss_message *& operator->()
bool operator==(const gnss_message *o) const
bool operator!=(const gnss_message_ptr &o) const
void set(gnss_message *p)
Replaces the pointee with a new pointer.
gnss_message_ptr & operator=(const gnss_message_ptr &o)
Pure virtual base for all message types.
void dumpToConsole(std::ostream &o=std::cout) const
Dumps the contents of the observation in a human-readable form to an std::ostream (default=console)
gnss_message_type_t message_type
Type of GNSS message.
virtual bool getAllFieldValues(std::ostream &o) const
Dumps a line with the sequence of all field values (without a line feed at the end).
void readFromStream(mrpt::utils::CStream &in)
Load from binary stream into this existing object.
virtual void internal_readFromStream(mrpt::utils::CStream &in)=0
Save to binary stream.
static bool FactoryKnowsMsgType(const gnss_message_type_t msg_id)
Returns true if Factory() has a registered constructor for this msg type.
virtual void dumpToStream(mrpt::utils::CStream &out) const =0
Dumps the contents of the observation in a human-readable form to a given output stream.
virtual bool getAllFieldDescriptions(std::ostream &o) const
Dumps a header for getAllFieldValues()
virtual void internal_writeToStream(mrpt::utils::CStream &out) const =0
Save to binary stream.
bool isOfType(const gnss_message_type_t type_id) const
static gnss_message * Factory(const gnss_message_type_t msg_id)
Creates message.
gnss_message(gnss_message_type_t msg_type_id)
void writeToStream(mrpt::utils::CStream &out) const
Save to binary stream.
const std::string & getMessageTypeAsString() const
Returns "NMEA_GGA", etc.
static gnss_message * readAndBuildFromStream(mrpt::utils::CStream &in)
Load from binary stream and creates object detecting its type (class factory).