2017年伊豆大島共同打ち上げ実験用電装モジュール搭載GPS測位プログラム
Dependents: Hybrid_interruptGPS Hybrid_main_FirstEdtion rocket_logger_sinkan2018_v1 HYBRYD2018_IZU_ROCKET ... more
Diff: GPS_interrupt.h
- Revision:
- 8:3f32df2b66c0
- Parent:
- 6:2f91c71d64b1
- Child:
- 9:dab13bd20f43
diff -r 4b893ac95ae1 -r 3f32df2b66c0 GPS_interrupt.h --- a/GPS_interrupt.h Sat Feb 25 10:09:08 2017 +0000 +++ b/GPS_interrupt.h Mon Jun 26 08:14:47 2017 +0000 @@ -18,9 +18,14 @@ #define GPS_INTERRUPT_H_ #include "mbed.h"//要る? +#define EARTH_EQUATOR_RADIUS 6378136.6//地球の赤道半径[m] +#define EARTH_POLAR_RADIUS 6356751.9//地球の極半径[m] +#define EIRTH_AspectRatioInverse 298.257223563//地球の扁平率の逆数、0に近づくにつれ真球になる +#define GPS_PI 3.1415926535897932384626433832795 +#define GPS_2PI 6.283185307179586476925286766559 class GPS_interrupt{ - + public: GPS_interrupt(Serial *_gps); @@ -45,7 +50,12 @@ GPS_interrupt* gps_irq; int baudrate; int frequency; - + char gps_buffer_A[128]; + char gps_buffer_B[128]; + //static char gps_buffer_C[128]; + bool debugFlag; + + public: double latitude; double longitude; int year; @@ -60,11 +70,6 @@ double geoid; int number; - char gps_buffer_A[128]; - char gps_buffer_B[128]; - - bool debugFlag; - public: char *gps_read_buffer; bool gps_readable; @@ -274,6 +279,13 @@ inline double Degree(){ return degree; } + + /** 目標座標までの直線距離を計算 + * @bref 距離を[m]で返します + * @param x 目標経度 + * @param y 目標緯度 + */ + double Distance(double x, double y); }; ///////////////// /////sample////// @@ -283,7 +295,7 @@ #include "mbed.h" #include "GPS_interrupt.h" Serial pc(USBTX, USBRX); -RawSerial mygps(p9, p10); +Serial mygps(p9, p10); GPS_interrupt gps(&mygps, 115200, 10, 115200);