GPS GNSS

Dependencies:   Vector3

Committer:
cocorlow
Date:
Tue Sep 07 05:30:59 2021 +0000
Revision:
0:6c7f7ed85f2c
Child:
3:b0d594e5d9e2
GPS GNSS

Who changed what in which revision?

UserRevisionLine numberNew 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 0:6c7f7ed85f2c 30
cocorlow 0:6c7f7ed85f2c 31 extern Serial pc;
cocorlow 0:6c7f7ed85f2c 32
cocorlow 0:6c7f7ed85f2c 33 class GPS_HAPS
cocorlow 0:6c7f7ed85f2c 34 {
cocorlow 0:6c7f7ed85f2c 35 private:
cocorlow 0:6c7f7ed85f2c 36 Serial serial;
cocorlow 0:6c7f7ed85f2c 37 char receive_buffer[RECEIVE_SIZE];
cocorlow 0:6c7f7ed85f2c 38 char sentence_buffer[SENTENCE_SIZE];
cocorlow 0:6c7f7ed85f2c 39 int receive_start;
cocorlow 0:6c7f7ed85f2c 40 int receive_index;
cocorlow 0:6c7f7ed85f2c 41 int receive_request;
cocorlow 0:6c7f7ed85f2c 42 static const float Radius = 6378136.6f;
cocorlow 0:6c7f7ed85f2c 43
cocorlow 0:6c7f7ed85f2c 44 void Receive();
cocorlow 0:6c7f7ed85f2c 45 void Punctuate();
cocorlow 0:6c7f7ed85f2c 46
cocorlow 0:6c7f7ed85f2c 47 public:
cocorlow 0:6c7f7ed85f2c 48 // GPGGA
cocorlow 0:6c7f7ed85f2c 49 volatile int Quality;
cocorlow 0:6c7f7ed85f2c 50 volatile int Satellites;
cocorlow 0:6c7f7ed85f2c 51 volatile float HDOP;
cocorlow 0:6c7f7ed85f2c 52 volatile float Elevation;
cocorlow 0:6c7f7ed85f2c 53 volatile char UnitElevation;
cocorlow 0:6c7f7ed85f2c 54 volatile float GeoidElevation;
cocorlow 0:6c7f7ed85f2c 55 volatile char UnitGeoidElevation;
cocorlow 0:6c7f7ed85f2c 56
cocorlow 0:6c7f7ed85f2c 57 // GPRMC
cocorlow 0:6c7f7ed85f2c 58 volatile int Hours;
cocorlow 0:6c7f7ed85f2c 59 volatile int Minutes;
cocorlow 0:6c7f7ed85f2c 60 volatile int Seconds;
cocorlow 0:6c7f7ed85f2c 61 volatile int Milliseconds;
cocorlow 0:6c7f7ed85f2c 62 volatile char Status;
cocorlow 0:6c7f7ed85f2c 63 volatile float Latitude;
cocorlow 0:6c7f7ed85f2c 64 volatile char N_S;
cocorlow 0:6c7f7ed85f2c 65 volatile float Longitude;
cocorlow 0:6c7f7ed85f2c 66 volatile char E_W;
cocorlow 0:6c7f7ed85f2c 67 volatile float Speed;
cocorlow 0:6c7f7ed85f2c 68 volatile float Direction;
cocorlow 0:6c7f7ed85f2c 69 volatile int Day;
cocorlow 0:6c7f7ed85f2c 70 volatile int Month;
cocorlow 0:6c7f7ed85f2c 71 volatile int Year;
cocorlow 0:6c7f7ed85f2c 72 volatile float GeomagneticDeclination ;
cocorlow 0:6c7f7ed85f2c 73 volatile char GeomagneticE_W;
cocorlow 0:6c7f7ed85f2c 74 volatile char Mode;
cocorlow 0:6c7f7ed85f2c 75 volatile float Altitude;
cocorlow 0:6c7f7ed85f2c 76 volatile int Time;
cocorlow 0:6c7f7ed85f2c 77
cocorlow 0:6c7f7ed85f2c 78 Vector3 UniversalZeroPosition;
cocorlow 0:6c7f7ed85f2c 79 Vector3 UniversalZeroUnitN;
cocorlow 0:6c7f7ed85f2c 80 Vector3 UniversalZeroUnitE;
cocorlow 0:6c7f7ed85f2c 81 Vector3 UniversalZeroUnitD;
cocorlow 0:6c7f7ed85f2c 82 Vector3 UniversalPosition;
cocorlow 0:6c7f7ed85f2c 83 Vector3 Position;
cocorlow 0:6c7f7ed85f2c 84 Vector3 Velocity;
cocorlow 0:6c7f7ed85f2c 85
cocorlow 0:6c7f7ed85f2c 86 GPS_HAPS(PinName tx, PinName rx, int baud);
cocorlow 0:6c7f7ed85f2c 87 void Attach();
cocorlow 0:6c7f7ed85f2c 88 void Update();
cocorlow 0:6c7f7ed85f2c 89 void Loop();
cocorlow 0:6c7f7ed85f2c 90 void Parse(char *cmd);
cocorlow 0:6c7f7ed85f2c 91 void Initialize();
cocorlow 0:6c7f7ed85f2c 92 Vector3 ToUniversalUnit();
cocorlow 0:6c7f7ed85f2c 93 Vector3 ToUniversal();
cocorlow 0:6c7f7ed85f2c 94 void CalcurateUnit();
cocorlow 0:6c7f7ed85f2c 95 void Calcurate();
cocorlow 0:6c7f7ed85f2c 96 Vector3 Calcurate(Vector3 position);
cocorlow 0:6c7f7ed85f2c 97 };
cocorlow 0:6c7f7ed85f2c 98
cocorlow 0:6c7f7ed85f2c 99 #endif