RX

Dependencies:   mbed BufferedSerial SX1276GenericLib X_NUCLEO_IKS01A2

Committer:
TMRL123
Date:
Wed Jun 05 00:25:53 2019 +0000
Revision:
0:fb7bf6d81e5f
RX

Who changed what in which revision?

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