Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed BufferedSerial SX1276GenericLib X_NUCLEO_IKS01A2
UbxGpsNavSol.hh@2:91a80cc7d87d, 2019-06-17 (annotated)
- Committer:
- LucasKB
- Date:
- Mon Jun 17 00:07:48 2019 +0000
- Revision:
- 2:91a80cc7d87d
Tx
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| LucasKB | 2:91a80cc7d87d | 1 | #ifndef UBXGPSNAVSOL_H_ |
| LucasKB | 2:91a80cc7d87d | 2 | #define UBXGPSNAVSOL_H_ |
| LucasKB | 2:91a80cc7d87d | 3 | |
| LucasKB | 2:91a80cc7d87d | 4 | #include "mbed.h" |
| LucasKB | 2:91a80cc7d87d | 5 | |
| LucasKB | 2:91a80cc7d87d | 6 | #define UBX_NAV_SOL_HEADER_1 (0xB5) |
| LucasKB | 2:91a80cc7d87d | 7 | #define UBX_NAV_SOL_HEADER_2 (0x62) |
| LucasKB | 2:91a80cc7d87d | 8 | #define UBX_NAV_SOL_CLASS (0x01) |
| LucasKB | 2:91a80cc7d87d | 9 | #define UBX_NAV_SOL_ID (0x06) |
| LucasKB | 2:91a80cc7d87d | 10 | #define UBX_NAV_SOL_PAYLOAD_LENGTH (52) |
| LucasKB | 2:91a80cc7d87d | 11 | |
| LucasKB | 2:91a80cc7d87d | 12 | class UbxGpsNavSol : public UARTSerial{ |
| LucasKB | 2:91a80cc7d87d | 13 | public: |
| LucasKB | 2:91a80cc7d87d | 14 | UbxGpsNavSol(PinName tx, PinName rx, int baud); |
| LucasKB | 2:91a80cc7d87d | 15 | ~UbxGpsNavSol(); |
| LucasKB | 2:91a80cc7d87d | 16 | |
| LucasKB | 2:91a80cc7d87d | 17 | bool ready(); |
| LucasKB | 2:91a80cc7d87d | 18 | void disableNmea(); |
| LucasKB | 2:91a80cc7d87d | 19 | bool enableNAVSOL(); |
| LucasKB | 2:91a80cc7d87d | 20 | bool changeFrequency(); |
| LucasKB | 2:91a80cc7d87d | 21 | bool changeBaudrate(); |
| LucasKB | 2:91a80cc7d87d | 22 | bool disableUnnecessaryChannels(); |
| LucasKB | 2:91a80cc7d87d | 23 | bool disableGNSS(); |
| LucasKB | 2:91a80cc7d87d | 24 | bool restoreDefaults(); |
| LucasKB | 2:91a80cc7d87d | 25 | void baud(int baud); |
| LucasKB | 2:91a80cc7d87d | 26 | // void setLength(unsigned char length); |
| LucasKB | 2:91a80cc7d87d | 27 | // Type Name Unit Description (scaling) |
| LucasKB | 2:91a80cc7d87d | 28 | unsigned long iTOW; // ms GPS time of week of the navigation epoch. See the description of iTOW for |
| LucasKB | 2:91a80cc7d87d | 29 | // details |
| LucasKB | 2:91a80cc7d87d | 30 | long fTOW; // ns Fractional part of iTOW (range: +/-500000). The precise GPS time of week in |
| LucasKB | 2:91a80cc7d87d | 31 | // seconds is: (iTOW * 1e-3) + (fTOW * 1e-9) |
| LucasKB | 2:91a80cc7d87d | 32 | short week; // weeks GPS week number of the navigation epoch |
| LucasKB | 2:91a80cc7d87d | 33 | unsigned char gpsFix; // - GPSfix Type, range 0..5 |
| LucasKB | 2:91a80cc7d87d | 34 | char flags; // - Fix Status Flags (see graphic below) |
| LucasKB | 2:91a80cc7d87d | 35 | long ecefX; // cm ECEF X coordinate |
| LucasKB | 2:91a80cc7d87d | 36 | long ecefY; // cm ECEF Y coordinate |
| LucasKB | 2:91a80cc7d87d | 37 | long ecefZ; // cm ECEF Z coordinate |
| LucasKB | 2:91a80cc7d87d | 38 | unsigned long pAcc; // cm 3D Position Accuracy Estimate |
| LucasKB | 2:91a80cc7d87d | 39 | long ecefVX; // cm/s ECEF X velocity |
| LucasKB | 2:91a80cc7d87d | 40 | long ecefVY; // cm/s ECEF Y velocity |
| LucasKB | 2:91a80cc7d87d | 41 | long ecefVZ; // cm/s ECEF Z velocity |
| LucasKB | 2:91a80cc7d87d | 42 | unsigned long sAcc; // cm/s Speed Accuracy Estimate |
| LucasKB | 2:91a80cc7d87d | 43 | unsigned short pDOP; // - Position DOP (0.01) |
| LucasKB | 2:91a80cc7d87d | 44 | unsigned char reserved1; // - Reserved |
| LucasKB | 2:91a80cc7d87d | 45 | unsigned char numSV; // - Number of satellites used in Nav Solution |
| LucasKB | 2:91a80cc7d87d | 46 | unsigned long reserved2; // - Reserved |
| LucasKB | 2:91a80cc7d87d | 47 | |
| LucasKB | 2:91a80cc7d87d | 48 | private: |
| LucasKB | 2:91a80cc7d87d | 49 | bool calculateChecksum(unsigned char *data); |
| LucasKB | 2:91a80cc7d87d | 50 | // Class properties |
| LucasKB | 2:91a80cc7d87d | 51 | unsigned char offsetClassProperties; |
| LucasKB | 2:91a80cc7d87d | 52 | unsigned char offsetHeaders; |
| LucasKB | 2:91a80cc7d87d | 53 | unsigned char size; |
| LucasKB | 2:91a80cc7d87d | 54 | unsigned char carriagePosition; |
| LucasKB | 2:91a80cc7d87d | 55 | unsigned char checksum[2]; |
| LucasKB | 2:91a80cc7d87d | 56 | |
| LucasKB | 2:91a80cc7d87d | 57 | // Headers (common). |
| LucasKB | 2:91a80cc7d87d | 58 | unsigned char headerClass; |
| LucasKB | 2:91a80cc7d87d | 59 | unsigned char headerId; |
| LucasKB | 2:91a80cc7d87d | 60 | unsigned short headerLength; |
| LucasKB | 2:91a80cc7d87d | 61 | uint16_t payload_length; |
| LucasKB | 2:91a80cc7d87d | 62 | }; |
| LucasKB | 2:91a80cc7d87d | 63 | #endif |