PLANET-Q AE-GPS Library

Dependents:   IZU2020_AVIONICS IZU2020_AVIONICS

Committer:
tanahashi
Date:
Tue Dec 17 13:06:35 2019 +0000
Revision:
1:a1a0ccb98643
Parent:
0:55b72d6ab099
Child:
2:c469139053eb
added comment

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tanahashi 0:55b72d6ab099 1 #ifndef PQAEGPS_H
tanahashi 0:55b72d6ab099 2 #define PQAEGPS_H
tanahashi 0:55b72d6ab099 3
tanahashi 1:a1a0ccb98643 4 /**
tanahashi 1:a1a0ccb98643 5 * AE-GPSのライブラリ
tanahashi 1:a1a0ccb98643 6 * @note 内部でシリアル受信割り込みを使用しています
tanahashi 1:a1a0ccb98643 7 * @note GPGGAフォーマットのみを出力するように設定し、バックアップ用電池を使用すること
tanahashi 1:a1a0ccb98643 8 * @code
tanahashi 1:a1a0ccb98643 9 #include "mbed.h"
tanahashi 1:a1a0ccb98643 10 #include "PQAEGPS.h"
tanahashi 1:a1a0ccb98643 11
tanahashi 1:a1a0ccb98643 12 Serial pc(USBTX, USBRX, 115200);
tanahashi 1:a1a0ccb98643 13 Serial gps_serial(p9, p10, 115200);
tanahashi 1:a1a0ccb98643 14
tanahashi 1:a1a0ccb98643 15 AEGPS gps(gps_serial);
tanahashi 1:a1a0ccb98643 16
tanahashi 1:a1a0ccb98643 17 int main()
tanahashi 1:a1a0ccb98643 18 {
tanahashi 1:a1a0ccb98643 19 while(1) {
tanahashi 1:a1a0ccb98643 20 pc.printf("time:%d:%d:%.1f, lat:%.6f, lon:%.6f, fix:%d, sat:%d, hdop:%.2f, alt:%.1f, geoid:%.1f\r\n", gps.get_lat(), gps.get_lon(), gps.get_hour(), gps.get_min(), gps.get_sec(), gps.get_sat(), gps.get_sat(), gps.get_hdop(), gps.get_alt(), gps.get_geoid());
tanahashi 1:a1a0ccb98643 21 }
tanahashi 1:a1a0ccb98643 22 }
tanahashi 1:a1a0ccb98643 23 * @endcode
tanahashi 1:a1a0ccb98643 24 */
tanahashi 0:55b72d6ab099 25 class AEGPS{
tanahashi 0:55b72d6ab099 26 private:
tanahashi 0:55b72d6ab099 27 Serial *_serial;
tanahashi 0:55b72d6ab099 28 char rx_buf[256];
tanahashi 0:55b72d6ab099 29 int index;
tanahashi 0:55b72d6ab099 30 int flag;
tanahashi 0:55b72d6ab099 31 int hour;
tanahashi 0:55b72d6ab099 32 int min;
tanahashi 0:55b72d6ab099 33 float sec;
tanahashi 0:55b72d6ab099 34 float lat;
tanahashi 0:55b72d6ab099 35 char ns;
tanahashi 0:55b72d6ab099 36 float lon;
tanahashi 0:55b72d6ab099 37 char ew;
tanahashi 0:55b72d6ab099 38 int fix;
tanahashi 0:55b72d6ab099 39 int sat;
tanahashi 0:55b72d6ab099 40 float hdop;
tanahashi 0:55b72d6ab099 41 float alt;
tanahashi 0:55b72d6ab099 42 float geoid;
tanahashi 0:55b72d6ab099 43
tanahashi 0:55b72d6ab099 44 public:
tanahashi 1:a1a0ccb98643 45 /**
tanahashi 1:a1a0ccb98643 46 * @param &gps_serial Serialのインスタンスへの参照
tanahashi 1:a1a0ccb98643 47 */
tanahashi 1:a1a0ccb98643 48 AEGPS(Serial &gps_serial);
tanahashi 0:55b72d6ab099 49
tanahashi 0:55b72d6ab099 50 private:
tanahashi 0:55b72d6ab099 51 void receive();
tanahashi 0:55b72d6ab099 52
tanahashi 0:55b72d6ab099 53 public:
tanahashi 1:a1a0ccb98643 54 /**
tanahashi 1:a1a0ccb98643 55 * 協定世界時(UTC)の時間のゲッター
tanahashi 1:a1a0ccb98643 56 * @return 時間(UTC)
tanahashi 1:a1a0ccb98643 57 */
tanahashi 0:55b72d6ab099 58 int get_hour();
tanahashi 1:a1a0ccb98643 59
tanahashi 1:a1a0ccb98643 60 /**
tanahashi 1:a1a0ccb98643 61 * 協定世界時(UTC)の分のゲッター
tanahashi 1:a1a0ccb98643 62 * @return 分(UTC)
tanahashi 1:a1a0ccb98643 63 */
tanahashi 0:55b72d6ab099 64 int get_min();
tanahashi 1:a1a0ccb98643 65
tanahashi 1:a1a0ccb98643 66 /**
tanahashi 1:a1a0ccb98643 67 * 協定世界時(UTC)の秒のゲッター
tanahashi 1:a1a0ccb98643 68 * @return 秒(UTC)
tanahashi 1:a1a0ccb98643 69 */
tanahashi 0:55b72d6ab099 70 float get_sec();
tanahashi 1:a1a0ccb98643 71
tanahashi 1:a1a0ccb98643 72 /**
tanahashi 1:a1a0ccb98643 73 * 緯度のゲッター
tanahashi 1:a1a0ccb98643 74 * @return 緯度
tanahashi 1:a1a0ccb98643 75 */
tanahashi 0:55b72d6ab099 76 float get_lat();
tanahashi 1:a1a0ccb98643 77
tanahashi 1:a1a0ccb98643 78 /**
tanahashi 1:a1a0ccb98643 79 * 経度のゲッター
tanahashi 1:a1a0ccb98643 80 * @return 経度
tanahashi 1:a1a0ccb98643 81 */
tanahashi 0:55b72d6ab099 82 float get_lon();
tanahashi 1:a1a0ccb98643 83
tanahashi 1:a1a0ccb98643 84 /**
tanahashi 1:a1a0ccb98643 85 * 位置特定品質のゲッター
tanahashi 1:a1a0ccb98643 86 * @return 位置特定品質
tanahashi 1:a1a0ccb98643 87 */
tanahashi 0:55b72d6ab099 88 int get_fix();
tanahashi 1:a1a0ccb98643 89
tanahashi 1:a1a0ccb98643 90 /**
tanahashi 1:a1a0ccb98643 91 * 使用衛星数のゲッター
tanahashi 1:a1a0ccb98643 92 * @return 使用衛星数
tanahashi 1:a1a0ccb98643 93 */
tanahashi 0:55b72d6ab099 94 int get_sat();
tanahashi 1:a1a0ccb98643 95
tanahashi 1:a1a0ccb98643 96 /**
tanahashi 1:a1a0ccb98643 97 * 水平精度低下率のゲッター
tanahashi 1:a1a0ccb98643 98 * @return 水平精度低下率
tanahashi 1:a1a0ccb98643 99 */
tanahashi 0:55b72d6ab099 100 float get_hdop();
tanahashi 1:a1a0ccb98643 101
tanahashi 1:a1a0ccb98643 102 /**
tanahashi 1:a1a0ccb98643 103 * 海抜高さのゲッター
tanahashi 1:a1a0ccb98643 104 * @return 海抜高さ
tanahashi 1:a1a0ccb98643 105 */
tanahashi 0:55b72d6ab099 106 float get_alt();
tanahashi 1:a1a0ccb98643 107
tanahashi 1:a1a0ccb98643 108 /**
tanahashi 1:a1a0ccb98643 109 * ジオイド高さのゲッター
tanahashi 1:a1a0ccb98643 110 * @return ジオイド高さ
tanahashi 1:a1a0ccb98643 111 */
tanahashi 0:55b72d6ab099 112 float get_geoid();
tanahashi 0:55b72d6ab099 113 };
tanahashi 0:55b72d6ab099 114
tanahashi 0:55b72d6ab099 115 #endif