Nmea0183Parser/Solutions/Inc/Nmea_Rmc.h

42 lines
1.3 KiB
C

//
// 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