TelitNmeaParser/Inc/NmeaACPParser.h

64 lines
1.2 KiB
C

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