2018/06/18
GPS.h
- Committer:
- Tomo073
- Date:
- 2018-05-03
- Revision:
- 0:2c0d50143d85
- Child:
- 1:2f131675f872
File content as of revision 0:2c0d50143d85:
/* GYSFDMAXB(GPS受信機1pps出力付きみちびき対応)用ライブラリ written by ST 他の処理と並行するなら割り込み処理を使用すべし ex:NVIC_SetPriority(UART2_IRQn,0); //0の部分で優先順位を決定 readable == true のとき正しいデータが出力 ※経度、緯度、時間の読み方 lon,lat:ddmm.mmmm dd:度 mm.mmmm:分(上一桁:10分、下一桁:1/10000分) time:hhmmss.000000 hh.時 mm.分 ss.秒 ※機能 ・GPS(TX,RX); コンストラクタ、ピン宣言 ・GPS::attach(関数名); 割り込み処理設定 ・GPS::GetDefault(); 編集前データ出力(char) ・gps.ExtractionData(); 編集データ出力(float gps.longtitude, float gps.latitude, float gps.timedefault) ・gps.ExtractionData_FULL(); 編集データ出力(書式は下記のサンプルプログラム参照) @code //---------------------------------------------------------------------------------------------------------------------------------------------------------- //sample program(TERA TERMに出力) //---------------------------------------------------------------------------------------------------------------------------------------------------------- #include "mbed.h" #include "GPS.h" GPS gps(p28,p27); //(tx,rx) Serial pc(USBTX, USBRX); void getGPS(){ //NVIC_SetPriority(UART2_IRQn,0); //割り込み優先順位(必要に応じて) gps.ExtractionData_FULL(); //データ抽出 if(gps.readable == true){ //pc.printf("longtitude:%f latitude:%f time:%f\r\n", gps.longtitude, gps.latitude, gps.time); //gps.ExtractionData(); 書き込み(経度、緯度、時間) } } int main(){ gps.attach(getGPS); //割り込み(関数名) while(1){ //gps.GetDefault(); //元のデータ //pc.printf("%c",gps.datadefault); //書き込み } } //------------------------------------------------------------------------------------------------------------------------------------------------------------- @endcode */ #ifndef GPS_H #define GPS_H #include "mbed.h" #define GPSBAUD 9600//GPSのボーレート #define ODR 10//max 10Hz 更新周期 class GPS { public: GPS(PinName gpstx,PinName gpsrx); bool readable; char datadefault; char *longtitudeFULL, *latitudeFULL, *timeFULL, *altitudeFULL; float longtitude, latitude, time, altitude, times; void GPS::attach(void(*fn)()); void GetDefault(); void ExtractionData(); void ExtractionData_FULL(); private: Serial serial; bool reasonable; char buf[100]; int Degrees, Minutes, Hours, m; float fDegrees, fMinutes, Seconds, fHours; void gpscmd(char *command); void getstring(char DATA[]); void Initialization(); }; #endif