Receive GPS by interrupt processing

Dependents:   Sample_GPS_INT_lib GPS-SD

Committer:
j_rocket_boy
Date:
Sun Jul 08 03:30:42 2018 +0000
Revision:
1:fbe835e114bb
Parent:
0:4b6c377342d9
Child:
2:0af5025cd632
Doxygen Test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
j_rocket_boy 1:fbe835e114bb 1 // -*- coding: utf-8 -*-
j_rocket_boy 1:fbe835e114bb 2 /**
j_rocket_boy 1:fbe835e114bb 3 @file GPS_INT.h
j_rocket_boy 1:fbe835e114bb 4 @brief Recieve GPS using Interrupt
j_rocket_boy 1:fbe835e114bb 5
j_rocket_boy 1:fbe835e114bb 6 @author D.Nakayama
j_rocket_boy 1:fbe835e114bb 7 @version 1.0
j_rocket_boy 1:fbe835e114bb 8 @date 2018-07-08 D.Nakayama Written for C++/mbed.
j_rocket_boy 1:fbe835e114bb 9
j_rocket_boy 1:fbe835e114bb 10
j_rocket_boy 1:fbe835e114bb 11 @see
j_rocket_boy 1:fbe835e114bb 12 Copyright (C) 2017 T.Kawamura.
j_rocket_boy 1:fbe835e114bb 13 Released under the MIT license.
j_rocket_boy 1:fbe835e114bb 14 http://opensource.org/licenses/mit-license.php
j_rocket_boy 1:fbe835e114bb 15
j_rocket_boy 0:4b6c377342d9 16 */
j_rocket_boy 0:4b6c377342d9 17
j_rocket_boy 0:4b6c377342d9 18 #ifndef INCLUDED_GPS_INT_h_
j_rocket_boy 0:4b6c377342d9 19 #define INCLUDED_GPS_INT_h_
j_rocket_boy 0:4b6c377342d9 20 #include "mbed.h"
j_rocket_boy 0:4b6c377342d9 21
j_rocket_boy 1:fbe835e114bb 22 /**
j_rocket_boy 1:fbe835e114bb 23 @class GPS_INT
j_rocket_boy 1:fbe835e114bb 24 @brief "Recieve GPS class" using Interrupt
j_rocket_boy 1:fbe835e114bb 25 */
j_rocket_boy 0:4b6c377342d9 26 class GPS_INT{
j_rocket_boy 0:4b6c377342d9 27 public:
j_rocket_boy 0:4b6c377342d9 28
j_rocket_boy 0:4b6c377342d9 29 //コンストラクタ
j_rocket_boy 1:fbe835e114bb 30 /**
j_rocket_boy 1:fbe835e114bb 31 @brief Create a new gps(UART).
j_rocket_boy 1:fbe835e114bb 32 @param txpin Tx pin name (Defined in PinName.h)
j_rocket_boy 1:fbe835e114bb 33 @param rxpin Rx pin name (Defined in PinName.h)
j_rocket_boy 1:fbe835e114bb 34 @param baudrate Baudrate (ex: 4800). Default value is 9600.
j_rocket_boy 1:fbe835e114bb 35 */
j_rocket_boy 0:4b6c377342d9 36 GPS_INT(PinName tx, PinName rx, int baud = 9600);
j_rocket_boy 0:4b6c377342d9 37 //デストラクタ
j_rocket_boy 1:fbe835e114bb 38 /**
j_rocket_boy 1:fbe835e114bb 39 @brief Disable the gps Port.
j_rocket_boy 1:fbe835e114bb 40 @param No parameters.
j_rocket_boy 1:fbe835e114bb 41 */
j_rocket_boy 0:4b6c377342d9 42 virtual ~GPS_INT();
j_rocket_boy 0:4b6c377342d9 43
j_rocket_boy 0:4b6c377342d9 44 bool location_is_update(void); //位置情報が更新されたか(緯度,経度,DOP)
j_rocket_boy 0:4b6c377342d9 45 bool info_is_update(void); //それ以外の情報が更新されたか
j_rocket_boy 0:4b6c377342d9 46 bool is_lock(void); //GPSがロックしたか
j_rocket_boy 0:4b6c377342d9 47
j_rocket_boy 0:4b6c377342d9 48 //受信する情報
j_rocket_boy 0:4b6c377342d9 49 struct tm t; //時刻UTC
j_rocket_boy 0:4b6c377342d9 50 time_t seconds; //時刻(UTC1900年1月1日からの経過時間)
j_rocket_boy 0:4b6c377342d9 51 double lon; //緯度, 度(北緯が正)
j_rocket_boy 0:4b6c377342d9 52 double lat; //経度, 度(東経が正)
j_rocket_boy 0:4b6c377342d9 53 volatile int lock; //位置特定品質(0:位置特定できない, 1:SPS(標準測位サービス), 2:differencial GPS)
j_rocket_boy 0:4b6c377342d9 54 int n_sat; //使用衛星数
j_rocket_boy 0:4b6c377342d9 55 float HDOP; //水平精度低下率
j_rocket_boy 0:4b6c377342d9 56 float VDOP; //垂直精度低下率
j_rocket_boy 0:4b6c377342d9 57 float PDOP; //位置精度低下率
j_rocket_boy 0:4b6c377342d9 58 float h_see; //アンテナ海抜高さ, m
j_rocket_boy 0:4b6c377342d9 59 float h_geo; //ジオイド高さ, m
j_rocket_boy 0:4b6c377342d9 60
j_rocket_boy 0:4b6c377342d9 61 private:
j_rocket_boy 0:4b6c377342d9 62 Serial gps;
j_rocket_boy 0:4b6c377342d9 63 bool location_update;
j_rocket_boy 0:4b6c377342d9 64 bool info_update;
j_rocket_boy 0:4b6c377342d9 65 int date_raw; //UTC 日付生データ
j_rocket_boy 0:4b6c377342d9 66 float time_raw; //UTC 時刻生データ
j_rocket_boy 0:4b6c377342d9 67
j_rocket_boy 0:4b6c377342d9 68 double lon_raw; //緯度生データ
j_rocket_boy 0:4b6c377342d9 69 int lon_int; //緯度整数部
j_rocket_boy 0:4b6c377342d9 70 double lon_minute; //緯度分
j_rocket_boy 0:4b6c377342d9 71 char ns; //北緯or南緯
j_rocket_boy 0:4b6c377342d9 72
j_rocket_boy 0:4b6c377342d9 73 double lat_raw; //経度生データ
j_rocket_boy 0:4b6c377342d9 74 int lat_int; //経度整数部
j_rocket_boy 0:4b6c377342d9 75 double lat_minute; //経度分
j_rocket_boy 0:4b6c377342d9 76 char ew; //東経or西経
j_rocket_boy 0:4b6c377342d9 77
j_rocket_boy 0:4b6c377342d9 78 void get_char(void);
j_rocket_boy 0:4b6c377342d9 79 void gps_update(char* buffer);
j_rocket_boy 0:4b6c377342d9 80 };
j_rocket_boy 0:4b6c377342d9 81
j_rocket_boy 0:4b6c377342d9 82 #endif