GnssPro04Nmea/Inc/GnssPro04Nmea.h

99 lines
2.5 KiB
C

//
// Created by xemon on 01.09.22.
//
#ifndef GNSSPRO04NMEA_GNSSPRO04NMEA_H
#define GNSSPRO04NMEA_GNSSPRO04NMEA_H
#include "SerialPort.h"
#include "stddef.h"
#include "stdbool.h"
typedef struct {
tSerialPortIO *io;
struct {
size_t len;
char buff[18];
} cmd;
} tGnssPro04Nmea;
typedef enum {
GNNS_PRO04_MESAGE_DTM,
GNNS_PRO04_MESAGE_VTG,
GNNS_PRO04_MESAGE_RMC,
GNNS_PRO04_MESAGE_GSV,
GNNS_PRO04_MESAGE_GSA,
GNNS_PRO04_MESAGE_GGA,
} tGnssPro04NmeaMessageType;
typedef enum {
GNNS_PRO04_NAV_SYSTEM_GPS,
GNNS_PRO04_NAV_SYSTEM_GLS,
GNNS_PRO04_NAV_SYSTEM_MIX,
} tGnssPro04NmeaNavSystemType;
typedef enum {
GNNS_PRO04_COORD_P90,
GNNS_PRO04_COORD_W84,
} tGnssPro04NmeaCoordType;
typedef enum {
GNNS_PRO04_RATE_01HZ,
GNNS_PRO04_RATE_02HZ,
GNNS_PRO04_RATE_05HZ,
GNNS_PRO04_RATE_10HZ,
} tGnssPro04NmeaRateType;
typedef enum {
GNNS_PRO04_NMEA_STANDARD_2 = 2,
GNNS_PRO04_NMEA_STANDARD_4 = 4,
} tGnssPro04NmeaStandardType;
typedef enum {
GNNS_PRO04_STARTUP_WARM = 'W',
GNNS_PRO04_STARTUP_COLD = 'C',
GNNS_PRO04_STARTUP_HOT = 'H',
} tGnssPro04StartupType;
void GnssPro04Nmea_init(tGnssPro04Nmea *env, tSerialPortIO *io);
void GnssPro04Nmea_setStandard(tGnssPro04Nmea *env, tGnssPro04NmeaStandardType nmeaStandard);
void GnssPro04Nmea_setStartType(tGnssPro04Nmea *env, tGnssPro04StartupType startupType);
void GnssPro04Nmea_setRate(tGnssPro04Nmea *env, tGnssPro04NmeaRateType rate);
void GnssPro04Nmea_setElevation(tGnssPro04Nmea *env, uint8_t uElevation);
void GnssPro04Nmea_setSystemType(tGnssPro04Nmea *env, tGnssPro04NmeaNavSystemType system);
void GnssPro04Nmea_setCoordType(tGnssPro04Nmea *env, tGnssPro04NmeaCoordType coordType);
void GnssPro04Nmea_setMessageEnabled(tGnssPro04Nmea *env, tGnssPro04NmeaMessageType msg, bool value);
// Переключение в бинарный протокол
void GnssPro04Nmea_switchProtocol(tGnssPro04Nmea *env);
// редефайн для обратной совместимости
#define vGnssPro04NmeaInit GnssPro04Nmea_init
#define vGnssPro04NmeaSetStandard GnssPro04Nmea_setStandard
#define vGnssPro04NmeaSetStartType GnssPro04Nmea_setStartType
#define vGnssPro04NmeaSetRate GnssPro04Nmea_setRate
#define vGnssPro04NmeaSetElevation GnssPro04Nmea_setElevation
#define vGnssPro04NmeaSetSystemType GnssPro04Nmea_setSystemType
#define vGnssPro04NmeaSetCoordType GnssPro04Nmea_setCoordType
#define vGnssPro04NmeaSetMessageEnabled GnssPro04Nmea_setMessageEnabled
#endif //GNSSPRO04NMEA_GNSSPRO04NMEA_H