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

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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ć ?
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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 ;)

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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.

Składnia: [ Pobierz ] [ Ukryj ]
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().
Składnia: [ Pobierz ] [ Ukryj ]
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/