#pragma once #include #include uint16_t calcUbxChecksum(uint8_t ubxClass, uint8_t ubxType, std::basic_string_view str); std::basic_string buildUbxMessage(uint8_t ubxClass, uint8_t ubxType, std::basic_string_view str); std::basic_string buildUbxMessage(uint8_t ubxClass, uint8_t ubxType, const std::initializer_list& str); std::basic_string getInavFromSFRBXMsg(std::basic_string_view msg, std::basic_string& reserved1, std::basic_string& reserved2, std::basic_string& sar, std::basic_string& spare, std::basic_string& crc); std::basic_string getGPSFromSFRBXMsg(std::basic_string_view msg); std::basic_string getGlonassFromSFRBXMsg(std::basic_string_view msg); std::basic_string getBeidouFromSFRBXMsg(std::basic_string_view msg); std::basic_string getSBASFromSFRBXMsg(std::basic_string_view msg); struct CRCMismatch{}; struct TrkSatStat { int gnss; int sv; double dopplerHz; uint64_t tr; }; std::vector parseTrkMeas(std::basic_string_view payload);