![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
RX
Dependencies: mbed BufferedSerial SX1276GenericLib X_NUCLEO_IKS01A2
UbxGpsNavSol.hh@0:fb7bf6d81e5f, 2019-06-05 (annotated)
- Committer:
- TMRL123
- Date:
- Wed Jun 05 00:25:53 2019 +0000
- Revision:
- 0:fb7bf6d81e5f
RX
Who changed what in which revision?
User | Revision | Line number | New 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 |