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

Dependents:   Hybrid_interruptGPS Hybrid_main_FirstEdtion rocket_logger_sinkan2018_v1 HYBRYD2018_IZU_ROCKET ... more

Revision:
0:74d8e952a3bd
Child:
1:57eeee14dd31
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/GPS_interrupt.h	Mon Jan 02 00:40:46 2017 +0000
@@ -0,0 +1,101 @@
+/*=============================================================================
+*   GPS_interrupt.lib ver 1.0.3
+*   
+*=============================================================================*/
+#ifndef GPS_INTERRUPT_H_
+#define GPS_INTERRUPT_H_
+
+#include "mbed.h"
+
+
+class GPS_interrupt{
+  
+    public:
+        GPS_interrupt(RawSerial *_gps, int baudrate = 9600);
+        static GPS_interrupt* gps_irq;
+        void initialize();//初期化関数
+        void gps_auto_receive();
+        bool processGPS(char *line);
+      
+        
+    public:
+        static double latitude;
+        static double longitude;
+        static int year;
+        static int month;
+        static int day;
+        static int hour;
+        static int minutes;
+        static double seconds;
+        static double knot;
+        static double degree;
+        static double height;
+        static double geoid;
+        static int number;
+        
+        static char gps_buffer_A[128];
+        static char gps_buffer_B[128];
+        static char *gps_read_buffer;
+        static bool gps_readable;
+    private:
+        RawSerial *gps;
+    public:
+        inline double Longitude(){
+            return longitude;
+        }
+        inline double Latitude(){
+            return latitude;
+        }
+        inline int Year(){
+            return year;
+        }
+        inline int Month(){
+            return month;
+        }
+        inline int Day(){
+            return day;
+        }
+        inline int Hour(){
+            return hour;   
+        }
+        inline int Minutes(){
+            return minutes;
+        }
+        inline double Seconds(){
+            return seconds;   
+        }
+        inline void getPosition(double *lon, double *lat){
+            *lon = longitude;
+            *lat = latitude;   
+        }
+        inline void getPosition(double *lonlat){
+            lonlat[0] = longitude;
+            lonlat[1] = latitude;   
+        }
+        inline void getUTC(int *_year, int *_month, int *_day, int *_hour, int *_minutes, double *_seconds){
+            *_year = year;
+            *_month = month;
+            *_day = day;
+            *_hour = hour;
+            *_minutes = minutes;
+            *_seconds = seconds;    
+        }
+        inline void getUTC(float *_utc){
+            _utc[0] = (float)year;
+            _utc[1] = (float)month;
+            _utc[2] = (float)day;
+            _utc[3] = (float)hour;
+            _utc[4] = (float)minutes;
+            _utc[5] = seconds;
+        }
+        inline void getUTC(int *_utc){
+            _utc[0] = year;
+            _utc[1] = month;
+            _utc[2] = day;
+            _utc[3] = hour;
+            _utc[4] = minutes;
+            _utc[5] = (int)seconds;
+        }
+};
+
+#endif
\ No newline at end of file