99 lines
2.5 KiB
C
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
|