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

Dependents:   Hybrid_interruptGPS Hybrid_main_FirstEdtion rocket_logger_sinkan2018_v1 HYBRYD2018_IZU_ROCKET ... more

Committer:
Gaku0606
Date:
Mon Jan 02 00:40:46 2017 +0000
Revision:
0:74d8e952a3bd
Child:
1:57eeee14dd31
GPS_interrupt.lib ver1.0.3

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Gaku0606 0:74d8e952a3bd 1 /*=============================================================================
Gaku0606 0:74d8e952a3bd 2 * GPS_interrupt.lib ver 1.0.3
Gaku0606 0:74d8e952a3bd 3 *
Gaku0606 0:74d8e952a3bd 4 *=============================================================================*/
Gaku0606 0:74d8e952a3bd 5 #ifndef GPS_INTERRUPT_H_
Gaku0606 0:74d8e952a3bd 6 #define GPS_INTERRUPT_H_
Gaku0606 0:74d8e952a3bd 7
Gaku0606 0:74d8e952a3bd 8 #include "mbed.h"
Gaku0606 0:74d8e952a3bd 9
Gaku0606 0:74d8e952a3bd 10
Gaku0606 0:74d8e952a3bd 11 class GPS_interrupt{
Gaku0606 0:74d8e952a3bd 12
Gaku0606 0:74d8e952a3bd 13 public:
Gaku0606 0:74d8e952a3bd 14 GPS_interrupt(RawSerial *_gps, int baudrate = 9600);
Gaku0606 0:74d8e952a3bd 15 static GPS_interrupt* gps_irq;
Gaku0606 0:74d8e952a3bd 16 void initialize();//初期化関数
Gaku0606 0:74d8e952a3bd 17 void gps_auto_receive();
Gaku0606 0:74d8e952a3bd 18 bool processGPS(char *line);
Gaku0606 0:74d8e952a3bd 19
Gaku0606 0:74d8e952a3bd 20
Gaku0606 0:74d8e952a3bd 21 public:
Gaku0606 0:74d8e952a3bd 22 static double latitude;
Gaku0606 0:74d8e952a3bd 23 static double longitude;
Gaku0606 0:74d8e952a3bd 24 static int year;
Gaku0606 0:74d8e952a3bd 25 static int month;
Gaku0606 0:74d8e952a3bd 26 static int day;
Gaku0606 0:74d8e952a3bd 27 static int hour;
Gaku0606 0:74d8e952a3bd 28 static int minutes;
Gaku0606 0:74d8e952a3bd 29 static double seconds;
Gaku0606 0:74d8e952a3bd 30 static double knot;
Gaku0606 0:74d8e952a3bd 31 static double degree;
Gaku0606 0:74d8e952a3bd 32 static double height;
Gaku0606 0:74d8e952a3bd 33 static double geoid;
Gaku0606 0:74d8e952a3bd 34 static int number;
Gaku0606 0:74d8e952a3bd 35
Gaku0606 0:74d8e952a3bd 36 static char gps_buffer_A[128];
Gaku0606 0:74d8e952a3bd 37 static char gps_buffer_B[128];
Gaku0606 0:74d8e952a3bd 38 static char *gps_read_buffer;
Gaku0606 0:74d8e952a3bd 39 static bool gps_readable;
Gaku0606 0:74d8e952a3bd 40 private:
Gaku0606 0:74d8e952a3bd 41 RawSerial *gps;
Gaku0606 0:74d8e952a3bd 42 public:
Gaku0606 0:74d8e952a3bd 43 inline double Longitude(){
Gaku0606 0:74d8e952a3bd 44 return longitude;
Gaku0606 0:74d8e952a3bd 45 }
Gaku0606 0:74d8e952a3bd 46 inline double Latitude(){
Gaku0606 0:74d8e952a3bd 47 return latitude;
Gaku0606 0:74d8e952a3bd 48 }
Gaku0606 0:74d8e952a3bd 49 inline int Year(){
Gaku0606 0:74d8e952a3bd 50 return year;
Gaku0606 0:74d8e952a3bd 51 }
Gaku0606 0:74d8e952a3bd 52 inline int Month(){
Gaku0606 0:74d8e952a3bd 53 return month;
Gaku0606 0:74d8e952a3bd 54 }
Gaku0606 0:74d8e952a3bd 55 inline int Day(){
Gaku0606 0:74d8e952a3bd 56 return day;
Gaku0606 0:74d8e952a3bd 57 }
Gaku0606 0:74d8e952a3bd 58 inline int Hour(){
Gaku0606 0:74d8e952a3bd 59 return hour;
Gaku0606 0:74d8e952a3bd 60 }
Gaku0606 0:74d8e952a3bd 61 inline int Minutes(){
Gaku0606 0:74d8e952a3bd 62 return minutes;
Gaku0606 0:74d8e952a3bd 63 }
Gaku0606 0:74d8e952a3bd 64 inline double Seconds(){
Gaku0606 0:74d8e952a3bd 65 return seconds;
Gaku0606 0:74d8e952a3bd 66 }
Gaku0606 0:74d8e952a3bd 67 inline void getPosition(double *lon, double *lat){
Gaku0606 0:74d8e952a3bd 68 *lon = longitude;
Gaku0606 0:74d8e952a3bd 69 *lat = latitude;
Gaku0606 0:74d8e952a3bd 70 }
Gaku0606 0:74d8e952a3bd 71 inline void getPosition(double *lonlat){
Gaku0606 0:74d8e952a3bd 72 lonlat[0] = longitude;
Gaku0606 0:74d8e952a3bd 73 lonlat[1] = latitude;
Gaku0606 0:74d8e952a3bd 74 }
Gaku0606 0:74d8e952a3bd 75 inline void getUTC(int *_year, int *_month, int *_day, int *_hour, int *_minutes, double *_seconds){
Gaku0606 0:74d8e952a3bd 76 *_year = year;
Gaku0606 0:74d8e952a3bd 77 *_month = month;
Gaku0606 0:74d8e952a3bd 78 *_day = day;
Gaku0606 0:74d8e952a3bd 79 *_hour = hour;
Gaku0606 0:74d8e952a3bd 80 *_minutes = minutes;
Gaku0606 0:74d8e952a3bd 81 *_seconds = seconds;
Gaku0606 0:74d8e952a3bd 82 }
Gaku0606 0:74d8e952a3bd 83 inline void getUTC(float *_utc){
Gaku0606 0:74d8e952a3bd 84 _utc[0] = (float)year;
Gaku0606 0:74d8e952a3bd 85 _utc[1] = (float)month;
Gaku0606 0:74d8e952a3bd 86 _utc[2] = (float)day;
Gaku0606 0:74d8e952a3bd 87 _utc[3] = (float)hour;
Gaku0606 0:74d8e952a3bd 88 _utc[4] = (float)minutes;
Gaku0606 0:74d8e952a3bd 89 _utc[5] = seconds;
Gaku0606 0:74d8e952a3bd 90 }
Gaku0606 0:74d8e952a3bd 91 inline void getUTC(int *_utc){
Gaku0606 0:74d8e952a3bd 92 _utc[0] = year;
Gaku0606 0:74d8e952a3bd 93 _utc[1] = month;
Gaku0606 0:74d8e952a3bd 94 _utc[2] = day;
Gaku0606 0:74d8e952a3bd 95 _utc[3] = hour;
Gaku0606 0:74d8e952a3bd 96 _utc[4] = minutes;
Gaku0606 0:74d8e952a3bd 97 _utc[5] = (int)seconds;
Gaku0606 0:74d8e952a3bd 98 }
Gaku0606 0:74d8e952a3bd 99 };
Gaku0606 0:74d8e952a3bd 100
Gaku0606 0:74d8e952a3bd 101 #endif