2017年伊豆大島共同打ち上げ実験用電装モジュール搭載GPS測位プログラム

Dependents:   Hybrid_interruptGPS Hybrid_main_FirstEdtion rocket_logger_sinkan2018_v1 HYBRYD2018_IZU_ROCKET ... more

Revision:
8:3f32df2b66c0
Parent:
6:2f91c71d64b1
Child:
9:dab13bd20f43
--- 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);