ATNEL tech-forum https://forum.atnel.pl/ |
|
Parsowanie NMEA https://forum.atnel.pl/topic19758.html |
Strona 1 z 1 |
Autor: | kuba [ 7 gru 2017, o 00:23 ] |
Tytuł: | Parsowanie NMEA |
Witam Jakim sposobem parsować tyle dużo danych z GPS. $GPGGA,,,,,,0,00,99.99,,,,,,*48 $GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30 $GPGSV,4,1,13,01,,,24,05,,,21,08,,,22,10,,,25*71 $GPGSV,4,2,13,14,,,23,15,,,22,16,,,20,21,,,21*78 $GPGSV,4,3,13,23,,,24,26,,,23,27,,,23,28,,,26*74 $GPGSV,4,4,13,29,,,22*70 $GPGLL,,,,,,V,N*64 $GPRMC,,V,,,,,,,,,,N*53 $GPVTG,,,,,,,,,N*30 Mie interesuje $GPGGA jak to zdanie rozpoznać z pomiendzy ostatnich i ułożyć do bufora? |
Autor: | Ognisty [ 7 gru 2017, o 01:03 ] |
Tytuł: | Re: Parsowanie NMEA |
O parsowaniu danych z GPS tutaj było: http://forum.atnel.pl/topic11972.html |
Autor: | kuba [ 7 gru 2017, o 21:08 ] |
Tytuł: | Re: Parsowanie NMEA |
Coś takiego próbuje ale zadziała to i na inne zdanie |
Autor: | kuba [ 9 gru 2017, o 23:00 ] |
Tytuł: | Re: Parsowanie NMEA |
Zrobiłem coś takiego i działa ale jak nie nadlecą wszystkie dane to mi się wyświetla suma kontrolna.Co z tym można zrobić ? |
Autor: | wojtekr51 [ 9 gru 2017, o 23:59 ] |
Tytuł: | Re: Parsowanie NMEA |
Problemem jest to że funkcja strtok_r() której używasz, w przypadku gdy pola danych pomiędzy separatorami "," są puste, nie działa w taki sposób jak założyłeś. Gdy w zdaniu występują przecinki obok siebie to owa funkcja potraktuje te wszystkie przecinki tak jakby był tylko jeden przecinek. Też kiedyś miałem taki sam problem z tą funkcją. Rozwiązałem to poprzez napisanie własnej funkcji która działa podobnie do strtok() i wykrywa wszystkie pola nawet gdy ich nie ma . Możesz pokombinować z napisaniem własnej funkcyjki, a jak chcesz to wrzucę tu moje rozwiązanie. |
Autor: | mirekk36 [ 10 gru 2017, o 00:14 ] |
Tytuł: | Re: Parsowanie NMEA |
W Yellowbooku http://atnel.pl/wkuwamy-c-majsterkuj.html pokazywałem taką funkcję i inne różnie ciekawostki |
Autor: | kuba [ 10 gru 2017, o 21:06 ] |
Tytuł: | Re: Parsowanie NMEA |
Funkcja by była dobra ale potrzebowałbym widziec ja jej uzyć bo chyba nic nie wymyśle. |
Autor: | wojtekr51 [ 10 gru 2017, o 23:07 ] |
Tytuł: | Re: Parsowanie NMEA |
Wrzucam fragment biblioteki gdzie parsuję sentencję GPGGA. język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
A tu implementacja funkcji która zastępuje strtok(). język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Funkcja mirka jest bardziej uniwersalna. Moją funkcję pisałem specjalnie na potrzeby parsowania NMEA. |
Autor: | mirekk36 [ 10 gru 2017, o 23:09 ] |
Tytuł: | Re: Parsowanie NMEA |
wojtekr51 napisał(a): A tu implementacja funkcji która zastępuje strtok(). Tyle, że no ona nie do końca zastępuje strtok - w ogóle nie ma wyboru rodzaju separatora. Separatorem jest na sztywno pojedynczy znak przecinka. Polecam się zainteresować funkcją, którą pokazałem wyżej bo ta rzeczywiście zastępuje strtok - 1:1 |
Strona 1 z 1 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |