// // Created by xemon on 01.09.22. // #ifndef NMEA_ACP_PARSER_H #define NMEA_ACP_PARSER_H #include "stdint.h" #include "stddef.h" #include "stdbool.h" typedef struct { uint8_t hour; uint8_t minute; uint8_t second; uint16_t millisecond; } tNmeaTimeAcp; typedef struct { uint8_t day; uint8_t month; uint8_t year; } tNmeaDateAcp; typedef struct { double latitude; char nsIndicator; double longitude; double horizontDiluitPrecis; double altitude; char ewIndicator; } tNmeaLocationAcp; typedef struct { double declination; double nsat; double mode; } tNmeaMagneticAcp; typedef struct { char status; tNmeaDateAcp date; tNmeaTimeAcp time; tNmeaLocationAcp location; tNmeaMagneticAcp magnetic; double knotVelocity; double kmhVelocity; double course; } tNmeaAcp; uint32_t iNmeaTimestampFromAcp(tNmeaAcp *env); void vNmeaACPSign(char *str, size_t *strLen); bool bNmeaACPParse(char *acprmcString, size_t len, tNmeaAcp *result); bool bNmeaACPString(char *nmeaString, size_t len, tNmeaAcp *acp); bool bNmeaACPIsValidString(char *nmeaString, size_t len); #endif //NMEA_0183_PARSER_NMEA_0183_PARSER_H