Receive GPS by interrupt processing

Dependents:   Sample_GPS_INT_lib GPS-SD

Committer:
j_rocket_boy
Date:
Sun Jul 08 04:22:50 2018 +0000
Revision:
4:f143c5f105cd
Parent:
3:ba5fb2bb8de5
Child:
5:fa6444c4dc0e
Add comment of member variable

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 3:ba5fb2bb8de5 12 Copyright (C) 2017 D.Nakayama.
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 2:0af5025cd632 43 /**
j_rocket_boy 2:0af5025cd632 44 @brief Whether location information has been updated.
j_rocket_boy 2:0af5025cd632 45 @param No parameters.
j_rocket_boy 2:0af5025cd632 46 */
j_rocket_boy 0:4b6c377342d9 47 bool location_is_update(void); //位置情報が更新されたか(緯度,経度,DOP)
j_rocket_boy 2:0af5025cd632 48 /**
j_rocket_boy 2:0af5025cd632 49 @brief Whether all infomation has been updated.
j_rocket_boy 2:0af5025cd632 50 @param No parameters.
j_rocket_boy 2:0af5025cd632 51 */
j_rocket_boy 0:4b6c377342d9 52 bool info_is_update(void); //それ以外の情報が更新されたか
j_rocket_boy 2:0af5025cd632 53 /**
j_rocket_boy 2:0af5025cd632 54 @brief Whether GPS is lock.
j_rocket_boy 2:0af5025cd632 55 @param No parameters.
j_rocket_boy 2:0af5025cd632 56 */
j_rocket_boy 0:4b6c377342d9 57 bool is_lock(void); //GPSがロックしたか
j_rocket_boy 0:4b6c377342d9 58
j_rocket_boy 0:4b6c377342d9 59 //受信する情報
j_rocket_boy 4:f143c5f105cd 60 /**
j_rocket_boy 4:f143c5f105cd 61 @brief UTC
j_rocket_boy 4:f143c5f105cd 62 */
j_rocket_boy 0:4b6c377342d9 63 struct tm t; //時刻UTC
j_rocket_boy 4:f143c5f105cd 64 /**
j_rocket_boy 4:f143c5f105cd 65 @brief UTC Elapsed seconds since January 1, 1900
j_rocket_boy 4:f143c5f105cd 66 */
j_rocket_boy 0:4b6c377342d9 67 time_t seconds; //時刻(UTC1900年1月1日からの経過時間)
j_rocket_boy 4:f143c5f105cd 68 /**
j_rocket_boy 4:f143c5f105cd 69 @brief Longitude
j_rocket_boy 4:f143c5f105cd 70 */
j_rocket_boy 0:4b6c377342d9 71 double lon; //緯度, 度(北緯が正)
j_rocket_boy 4:f143c5f105cd 72 /**
j_rocket_boy 4:f143c5f105cd 73 @brief Latitude
j_rocket_boy 4:f143c5f105cd 74 */
j_rocket_boy 0:4b6c377342d9 75 double lat; //経度, 度(東経が正)
j_rocket_boy 4:f143c5f105cd 76 /**
j_rocket_boy 4:f143c5f105cd 77 @brief Location specific quality (0: Can not locate, 1: SPS (standard positioning service), 2: differencial GPS)
j_rocket_boy 4:f143c5f105cd 78 */
j_rocket_boy 0:4b6c377342d9 79 volatile int lock; //位置特定品質(0:位置特定できない, 1:SPS(標準測位サービス), 2:differencial GPS)
j_rocket_boy 4:f143c5f105cd 80 /**
j_rocket_boy 4:f143c5f105cd 81 @brief Number of satellites used
j_rocket_boy 4:f143c5f105cd 82 */
j_rocket_boy 0:4b6c377342d9 83 int n_sat; //使用衛星数
j_rocket_boy 4:f143c5f105cd 84 /**
j_rocket_boy 4:f143c5f105cd 85 @brief Horizontal Dilution Of Precision
j_rocket_boy 4:f143c5f105cd 86 */
j_rocket_boy 0:4b6c377342d9 87 float HDOP; //水平精度低下率
j_rocket_boy 4:f143c5f105cd 88 /**
j_rocket_boy 4:f143c5f105cd 89 @brief Vertical Dilution Of Precision
j_rocket_boy 4:f143c5f105cd 90 */
j_rocket_boy 0:4b6c377342d9 91 float VDOP; //垂直精度低下率
j_rocket_boy 4:f143c5f105cd 92 /**
j_rocket_boy 4:f143c5f105cd 93 @brief Position Dilution Of Precision
j_rocket_boy 4:f143c5f105cd 94 */
j_rocket_boy 0:4b6c377342d9 95 float PDOP; //位置精度低下率
j_rocket_boy 4:f143c5f105cd 96 /**
j_rocket_boy 4:f143c5f105cd 97 @brief Antenna sea level height, m
j_rocket_boy 4:f143c5f105cd 98 */
j_rocket_boy 0:4b6c377342d9 99 float h_see; //アンテナ海抜高さ, m
j_rocket_boy 4:f143c5f105cd 100 /**
j_rocket_boy 4:f143c5f105cd 101 @brief Geoid height, m
j_rocket_boy 4:f143c5f105cd 102 */
j_rocket_boy 0:4b6c377342d9 103 float h_geo; //ジオイド高さ, m
j_rocket_boy 0:4b6c377342d9 104
j_rocket_boy 0:4b6c377342d9 105 private:
j_rocket_boy 0:4b6c377342d9 106 Serial gps;
j_rocket_boy 0:4b6c377342d9 107 bool location_update;
j_rocket_boy 0:4b6c377342d9 108 bool info_update;
j_rocket_boy 0:4b6c377342d9 109 int date_raw; //UTC 日付生データ
j_rocket_boy 0:4b6c377342d9 110 float time_raw; //UTC 時刻生データ
j_rocket_boy 0:4b6c377342d9 111
j_rocket_boy 0:4b6c377342d9 112 double lon_raw; //緯度生データ
j_rocket_boy 0:4b6c377342d9 113 int lon_int; //緯度整数部
j_rocket_boy 0:4b6c377342d9 114 double lon_minute; //緯度分
j_rocket_boy 0:4b6c377342d9 115 char ns; //北緯or南緯
j_rocket_boy 0:4b6c377342d9 116
j_rocket_boy 0:4b6c377342d9 117 double lat_raw; //経度生データ
j_rocket_boy 0:4b6c377342d9 118 int lat_int; //経度整数部
j_rocket_boy 0:4b6c377342d9 119 double lat_minute; //経度分
j_rocket_boy 0:4b6c377342d9 120 char ew; //東経or西経
j_rocket_boy 0:4b6c377342d9 121
j_rocket_boy 0:4b6c377342d9 122 void get_char(void);
j_rocket_boy 0:4b6c377342d9 123 void gps_update(char* buffer);
j_rocket_boy 0:4b6c377342d9 124 };
j_rocket_boy 0:4b6c377342d9 125
j_rocket_boy 0:4b6c377342d9 126 #endif