9#include <QtCore/QFlags>
10#include <QtCore/QtGlobal>
22Q_DECLARE_OPERATORS_FOR_FLAGS(GPSFrameKinds)
30 std::span<const uint8_t> bytes{};
32 std::span<const uint8_t> payload{};
34 uint32_t messageId = 0;
36 [[nodiscard]] std::string_view
text()
const {
return {
reinterpret_cast<const char*
>(bytes.data()), bytes.size()}; }
90 static constexpr size_t FRAMER_COUNT = 5;
92 std::array<std::unique_ptr<Framer>, FRAMER_COUNT> _framers;
GPSFrameKind
Wire framings the stream demultiplexer recognises; also the set of framers a receiver family enables.
@ ASCIILine
Printable lines up to CR/LF, without the terminator; the decoder checks checksums.
@ RTCM3
0xD3 frames with a valid CRC-24Q.
@ NMEASentence
'$' to a valid "*hh" checksum, without a line ending.
virtual void frame(const GPSFrame &frame)=0
Receives each completed frame; the handler may reset or enable framers.
void push(uint8_t byte, Handler &handler)
void setEnabled(GPSFrameKind kind, bool enabled)
Enables or disables an available framer; either way it restarts from an empty state.
Septentrio receivers configured as RTK bases with SBF commands; they stream PVTGeodetic blocks and RT...
u-blox receivers over UBX: CFG-VALSET configuration from protocol 27, CFG-MSG and CFG-TMODE3 before i...
std::string_view text() const
The framers of one receiver stream and how they share it.
bool shareSBFSync
SBF watches its "$@" sync instead of claiming '$', so '$' text in the same stream still reaches a tex...
GPSFrameKinds enabled
Framers enabled when the stream is created.
GPSFrameKinds framers
Framers the family can use; only these can be enabled later.