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