// // Created by villuton on 20.03.25. // #ifndef NMEA0183PARSER_PRIVATE_H #define NMEA0183PARSER_PRIVATE_H #include "AsciiStringParsingUtils.h" #define Nmea0183StartEncapsulateSentenceDelimiter '!' #define Nmea0183StartDelimiter '$' #define Nmea0183CheckSumDelimiter '*' #define Nmea0183FieldDelimiter ',' #define Nmea0183ParseShortCharsDecimalNumber(STR, LEN) (uint16_t) iAsciiStringParseUnsignedLongDecimalNumber(STR,((STR)+(LEN))) #define Nmea0183ParseDouble(STR, LEN) dAsciiStringParseDouble(STR,((STR)+(LEN))) #define Nmea0183SkipSpace(STR, STR_END) xAsciiStringSkipSpace(STR,STR_END) #define Nmea0183SkipToChar(STR, STR_END, SYMBOL) xAsciiStringSeekChar(STR,STR_END,SYMBOL) #define Nmea0183ParseNextPortion(BEGIN, DIV, STR_END) iAsciiStringMoveToNextParsingBlock(BEGIN,DIV,STR_END,Nmea0183FieldDelimiter) #define Nmea0183ParseStartPosition(BEGIN, DIV, STR_END) iAsciiStringMoveToNextParsingBlock(BEGIN,DIV,STR_END,Nmea0183StartDelimiter) #define Nmea0183ParseCheckSumPosition(BEGIN, DIV, STR_END) iAsciiStringMoveToNextParsingBlock(BEGIN,DIV,STR_END,Nmea0183CheckSumDelimiter) #define Nmea0183SkipToStartDelimiter(STR, STR_END) Nmea0183SkipToChar(STR,STR_END,Nmea0183StartDelimiter) #define Nmea0183SkipToCheckSumDelimiter(STR, STR_END) Nmea0183SkipToChar(STR,STR_END,Nmea0183CheckSumDelimiter) #define NMEA_ASSERT(x) if(!(x)){return 0;}; #define Nmea0183ParseHexByte(STR) iAsciiStringParseHexByte(STR) #endif //NMEA0183PARSER_PRIVATE_H