Complete nmea parser test.
[bertos.git] / bertos / net / nmea_test.c
1 /**
2  * \file
3  * <!--
4  * This file is part of BeRTOS.
5  *
6  * Bertos is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19  *
20  * As a special exception, you may use this file as part of a free software
21  * library without restriction.  Specifically, if other files instantiate
22  * templates or use macros or inline functions from this file, or you compile
23  * this file and link it with other files to produce an executable, this
24  * file does not by itself cause the resulting executable to be covered by
25  * the GNU General Public License.  This exception does not however
26  * invalidate any other reasons why the executable file might be covered by
27  * the GNU General Public License.
28  *
29  * Copyright 2009 Develer S.r.l. (http://www.develer.com/)
30  *
31  * -->
32  *
33  * \brief NMEA parser test.
34  *
35  * \author Daniele Basile <asterix@develer.com>
36  *
37  * notest:avr
38  */
39
40 #include "nmea.h"
41
42 #include <struct/kfile_mem.h>
43
44 #include <cfg/debug.h>
45 #define LOG_LEVEL  3
46 #define LOG_FORMAT NMEA_LOG_FORMAT
47 #include <cfg/log.h>
48
49 #include <cfg/test.h>
50
51 #include <string.h> //strncmp
52
53 static nmeap_context_t nmea;       /* parser context */
54 static NmeaRmc rmc;
55 static NmeaGga gga;
56 static NmeaGsv gsv;
57 static NmeaVtg vtg;
58
59 static KFileMem mem;
60
61 static char nmea_test1[] =
62 {
63 "$GPRMC,170525.949,A,4351.0843,N,01108.8687,E,0.00,237.67,051009,,,A*61\r\n"      /* acquired */
64 "$GPVTG,237.67,T,,,0.00,N,0.00,K,A*77\r\n"                                        /* acquired */
65 "$GPGSV,3,1,09,3,78,302,37,6,87,031,,7,05,292,37,14,05,135,*48\r\n"               /* acquired */
66 "$GPGGA,170527.949,4351.0842,N,01108.8685,E,1,05,02.6,57.4,M,45.2,M,,*5C\r\n"     /* acquired */
67 };
68
69 static uint8_t nmea_test2[] =
70 {
71 "$GPGGA,100019.604,4351.1480,N,01108.8750,E,1,03,16.8,0.0,M,45.2,M,,*64\r\n"
72 "$GPRMC,100019.604,A,4351.1480,N,01108.8750,E,2.03,134.29,131009,,,A*6F\r\n"
73 "$GPVTG,134.29,T,,,2.03,N,3.75,K,A*7D\r\n"
74 "$GPGGA,100020.604,4351.1491,N,01108.8751,E,1,03,16.8,0.0,M,45.2,M,,*6F\r\n"
75 "$GPGSA,A,2,09,27,29,,,,,,,,,,16.8,16.8,0.0*34\r\n"
76 "$GPGSV,3,1,09,2,34,087,,4,20,052,,9,32,142,31,14,38,267,*49\r\n"
77 "$GPGSV,3,2,09,26,35,232,,27,25,143,34,29,42,214,35,30,68,313,*73\r\n"
78 "$GPGSV,3,3,09,31,09,314,,,,,,,,,,,,,*4D\r\n"
79 "$GPRMC,100020.604,A,4351.1491,N,01108.8751,E,2.11,134.29,131009,,,A*67\r\n"
80 "$GPVTG,134.29,T,,,2.11,N,3.91,K,A*74\r\n"
81 "$GPGGA,100021.603,4351.1486,N,01108.8751,E,1,03,16.8,0.0,M,45.2,M,,*6F\r\n"
82 "$GPRMC,100021.603,A,4351.1486,N,01108.8751,E,2.18,134.29,131009,,,A*6E\r\n"
83 "$GPVTG,134.29,T,,,2.18,N,4.05,K,A*77\r\n"
84 "$GPGGA,100022.603,4351.1470,N,01108.8750,E,1,03,16.8,0.0,M,45.2,M,,*64\r\n"
85 "$GPRMC,100022.603,A,4351.1470,N,01108.8750,E,2.17,134.29,131009,,,A*6A\r\n"
86 "$GPVTG,134.29,T,,,2.17,N,4.01,K,A*7C\r\n"
87 "$GPGGA,100023.603,4351.1453,N,01108.8747,E,1,03,16.8,0.0,M,45.2,M,,*62\r\n"
88 "$GPGSA,A,2,09,27,29,,,,,,,,,,16.8,16.8,0.0*34\r\n"
89 "$GPGSV,3,1,09,2,34,087,,4,20,052,,9,32,142,31,14,38,267,*49\r\n"
90 "$GPGSV,3,2,09,26,35,232,,27,25,143,33,29,42,214,36,30,68,313,*77\r\n"
91 "$GPGSV,3,3,09,31,09,314,,,,,,,,,,,,,*4D\r\n"
92 "$GPRMC,100023.603,A,4351.1453,N,01108.8747,E,2.28,134.29,131009,,,A*60\r\n"
93 "$GPVTG,134.29,T,,,2.28,N,4.22,K,A*71\r\n"
94 "$GPGGA,100024.603,4351.1450,N,01108.8746,E,1,03,16.8,0.0,M,45.2,M,,*67\r\n"
95 "$GPRMC,100024.603,A,4351.1450,N,01108.8746,E,2.28,134.29,131009,,,A*65\r\n"
96 "$GPVTG,134.29,T,,,2.28,N,4.22,K,A*71\r\n$GPGG25.603,4351.1442,N,01108.8745,E,1,03,16.8,0.0,M,45.2,M,,*66\n"
97 "$GPRMC,100025.603,A,4351.1442,N,01108.8745,E,2.40,134.29,131009,,,A*6A\r\n"
98 "$GPVTG,134.29,T,,,2.40,N,4.45,K,A*7E\r\n"
99 "$GPGGA,100026.602,4351.1433,N,01108.8744,E,1,03,16.8,0.0,M,45.2,M,,*63\r\n"
100 "$GPGSA,A,2,09,27,29,,,,,,,,,,16.8,16.8,0.0*34\r\n"
101 "$GPGSV,3,1,09,2,34,087,,4,20,052,,9,32,142,31,14,38,267,*49\r\n"
102 "$GPGSV,3,2,09,26,35,232,,27,25,143,33,29,42,214,36,30,68,313,*77\r\n"
103 "$GPGSV,3,3,09,31,09,314,,,,,,,,,,,,,*4D\r\n"
104 "$GPRMC,100026.602,A,4351.1433,N,01108.8744,E,2.48,187.14,131009,,,A*61\r\n"
105 "$GPVTG,187.14,T,,,2.48,N,4.59,K,A*7D\r\n"
106 "$GPGGA,100027.602,4351.1425,N,01108.8743,E,1,03,16.8,0.0,M,45.2,M,,*62\r\n"
107 "$GPRMC,100027.602,A,4351.1425,N,01108.8743,E,2.39,185.89,131009,,,A*60\r\n"
108 "$GPVTG,185.89,T,,,2.39,N,4.42,K,A*77\r\n"
109 "$GPGGA,100028.602,4351.1424,N,01108.8743,E,1,03,16.8,0.0,M,45.2,M,,*6C\r\n"
110 "$GPRMC,100028.602,A,4351.1424,N,01108.8743,E,2.18,187.33,131009,,,A*6E\r\n"
111 "$GPVTG,187.33,T,,,2.18,N,4.04,K,A*75\r\n"
112 "$GPGGA,100029.602,4351.1399,N,01108.8739,E,1,03,16.8,0.0,M,45.2,M,,*61\r\n"
113 "$GPGSA,A,2,09,27,29,,,,,,,,,,16.8,16.8,0.0*34\r\n"
114 "$GPGSV,3,1,09,2,34,087,,4,20,052,,9,32,142,31,14,38,267,*49\r\n"
115 "$GPGSV,3,2,09,26,35,232,,27,25,143,34,29,42,214,35,30,68,313,*73\r\n"
116 "$GPGSV,3,3,09,31,09,314,,,,,,,,,,,,,*4D\r\n"
117 "$GPRMC,100029.602,A,4351.1399,N,01108.8739,E,1.98,188.78,131009,,,A*68\r\n"
118 "$GPVTG,188.78,T,,,1.98,N,3.67,K,A*7C\r\n"
119 "$GPGGA,100030.602,4351.1393,N,01108.8738,E,1,03,16.8,0.0,M,45.2,M,,*6ds2\r\n"
120 "$GPRMC,100030.602,A,4351.1393,N,01108.8738,E,1.90,188.62,131009,,,A*68\r\n"
121 "$GPVTG,188.62,T,,,1.90,N,3.53,K,A*78\r\n"
122 "$GPGGA,100031.601,4351.1389,N,01108.8737,E,1,03,16.8,0.0,M,45.2,M,,*64\r\n"
123 "$GPRMC,100031.601,A,adfsd4351.1389,N,01108.8737,E,1.82,188.25,131009,,,A*6E\r\n"
124 "$GPVTG,188.25,T,,,1.82,N,3.37,K,A*7A\r"
125 "$GadafPGGA,100032.601,4351.1384,N,01108.8737,E,1,03,16.8,0.0,M,45.2,M,,*6A\r\n"
126 "$GPGSA,A,2,09,27,29,,,,,,,,,,16.8,16.8,0.0*34\r\n"
127 "$GPGSV,3,1,09,2,34,087,,4,20,052,,9,32,142,30,14,38,267,*48\r\n"
128 "$GPGSV,3,2,09,26,35,232,,27,25,143,33,29,42,214,35,30,68,313,*74\r\n"
129 "$GPGSV,3,3,09,31,09,314,,,,,,,,,,,,,*4D\r\n"
130 "$GPRMC,100032.601,A,4351.1384,N,01108.8737,E,1.76,187.49,131009,,,A*6E\r\n"
131 "$GPVTG,187.49,T,,,1.76,N,3.27,K,A*75\r\n"
132 "$GPGGA,100033.601,4351.1379,N,01108.8735,E,1,02,16.8,0.0,M,45.2,M,,*6A\r\n"
133 "$GPRMC,100033.601,A,4351.1379,N,01108.8735,E,1.72,187.49,131009,,,A*6B\r\n"
134 "$GPVTG,187.49,T,,,1.72,N,3.18,K,A*7D\r\n"
135 "$GPGGA,100034.601,4351.1376,N,01108.8735,E,1,03,16.8,0.0,M,45.2,M,,*63\r\n"
136 "$GPRMC,100034.601,A,4351.1376,N,01108.8735,E,1.49,187.49,131009,,,A*6B\r\n"
137 "$GPVTG,187.49,T,,,1.49,N,2.76,K,A*7C\r\n"
138 "$GPGGA,100035.600,4351.1374,N,01108.8735,E,1,03,16.8,0.0,M,45.2,M,,*61\r\n"
139 "$GPGSA,A,2,09,27,29,,,,,,,,,,16.8,16.8,0.0*34\r\n"
140 "$GPGSV,3,1,09,2,34,087,,4,20,052,,9,32,142,30,14,38,267,*48\r\n"
141 "$GPGSV,3,2,09,26,35,232,,27,25,143,33,29,42,214,36,30,68,313,*77\r\n"
142 "$GPGSV,3,3,09,31,09,314,,,,,,,,,,,,,*4D\r\n"
143 "$GPRMC,100035.600,A,4351.1374,N,01108.8735,E,1.22,187.49,131009,,,A*64\r\n"
144 "$GPVTG,187.49,T,,,1.22,N,2.26,K,A*74\r\n"
145 "$GPGGA,100036.600,4351.1374,N,01108.8736,E,1,03,16.8,0.0,M,45.2,M,,*61\r\n"
146 "$GPRMC,100036.600,A,4351.1374,N,01108.8736,E,0.00,187.49,131009,,,A*65\r\n"
147 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
148 "$GPGGA,100037.600,4351.1373,N,01108.8734,E,1,03,16.8,-0.0,M,45.2,M,,*48\r\n"
149 "$GPRMC,100037.600,A,4351.1373,N,01108.8734,E,0.00,187.49,131009,,,A*61\r\n"
150 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
151 "$GPGGA,100038.600,4351.1371,N,01108.8734,E,1,03,16.8,-0.0,M,45.2,M,,*45\r\n"
152 "$GPGSA,A,2,09,27,29,,,,,,,,,,16.8,16.8,0.0*34\r\n"
153 "$GPGSV,3,1,09,2,34,087,,4,20,052,,9,32,142,30,14,38,267,*48\r\n"
154 "$GPGSV,3,2,09,26,35,232,,27,25,143,34,29,42,214,36,30,68,313,*70\r\n"
155 "$GPGSV,3,3,09,31,09,314,,,,,,,,,,,,,*4D\r\n"
156 "$GPRMC,100038.600,A,4351.1371,N,01108.8734,E,0.00,187.49,131009,,,A*6C\r\n"
157 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
158 "$GPGGA,100039.600,4351.1370,N,01108.8734,E,1,03,16.8,-0.0,M,45.2,M,,*45\r\n"
159 "$GPRMC,100039.600,A,4351.1370,N,01108.8734,E,0.00,187.49,131009,,,A*6C\r\n"
160 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
161 "$GPGGA,100040.599,4351.1368,N,01108.8733,E,1,03,16.8,-0.0,M,45.2,M,,*46\r\n"
162 "$GPRMC,100040.599,A,4351.1368,N,01108.8733,E,0.00,187.49,131009,,,A*6F\r\n"
163 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
164 "$GPGGA,100041.599,4351.1367,N,01108.8733,E,1,03,16.8,-0.0,M,45.2,M,,*48\r\n"
165 "$GPGSA,A,2,09,27,29,,,,,,,,,,16.8,16.8,0.0*34\r\n"
166 "$GPGSV,3,1,09,2,34,087,,4,20,052,,9,32,142,30,14,38,267,*48\r\n"
167 "$GPGSV,3,2,09,26,35,232,,27,25,143,34,29,42,214,36,30,68,313,30*73\r\n"
168 "$GPGSV,3,3,09,31,09,314,,,,,,,,,,,,,*4D\r\n"
169 "$GPRMC,100041.599,A,4351.1367,N,01108.8733,E,1.04,187.49,131009,,,A*64\r\n"
170 "$GPVTG,187.49,T,,,1.04,N,1.93,K,A*7D\r\n"
171 "$GPGGA,100042.599,4351.1365,N,01108.8732,E,1,03,16.8,-0.0,M,45.2,M,,*48\r\n"
172 "$GPRMC,100042.599,A,4351.1365,N,01108.8732,E,1.10,187.49,131009,,,A*61\r\n"
173 "$GPVTG,187.49,T,,,1.10,N,2.04,K,A*75\r\n"
174 "$GPGGA,100043.599,4351.1361,N,01108.ad2,E,1,03,16.8,-0.0,M,45.2,M,,*4D\r\n"
175 "$GPRMC,100043.599,A,4351.1361,N,01108.8732,E,1.12,187.49,131009,,,A*66\r\n"
176 "$GPVTG,187.49,T,,,1.12,N,2.07,K,A*74\r\n"
177 "$GPGGA,100044.599,4351.1358,N,01108.8732,E,1,03,16.8,-0.0,M,45.2,M,,*40\r\n"
178 "$GPGSA,A,2,09,27,29,,,,,,,,,,16.8,16.8,0.0*34\r\n"
179 "$GPGSV,3,1,09,2,34,087,,4,20,052,,9,32,142,30,14,38,267,*48\r\n"
180 "$GPGSV,3,2,09,26,35,232,,27,25,143,34,29,42,214,36,30,68,313,30*73\r\n"
181 "$GPGSV,3,3,09,31,09,314,,,,,,,,,,,,,*4D\r\n"
182 "$GPRMC,100044.599,A,4351.1358,N,01108.8732,E,1.06,187.49,131009,,,A*6E\r\n"
183 "$GPVTG,187.49,T,,,1.06,N,1.95,K,A*79\r\n"
184 "$GPGGA,100045.598,4351.1357,N,01108.8731,E,1,03,16.8,-0.0,M,45.2,M,,*4C\r\n"
185 "$GPRMC,100045.598,A,4351.1357,N,01108.8731,E,0.00,187.49,131009,,,A*65\r\n"
186 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
187 "$GPGGA,100046.598,4351.1356,N,01108.8731,E,1,03,16.8,-0.0,M,45.2,M,,*4E\r\n"
188 "$GPRMC,100046.598,A,4351.1356,N,01108.8731,E,0.00,187.49,131009,,,A*67\r\n"
189 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
190 "$GPGGA,100047.598,4351.1356,N,01108.8731,E,1,03,16.8,-0.0,M,45.2,M,,*4F\r\n"
191 "$GPGSA,A,2,09,27,29,,,,,,,,,,16.8,16.8,0.0*34\r\n"
192 "$GPGSV,3,1,09,2,34,087,,4,20,052,,9,32,143,29,14,38,267,*41\r\n"
193 "$GPGSV,3,2,09,26,35,232,,27,25,143,34,29,42,214,36,30,68,313,30*73\r\n"
194 "$GPGSV,3,3,09,31,09,314,,,,,,,,,,,,,*4D\r\n"
195 "$GPRMC,"
196 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
197 "$GPGGA,100048.598,4351.1355,N,01108.8732,E,1,03,16.8,-0.0,M,45.2,M,,*40\r\n"
198 "$GPRMC,100048.598,A,4351.1355,N,01108.8732,E,0.00,187.49,131009,,,A*69\r\n"
199 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
200 "$GPGGA,100049.597,4351.1356,N,01108.8731,E,1,03,16.9,-0.0,M,45.2,M,,*4F\r\n"
201 "$GPRMC,100049.597,A,4351.1356,N,01108.8731,E,0.00,187.49,131009,,,A*67\r\n"
202 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
203 "$GPGGA,100050.597,4351.1354,N,01108.8732,E,1,03,16.9,-0.0,M,45.2,M,,*46\r\n"
204 "$GPGSA,A,2,09,27,29,,,,,,,,,,16.9,16.9,0.0*34\r\n"
205 "$GPGSV,3,1,09,2,34,087,,4,20,052,,9,32,143,29,14,38,266,*40\r\n"
206 "$GPGSV,3,2,09,26,35,232,,27,25,143,34,29,42,214,35,30,69,313,30*71\r\n"
207 "$GPGSV,3,3,09,31,10,314,,,,,,,,,,,,,*45\r\n"
208 "$GPRMC,100050.597,A,4351.1354,N,01108.8732,E,0.00,187.49,131009,,,A*6E\r\n"
209 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
210 "$GPGGA,100051.597,4351.1354,N,01108.8731,E,1,03,16.9,-0.0,M,45.2,M,,*44\r\n"
211 "$GPRMC,100051.597,A,4351.1354,N,01108.8731,E,0.00,187.49,131009,,,A*6C\r\n"
212 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
213 "$GPGGA,100052.597,4351.1353,N,01108.8731,E,1,03,16.9,-0.0,M,45.2,M,,*40\r\n"
214 "$GPRMC,100052.597,A,4351.1353,N,01108.8731,E,0.00,187.49,131009,,,A*68\r\n"
215 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
216 "$GPGGA,100053.597,4351.1352,N,01108.8731,E,1,03,16.9,-0.0,M,45.2,M,,*40\r\n"
217 "$GPGSA,A,2,09,27,29,,,,,,,,,,16.9,16.9,0.0*34\r\n"
218 "$GPGSV,3,1,09,2,34,087,,4,20,052,,9,32,143,29,14,38,266,*40\r\n"
219 "$GPGSV,3,2,09,26,35,232,,27,25,143,34,29,42,214,35,30,69,313,30*71\r\n"
220 "$GPGSV,3,3,09,31,10,314,,,,,,,,,,,,,*45\r\n"
221 "$GPRMC,100053.597,A,4351.1352,N,01108.8731,E,0.00,187.49,131009,,,A*68\r\n"
222 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
223 "$GPGGA,100054.596,4351.1351,N,01108.8730,E,1,03,16.9,-0.0,M,45.2,M,,*44\r\n"
224 "$GPRMC,100054.596,A,4351.1351,N,01108.8730,E,0.00,187.49,131009,,,A*6C\r\n"
225 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
226 "$GPGGA,100055.596,4351.1349,N,01108.8731,E,1,03,16.9,-0.0,M,45.2,M,,*4D\r\n"
227 "$GPRMC,100055.596,A,4351.1349,N,01108.8731,E,0.00,187.49,131009,,,A*65\r\n"
228 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
229 "$GPGGA,100056.596,4351.1347,N,01108.8730,E,1,03,16.9,-0.0,M,45.2,M,,*41\r\n"
230 "$GPGSA,A,2,09,27,29,,,,,,,,,,16.9,16.9,0.0*34\r\n"
231 "$GPGSV,3,1,09,2,34,087,,4,20,052,,9,32,143,29,14,38,266,*40\r\n"
232 "$GPGSV,3,2,09,26,35,232,,27,25,143,34,29,42,214,35,30,69,313,30*71\r\n"
233 "$GPGSV,3,3,09,31,10,314,,,,,,,,,,,,,*45\r\n"
234 "$GPRMC,100056.596,A,4351.1347,N,01108.8730,E,0.00,187.49,131009,,,A*69\r\n"
235 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
236 "$GPGGA,100057.596,4351.1344,N,01108.8729,E,1,03,16.9,-0.0,M,45.2,M,,*4B\r\n"
237 "$GPRMC,100057.596,A,4351.1344,N,01108.8729,E,0.00,187.49,131009,,,A*63\r\n"
238 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
239 "$GPGGA,100058.595,4351.1343,N,01108.8730,E,1,03,16.9,-0.0,M,45.2,M,,*48\r\n"
240 "$GPRMC,100058.595,A,4351.1343,N,01108.8730,E,1.01,187.49,131009,,,A*60\r\n"
241 "$GPVTG,187.49,T,,,1.01,N,1.86,K,A*7C\r\n"
242 "$GPGGA,100059.595,4351.1341,N,01108.8729,E,1,03,16.9,0.0,M,45.2,M,,*6E\r\n"
243 "$GPGSA,A,2,09,27,29,,,,,,,,,,16.9,16.9,0.0*34\r\n"
244 "$GPGSV,3,1,09,2,34,087,,4,20,052,,9,31,143,30,14,38,266,*4B\r\n"
245 "$GPGSV,3,2,09,26,35,232,,27,25,143,34,29,42,214,36,30,69,313,30*72\r\n"
246 "$GPGSV,3,3,09,31,10,314,,,,,,,,,,,,,*45\r\n"
247 "$GPRMC,100059.595,A,4351.1341,N,01108.8729,E,1.28,187.49,131009,,,A*60\r\n"
248 "$GPVTG,187.49,T,,,1.28,N,2.37,K,A*7E\r\n"
249 "$GPGGA,100100.595,4351.1337,N,01108.8728,E,1,03,16.9,0.0,M,45.2,M,,*63\r\n"
250 "$GPRMC,100100.595,A,4351.1337,N,01108.8728,E,1.38,187.49,131009,,,A*6C\r\n"
251 "$GPVTG,187.49,T,,,1.38,N,2.55,K,A*7B\r\n"
252 "$GPGGA,100101.595,4351.1334,N,01108.8728,E,1,03,16.9,0.0,M,45.2,M,,*61\r\n"
253 "$GPRMC,100101.595,A,4351.1334,N,01108.8728,E,1.51,187.49,131009,,,A*61\r\n"
254 "$GPVTG,187.49,T,,,1.51,N,2.79,K,A*7A\r\n"
255 "$GPGGA,100102.595,4351.1331,N,01108.8727,E,1,03,16.9,0.0,M,45.2,M,,*68\r\n"
256 "$GPGSA,A,2,09,27,29,,,,,,,,,,16.9,16.9,0.0*34\r\n"
257 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,30,12,62,057,*4B\r\n"
258 "$GPGSV,3,2,10,14,38,266,,26,35,232,,27,25,143,34,29,42,214,35*7B\r\n"
259 "$GPGSV,3,3,10,30,69,313,30,31,10,314,,,,,,,,,*73\r\n"
260 "$GPRMC,100102.595,A,4351.1331,N,01108.8727,E,1.57,187.49,131009,,,A*6E\r\n"
261 "$GPVTG,187.49,T,,,1.57,N,2.91,K,A*7A\r\n"
262 "$GPGGA,100103.594,4351.1328,N,01108.8727,E,1,03,16.9,0.0,M,45.2,M,,*60\r\n"
263 "$GPRMC,100103.594,A,4351.1328,N,01108.8727,E,1.54,187.49,131009,,,A*65\r\n"
264 "$GPVTG,187.49,T,,,1.54,N,2.86,K,A*7F\r\n"
265 "$GPGGA,100104.594,4351.1326,N,01108.8727,E,1,03,16.9,0.0,M,45.2,M,,*69\r\n"
266 "$GPRMC,100104.594,A,4351.1326,N,01108.8727,E,1.38,187.49,131009,,,A*66\r\n"
267 "$GPVTG,187.49,T,,,1.38,N,2.56,K,A*78\r\n"
268 "$GPGGA,100105.594,4351.1322,N,01108.8726,E,1,03,16.9,0.0,M,45.2,M,,*6D\r\n"
269 "$GPGSA,A,2,09,27,29,,,,,,,,,,16.9,16.9,0.0*34\r\n"
270 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,29,12,62,057,*43\r\n"
271 "$GPGSV,3,2,10,14,38,266,,26,35,232,,27,25,143,34,29,42,214,36*78\r\n"
272 "$GPGSV,3,3,10,30,69,313,30,31,10,314,,,,,,,,,*73\r\n"
273 "$GPRMC,100105.594,A,4351.1322,N,01108.8726,E,1.36,187.49,131009,,,A*6C\r\n"
274 "$GPVTG,187.49,T,,,1.36,N,2.53,K,A*73\r\n"
275 "$GPGGA,100106.594,4351.1318,N,01108.8726,E,1,03,16.9,0.0,M,45.2,M,,*67\r\n"
276 "$GPRMC,100106.594,A,4351.1318,N,01108.8726,E,1.47,187.49,131009,,,A*60\r\n"
277 "$GPVTG,187.49,T,,,1.47,N,2.73,K,A*77\r\n"
278 "$GPGGA,100107.594,4351.1313,N,01108.8725,E,1,03,16.9,0.0,M,45.2,M,,*6E\r\n"
279 "$GPRMC,100107.594,A,4351.1313,N,01108.8725,E,1.64,187.49,131009,,,A*68\r\n"
280 "$GPVTG,187.49,T,,,1.64,N,3.03,K,A*70\r\n"
281 "$GPGGA,100108.593,4351.1310,N,01108.8724,E,1,03,16.9,0.0,M,45.2,M,,*64\r\n"
282 "$GPGSA,A,2,09,27,29,,,,,,,,,,16.9,16.9,0.0*34\r\n"
283 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,29,12,62,057,*43\r\n"
284 "$GPGSV,3,2,10,14,38,266,,26,35,232,,27,25,143,34,29,42,214,36*78\r\n"
285 "$GPGSV,3,3,10,30,69,313,30,31,10,314,,,,,,,,,*73\r\n"
286 "$GPRMC,100108.593,A,4351.1310,N,01108.8724,E,1.66,187.49,131009,,,A*60\r\n"
287 "$GPVTG,187.49,T,,,1.66,N,3.07,K,A*76\r\n"
288 "$GPGGA,100109.593,4351.1304,N,01108.8723,E,1,03,16.9,0.0,M,45.2,M,,*67\r\n"
289 "$GPRMC,100109.593,A,4351.1304,N,01108.8723,E,1.72,187.49,131009,,,A*66\r\n"
290 "$GPVTG,187.49,T,,,1.72,N,3.18,K,A*7D\r\n"
291 "$GPGGA,100110.593,4351.1301,N,01108.8722,E,1,03,16.9,0.0,M,45.2,M,,*6B\r\n"
292 "$GPRMC,100110.593,A,4351.1301,N,01108.8722,E,1.72,187.49,131009,,,A*6A\r\n"
293 "$GPVTG,187.49,T,,,1.72,N,3.18,K,A*7D\r\n"
294 "$GPGGA,100111.593,4351.1297,N,01108.8722,E,1,03,16.9,0.0,M,45.2,M,,*64\r\n"
295 "$GPGSA,A,2,09,27,29,,,,,,,,,,16.9,16.9,0.0*34\r\n"
296 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,29,12,62,057,*43\r\n"
297 "$GPGSV,3,2,10,14,38,266,,26,35,231,,27,25,143,34,29,42,214,35*78\r\n"
298 "$GPGSV,3,3,10,30,69,313,30,31,10,314,,,,,,,,,*73\r\n"
299 "$GPRMC,100111.593,A,4351.1297,N,01108.8722,E,1.65,187.49,131009,,,A*63\r\n"
300 "$GPVTG,187.49,T,,,1.65,N,3.05,K,A*77\r\n"
301 "$GPGGA,100112.592,4351.1295,N,01108.8722,E,1,03,16.9,0.0,M,45.2,M,,*64\r\n"
302 "$GPRMC,100112.592,A,4351.1295,N,01108.8722,E,1.50,187.49,131009,,,A*65\r\n"
303 "$GPVTG,187.49,T,,,1.50,N,2.78,K,A*7A\r\n"
304 "$GPGGA,100113.592,4351.1291,N,01108.8721,E,1,03,16.9,0.0,M,45.2,M,,*62\r\n"
305 "$GPRMC,100113.592,A,4351.1291,N,01108.8721,E,1.38,187.49,131009,,,A*6D\r\n"
306 "$GPVTG,187.49,T,,,1.38,N,2.55,K,A*7B\r\n"
307 "$GPGGA,100114.592,4351.1288,N,01108.8721,E,1,03,16.9,0.0,M,45.2,M,,*6D\r\n"
308 "$GPGSA,A,2,09,27,29,,,,,,,,,,16.9,16.9,0.0*34\r\n"
309 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,29,12,62,057,*43\r\n"
310 "$GPGSV,3,2,10,14,38,266,,26,35,231,,27,25,143,34,29,43,214,35*79\r\n"
311 "$GPGSV,3,3,10,30,69,313,30,31,10,314,,,,,,,,,*73\r\n"
312 "$GPRMC,100114.592,A,4351.1288,N,01108.8721,E,1.24,187.49,131009,,,A*6F\r\n"
313 "$GPVTG,187.49,T,,,1.24,N,2.29,K,A*7D\r\n"
314 "$GPGGA,100115.592,4351.1285,N,01108.8719,E,1,03,16.9,0.0,M,45.2,M,,*6A\r\n"
315 "$GPRMC,100115.592,A,4351.1285,N,01108.8719,E,1.01,187.49,131009,,,A*6F\r\n"
316 "$GPVTG,187.49,T,,,1.01,N,1.87,K,A*7D\r\n"
317 "$GPGGA,100116.592,4351.1283,N,01108.8719,E,1,03,16.9,0.0,M,45.2,M,,*6F\r\n"
318 "$GPRMC,100116.592,A,4351.1283,N,01108.8719,E,0.00,187.49,131009,,,A*6A\r\n"
319 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
320 "$GPGGA,100117.591,4351.1282,N,01108.8719,E,1,03,16.9,0.0,M,45.2,M,,*6C\r\n"
321 "$GPGSA,A,2,09,27,29,,,,,,,,,,16.9,16.9,0.0*34\r\n"
322 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,29,12,62,057,*43\r\n"
323 "$GPGSV,3,2,10,14,38,266,,26,35,231,,27,25,143,34,29,43,214,35*79\r\n"
324 "$GPGSV,3,3,10,30,69,313,30,31,10,314,,,,,,,,,*73\r\n"
325 "$GPRMC,100117.591,A,4351.1282,N,01108.8719,E,0.00,187.49,131009,,,A*69\r\n"
326 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
327 "$GPGGA,100118.591,4351.1280,N,01108.8718,E,1,03,16.9,-0.0,M,45.2,M,,*4D\r\n"
328 "$GPRMC,100118.591,A,4351.1280,N,01108.8718,E,0.00,187.49,131009,,,A*65\r\n"
329 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
330 "$GPGGA,100119.591,4351.1278,N,01108.8718,E,1,03,17.1,-0.0,M,45.2,M,,*42\r\n"
331 "$GPRMC,100119.591,A,4351.1278,N,01108.8718,E,0.00,187.49,131009,,,A*63\r\n"
332 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
333 "$GPGGA,100120.591,4351.1278,N,01108.8717,E,1,03,17.1,-0.0,M,45.2,M,,*47\r\n"
334 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.1,17.1,0.0*34\r\n"
335 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,28,12,62,057,*42\r\n"
336 "$GPGSV,3,2,10,14,38,266,,26,35,231,,27,25,143,34,29,43,214,35*79\r\n"
337 "$GPGSV,3,3,10,30,69,313,30,31,10,314,,,,,,,,,*73\r\n"
338 "$GPRMC,100120.591,A,4351.1278,N,01108.8717,E,0.00,187.49,131009,,,A*66\r\n"
339 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
340 "$GPGGA,100121.590,4351.1276,N,01108.8717,E,1,02,17.1,-0.0,M,45.2,M,,*48\r\n"
341 "$GPRMC,100121.590,A,4351.1276,N,01108.8717,E,0.00,187.49,131009,,,A*68\r\n"
342 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
343 "$GPGGA,100122.590,4351.1275,N,01108.8717,E,1,03,17.1,-0.0,M,45.2,M,,*49\r\n"
344 "$GPRMC,100122.590,A,4351.1275,N,01108.8717,E,0.00,187.49,131009,,,A*68\r\n"
345 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
346 "$GPGGA,100123.590,4351.1275,N,01108.8717,E,1,03,17.1,-0.0,M,45.2,M,,*48\r\n"
347 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.1,17.1,0.0*34\r\n"
348 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,29,12,62,057,*43\r\n"
349 "$GPGSV,3,2,10,14,38,266,,26,35,231,,27,25,143,34,29,43,214,36*7A\r\n"
350 "$GPGSV,3,3,10,30,69,313,30,31,10,314,,,,,,,,,*73\r\n"
351 "$GPRMC,100123.590,A,4351.1275,N,01108.8717,E,0.00,187.49,131009,,,A*69\r\n"
352 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
353 "$GPGGA,100124.590,4351.1274,N,01108.8717,E,1,03,17.1,-0.0,M,45.2,M,,*4E\r\n"
354 "$GPRMC,100124.590,A,4351.1274,N,01108.8717,E,0.00,187.49,131009,,,A*6F\r\n"
355 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
356 "$GPGGA,100125.590,4351.1272,N,01108.8717,E,1,03,17.1,-0.0,M,45.2,M,,*49\r\n"
357 "$GPRMC,100125.590,A,4351.1272,N,01108.8717,E,0.00,187.49,131009,,,A*68\r\n"
358 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
359 "$GPGGA,100126.589,4351.1271,N,01108.8716,E,1,03,17.1,-0.0,M,45.2,M,,*40\r\n"
360 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.1,17.1,0.0*34\r\n"
361 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,28,12,62,057,*42\r\n"
362 "$GPGSV,3,2,10,14,38,266,,26,35,231,,27,24,143,34,29,43,214,35*78\r\n"
363 "$GPGSV,3,3,10,30,69,313,30,31,10,314,,,,,,,,,*73\r\n"
364 "$GPRMC,100126.589,A,4351.1271,N,01108.8716,E,0.00,187.49,131009,,,A*61\r\n"
365 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
366 "$GPGGA,100127.589,4351.1270,N,01108.8715,E,1,03,17.1,-0.0,M,45.2,M,,*43\r\n"
367 "$GPRMC,100127.589,A,4351.1270,N,01108.8715,E,0.00,187.49,131009,,,A*62\r\n"
368 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
369 "$GPGGA,100128.589,4351.1269,N,01108.8715,E,1,03,17.1,-0.0,M,45.2,M,,*44\r\n"
370 "$GPRMC,100128.589,A,4351.1269,N,01108.8715,E,0.00,187.49,131009,,,A*65\r\n"
371 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
372 "$GPGGA,100129.589,4351.1268,N,01108.8715,E,1,03,17.1,-0.0,M,45.2,M,,*44\r\n"
373 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.1,17.1,0.0*34\r\n"
374 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,28,12,62,058,*4D\r\n"
375 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,34,29,43,214,35*76\r\n"
376 "$GPGSV,3,3,10,30,69,314,29,31,10,314,,,,,,,,,*7C\r\n"
377 "$GPRMC,100129.589,A,4351.1268,N,01108.8715,E,0.00,187.49,131009,,,A*65\r\n"
378 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
379 "$GPGGA,100130.589,4351.1266,N,01108.8715,E,1,03,17.1,-0.0,M,45.2,M,,*42\r\n"
380 "$GPRMC,100130.589,A,4351.1266,N,01108.8715,E,0.00,187.49,131009,,,A*63\r\n"
381 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
382 "$GPGGA,100131.588,4351.1265,N,01108.8714,E,1,03,17.1,-0.0,M,45.2,M,,*40\r\n"
383 "$GPRMC,100131.588,A,4351.1265,N,01108.8714,E,0.00,187.49,131009,,,A*61\r\n"
384 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
385 "$GPGGA,100132.588,4351.1264,N,01108.8714,E,1,03,17.1,-0.0,M,45.2,M,,*42\r\n"
386 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.1,17.1,0.0*34\r\n"
387 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,28,12,62,058,*4D\r\n"
388 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,33,29,43,214,35*71\r\n"
389 "$GPGSV,3,3,10,30,69,314,29,31,10,314,,,,,,,,,*7C\r\n"
390 "$GPRMC,100132.588,A,4351.1264,N,01108.8714,E,0.00,187.49,131009,,,A*63\r\n"
391 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
392 "$GPGGA,100133.588,4351.1264,N,01108.8715,E,1,03,17.1,-0.0,M,45.2,M,,*42\r\n"
393 "$GPRMC,100133.588,A,4351.1264,N,01108.8715,E,0.00,187.49,131009,,,A*63\r\n"
394 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
395 "$GPGGA,100134.588,4351.1262,N,01108.8714,E,1,03,17.1,-0.0,M,45.2,M,,*42\r\n"
396 "$GPRMC,100134.588,A,4351.1262,N,01108.8714,E,0.00,187.49,131009,,,A*63\r\n"
397 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
398 "$GPGGA,100135.587,4351.1263,N,01108.8715,E,1,03,17.1,-0.0,M,45.2,M,,*4C\r\n"
399 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.1,17.1,0.0*34\r\n"
400 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,27,12,62,058,*42\r\n"
401 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,33,29,43,214,35*71\r\n"
402 "$GPGSV,3,3,10,30,69,314,29,31,10,314,,,,,,,,,*7C\r\n"
403 "$GPRMC,100135.587,A,4351.1263,N,01108.8715,E,0.00,187.49,131009,,,A*6D\r\n"
404 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
405 "$GPGGA,100136.587,4351.1263,N,01108.8714,E,1,03,17.1,-0.0,M,45.2,M,,*4E\r\n"
406 "$GPRMC,100136.587,A,4351.1263,N,01108.8714,E,0.00,187.49,131009,,,A*6F\r\n"
407 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
408 "$GPGGA,100137.587,4351.1263,N,01108.8714,E,1,03,17.1,-0.0,M,45.2,M,,*4F\r\n"
409 "$GPRMC,100137.587,A,4351.1263,N,01108.8714,E,0.00,187.49,131009,,,A*6E\r\n"
410 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
411 "$GPGGA,100138.587,4351.1263,N,01108.8714,E,1,03,17.1,-0.0,M,45.2,M,,*40\r\n"
412 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.1,17.1,0.0*34\r\n"
413 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,27,12,62,058,*42\r\n"
414 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,33,29,43,215,34*71\r\n"
415 "$GPGSV,3,3,10,30,69,314,29,31,10,314,,,,,,,,,*7C\r\n"
416 "$GPRMC,100138.587,A,4351.1263,N,01108.8714,E,0.00,187.49,131009,,,A*61\r\n"
417 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
418 "$GPGGA,100139.587,4351.1263,N,01108.8714,E,1,03,17.1,-0.0,M,45.2,M,,*41\r\n"
419 "$GPRMC,100139.587,A,4351.1263,N,01108.8714,E,0.00,187.49,131009,,,A*60\r\n"
420 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
421 "$GPGGA,100140.586,4351.1263,N,01108.8714,E,1,03,17.1,-0.0,M,45.2,M,,*4E\r\n"
422 "$GPRMC,100140.586,A,4351.1263,N,01108.8714,E,0.00,187.49,131009,,,A*6F\r\n"
423 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
424 "$GPGGA,100141.586,4351.1263,N,01108.8714,E,1,03,17.1,-0.0,M,45.2,M,,*4F\r\n"
425 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.1,17.1,0.0*34\r\n"
426 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,27,12,62,058,*42\r\n"
427 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,33,29,43,215,34*71\r\n"
428 "$GPGSV,3,3,10,30,69,314,29,31,10,314,,,,,,,,,*7C\r\n"
429 "$GPRMC,100141.586,A,4351.1263,N,01108.8714,E,0.00,187.49,131009,,,A*6E\r\n"
430 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
431 "$GPGGA,100142.586,4351.1262,N,01108.8714,E,1,03,17.1,-0.0,M,45.2,M,,*4D\r\n"
432 "$GPRMC,100142.586,A,4351.1262,N,01108.8714,E,0.00,187.49,131009,,,A*6C\r\n"
433 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
434 "$GPGGA,100143.586,4351.1263,N,01108.8713,E,1,03,17.1,-0.0,M,45.2,M,,*4A\r\n"
435 "$GPRMC,100143.586,A,4351.1263,N,01108.8713,E,0.00,187.49,131009,,,A*6B\r\n"
436 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
437 "$GPGGA,100144.585,4351.1263,N,01108.8713,E,1,03,17.1,-0.0,M,45.2,M,,*4E\r\n"
438 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.1,17.1,0.0*34\r\n"
439 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,27,12,62,058,*42\r\n"
440 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,33,29,43,215,34*71\r\n"
441 "$GPGSV,3,3,10,30,69,314,29,31,10,314,,,,,,,,,*7C\r\n"
442 "$GPRMC,100144.585,A,4351.1263,N,01108.8713,E,0.00,187.49,131009,,,A*6F\r\n"
443 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
444 "$GPGGA,100145.585,4351.1263,N,01108.8713,E,1,03,17.1,-0.0,M,45.2,M,,*4F\r\n"
445 "$GPRMC,100145.585,A,4351.1263,N,01108.8713,E,0.00,187.49,131009,,,A*6E\r\n"
446 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
447 "$GPGGA,100146.585,4351.1262,N,01108.8712,E,1,03,17.1,-0.0,M,45.2,M,,*4C\r\n"
448 "$GPRMC,100146.585,A,4351.1262,N,01108.8712,E,0.00,187.49,131009,,,A*6D\r\n"
449 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
450 "$GPGGA,100147.585,4351.1262,N,01108.8712,E,1,03,17.1,-0.0,M,45.2,M,,*4D\r\n"
451 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.1,17.1,0.0*34\r\n"
452 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,27,12,62,058,*42\r\n"
453 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,33,29,43,215,34*71\r\n"
454 "$GPGSV,3,3,10,30,69,314,30,31,10,314,,,,,,,,,*74\r\n"
455 "$GPRMC,100147.585,A,4351.1262,N,01108.8712,E,0.00,187.49,131009,,,A*6C\r\n"
456 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
457 "$GPGGA,100148.585,4351.1263,N,01108.8712,E,1,03,17.1,-0.0,M,45.2,M,,*43\r\n"
458 "$GPRMC,100148.585,A,4351.1263,N,01108.8712,E,0.00,187.49,131009,,,A*62\r\n"
459 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
460 "$GPGGA,100149.584,4351.1262,N,01108.8712,E,1,03,17.1,-0.0,M,45.2,M,,*42\r\n"
461 "$GPRMC,100149.584,A,4351.1262,N,01108.8712,E,0.00,187.49,131009,,,A*63\r\n"
462 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
463 "$GPGGA,100150.584,4351.1263,N,01108.8712,E,1,03,17.2,-0.0,M,45.2,M,,*48\r\n"
464 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.2,17.2,0.0*34\r\n"
465 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,27,12,62,058,*42\r\n"
466 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,33,29,43,215,34*71\r\n"
467 "$GPGSV,3,3,10,30,69,314,29,31,10,314,,,,,,,,,*7C\r\n"
468 "$GPRMC,100150.584,A,4351.1263,N,01108.8712,E,0.00,187.49,131009,,,A*6A\r\n"
469 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
470 "$GPGGA,100151.584,4351.1261,N,01108.8712,E,1,03,17.2,-0.0,M,45.2,M,,*4B\r\n"
471 "$GPRMC,100151.584,A,4351.1261,N,01108.8712,E,0.00,187.49,131009,,,A*69\r\n"
472 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
473 "$GPGGA,100152.584,4351.1259,N,01108.8713,E,1,03,17.2,-0.0,M,45.2,M,,*42\r\n"
474 "$GPRMC,100152.584,A,4351.1259,N,01108.8713,E,0.00,187.49,131009,,,A*60\r\n"
475 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
476 "$GPGGA,10015,N,01108.8713,E,1,03,17.2,-0.0,M,45.2,M,,*48\r"
477 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.2,17.2,0.0*34\r\n"
478 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,27,12,62,058,*42\r\n"
479 "266,,26,34,231,,27,24,143,33,29,43,215,35*70\r\n"
480 "*74\r\n"
481 "$GPRMC,100153.584,A,4351.1261,N,01108.8713,E,0.00,187.49,131009,,,A*6A\r\n"
482 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
483 "$GPGGA,100154.583,4351.1260,N,01108.8713,E,1,03,17.2,0.0,M,45.2,M,,*64\r\n"
484 "$GPRMC,100154.583,A,4351.1260,N,01108.8713,E,0.00,187.49,131009,,,A*6B\r\n"
485 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
486 "$GPGGA,100155.583,4351.1259,N,01108.8712,E,1,03,17.2,0.0,M,45.2,M,,*6E\r\n"
487 "$GPRMC,100155.583,A,4351.1259,N,01108.8712,E,0.00,187.49,131009,,,A*61\r\n"
488 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
489 "$GPGGA,100156.583,4351.1258,N,01108.8712,E,1,03,17.2,0.0,M,45.2,M,,*6C\r\n"
490 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.2,17.2,0.0*34\r\n"
491 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,28,12,62,058,*4D\r\n"
492 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,33,29,43,215,35*70\r\n"
493 "$GPGSV,3,3,10,30,69,314,30,31,10,314,,,,,,,,,*74\r\n"
494 "$GPRMC,100156.583,A,4351.1258,N,01108.8712,E,0.00,187.49,131009,,,A*63\r\n"
495 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
496 "$GPGGA,100157.583,4351.1257,N,01108.8712,E,1,03,17.2,0.0,M,45.2,M,,*62\r\n"
497 "$GPRMC,100157.583,A,4351.1257,N,01108.8712,E,0.00,187.49,131009,,,A*6D\r\n"
498 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
499 "$GPGGA,100158.582,4351.1256,N,01108.8712,E,1,03,17.2,-0.0,M,45.2,M,,*40\r\n"
500 "$GPRMC,100158.582,A,4351.1256,N,01108.8712,E,0.00,187.49,131009,,,A*62\r\n"
501 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
502 "$GPGGA,100159.582,4351.1255,N,01108.8712,E,1,03,17.2,0.0,M,45.2,M,,*6F\r\n"
503 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.2,17.2,0.0*34\r\n"
504 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,27,12,62,058,*42\r\n"
505 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,33,29,43,215,35*70\r\n"
506 "$GPGSV,3,3,10,30,69,314,30,31,10,314,,,,,,,,,*74\r\n"
507 "$GPRMC,100159.582,A,4351.1255,N,01108.8712,E,0.00,187.49,131009,,,A*60\r\n"
508 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
509 "$GPGGA,100200.582,4351.1255,N,01108.8712,E,1,03,17.2,0.0,M,45.2,M,,*60\r\n"
510 "$GPRMC,100200.582,A,4351.1255,N,01108.8712,E,0.00,187.49,131009,,,A*6F\r\n"
511 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
512 "$GPGGA,100201.582,4351.1256,N,01108.8712,E,1,03,17.2,-0.0,M,45.2,M,,*4F\r\n"
513 "$GPRMC,100201.582,A,4351.1256,N,01108.8712,E,0.00,187.49,131009,,,A*6D\r\n"
514 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
515 "$GPGGA,100202.582,4351.1256,N,01108.8712,E,1,03,17.2,-0.0,M,45.2,M,,*4C\r\n"
516 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.2,17.2,0.0*34\r\n"
517 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,27,12,62,058,*42\r\n"
518 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,33,29,43,215,35*70\r\n"
519 "$GPGSV,3,3,10,30,69,314,30,31,10,314,,,,,,,,,*74\r\n"
520 "$GPRMC,100202.582,A,4351.1256,N,01108.8712,E,0.00,187.49,131009,,,A*6E\r\n"
521 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
522 "$GPGGA,100203.581,4351.1249,N,01108.8711,E,1,03,17.2,-0.0,M,45.2,M,,*43\r\n"
523 "$GPRMC,100203.581,A,4351.1249,N,01108.8711,E,0.00,187.49,131009,,,A*61\r\n"
524 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
525 "$GPGGA,100204.581,4351.1250,N,01108.8712,E,1,03,17.2,-0.0,M,45.2,M,,*4F\r\n"
526 "$GPRMC,100204.581,A,4351.1250,N,01108.8712,E,0.00,187.49,131009,,,A*6D\r\n"
527 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
528 "$GPGGA,100205.581,4351.1253,N,01108.8713,E,1,03,17.2,-0.0,M,45.2,M,,*4C\r\n"
529 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.2,17.2,0.0*34\r\n"
530 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,26,12,62,058,*43\r\n"
531 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,33,29,43,215,36*73\r\n"
532 "$GPGSV,3,3,10,30,69,314,30,31,10,314,,,,,,,,,*74\r\n"
533 "$GPRMC,100205.581,A,4351.1253,N,01108.8713,E,0.00,187.49,131009,,,A*6E\r\n"
534 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
535 "$GPGSV,3,3,10,30,69,315,30,31,10,314,,,,,,,,,*75\r\n"
536 "$GPRMC,100211.580,A,4351.1260,N,01108.8712,E,0.00,187.49,131009,,,A*6B\r\n"
537 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
538 "$GPGGA,100212.579,4351.1260,N,01108.8712,E,1,03,17.2,-0.0,M,45.2,M,,*4C\r\n"
539 "$GPRMC,100212.579,A,4351.1260,N,01108.8712,E,0.00,187.49,131009,,,A*6E\r\n"
540 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
541 "$GPGGA,100213.579,4351.1255,N,01108.8711,E,1,03,17.2,-0.0,M,45.2,M,,*48\r\n"
542 "$GPRMC,100213.579,A,4351.1255,N,01108.8711,E,0.00,187.49,131009,,,A*6A\r\n"
543 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
544 "$GPGGA,100214.579,4351.1258,N,01108.8711,E,1,03,17.2,-0.0,M,45.2,M,,*42\r\n"
545 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.2,17.2,0.0*34\r\n"
546 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,25,12,62,058,*40\r\n"
547 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,33,29,43,215,35*70\r\n"
548 "$GPGSV,3,3,10,30,69,315,30,31,10,314,,,,,,,,,*75\r\n"
549 "$GPRMC,100214.579,A,4351.1258,N,01108.8711,E,0.00,187.49,131009,,,A*60\r\n"
550 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
551 "$GPGGA,100215.579,4351.1260,N,01108.8711,E,1,03,17.2,-0.0,M,45.2,M,,*48\r\n"
552 "$GPRMC,100215.579,A,4351.1260,N,01108.8711,E,0.00,187.49,131009,,,A*6A\r\n"
553 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
554 "$GPGGA,100216.579,4351.1261,N,01108.8711,E,1,03,17.2,-0.0,M,45.2,M,,*4A\r\n"
555 "$GPRMC,100216.579,A,4351.1261,N,01108.8711,E,0.00,187.49,131009,,,A*68\r\n"
556 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
557 "$GPGGA,100217.578,4351.1263,N,01108.8712,E,1,03,17.2,-0.0,M,45.2,M,,*4B\r\n"
558 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.2,17.2,0.0*34\r\n"
559 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,25,12,62,058,*40\r\n"
560 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,33,29,43,215,35*70\r\n"
561 "$GPGSV,3,3,10,30,69,315,31,31,10,314,,,,,,,,,*74\r\n"
562 "$GPRMC,100217.578,A,4351.1263,N,01108.8712,E,0.00,187.49,131009,,,A*69\r\n"
563 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
564 "$GPGGA,100218.578,4351.1263,N,01108.8712,E,1,03,17.2,-0.0,M,45.2,M,,*44\r\n"
565 "$GPRMC,100218.578,A,4351.1263,N,01108.8712,E,0.00,187.49,131009,,,A*66\r\n"
566 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
567 "$GPGGA,100219.578,4351.1261,N,01108.8711,E,1,03,17.2,-0.0,M,45.2,M,,*44\r\n"
568 "$GPRMC,100219.578,A,4351.1261,N,01108.8711,E,0.00,187.49,131009,,,A*66\r\n"
569 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
570 "$GPGGA,100220.578,4351.1264,N,01108.8712,E,1,03,17.4,-0.0,M,45.2,M,,*4E\r\n"
571 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.4,17.4,0.0*34\r\n"
572 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,26,12,62,058,*43\r\n"
573 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,33,29,43,215,35*70\r\n"
574 "$GPGSV,3,3,10,30,69,315,31,31,10,314,,,,,,,,,*74\r\n"
575 "$GPRMC,100220.578,A,4351.1264,N,01108.8712,E,0.00,187.49,131009,,,A*6A\r\n"
576 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
577 "$GPGGA,100221.577,4351.1265,N,01108.8713,E,1,03,17.4,-0.0,M,45.2,M,,*40\r\n"
578 "$GPRMC,100221.577,A,4351.1265,N,01108.8713,E,0.00,187.49,131009,,,A*64\r\n"
579 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
580 "$GPGGA,100222.577,4351.1266,N,01108.8713,E,1,03,17.4,-0.0,M,45.2,M,,*40\r\n"
581 "$GPRMC,100222.577,A,4351.1266,N,01108.8713,E,0.00,187.49,131009,,,A*64\r\n"
582 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
583 "$GPGGA,100223.577,4351.1267,N,01108.8714,E,1,03,17.4,-0.0,M,45.2,M,,*47\r\n"
584 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.4,17.4,0.0*34\r\n"
585 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,26,12,62,058,*43\r\n"
586 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,32,29,43,215,36*72\r\n"
587 "$GPGSV,3,3,10,30,69,315,31,31,10,314,,,,,,,,,*74\r\n"
588 "$GPRMC,100223.577,A,4351.1267,N,01108.8714,E,0.00,187.49,131009,,,A*63\r\n"
589 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
590 "$GPGGA,100224.577,4351.1271,N,01108.8713,E,1,03,17.4,-0.0,M,45.2,M,,*40\r\n"
591 "$GPRMC,100224.577,A,4351.1271,N,01108.8713,E,0.00,187.49,131009,,,A*64\r\n"
592 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
593 "$GPGGA,100225.577,4351.1273,N,01108.8714,E,1,03,17.4,-0.0,M,45.2,M,,*44\r\n"
594 "$GPRMC,100225.577,A,4351.1273,N,01108.8714,E,0.00,187.49,131009,,,A*60\r\n"
595 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
596 "$GPGGA,100226.576,4351.1274,N,01108.8714,E,1,03,17.4,-0.0,M,45.2,M,,*41\r\n"
597 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.4,17.4,0.0*34\r\n"
598 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,25,12,62,058,*40\r\n"
599 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,32,29,43,215,35*71\r\n"
600 "$GPGSV,3,3,10,30,69,315,30,31,10,314,,,,,,,,,*75\r\n"
601 "$GPRMC,100226.576,A,4351.1274,N,01108.8714,E,0.00,187.49,131009,,,A*65\r\n"
602 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
603 "$GPGGA,100227.576,4351.1274,N,01108.8714,E,1,03,17.4,-0.0,M,45.2,M,,*40\r\n"
604 "$GPRMC,100227.576,A,4351.1274,N,01108.8714,E,0.00,187.49,131009,,,A*64\r\n"
605 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
606 "$GPGGA,100228.576,4351.1276,N,01108.8715,E,1,03,17.4,-0.0,M,45.2,M,,*4C\r\n"
607 "$GPRMC,100228.576,A,4351.1276,N,01108.8715,E,0.00,187.49,131009,,,A*68\r\n"
608 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
609 "$GPGGA,100229.576,4351.1280,N,01108.8715,E,1,03,17.4,-0.0,M,45.2,M,,*44\r\n"
610 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.4,17.4,0.0*34\r\n"
611 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,26,12,62,058,*43\r\n"
612 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,33,29,43,215,35*70\r\n"
613 "$GPGSV,3,3,10,30,69,315,31,31,10,314,,,,,,,,,*74\r\n"
614 "$GPRMC,100229.576,A,4351.1280,N,01108.8715,E,0.00,187.49,131009,,,A*60\r\n"
615 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
616 "$GPGGA,100230.576,4351.1282,N,01108.8715,E,1,03,17.4,-0.0,M,45.2,M,,*4E\r\n"
617 "$GPRMC,100230.576,A,4351.1282,N,01108.8715,E,0.00,187.49,131009,,,A*6A\r\n"
618 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
619 "$GPGGA,100231.575,4351.1294,N,01108.8718,E,1,03,17.4,-0.0,M,45.2,M,,*46\r\n"
620 "$GPRMC,100231.575,A,4351.1294,N,01108.8718,E,0.00,187.49,131009,,,A*62\r\n"
621 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
622 "$GPGGA,100232.575,4351.1295,N,01108.8718,E,1,03,17.4,-0.0,M,45.2,M,,*44\r\n"
623 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.4,17.4,0.0*34\r\n"
624 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,27,12,62,058,*42\r\n"
625 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,32,29,43,215,34*70\r\n"
626 "$GPGSV,3,3,10,30,69,315,30,31,10,314,,,,,,,,,*75\r\n"
627 "$GPRMC,100232.575,A,4351.1295,N,01108.8718,E,0.00,187.49,131009,,,A*60\r\n"
628 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
629 "$GPGGA,100233.575,4351.1297,N,01108.8718,E,1,03,17.4,0.0,M,45.2,M,,*6A\r\n"
630 "$GPRMC,100233.575,A,4351.1297,N,01108.8718,E,0.00,187.49,131009,,,A*63\r\n"
631 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
632 "$GPGGA,100234.575,4351.1301,N,01108.8719,E,1,03,17.4,-0.0,M,45.2,M,,*4F\r\n"
633 "$GPRMC,100234.575,A,4351.1301,N,01108.8719,E,0.00,187.49,131009,,,A*6B\r\n"
634 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
635 "$GPGGA,100235.574,4351.1305,N,01108.8719,E,1,03,17.4,-0.0,M,45.2,M,,*4B\r\n"
636 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.4,17.4,0.0*34\r\n"
637 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,27,12,62,058,*42\r\n"
638 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,32,29,43,215,34*70\r\n"
639 "$GPGSV,3,3,10,30,69,315,30,31,10,314,,,,,,,,,*75\r\n"
640 "$GPRMC,100235.574,A,4351.1305,N,01108.8719,E,0.00,187.49,131009,,,A*6F\r\n"
641 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
642 "$GPGGA,100236.574,4351.1308,N,01108.8720,E,1,03,17.4,-0.0,M,45.2,M,,*4F\r\n"
643 "$GPRMC,100236.574,A,4351.1308,N,01108.8720,E,0.00,187.49,131009,,,A*6B\r\n"
644 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
645 "$GPGGA,100237.574,4351.1311,N,01108.8720,E,1,03,17.4,-0.0,M,45.2,M,,*46\r\n"
646 "$GPRMC,100237.574,A,4351.1311,N,01108.8720,E,0.00,187.49,131009,,,A*62\r\n"
647 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
648 "$GPGGA,100238.574,4351.1314,N,01108.8721,E,1,03,17.4,-0.0,M,45.2,M,,*4D\r\n"
649 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.4,17.4,0.0*34\r\n"
650 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,26,12,62,058,*43\r\n"
651 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,32,29,43,215,34*70\r\n"
652 "$GPGSV,3,3,10,30,69,315,30,31,10,314,,,,,,,,,*75\r\n"
653 "$GP351.1314,N,01108.8721,E,0.00,187.49,131009,,,A*69\r"
654 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
655 "$GPGGA,100239.574,4351.1316,N,01108.8722,E,1,03,17.4,-0.0,M,45.2,M,,*4D\r\n"
656 "$GPGGA,100206.581,4351.1256,N,01108.8711,E,1,03,17.2,-0.0,M,45.2,M,,*48\r\n"
657 "$GPRMC,100206.581,A,4351.1256,N,01108.8711,E,0.00,187.49,131009,,,A*6A\r\n"
658 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
659 "$GPGGA,100207.581,4351.1257,N,01108.8711,E,1,03,17.2,-0.0,M,45.2,M,,*48\r\n"
660 "$GPRMC,100207.581,A,4351.1257,N,01108.8711,E,0.00,187.49,131009,,,A*6A\r\n"
661 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
662 "$GPGGA,100208.580,4351.1258,N,01108.8712,E,1,03,17.2,-0.0,M,45.2,M,,*4A\r\n"
663 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.2,17.2,0.0*34\r\n"
664 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,26,12,62,058,*43\r\n"
665 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,33,29,43,215,35*70\r\n"
666 "$GPGSV,3,3,10,30,69,314,30,31,10,314,,,,,,,,,*74\r\n"
667 "$GPRMC,100208.580,A,4351.1258,N,01108.8712,E,0.00,187.49,131009,,,A*68\r\n"
668 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
669 "$GPGGA,100209.580,4351.1258,N,01108.8712,E,1,03,17.2,-0.0,M,45.2,M,,*4B\r\n"
670 "$GPRMC,100209.580,A,4351.1258,N,01108.8712,E,0.00,187.49,131009,,,A*69\r\n"
671 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
672 "$GPGGA,100210.580,4351.1258,N,01108.8712,E,1,03,17.2,-0.0,M,45.2,M,,*43\r\n"
673 "$GPRMC,100210.580,A,4351.1258,N,01108.8712,E,0.00,187.49,131009,,,A*61\r\n"
674 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
675 "$GPGGA,100211.580,4351.1260,N,01108.8712,E,1,03,17.2,-0.0,M,45.2,M,,*49\r\n"
676 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.2,17.2,0.0*34\r\n"
677 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,26,12,62,058,*43\r\n"
678 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,33,29,43,215,35*70\r\n"
679 "$GPGSV,3,3,10,30,69,315,30,31,10,314,,,,,,,,,*75\r\n"
680 "$GPRMC,100211.580,A,4351.1260,N,01108.8712,E,0.00,187.49,131009,,,A*6B\r\n"
681 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
682 "$GPGGA,100212.579,4351.1260,N,01108.8712,E,1,03,17.2,-0.0,M,45.2,M,,*4C\r\n"
683 "$GPRMC,100212.579,A,4351.1260,N,01108.8712,E,0.00,187.49,131009,,,A*6E\r\n"
684 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
685 "$GPGGA,100213.579,4351.1255,N,01108.8711,E,1,03,17.2,-0.0,M,45.2,M,,*48\r\n"
686 "$GPRMC,100213.579,A,4351.1255,N,01108.8711,E,0.00,187.49,131009,,,A*6A\r\n"
687 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
688 "$GPGGA,100214.579,4351.1258,N,01108.8711,E,1,03,17.2,-0.0,M,45.2,M,,*42\r\n"
689 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.2,17.2,0.0*34\r\n"
690 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,25,12,62,058,*40\r\n"
691 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,33,29,43,215,35*70\r\n"
692 "$GPGSV,3,3,10,30,69,315,30,31,10,314,,,,,,,,,*75\r\n"
693 "$GPRMC,100214.579,A,4351.1258,N,01108.8711,E,0.00,187.49,131009,,,A*60\r\n"
694 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
695 "$GPGGA,100215.579,4351.1260,N,01108.8711,E,1,03,17.2,-0.0,M,45.2,M,,*48\r\n"
696 "$GPRMC,100215.579,A,4351.1260,N,01108.8711,E,0.00,187.49,131009,,,A*6A\r\n"
697 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
698 "$GPGGA,100216.579,4351.1261,N,01108.8711,E,1,03,17.2,-0.0,M,45.2,M,,*4A\r\n"
699 "$GPRMC,100216.579,A,4351.1261,N,01108.8711,E,0.00,187.49,131009,,,A*68\r\n"
700 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
701 "$GPGGA,100217.578,4351.1263,N,01108.8712,E,1,03,17.2,-0.0,M,45.2,M,,*4B\r\n"
702 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.2,17.2,0.0*34\r\n"
703 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,25,12,62,058,*40\r\n"
704 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,33,29,43,215,35*70\r\n"
705 "$GPGSV,3,3,10,30,69,315,31,31,10,314,,,,,,,,,*74\r\n"
706 "$GPRMC,100217.578,A,4351.1263,N,01108.8712,E,0.00,187.49,131009,,,A*69\r\n"
707 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
708 "$GPGGA,100218.578,4351.1263,N,01108.8712,E,1,03,17.2,-0.0,M,45.2,M,,*44\r\n"
709 "$GPRMC,100218.578,A,4351.1263,N,01108.8712,E,0.00,187.49,131009,,,A*66\r\n"
710 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
711 "$GPGGA,100219.578,4351.1261,N,01108.8711,E,1,03,17.2,-0.0,M,45.2,M,,*44\r\n"
712 "$GPRMC,100219.578,A,4351.1261,N,01108.8711,E,0.00,187.49,131009,,,A*66\r\n"
713 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
714 "$GPGGA,100220.578,4351.1264,N,01108.8712,E,1,03,17.4,-0.0,M,45.2,M,,*4E\r\n"
715 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.4,17.4,0.0*34\r\n"
716 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,26,12,62,058,*43\r\n"
717 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,33,29,43,215,35*70\r\n"
718 "$GPGSV,3,3,10,30,69,315,31,31,10,314,,,,,,,,,*74\r\n"
719 "$GPRMC,100220.578,A,4351.1264,N,01108.8712,E,0.00,187.49,131009,,,A*6A\r\n"
720 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
721 "$GPGGA,100221.577,4351.1265,N,01108.8713,E,1,03,17.4,-0.0,M,45.2,M,,*40\r\n"
722 "$GPRMC,100221.577,A,4351.1265,N,01108.8713,E,0.00,187.49,131009,,,A*64\r\n"
723 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
724 "$GPGGA,100222.577,4351.1266,N,01108.8713,E,1,03,17.4,-0.0,M,45.2,M,,*40\r\n"
725 "$GPRMC,100222.577,A,4351.1266,N,01108.8713,E,0.00,187.49,131009,,,A*64\r\n"
726 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
727 "$GPGGA,100223.577,4351.1267,N,01108.8714,E,1,03,17.4,-0.0,M,45.2,M,,*47\r\n"
728 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.4,17.4,0.0*34\r\n"
729 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,26,12,62,058,*43\r\n"
730 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,32,29,43,215,36*72\r\n"
731 "$GPGSV,3,3,10,30,69,315,31,31,10,314,,,,,,,,,*74\r\n"
732 "$GPRMC,100223.577,A,4351.1267,N,01108.8714,E,0.00,187.49,131009,,,A*63\r\n"
733 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
734 "$GPGGA,100224.577,4351.1271,N,01108.8713,E,1,03,17.4,-0.0,M,45.2,M,,*40\r\n"
735 "$GPRMC,100224.577,A,4351.1271,N,01108.8713,E,0.00,187.49,131009,,,A*64\r\n"
736 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
737 "$GPGGA,100225.577,4351.1273,N,01108.8714,E,1,03,17.4,-0.0,M,45.2,M,,*44\r\n"
738 "$GPRMC,100225.577,A,4351.1273,N,01108.8714,E,0.00,187.49,131009,,,A*60\r\n"
739 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
740 "$GPGGA,100226.576,4351.1274,N,01108.8714,E,1,03,17.4,-0.0,M,45.2,M,,*41\r\n"
741 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.4,17.4,0.0*34\r\n"
742 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,25,12,62,058,*40\r\n"
743 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,32,29,43,215,35*71\r\n"
744 "$GPGSV,3,3,10,30,69,315,30,31,10,314,,,,,,,,,*75\r\n"
745 "$GPRMC,100226.576,A,4351.1274,N,01108.8714,E,0.00,187.49,131009,,,A*65\r\n"
746 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
747 "$GPGGA,100227.576,4351.1274,N,01108.8714,E,1,03,17.4,-0.0,M,45.2,M,,*40\r\n"
748 "$GPRMC,100227.576,A,4351.1274,N,01108.8714,E,0.00,187.49,131009,,,A*64\r\n"
749 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
750 "$GPGGA,100228.576,4351.1276,N,01108.8715,E,1,03,17.4,-0.0,M,45.2,M,,*4C\r\n"
751 "$GPRMC,100228.576,A,4351.1276,N,01108.8715,E,0.00,187.49,131009,,,A*68\r\n"
752 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
753 "$GPGGA,100229.576,4351.1280,N,01108.8715,E,1,03,17.4,-0.0,M,45.2,M,,*44\r\n"
754 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.4,17.4,0.0*34\r\n"
755 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,26,12,62,058,*43\r\n"
756 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,33,29,43,215,35*70\r\n"
757 "$GPGSV,3,3,10,30,69,315,31,31,10,314,,,,,,,,,*74\r\n"
758 "$GPRMC,100229.576,A,4351.1280,N,01108.8715,E,0.00,187.49,131009,,,A*60\r\n"
759 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
760 "$GPGGA,100230.576,4351.1282,N,01108.8715,E,1,03,17.4,-0.0,M,45.2,M,,*4E\r\n"
761 "$GPRMC,100230.576,A,4351.1282,N,01108.8715,E,0.00,187.49,131009,,,A*6A\r\n"
762 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
763 "$GPGGA,100231.575,4351.1294,N,01108.8718,E,1,03,17.4,-0.0,M,45.2,M,,*46\r\n"
764 "$GPRMC,100231.575,A,4351.1294,N,01108.8718,E,0.00,187.49,131009,,,A*62\r\n"
765 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
766 "$GPGGA,100232.575,4351.1295,N,01108.8718,E,1,03,17.4,-0.0,M,45.2,M,,*44\r\n"
767 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.4,17.4,0.0*34\r\n"
768 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,27,12,62,058,*42\r\n"
769 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,32,29,43,215,34*70\r\n"
770 "$GPGSV,3,3,10,30,69,315,30,31,10,314,,,,,,,,,*75\r\n"
771 "$GPRMC,100232.575,A,4351.1295,N,01108.8718,E,0.00,187.49,131009,,,A*60\r\n"
772 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
773 "$GPGGA,100233.575,4351.1297,N,01108.8718,E,1,03,17.4,0.0,M,45.2,M,,*6A\r\n"
774 "$GPRMC,100233.575,A,4351.1297,N,01108.8718,E,0.00,187.49,131009,,,A*63\r\n"
775 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
776 "$GPGGA,100234.575,4351.1301,N,01108.8719,E,1,03,17.4,-0.0,M,45.2,M,,*4F\r\n"
777 "$GPRMC,100234.575,A,4351.1301,N,01108.8719,E,0.00,187.49,131009,,,A*6B\r\n"
778 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
779 "$GPGGA,100235.574,4351.1305,N,01108.8719,E,1,03,17.4,-0.0,M,45.2,M,,*4B\r\n"
780 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.4,17.4,0.0*34\r\n"
781 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,27,12,62,058,*42\r\n"
782 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,32,29,43,215,34*70\r\n"
783 "$GPGSV,3,3,10,30,69,315,30,31,10,314,,,,,,,,,*75\r\n"
784 "$GPRMC,100235.574,A,4351.1305,N,01108.8719,E,0.00,187.49,131009,,,A*6F\r\n"
785 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
786 "$GPGGA,100236.574,4351.1308,N,01108.8720,E,1,03,17.4,-0.0,M,45.2,M,,*4F\r\n"
787 "$GPRMC,100236.574,A,4351.1308,N,01108.8720,E,0.00,187.49,131009,,,A*6B\r\n"
788 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
789 "$GPGGA,100237.574,4351.1311,N,01108.8720,E,1,03,17.4,-0.0,M,45.2,M,,*46\r\n"
790 "$GPRMC,100237.574,A,4351.1311,N,01108.8720,E,0.00,187.49,131009,,,A*62\r\n"
791 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
792 "$GPGGA,100238.574,4351.1314,N,01108.8721,E,1,03,17.4,-0.0,M,45.2,M,,*4D\r\n"
793 "$GPGSA,A,2,09,27,29,,,,,,,,,,17.4,17.4,0.0*34\r\n"
794 "$GPGSV,3,1,10,2,34,086,,4,20,052,,9,31,143,26,12,62,058,*43\r\n"
795 "$GPGSV,3,2,10,14,37,266,,26,34,231,,27,24,143,32,29,43,215,34*70\r\n"
796 "$GPGSV,3,3,10,30,69,315,30,31,10,314,,,,,,,,,*75\r\n"
797 "$GP351.1314,N,01108.8721,E,0.00,187.49,131009,,,A*69\r"
798 "$GPVTG,187.49,T,,,0.00,N,0.00,K,A*73\r\n"
799 "$GPGGA,100239.574,4351.1316,N,01108.8722,E,1,03,17.4,-0.0,M,45.2,M,,*4D\r\n"
800 };
801
802
803 static NmeaGga gga_test =
804 {
805         .latitude = 43851403,
806     .longitude = 11147808,
807     .altitude = 57,
808     .time = 57928,
809     .satellites = 5,
810     .quality = 1,
811     .hdop = 26,
812     .geoid = 45,
813 };
814
815 static NmeaRmc rmc_test =
816 {
817         .time = 1254758726,
818         .warn = 'A',
819         .latitude = 43851405,
820         .longitude = 11147812,
821         .speed = 0,
822         .course = 237,
823         .mag_var = 0
824 };
825
826
827 static NmeaVtg vtg_test =
828 {
829         .track_good = 237,
830         .knot_speed = 0,
831         .km_speed = 0
832 };
833
834 static NmeaGsv gsv_test =
835 {
836         .tot_message = 3,
837         .message_num = 1,
838         .tot_svv = 9,
839         .info =
840     {
841                 {  3, 78, 302, 37 },
842                 {  6, 87,  31,  0 },
843                 {  7,  5, 292, 37 },
844                 { 14,  5, 135,  0 }
845
846         }
847 };
848
849
850 #define TOT_GOOD_SENTENCE_NUM    663
851 #define TOT_SENTENCE_NUM         729
852
853 #define MAX_SENTENCE_POLL  20
854
855 static int tot_sentence_parsed = 0;
856
857 /**
858  * do something with the GGA data
859  */
860 static void gpgga_callout_test(nmeap_context_t *context, void *data, void *user_data)
861 {
862         (void)context;
863         (void)user_data;
864         NmeaGga *gga = (NmeaGga *)data;
865
866         tot_sentence_parsed++;
867
868     LOG_INFO("[%d]found GPGGA message %ld %ld %d %lu %d %d %d %d\n",tot_sentence_parsed,
869             (long)gga->latitude,
870             (long)gga->longitude,
871             gga->altitude,
872             gga->time,
873             gga->satellites,
874             gga->quality,
875             gga->hdop,
876             gga->geoid);
877 }
878
879 /**
880  * do something with the RMC data
881  */
882 static void gprmc_callout_test(nmeap_context_t *context, void *data, void *user_data)
883 {
884         (void)context;
885         (void)user_data;
886     NmeaRmc *rmc = (NmeaRmc *)data;
887
888         tot_sentence_parsed++;
889
890         LOG_INFO("[%d]found GPRMC Message %lu %c %ld %ld %d %d %d\n",tot_sentence_parsed,
891             rmc->time,
892             rmc->warn,
893             (long)rmc->latitude,
894             (long)rmc->longitude,
895             rmc->speed,
896             rmc->course,
897             rmc->mag_var);
898 }
899
900 /**
901  * do something with the GSV data
902  */
903 static void gpgsv_callout_test(nmeap_context_t *context, void *data, void *user_data)
904 {
905         (void)context;
906         (void)user_data;
907         NmeaGsv *gsv = (NmeaGsv *)data;
908
909         tot_sentence_parsed++;
910
911     LOG_INFO("[%d]Found GPGSV message %d %d %d\n",tot_sentence_parsed,
912                         gsv->tot_message,
913                         gsv->message_num,
914                         gsv->tot_svv);
915
916         for (int i = 0; i < 4; i++)
917             LOG_INFO("\t[%d]%d %d %d %d\n", i, gsv->info[i].sv_prn, gsv->info[i].elevation, gsv->info[i].azimut, gsv->info[i].snr);
918 }
919
920 /**
921  * do something with the VTG data
922  */
923 static void gpvtg_callout_test(nmeap_context_t *context, void *data, void *user_data)
924 {
925         (void)context;
926         (void)user_data;
927         NmeaVtg *vtg = (NmeaVtg *)data;
928
929         tot_sentence_parsed++;
930
931     LOG_INFO("[%d]Found GPVTG message %d %d %d\n",tot_sentence_parsed,
932                         vtg->track_good,
933                         vtg->knot_speed,
934                         vtg->km_speed);
935 }
936
937 int nmea_testSetup(void)
938 {
939         kdbg_init();
940
941         kfilemem_init(&mem, nmea_test1, sizeof(nmea_test1));
942         LOG_INFO("Init test buffer..done.\n");
943
944         nmeap_init(&nmea, NULL);
945         nmeap_addParser(&nmea, "GPGGA", nmea_gpgga, gpgga_callout_test, &gga);
946         nmeap_addParser(&nmea, "GPRMC", nmea_gprmc, gprmc_callout_test, &rmc);
947         nmeap_addParser(&nmea, "GPGSV", nmea_gpgsv, gpgsv_callout_test, &gsv);
948         nmeap_addParser(&nmea, "GPVTG", nmea_gpvtg, gpvtg_callout_test, &vtg);
949
950         return 0;
951 }
952
953 int nmea_testTearDown(void)
954 {
955         return 0;
956 }
957
958 int nmea_testRun(void)
959 {
960         for (int i = 0; i < MAX_SENTENCE_POLL; i++)
961         {
962                 nmea_poll(&nmea, &mem.fd);
963         }
964
965         if (memcmp(&gga_test, &gga, sizeof(gga_test)) &&
966                 memcmp(&rmc_test, &rmc, sizeof(rmc_test)) &&
967                 memcmp(&vtg_test, &vtg, sizeof(vtg_test)) &&
968                 memcmp(&gsv_test, &gsv, sizeof(gsv_test)))
969         {
970                 LOG_ERR("Last gga test sentence had unexpected value\n");
971                 return -1;
972         }
973
974         kfilemem_init(&mem, nmea_test2, sizeof(nmea_test2));
975
976         for (int i = 0; i < TOT_SENTENCE_NUM; i++)
977         {
978                 nmea_poll(&nmea, &mem.fd);
979         }
980         kprintf("tot sentence %d\n", tot_sentence_parsed);
981
982         if (tot_sentence_parsed != TOT_GOOD_SENTENCE_NUM)
983         {
984                 LOG_ERR("Incorrect number of parsed sentence.\n");
985                 return -1;
986         }
987
988
989         return  0;
990 }
991
992 TEST_MAIN(nmea);
993