3#include "NMEAParserData.h"
4#include <NDEVR/StringView.h>
5#include <NDEVR/String.h>
6#include <NDEVR/Dictionary.h>
78 PARSE_STATE_CHECKSUM_1,
79 PARSE_STATE_CHECKSUM_2,
88 uint01 m_u8ReceivedChecksum;
The equivelent of std::vector but with a bit more control.
A hash-based key-value store, useful for quick associative lookups.
NMEAUpdateInfo processNMEABuffer(const StringView &data)
Processes a buffer of raw NMEA data, extracting and processing complete sentences.
void addSentenceReader(const StringView &string, NMEASentenceReader *reader)
Registers a sentence reader for a specific sentence type.
NMEAInfo m_info
Accumulated NMEA data.
const NMEAInfo & info() const
Returns the current accumulated NMEA info.
const Buffer< NMEASentenceReader * > & readers() const
Returns the registered sentence readers.
void reset()
Resets the parser state machine to its initial state.
void addSentenceReader(NMEASentenceReader *reader)
Registers a sentence reader and auto-maps its supported sentence types.
Buffer< StringView > activeSentenceTypes() const
Returns the list of sentence types that have active readers.
NMEAReader()
Constructs the NMEA reader.
virtual NMEAUpdateInfo processRxCommand(const StringView &command, const StringView &data)
Processes a single extracted NMEA command and data pair.
Abstract base class for parsing specific NMEA sentence types (e.g.
virtual Buffer< StringView > supportedTypes() const =0
Returns the NMEA sentence types this reader can handle.
void onMessageReceived()
Updates receive timing statistics after processing a message.
virtual StringView name() const =0
Returns the display name of this sentence reader.
virtual NMEAUpdateInfo processRxCommand(const StringView &command, const StringView &data, NMEAInfo &info)=0
Processes a received NMEA command and its data payload.
Time last_rx_time
Time of the last received message.
Buffer< StringView > m_sentence_parts
Temporary storage for parsed sentence fields.
TimeSpan average_rx_rate
Average time between received messages.
uint04 count
Total number of messages processed.
The core String View class for the NDEVR API.
The core String class for the NDEVR API.
Stores a time span, or difference between two times, with an optional start time.
Represents a timestamp with utilities for manipulation and conversion.
The primary namespace for the NDEVR SDK.
uint32_t uint04
-Defines an alias representing a 4 byte, unsigned integer -Can represent exact integer values 0 throu...
uint8_t uint01
-Defines an alias representing a 1 byte, unsigned integer -Can represent exact integer values 0 throu...
The complete accumulated NMEA data state including satellite info, error data, INS data,...
Describes what was updated after processing an NMEA sentence, including which data categories changed...