// // Created by villuton on 25.03.25. // #ifndef NMEA_RMC_H #define NMEA_RMC_H #include "Nmea0183Parser_Time.h" #include "Nmea0183_Sentence.h" #define RMC_MSG_ID "RMC" #define RMC_MSG_ID_LEN (3) #define RMC_STATUS_NotValid 'V' #define RMC_STATUS_Valid 'A' #define RMC_MODE_Autonomous 'A' #define RMC_MODE_Differential 'D' #define RMC_MODE_Estimated 'E' #define RMC_MODE_NotValid 'N' #define RMC_MODE_Simulator 'S' /** * RMC packet information structure (Recommended Minimum sentence C) */ typedef struct { tNmeaTime time; /**< time of position */ char status; /**< Status (A = active or V = void) */ tNmeaLocation location; /**< Sentence location data in fractional NDEG and Cardinal directions */ double speed; /**< Speed over the ground in knots */ double direction; /**< Track angle in degrees True */ double declination; /**< Magnetic variation degrees (Easterly var. subtracts from true course) */ char declin_ew; /**< [E]ast or [W]est */ char mode; /**< Mode indicator of fix type (A = autonomous, D = differential, E = estimated, N = not valid, S = simulator) */ }tNmeaRMC; bool NmeaRmc_Parse(char *str, size_t len, tNmeaRMC *result); #endif //NMEA_RMC_H