GPS GNSS
Dependencies: Vector3
GPS_HAPS.hpp@3:b0d594e5d9e2, 2021-09-07 (annotated)
- Committer:
- cocorlow
- Date:
- Tue Sep 07 08:24:31 2021 +0000
- Revision:
- 3:b0d594e5d9e2
- Parent:
- 0:6c7f7ed85f2c
- Child:
- 4:708e05b10257
a
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
cocorlow | 0:6c7f7ed85f2c | 1 | #ifndef __GPS_HAPS_HPP__ |
cocorlow | 0:6c7f7ed85f2c | 2 | #define __GPS_HAPS_HPP__ |
cocorlow | 0:6c7f7ed85f2c | 3 | |
cocorlow | 0:6c7f7ed85f2c | 4 | #include "mbed.h" |
cocorlow | 0:6c7f7ed85f2c | 5 | #include "Vector3.hpp" |
cocorlow | 0:6c7f7ed85f2c | 6 | |
cocorlow | 0:6c7f7ed85f2c | 7 | /* |
cocorlow | 0:6c7f7ed85f2c | 8 | $GNRMC,090439.00,A,3542.93385,N,13945.73884,E,0.444,,060921,,,A,V*15 |
cocorlow | 0:6c7f7ed85f2c | 9 | $GNVTG,,T,,M,0.444,N,0.822,K,A*31 |
cocorlow | 0:6c7f7ed85f2c | 10 | $GNGGA,090439.00,3542.93385,N,13945.73884,E,1,08,1.32,76.5,M,39.4,M,,*79 |
cocorlow | 0:6c7f7ed85f2c | 11 | $GNGSA,A,3,13,15,18,24,10,23,,,,,,,2.11,1.32,1.65,1*08 |
cocorlow | 0:6c7f7ed85f2c | 12 | $GNGSA,A,3,,,,,,,,,,,,,2.11,1.32,1.65,2*02 |
cocorlow | 0:6c7f7ed85f2c | 13 | $GNGSA,A,3,07,08,,,,,,,,,,,2.11,1.32,1.65,3*0C |
cocorlow | 0:6c7f7ed85f2c | 14 | $GNGSA,A,3,,,,,,,,,,,,,2.11,1.32,1.65,4*04 |
cocorlow | 0:6c7f7ed85f2c | 15 | $GPGSV,2,1,06,10,33,315,22,13,19,081,10,15,49,080,12,18,24,231,12,1*6B |
cocorlow | 0:6c7f7ed85f2c | 16 | $GPGSV,2,2,06,23,68,294,22,24,77,009,24,1*6B |
cocorlow | 0:6c7f7ed85f2c | 17 | $GPGSV,2,1,05,05,15,148,,12,32,157,,14,00,031,,25,13,184,,0*61 |
cocorlow | 0:6c7f7ed85f2c | 18 | $GPGSV,2,2,05,25,13,184,,0*58 |
cocorlow | 0:6c7f7ed85f2c | 19 | $GLGSV,1,1,00,0*79 |
cocorlow | 0:6c7f7ed85f2c | 20 | $GAGSV,2,1,05,02,47,068,25,03,15,100,17,07,50,316,29,08,61,066,23,7*7E |
cocorlow | 0:6c7f7ed85f2c | 21 | $GAGSV,2,2,05,25,08,035,12,7*4C |
cocorlow | 0:6c7f7ed85f2c | 22 | $GAGSV,2,1,05,13,12,222,,26,19,275,,27,08,195,,30,50,155,,0*7A |
cocorlow | 0:6c7f7ed85f2c | 23 | $GAGSV,2,2,05,30,50,155,,0*46 |
cocorlow | 0:6c7f7ed85f2c | 24 | $GBGSV,1,1,00,0*77 |
cocorlow | 0:6c7f7ed85f2c | 25 | $GNGLL,3542.93385,N,13945.73884,E,090439.00,A,A*7E |
cocorlow | 0:6c7f7ed85f2c | 26 | */ |
cocorlow | 0:6c7f7ed85f2c | 27 | |
cocorlow | 0:6c7f7ed85f2c | 28 | #define RECEIVE_SIZE 1024 |
cocorlow | 0:6c7f7ed85f2c | 29 | #define SENTENCE_SIZE 256 |
cocorlow | 3:b0d594e5d9e2 | 30 | #define ERROR_F 0.0001f |
cocorlow | 0:6c7f7ed85f2c | 31 | |
cocorlow | 0:6c7f7ed85f2c | 32 | extern Serial pc; |
cocorlow | 0:6c7f7ed85f2c | 33 | |
cocorlow | 0:6c7f7ed85f2c | 34 | class GPS_HAPS |
cocorlow | 0:6c7f7ed85f2c | 35 | { |
cocorlow | 0:6c7f7ed85f2c | 36 | private: |
cocorlow | 0:6c7f7ed85f2c | 37 | Serial serial; |
cocorlow | 0:6c7f7ed85f2c | 38 | char receive_buffer[RECEIVE_SIZE]; |
cocorlow | 0:6c7f7ed85f2c | 39 | char sentence_buffer[SENTENCE_SIZE]; |
cocorlow | 0:6c7f7ed85f2c | 40 | int receive_start; |
cocorlow | 0:6c7f7ed85f2c | 41 | int receive_index; |
cocorlow | 0:6c7f7ed85f2c | 42 | int receive_request; |
cocorlow | 0:6c7f7ed85f2c | 43 | static const float Radius = 6378136.6f; |
cocorlow | 0:6c7f7ed85f2c | 44 | |
cocorlow | 0:6c7f7ed85f2c | 45 | void Receive(); |
cocorlow | 0:6c7f7ed85f2c | 46 | void Punctuate(); |
cocorlow | 0:6c7f7ed85f2c | 47 | |
cocorlow | 0:6c7f7ed85f2c | 48 | public: |
cocorlow | 0:6c7f7ed85f2c | 49 | // GPGGA |
cocorlow | 0:6c7f7ed85f2c | 50 | volatile int Quality; |
cocorlow | 0:6c7f7ed85f2c | 51 | volatile int Satellites; |
cocorlow | 0:6c7f7ed85f2c | 52 | volatile float HDOP; |
cocorlow | 0:6c7f7ed85f2c | 53 | volatile float Elevation; |
cocorlow | 0:6c7f7ed85f2c | 54 | volatile char UnitElevation; |
cocorlow | 0:6c7f7ed85f2c | 55 | volatile float GeoidElevation; |
cocorlow | 0:6c7f7ed85f2c | 56 | volatile char UnitGeoidElevation; |
cocorlow | 0:6c7f7ed85f2c | 57 | |
cocorlow | 0:6c7f7ed85f2c | 58 | // GPRMC |
cocorlow | 0:6c7f7ed85f2c | 59 | volatile int Hours; |
cocorlow | 0:6c7f7ed85f2c | 60 | volatile int Minutes; |
cocorlow | 0:6c7f7ed85f2c | 61 | volatile int Seconds; |
cocorlow | 0:6c7f7ed85f2c | 62 | volatile int Milliseconds; |
cocorlow | 0:6c7f7ed85f2c | 63 | volatile char Status; |
cocorlow | 0:6c7f7ed85f2c | 64 | volatile float Latitude; |
cocorlow | 0:6c7f7ed85f2c | 65 | volatile char N_S; |
cocorlow | 0:6c7f7ed85f2c | 66 | volatile float Longitude; |
cocorlow | 0:6c7f7ed85f2c | 67 | volatile char E_W; |
cocorlow | 0:6c7f7ed85f2c | 68 | volatile float Speed; |
cocorlow | 0:6c7f7ed85f2c | 69 | volatile float Direction; |
cocorlow | 0:6c7f7ed85f2c | 70 | volatile int Day; |
cocorlow | 0:6c7f7ed85f2c | 71 | volatile int Month; |
cocorlow | 0:6c7f7ed85f2c | 72 | volatile int Year; |
cocorlow | 0:6c7f7ed85f2c | 73 | volatile float GeomagneticDeclination ; |
cocorlow | 0:6c7f7ed85f2c | 74 | volatile char GeomagneticE_W; |
cocorlow | 0:6c7f7ed85f2c | 75 | volatile char Mode; |
cocorlow | 0:6c7f7ed85f2c | 76 | volatile float Altitude; |
cocorlow | 0:6c7f7ed85f2c | 77 | volatile int Time; |
cocorlow | 0:6c7f7ed85f2c | 78 | |
cocorlow | 0:6c7f7ed85f2c | 79 | Vector3 UniversalZeroPosition; |
cocorlow | 0:6c7f7ed85f2c | 80 | Vector3 UniversalZeroUnitN; |
cocorlow | 0:6c7f7ed85f2c | 81 | Vector3 UniversalZeroUnitE; |
cocorlow | 0:6c7f7ed85f2c | 82 | Vector3 UniversalZeroUnitD; |
cocorlow | 0:6c7f7ed85f2c | 83 | Vector3 UniversalPosition; |
cocorlow | 0:6c7f7ed85f2c | 84 | Vector3 Position; |
cocorlow | 0:6c7f7ed85f2c | 85 | Vector3 Velocity; |
cocorlow | 0:6c7f7ed85f2c | 86 | |
cocorlow | 0:6c7f7ed85f2c | 87 | GPS_HAPS(PinName tx, PinName rx, int baud); |
cocorlow | 0:6c7f7ed85f2c | 88 | void Attach(); |
cocorlow | 0:6c7f7ed85f2c | 89 | void Update(); |
cocorlow | 0:6c7f7ed85f2c | 90 | void Loop(); |
cocorlow | 0:6c7f7ed85f2c | 91 | void Parse(char *cmd); |
cocorlow | 0:6c7f7ed85f2c | 92 | void Initialize(); |
cocorlow | 0:6c7f7ed85f2c | 93 | Vector3 ToUniversalUnit(); |
cocorlow | 0:6c7f7ed85f2c | 94 | Vector3 ToUniversal(); |
cocorlow | 0:6c7f7ed85f2c | 95 | void CalcurateUnit(); |
cocorlow | 0:6c7f7ed85f2c | 96 | void Calcurate(); |
cocorlow | 0:6c7f7ed85f2c | 97 | Vector3 Calcurate(Vector3 position); |
cocorlow | 0:6c7f7ed85f2c | 98 | }; |
cocorlow | 0:6c7f7ed85f2c | 99 | |
cocorlow | 0:6c7f7ed85f2c | 100 | #endif |