Receive GPS by interrupt processing

Dependents:   Sample_GPS_INT_lib GPS-SD

Committer:
j_rocket_boy
Date:
Sun Jul 08 02:30:46 2018 +0000
Revision:
0:4b6c377342d9
Child:
1:fbe835e114bb
??

Who changed what in which revision?

UserRevisionLine numberNew contents of line
j_rocket_boy 0:4b6c377342d9 1 /*
j_rocket_boy 0:4b6c377342d9 2 Copyright (c) 2018 @j_rocket_boy(Twitter)
j_rocket_boy 0:4b6c377342d9 3
j_rocket_boy 0:4b6c377342d9 4 UART接続のGPSを割り込み処理で受信するライブラリ
j_rocket_boy 0:4b6c377342d9 5 このライブラリはMITライセンスです.
j_rocket_boy 0:4b6c377342d9 6
j_rocket_boy 0:4b6c377342d9 7 Receive GPS of UART connection by interrupt processing
j_rocket_boy 0:4b6c377342d9 8 This library is released under the MIT License.
j_rocket_boy 0:4b6c377342d9 9
j_rocket_boy 0:4b6c377342d9 10 About MIT license
j_rocket_boy 0:4b6c377342d9 11 https://opensource.org/licenses/mit-license.php
j_rocket_boy 0:4b6c377342d9 12 */
j_rocket_boy 0:4b6c377342d9 13
j_rocket_boy 0:4b6c377342d9 14 #ifndef INCLUDED_GPS_INT_h_
j_rocket_boy 0:4b6c377342d9 15 #define INCLUDED_GPS_INT_h_
j_rocket_boy 0:4b6c377342d9 16 #include "mbed.h"
j_rocket_boy 0:4b6c377342d9 17
j_rocket_boy 0:4b6c377342d9 18 class GPS_INT{
j_rocket_boy 0:4b6c377342d9 19
j_rocket_boy 0:4b6c377342d9 20 public:
j_rocket_boy 0:4b6c377342d9 21
j_rocket_boy 0:4b6c377342d9 22 //コンストラクタ
j_rocket_boy 0:4b6c377342d9 23 GPS_INT(PinName tx, PinName rx, int baud = 9600);
j_rocket_boy 0:4b6c377342d9 24 //デストラクタ
j_rocket_boy 0:4b6c377342d9 25 virtual ~GPS_INT();
j_rocket_boy 0:4b6c377342d9 26
j_rocket_boy 0:4b6c377342d9 27 bool location_is_update(void); //位置情報が更新されたか(緯度,経度,DOP)
j_rocket_boy 0:4b6c377342d9 28 bool info_is_update(void); //それ以外の情報が更新されたか
j_rocket_boy 0:4b6c377342d9 29 bool is_lock(void); //GPSがロックしたか
j_rocket_boy 0:4b6c377342d9 30
j_rocket_boy 0:4b6c377342d9 31 //受信する情報
j_rocket_boy 0:4b6c377342d9 32 struct tm t; //時刻UTC
j_rocket_boy 0:4b6c377342d9 33 time_t seconds; //時刻(UTC1900年1月1日からの経過時間)
j_rocket_boy 0:4b6c377342d9 34 double lon; //緯度, 度(北緯が正)
j_rocket_boy 0:4b6c377342d9 35 double lat; //経度, 度(東経が正)
j_rocket_boy 0:4b6c377342d9 36 volatile int lock; //位置特定品質(0:位置特定できない, 1:SPS(標準測位サービス), 2:differencial GPS)
j_rocket_boy 0:4b6c377342d9 37 int n_sat; //使用衛星数
j_rocket_boy 0:4b6c377342d9 38 float HDOP; //水平精度低下率
j_rocket_boy 0:4b6c377342d9 39 float VDOP; //垂直精度低下率
j_rocket_boy 0:4b6c377342d9 40 float PDOP; //位置精度低下率
j_rocket_boy 0:4b6c377342d9 41 float h_see; //アンテナ海抜高さ, m
j_rocket_boy 0:4b6c377342d9 42 float h_geo; //ジオイド高さ, m
j_rocket_boy 0:4b6c377342d9 43
j_rocket_boy 0:4b6c377342d9 44 private:
j_rocket_boy 0:4b6c377342d9 45 Serial gps;
j_rocket_boy 0:4b6c377342d9 46 bool location_update;
j_rocket_boy 0:4b6c377342d9 47 bool info_update;
j_rocket_boy 0:4b6c377342d9 48 int date_raw; //UTC 日付生データ
j_rocket_boy 0:4b6c377342d9 49 float time_raw; //UTC 時刻生データ
j_rocket_boy 0:4b6c377342d9 50
j_rocket_boy 0:4b6c377342d9 51 double lon_raw; //緯度生データ
j_rocket_boy 0:4b6c377342d9 52 int lon_int; //緯度整数部
j_rocket_boy 0:4b6c377342d9 53 double lon_minute; //緯度分
j_rocket_boy 0:4b6c377342d9 54 char ns; //北緯or南緯
j_rocket_boy 0:4b6c377342d9 55
j_rocket_boy 0:4b6c377342d9 56 double lat_raw; //経度生データ
j_rocket_boy 0:4b6c377342d9 57 int lat_int; //経度整数部
j_rocket_boy 0:4b6c377342d9 58 double lat_minute; //経度分
j_rocket_boy 0:4b6c377342d9 59 char ew; //東経or西経
j_rocket_boy 0:4b6c377342d9 60
j_rocket_boy 0:4b6c377342d9 61 void get_char(void);
j_rocket_boy 0:4b6c377342d9 62 void gps_update(char* buffer);
j_rocket_boy 0:4b6c377342d9 63 };
j_rocket_boy 0:4b6c377342d9 64
j_rocket_boy 0:4b6c377342d9 65 #endif