Skytraq S1315F-RAW-EVK Logger

Dependencies:   TextLCD mbed

Committer:
tosihisa
Date:
Sun Dec 19 09:11:48 2010 +0000
Revision:
2:7eb11afe02bd
Parent:
0:e0ec137da369
Add \"SYSTEM RESTART\" at boot time.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tosihisa 0:e0ec137da369 1
tosihisa 0:e0ec137da369 2 #ifndef _NMEA_PARSE_H
tosihisa 0:e0ec137da369 3 #define _NMEA_PARSE_H
tosihisa 0:e0ec137da369 4 #ifdef __cplusplus
tosihisa 0:e0ec137da369 5 extern "C" {
tosihisa 0:e0ec137da369 6 #endif
tosihisa 0:e0ec137da369 7
tosihisa 0:e0ec137da369 8 #define LIBNMEA_PARSE_NONE (0)
tosihisa 0:e0ec137da369 9 #define LIBNMEA_PARSE_SUMOK (10)
tosihisa 0:e0ec137da369 10 #define LIBNMEA_PARSE_COMPLETE (100)
tosihisa 0:e0ec137da369 11
tosihisa 0:e0ec137da369 12 #define LIBNMEA_NUMSOFARRAY(array) (sizeof((array))/sizeof((array)[0]))
tosihisa 0:e0ec137da369 13
tosihisa 0:e0ec137da369 14 typedef double libNMEA_realnum_t;
tosihisa 0:e0ec137da369 15 typedef long libNMEA_intnum_t;
tosihisa 0:e0ec137da369 16
tosihisa 0:e0ec137da369 17 typedef struct {
tosihisa 0:e0ec137da369 18 // unsigned char isValid;
tosihisa 0:e0ec137da369 19 unsigned char active; /* '0' or '1' = Fix not available,'2' = 2D,'3' = 3D */
tosihisa 0:e0ec137da369 20 unsigned char positioning; /* 'A' = 単独測位,D = DGPS,N = 無効 */
tosihisa 0:e0ec137da369 21 } libNMEA_gps_status_t;
tosihisa 0:e0ec137da369 22
tosihisa 0:e0ec137da369 23 typedef struct {
tosihisa 0:e0ec137da369 24 unsigned long res1:1;
tosihisa 0:e0ec137da369 25 unsigned long year:12;
tosihisa 0:e0ec137da369 26 unsigned long mon:4;
tosihisa 0:e0ec137da369 27 unsigned long day:6;
tosihisa 0:e0ec137da369 28 unsigned long res2:9;
tosihisa 0:e0ec137da369 29 } libNMEA_gps_date_t;
tosihisa 0:e0ec137da369 30
tosihisa 0:e0ec137da369 31 typedef struct {
tosihisa 0:e0ec137da369 32 unsigned long res:1;
tosihisa 0:e0ec137da369 33 unsigned long hour:5;
tosihisa 0:e0ec137da369 34 unsigned long min:6;
tosihisa 0:e0ec137da369 35 unsigned long sec:6;
tosihisa 0:e0ec137da369 36 unsigned long msec:14;
tosihisa 0:e0ec137da369 37 } libNMEA_gps_time_t;
tosihisa 0:e0ec137da369 38
tosihisa 0:e0ec137da369 39 typedef struct {
tosihisa 0:e0ec137da369 40 // unsigned char isValid;
tosihisa 0:e0ec137da369 41 unsigned char unit;
tosihisa 0:e0ec137da369 42 libNMEA_realnum_t deg;
tosihisa 0:e0ec137da369 43 } libNMEA_gps_deg_t;
tosihisa 0:e0ec137da369 44
tosihisa 0:e0ec137da369 45 typedef struct {
tosihisa 0:e0ec137da369 46 unsigned char lat_unit; /* 'N'(Nouth) or 'S'(South) */
tosihisa 0:e0ec137da369 47 unsigned char lon_unit; /* 'W'(West) or 'E'(East) */
tosihisa 0:e0ec137da369 48 libNMEA_realnum_t latitude;
tosihisa 0:e0ec137da369 49 libNMEA_realnum_t longitude;
tosihisa 0:e0ec137da369 50 } libNMEA_gps_latlon_t;
tosihisa 0:e0ec137da369 51
tosihisa 0:e0ec137da369 52 typedef struct {
tosihisa 0:e0ec137da369 53 // unsigned char isValid;
tosihisa 0:e0ec137da369 54 libNMEA_realnum_t ground;
tosihisa 0:e0ec137da369 55 } libNMEA_gps_speed_t;
tosihisa 0:e0ec137da369 56
tosihisa 0:e0ec137da369 57 typedef struct {
tosihisa 0:e0ec137da369 58 // unsigned char isValid;
tosihisa 0:e0ec137da369 59 libNMEA_realnum_t dop;
tosihisa 0:e0ec137da369 60 } libNMEA_gps_dop_t;
tosihisa 0:e0ec137da369 61
tosihisa 0:e0ec137da369 62 typedef struct {
tosihisa 0:e0ec137da369 63 libNMEA_gps_deg_t trueNorth;
tosihisa 0:e0ec137da369 64 libNMEA_gps_deg_t magnetic;
tosihisa 0:e0ec137da369 65 libNMEA_gps_deg_t mag_dec;
tosihisa 0:e0ec137da369 66 } libNMEA_gps_direction_t;
tosihisa 0:e0ec137da369 67
tosihisa 0:e0ec137da369 68 typedef struct {
tosihisa 0:e0ec137da369 69 libNMEA_gps_dop_t h;
tosihisa 0:e0ec137da369 70 libNMEA_gps_dop_t v;
tosihisa 0:e0ec137da369 71 libNMEA_gps_dop_t p;
tosihisa 0:e0ec137da369 72 } libNMEA_gps_accuracy_t;
tosihisa 0:e0ec137da369 73
tosihisa 0:e0ec137da369 74 typedef struct {
tosihisa 0:e0ec137da369 75 unsigned long status:1; /* これが1ならば,GPS のデータを信用する */
tosihisa 0:e0ec137da369 76 unsigned long active:1;
tosihisa 0:e0ec137da369 77 unsigned long positioning:1;
tosihisa 0:e0ec137da369 78 unsigned long date:1;
tosihisa 0:e0ec137da369 79 unsigned long timeRMC:1;
tosihisa 0:e0ec137da369 80 unsigned long timeZDA:1;
tosihisa 0:e0ec137da369 81 unsigned long latitude:1;
tosihisa 0:e0ec137da369 82 unsigned long longitude:1;
tosihisa 0:e0ec137da369 83 unsigned long speed:1;
tosihisa 0:e0ec137da369 84 unsigned long direction:1;
tosihisa 0:e0ec137da369 85 unsigned long accuracy_hdop:1;
tosihisa 0:e0ec137da369 86 unsigned long accuracy_vdop:1;
tosihisa 0:e0ec137da369 87 unsigned long accuracy_pdop:1;
tosihisa 0:e0ec137da369 88 unsigned long res:19;
tosihisa 0:e0ec137da369 89 } libNMEA_gps_valid_t;
tosihisa 0:e0ec137da369 90
tosihisa 0:e0ec137da369 91 typedef struct {
tosihisa 0:e0ec137da369 92 libNMEA_gps_valid_t valid;
tosihisa 0:e0ec137da369 93 libNMEA_gps_status_t status;
tosihisa 0:e0ec137da369 94 libNMEA_gps_date_t date;
tosihisa 0:e0ec137da369 95 libNMEA_gps_time_t time;
tosihisa 0:e0ec137da369 96 libNMEA_gps_latlon_t latlon;
tosihisa 0:e0ec137da369 97 libNMEA_gps_speed_t speed;
tosihisa 0:e0ec137da369 98 libNMEA_gps_direction_t direction;
tosihisa 0:e0ec137da369 99 libNMEA_gps_accuracy_t accuracy;
tosihisa 0:e0ec137da369 100 } libNMEA_gps_info_t;
tosihisa 0:e0ec137da369 101
tosihisa 0:e0ec137da369 102 typedef struct {
tosihisa 0:e0ec137da369 103 short cjobst;
tosihisa 0:e0ec137da369 104 unsigned char raw[82+2];
tosihisa 0:e0ec137da369 105 short rawLength;
tosihisa 0:e0ec137da369 106 unsigned char sum;
tosihisa 0:e0ec137da369 107 unsigned char sumwk;
tosihisa 0:e0ec137da369 108 short argc;
tosihisa 0:e0ec137da369 109 short argv[31]; /* NMEA センテンスで処理できる最大トークン数.メモリを節約したいのでポインタではなく先頭からのオフセットにしている. */
tosihisa 0:e0ec137da369 110 } libNMEA_data_t;
tosihisa 0:e0ec137da369 111
tosihisa 0:e0ec137da369 112 extern short libNMEA_Parse1Char(unsigned char c,libNMEA_data_t *buffer);
tosihisa 0:e0ec137da369 113 short libNMEA_Parse1Line(libNMEA_data_t *buffer,libNMEA_gps_info_t *GPSinfo);
tosihisa 0:e0ec137da369 114
tosihisa 0:e0ec137da369 115 #ifdef __cplusplus
tosihisa 0:e0ec137da369 116 }
tosihisa 0:e0ec137da369 117 #endif
tosihisa 0:e0ec137da369 118
tosihisa 0:e0ec137da369 119 #endif /* _NMEA_PARSE_H */