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) 192 #pragma pack(pop) // End of pack = 1 uint64_t TTimeStamp
A system independent time type, it holds the the number of 100-nanosecond intervals since January 1...
bool operator==(const UTC_time &o) const
const gnss_message * operator->() 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...
UTC (Coordinated Universal Time) time-stamp structure for GPS messages.
static gnss_message * readAndBuildFromStream(mrpt::utils::CStream &in)
Load from binary stream and creates object detecting its type (class factory).
void writeToStream(mrpt::utils::CStream &out) const
Save to binary stream.
gnss_message_type_t
List of all known GNSS message types.
gnss_message_ptr & operator=(const gnss_message_ptr &o)
bool isOfType(const gnss_message_type_t type_id) const
bool operator!=(const gnss_message_ptr &o) const
void writeToStream(mrpt::utils::CStream &out) const
Save to binary stream.
bool operator==(const gnss_message_ptr &o) const
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(gnss_message_type_t msg_type_id)
bool operator!=(const UTC_time &o) const
This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
virtual ~gnss_message_ptr()
Dtor: it frees the pointee memory.
virtual bool getAllFieldValues(std::ostream &o) const
Dumps a line with the sequence of all field values (without a line feed at the end).
gnss_message_type_t message_type
Type of GNSS message.
GLsizei const GLchar ** string
static gnss_message * Factory(const gnss_message_type_t msg_id)
Creates message.
virtual void internal_readFromStream(mrpt::utils::CStream &in)=0
Save to binary stream.
gnss_message_ptr()
Ctor (default: nullptr pointer)
bool operator!=(const gnss_message *o) const
virtual bool getAllFieldDescriptions(std::ostream &o) const
Dumps a header for getAllFieldValues()
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
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.
Pure virtual base for all message types.
bool operator==(const gnss_message *o) const
void readFromStream(mrpt::utils::CStream &in)
Load from binary stream into this existing object.
void readFromStream(mrpt::utils::CStream &in)
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.
const std::string & getMessageTypeAsString() const
Returns "NMEA_GGA", etc.
virtual void internal_writeToStream(mrpt::utils::CStream &out) const =0
Save to binary stream.
A smart pointer to a GNSS message.
gnss_message *& operator->()