2018/06/18

Dependents:   library

Committer:
Tomo073
Date:
Fri May 04 15:16:02 2018 +0000
Revision:
1:2f131675f872
Parent:
0:2c0d50143d85
Child:
2:578f518a6a05
a

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Tomo073 0:2c0d50143d85 1 /*
Tomo073 0:2c0d50143d85 2
Tomo073 0:2c0d50143d85 3 GYSFDMAXB(GPS受信機1pps出力付きみちびき対応)用ライブラリ
Tomo073 0:2c0d50143d85 4 written by ST
Tomo073 0:2c0d50143d85 5 他の処理と並行するなら割り込み処理を使用すべし
Tomo073 0:2c0d50143d85 6 ex:NVIC_SetPriority(UART2_IRQn,0); //0の部分で優先順位を決定
Tomo073 0:2c0d50143d85 7 readable == true のとき正しいデータが出力
Tomo073 0:2c0d50143d85 8
Tomo073 0:2c0d50143d85 9 ※経度、緯度、時間の読み方
Tomo073 0:2c0d50143d85 10 lon,lat:ddmm.mmmm
Tomo073 0:2c0d50143d85 11 dd:度
Tomo073 0:2c0d50143d85 12 mm.mmmm:分(上一桁:10分、下一桁:1/10000分)
Tomo073 0:2c0d50143d85 13
Tomo073 0:2c0d50143d85 14 time:hhmmss.000000
Tomo073 0:2c0d50143d85 15 hh.時
Tomo073 0:2c0d50143d85 16 mm.分
Tomo073 0:2c0d50143d85 17 ss.秒
Tomo073 0:2c0d50143d85 18
Tomo073 0:2c0d50143d85 19 ※機能
Tomo073 0:2c0d50143d85 20 ・GPS(TX,RX); コンストラクタ、ピン宣言
Tomo073 0:2c0d50143d85 21 ・GPS::attach(関数名); 割り込み処理設定
Tomo073 0:2c0d50143d85 22 ・GPS::GetDefault(); 編集前データ出力(char)
Tomo073 0:2c0d50143d85 23 ・gps.ExtractionData(); 編集データ出力(float gps.longtitude, float gps.latitude, float gps.timedefault)
Tomo073 0:2c0d50143d85 24 ・gps.ExtractionData_FULL(); 編集データ出力(書式は下記のサンプルプログラム参照)
Tomo073 0:2c0d50143d85 25
Tomo073 0:2c0d50143d85 26 @code
Tomo073 0:2c0d50143d85 27 //----------------------------------------------------------------------------------------------------------------------------------------------------------
Tomo073 0:2c0d50143d85 28 //sample program(TERA TERMに出力)
Tomo073 0:2c0d50143d85 29 //----------------------------------------------------------------------------------------------------------------------------------------------------------
Tomo073 0:2c0d50143d85 30 #include "mbed.h"
Tomo073 0:2c0d50143d85 31 #include "GPS.h"
Tomo073 0:2c0d50143d85 32
Tomo073 0:2c0d50143d85 33 GPS gps(p28,p27); //(tx,rx)
Tomo073 0:2c0d50143d85 34 Serial pc(USBTX, USBRX);
Tomo073 0:2c0d50143d85 35
Tomo073 0:2c0d50143d85 36 void getGPS(){
Tomo073 0:2c0d50143d85 37 //NVIC_SetPriority(UART2_IRQn,0); //割り込み優先順位(必要に応じて)
Tomo073 0:2c0d50143d85 38 gps.ExtractionData_FULL(); //データ抽出
Tomo073 0:2c0d50143d85 39 if(gps.readable == true){
Tomo073 0:2c0d50143d85 40 //pc.printf("longtitude:%f latitude:%f time:%f\r\n", gps.longtitude, gps.latitude, gps.time); //gps.ExtractionData(); 書き込み(経度、緯度、時間)
Tomo073 0:2c0d50143d85 41 }
Tomo073 0:2c0d50143d85 42 }
Tomo073 0:2c0d50143d85 43
Tomo073 0:2c0d50143d85 44 int main(){
Tomo073 0:2c0d50143d85 45 gps.attach(getGPS); //割り込み(関数名)
Tomo073 0:2c0d50143d85 46 while(1){
Tomo073 0:2c0d50143d85 47 //gps.GetDefault(); //元のデータ
Tomo073 0:2c0d50143d85 48 //pc.printf("%c",gps.datadefault); //書き込み
Tomo073 0:2c0d50143d85 49 }
Tomo073 0:2c0d50143d85 50 }
Tomo073 0:2c0d50143d85 51 //-------------------------------------------------------------------------------------------------------------------------------------------------------------
Tomo073 0:2c0d50143d85 52 @endcode
Tomo073 0:2c0d50143d85 53
Tomo073 0:2c0d50143d85 54 */
Tomo073 0:2c0d50143d85 55
Tomo073 0:2c0d50143d85 56 #ifndef GPS_H
Tomo073 0:2c0d50143d85 57 #define GPS_H
Tomo073 0:2c0d50143d85 58
Tomo073 0:2c0d50143d85 59 #include "mbed.h"
Tomo073 0:2c0d50143d85 60
Tomo073 0:2c0d50143d85 61 #define GPSBAUD 9600//GPSのボーレート
Tomo073 0:2c0d50143d85 62 #define ODR 10//max 10Hz 更新周期
Tomo073 0:2c0d50143d85 63
Tomo073 0:2c0d50143d85 64 class GPS {
Tomo073 0:2c0d50143d85 65 public:
Tomo073 0:2c0d50143d85 66 GPS(PinName gpstx,PinName gpsrx);
Tomo073 0:2c0d50143d85 67
Tomo073 0:2c0d50143d85 68 bool readable;
Tomo073 0:2c0d50143d85 69 char datadefault;
Tomo073 0:2c0d50143d85 70 char *longtitudeFULL, *latitudeFULL, *timeFULL, *altitudeFULL;
Tomo073 0:2c0d50143d85 71 float longtitude, latitude, time, altitude, times;
Tomo073 0:2c0d50143d85 72
Tomo073 0:2c0d50143d85 73 void GPS::attach(void(*fn)());
Tomo073 0:2c0d50143d85 74 void GetDefault();
Tomo073 0:2c0d50143d85 75 void ExtractionData();
Tomo073 0:2c0d50143d85 76 void ExtractionData_FULL();
Tomo073 0:2c0d50143d85 77
Tomo073 0:2c0d50143d85 78 private:
Tomo073 0:2c0d50143d85 79 Serial serial;
Tomo073 0:2c0d50143d85 80 bool reasonable;
Tomo073 0:2c0d50143d85 81 char buf[100];
Tomo073 1:2f131675f872 82 int info, Degrees, Minutes, Hours;
Tomo073 0:2c0d50143d85 83 float fDegrees, fMinutes, Seconds, fHours;
Tomo073 0:2c0d50143d85 84 void gpscmd(char *command);
Tomo073 0:2c0d50143d85 85 void getstring(char DATA[]);
Tomo073 0:2c0d50143d85 86 void Initialization();
Tomo073 0:2c0d50143d85 87 };
Tomo073 0:2c0d50143d85 88
Tomo073 0:2c0d50143d85 89 #endif