2018/06/18
GPS.h@0:2c0d50143d85, 2018-05-03 (annotated)
- Committer:
- Tomo073
- Date:
- Thu May 03 14:19:36 2018 +0000
- Revision:
- 0:2c0d50143d85
- Child:
- 1:2f131675f872
a
Who changed what in which revision?
User | Revision | Line number | New 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 | 0:2c0d50143d85 | 82 | int Degrees, Minutes, Hours, m; |
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 |