RX

Dependencies:   mbed BufferedSerial SX1276GenericLib X_NUCLEO_IKS01A2

Committer:
LucasKB
Date:
Mon Jun 17 00:10:40 2019 +0000
Revision:
2:e7d7e80256cc
RX;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
LucasKB 2:e7d7e80256cc 1 #ifndef UBXGPSNAVSOL_H_
LucasKB 2:e7d7e80256cc 2 #define UBXGPSNAVSOL_H_
LucasKB 2:e7d7e80256cc 3
LucasKB 2:e7d7e80256cc 4 #include "mbed.h"
LucasKB 2:e7d7e80256cc 5
LucasKB 2:e7d7e80256cc 6 #define UBX_NAV_SOL_HEADER_1 (0xB5)
LucasKB 2:e7d7e80256cc 7 #define UBX_NAV_SOL_HEADER_2 (0x62)
LucasKB 2:e7d7e80256cc 8 #define UBX_NAV_SOL_CLASS (0x01)
LucasKB 2:e7d7e80256cc 9 #define UBX_NAV_SOL_ID (0x06)
LucasKB 2:e7d7e80256cc 10 #define UBX_NAV_SOL_PAYLOAD_LENGTH (52)
LucasKB 2:e7d7e80256cc 11
LucasKB 2:e7d7e80256cc 12 class UbxGpsNavSol : public UARTSerial{
LucasKB 2:e7d7e80256cc 13 public:
LucasKB 2:e7d7e80256cc 14 UbxGpsNavSol(PinName tx, PinName rx, int baud);
LucasKB 2:e7d7e80256cc 15 ~UbxGpsNavSol();
LucasKB 2:e7d7e80256cc 16
LucasKB 2:e7d7e80256cc 17 bool ready();
LucasKB 2:e7d7e80256cc 18 void disableNmea();
LucasKB 2:e7d7e80256cc 19 bool enableNAVSOL();
LucasKB 2:e7d7e80256cc 20 bool changeFrequency();
LucasKB 2:e7d7e80256cc 21 bool changeBaudrate();
LucasKB 2:e7d7e80256cc 22 bool disableUnnecessaryChannels();
LucasKB 2:e7d7e80256cc 23 bool disableGNSS();
LucasKB 2:e7d7e80256cc 24 bool restoreDefaults();
LucasKB 2:e7d7e80256cc 25 void baud(int baud);
LucasKB 2:e7d7e80256cc 26 // void setLength(unsigned char length);
LucasKB 2:e7d7e80256cc 27 // Type Name Unit Description (scaling)
LucasKB 2:e7d7e80256cc 28 unsigned long iTOW; // ms GPS time of week of the navigation epoch. See the description of iTOW for
LucasKB 2:e7d7e80256cc 29 // details
LucasKB 2:e7d7e80256cc 30 long fTOW; // ns Fractional part of iTOW (range: +/-500000). The precise GPS time of week in
LucasKB 2:e7d7e80256cc 31 // seconds is: (iTOW * 1e-3) + (fTOW * 1e-9)
LucasKB 2:e7d7e80256cc 32 short week; // weeks GPS week number of the navigation epoch
LucasKB 2:e7d7e80256cc 33 unsigned char gpsFix; // - GPSfix Type, range 0..5
LucasKB 2:e7d7e80256cc 34 char flags; // - Fix Status Flags (see graphic below)
LucasKB 2:e7d7e80256cc 35 long ecefX; // cm ECEF X coordinate
LucasKB 2:e7d7e80256cc 36 long ecefY; // cm ECEF Y coordinate
LucasKB 2:e7d7e80256cc 37 long ecefZ; // cm ECEF Z coordinate
LucasKB 2:e7d7e80256cc 38 unsigned long pAcc; // cm 3D Position Accuracy Estimate
LucasKB 2:e7d7e80256cc 39 long ecefVX; // cm/s ECEF X velocity
LucasKB 2:e7d7e80256cc 40 long ecefVY; // cm/s ECEF Y velocity
LucasKB 2:e7d7e80256cc 41 long ecefVZ; // cm/s ECEF Z velocity
LucasKB 2:e7d7e80256cc 42 unsigned long sAcc; // cm/s Speed Accuracy Estimate
LucasKB 2:e7d7e80256cc 43 unsigned short pDOP; // - Position DOP (0.01)
LucasKB 2:e7d7e80256cc 44 unsigned char reserved1; // - Reserved
LucasKB 2:e7d7e80256cc 45 unsigned char numSV; // - Number of satellites used in Nav Solution
LucasKB 2:e7d7e80256cc 46 unsigned long reserved2; // - Reserved
LucasKB 2:e7d7e80256cc 47
LucasKB 2:e7d7e80256cc 48 private:
LucasKB 2:e7d7e80256cc 49 bool calculateChecksum(unsigned char *data);
LucasKB 2:e7d7e80256cc 50 // Class properties
LucasKB 2:e7d7e80256cc 51 unsigned char offsetClassProperties;
LucasKB 2:e7d7e80256cc 52 unsigned char offsetHeaders;
LucasKB 2:e7d7e80256cc 53 unsigned char size;
LucasKB 2:e7d7e80256cc 54 unsigned char carriagePosition;
LucasKB 2:e7d7e80256cc 55 unsigned char checksum[2];
LucasKB 2:e7d7e80256cc 56
LucasKB 2:e7d7e80256cc 57 // Headers (common).
LucasKB 2:e7d7e80256cc 58 unsigned char headerClass;
LucasKB 2:e7d7e80256cc 59 unsigned char headerId;
LucasKB 2:e7d7e80256cc 60 unsigned short headerLength;
LucasKB 2:e7d7e80256cc 61 uint16_t payload_length;
LucasKB 2:e7d7e80256cc 62 };
LucasKB 2:e7d7e80256cc 63 #endif