RX
Dependencies: mbed BufferedSerial SX1276GenericLib X_NUCLEO_IKS01A2
UbxGpsNavSol.hh@2:e7d7e80256cc, 2019-06-17 (annotated)
- Committer:
- LucasKB
- Date:
- Mon Jun 17 00:10:40 2019 +0000
- Revision:
- 2:e7d7e80256cc
RX;
Who changed what in which revision?
User | Revision | Line number | New 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 |