2017年伊豆大島共同打ち上げ実験用電装モジュール搭載GPS測位プログラム
Dependents: Hybrid_interruptGPS Hybrid_main_FirstEdtion rocket_logger_sinkan2018_v1 HYBRYD2018_IZU_ROCKET ... more
Diff: GPS_interrupt.h
- Revision:
- 0:74d8e952a3bd
- Child:
- 1:57eeee14dd31
diff -r 000000000000 -r 74d8e952a3bd GPS_interrupt.h --- /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