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-26
- Revision:
- 10:8f574ff249bd
- Parent:
- 9:8595608c56ca
File content as of revision 10:8f574ff249bd:
#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 volatile int Quality; volatile int Satellites; volatile float HDOP; volatile float Elevation; volatile char UnitElevation; volatile float GeoidElevation; volatile char UnitGeoidElevation; // GPRMC volatile int Hours; volatile int Minutes; volatile int Seconds; volatile int Milliseconds; volatile char Status; volatile float Latitude; volatile char N_S; volatile float Longitude; volatile char E_W; volatile float Speed; volatile float Direction; volatile int Day; volatile int Month; volatile int Year; volatile float GeomagneticDeclination ; volatile char GeomagneticE_W; volatile 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); }; #endif