GPS module (GYSFDMAXB) 57600 bps
Dependents: HAPS_GPS_Test_0001
GYSFDMAXB GPSセンサーGYSFDMAXBのライブラリ 57600 bps
手順 [1] シリアルピンを設定 GYSFDMAXB gps(tx_pin, rx_pin); [2] 零点を設定する(NED座標系における零点) gps.Initialize(); [3] 自動的にデータを受信しては更新していくので、適宜メンバ変数を読み込んで使う
GYSFDMAXB.hpp
- Committer:
- cocorlow
- Date:
- 2021-04-23
- Revision:
- 9:8595608c56ca
- Parent:
- 8:9b573e4c4a85
- Child:
- 10:8f574ff249bd
File content as of revision 9:8595608c56ca:
#ifndef __GYSFDMAXB_HPP__ #define __GYSFDMAXB_HPP__ #include "mbed.h" #include "Vector3.hpp" /* $GPZDA,030049.971,06,04,2021,,*54 $GPGGA,030050.971,,,,,0,0,,,M,,M,,*41 $GPGLL,,,,,030050.971,V,N*73 $GPGSA,A,1,,,,,,,,,,,,,,,*1E $GPGSV,1,1,00*79 $GPRMC,030050.971,V,,,,,0.00,0.00,060421,,,N*45 $GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32 $GPZDA,030050.971,06,04,2021,,*5C $GPGGA,030051.971,,,,,0,0,,,M,,M,,*40 $GPGLL,,,,,030051.971,V,N*72 $GPGSA,A,1,,,,,,,,,,,,,,,*1E $GPGSV,1,1,00*79 $GPRMC,030051.971,V,,,,,0.00,0.00,060421,,,N*44 $GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32 $GPZDA,030051.971,06,04,2021,,*5D */ class GYSFDMAXB { private: Serial serial; volatile bool receive_flag; const int start_size = 32; char* uart_start[start_size]; volatile int start_index; const int uart_size = 4096; char uart_buffer[uart_size]; volatile int uart_index; Ticker timer; static const float Radius = 6378136.6f; void Receive(); void Punctuate(); public: // GPGGA int Quality; int Satellites; float HDOP; float Elevation; char UnitElevation; float GeoidElevation; char UnitGeoidElevation; // GPRMC int Hours; int Minutes; int Seconds; int Milliseconds; char Status; float Latitude; char N_S; float Longitude; char E_W; float Speed; float Direction; int Day; int Month; int Year; float GeomagneticDeclination ; char GeomagneticE_W; char Mode; Vector3 UniversalZeroPosition; Vector3 UniversalZeroUnitN; Vector3 UniversalZeroUnitE; Vector3 UniversalZeroUnitD; Vector3 UniversalPosition; Vector3 Position; GYSFDMAXB(PinName tx, PinName rx); void Update(); void Initialize(); Vector3 ToUniversalUnit(); Vector3 ToUniversal(); void CalcurateUnit(); void Calcurate(); Vector3 Calcurate(Vector3 position); }; extern Serial pc; #endif