GPS module (GYSFDMAXB) 57600 bps

Dependencies:   Vector3

Dependents:   HAPS_GPS_Test_0001

GYSFDMAXB GPSセンサーGYSFDMAXBのライブラリ 57600 bps

手順 [1] シリアルピンを設定 GYSFDMAXB gps(tx_pin, rx_pin); [2] 零点を設定する(NED座標系における零点) gps.Initialize(); [3] 自動的にデータを受信しては更新していくので、適宜メンバ変数を読み込んで使う

Committer:
cocorlow
Date:
Thu Apr 22 12:20:43 2021 +0000
Revision:
4:8d315f7977b3
Parent:
3:f8045f83d7c1
mbed os 5?

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cocorlow 4:8d315f7977b3 1 #ifndef __GYSFDMAXB_HPP__
cocorlow 4:8d315f7977b3 2 #define __GYSFDMAXB_HPP__
cocorlow 4:8d315f7977b3 3
cocorlow 4:8d315f7977b3 4 #include "mbed.h"
cocorlow 4:8d315f7977b3 5 #include "Vector3.hpp"
cocorlow 4:8d315f7977b3 6
cocorlow 4:8d315f7977b3 7 /*
cocorlow 4:8d315f7977b3 8 $GPZDA,030049.971,06,04,2021,,*54
cocorlow 4:8d315f7977b3 9 $GPGGA,030050.971,,,,,0,0,,,M,,M,,*41
cocorlow 4:8d315f7977b3 10 $GPGLL,,,,,030050.971,V,N*73
cocorlow 4:8d315f7977b3 11 $GPGSA,A,1,,,,,,,,,,,,,,,*1E
cocorlow 4:8d315f7977b3 12 $GPGSV,1,1,00*79
cocorlow 4:8d315f7977b3 13 $GPRMC,030050.971,V,,,,,0.00,0.00,060421,,,N*45
cocorlow 4:8d315f7977b3 14 $GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
cocorlow 4:8d315f7977b3 15 $GPZDA,030050.971,06,04,2021,,*5C
cocorlow 4:8d315f7977b3 16 $GPGGA,030051.971,,,,,0,0,,,M,,M,,*40
cocorlow 4:8d315f7977b3 17 $GPGLL,,,,,030051.971,V,N*72
cocorlow 4:8d315f7977b3 18 $GPGSA,A,1,,,,,,,,,,,,,,,*1E
cocorlow 4:8d315f7977b3 19 $GPGSV,1,1,00*79
cocorlow 4:8d315f7977b3 20 $GPRMC,030051.971,V,,,,,0.00,0.00,060421,,,N*44
cocorlow 4:8d315f7977b3 21 $GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
cocorlow 4:8d315f7977b3 22 $GPZDA,030051.971,06,04,2021,,*5D
cocorlow 4:8d315f7977b3 23 */
cocorlow 4:8d315f7977b3 24
cocorlow 4:8d315f7977b3 25 #define start_size 32
cocorlow 4:8d315f7977b3 26 #define uart_size 2048
cocorlow 4:8d315f7977b3 27 #define Radius 6378136.6f
cocorlow 4:8d315f7977b3 28
cocorlow 4:8d315f7977b3 29 class GYSFDMAXB
cocorlow 4:8d315f7977b3 30 {
cocorlow 4:8d315f7977b3 31 private:
cocorlow 4:8d315f7977b3 32 Serial serial;
cocorlow 4:8d315f7977b3 33 volatile bool receive_flag;
cocorlow 4:8d315f7977b3 34 char* uart_start[start_size];
cocorlow 4:8d315f7977b3 35 volatile int start_index;
cocorlow 4:8d315f7977b3 36 char uart_buffer[uart_size];
cocorlow 4:8d315f7977b3 37 volatile int uart_index;
cocorlow 4:8d315f7977b3 38 Ticker timer;
cocorlow 4:8d315f7977b3 39
cocorlow 4:8d315f7977b3 40 void Receive();
cocorlow 4:8d315f7977b3 41 void Punctuate();
cocorlow 4:8d315f7977b3 42
cocorlow 4:8d315f7977b3 43 public:
cocorlow 4:8d315f7977b3 44 // GPGGA
cocorlow 4:8d315f7977b3 45
cocorlow 4:8d315f7977b3 46 int Quality;
cocorlow 4:8d315f7977b3 47 int Satellites;
cocorlow 4:8d315f7977b3 48 float HDOP;
cocorlow 4:8d315f7977b3 49 float Elevation;
cocorlow 4:8d315f7977b3 50 char UnitElevation;
cocorlow 4:8d315f7977b3 51 float GeoidElevation;
cocorlow 4:8d315f7977b3 52 char UnitGeoidElevation;
cocorlow 4:8d315f7977b3 53
cocorlow 4:8d315f7977b3 54 // GPRMC
cocorlow 4:8d315f7977b3 55 int Hours;
cocorlow 4:8d315f7977b3 56 int Minutes;
cocorlow 4:8d315f7977b3 57 int Seconds;
cocorlow 4:8d315f7977b3 58 int Milliseconds;
cocorlow 4:8d315f7977b3 59 char Status;
cocorlow 4:8d315f7977b3 60 float Latitude;
cocorlow 4:8d315f7977b3 61 char N_S;
cocorlow 4:8d315f7977b3 62 float Longitude;
cocorlow 4:8d315f7977b3 63 char E_W;
cocorlow 4:8d315f7977b3 64 float Speed;
cocorlow 4:8d315f7977b3 65 float Direction;
cocorlow 4:8d315f7977b3 66 int Day;
cocorlow 4:8d315f7977b3 67 int Month;
cocorlow 4:8d315f7977b3 68 int Year;
cocorlow 4:8d315f7977b3 69 float GeomagneticDeclination ;
cocorlow 4:8d315f7977b3 70 char GeomagneticE_W;
cocorlow 4:8d315f7977b3 71 char Mode;
cocorlow 4:8d315f7977b3 72
cocorlow 4:8d315f7977b3 73 Vector3 UniversalZeroPosition;
cocorlow 4:8d315f7977b3 74 Vector3 UniversalZeroUnitN;
cocorlow 4:8d315f7977b3 75 Vector3 UniversalZeroUnitE;
cocorlow 4:8d315f7977b3 76 Vector3 UniversalZeroUnitD;
cocorlow 4:8d315f7977b3 77 Vector3 UniversalPosition;
cocorlow 4:8d315f7977b3 78 Vector3 Position;
cocorlow 4:8d315f7977b3 79
cocorlow 4:8d315f7977b3 80 GYSFDMAXB(PinName tx, PinName rx);
cocorlow 4:8d315f7977b3 81 void Update();
cocorlow 4:8d315f7977b3 82 void Initialize();
cocorlow 4:8d315f7977b3 83 Vector3 ToUniversalUnit();
cocorlow 4:8d315f7977b3 84 Vector3 ToUniversal();
cocorlow 4:8d315f7977b3 85 void CalcurateUnit();
cocorlow 4:8d315f7977b3 86 void Calcurate();
cocorlow 4:8d315f7977b3 87 Vector3 Calcurate(Vector3 position);
cocorlow 4:8d315f7977b3 88 };
cocorlow 4:8d315f7977b3 89
cocorlow 4:8d315f7977b3 90 extern Serial pc;
cocorlow 4:8d315f7977b3 91
cocorlow 4:8d315f7977b3 92 #endif