Flödesmätare del 2 - GPS

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
christoferivarsson
Inlägg: 67
Blev medlem: 10 juli 2008, 15:47:06
Ort: stockholm
Kontakt:

Flödesmätare del 2 - GPS

Inlägg av christoferivarsson »

Hej igen. Min flödesmätare fungerar och nu börjar etapp 2 - att läsa in hastigheten från en GPS via NMEA 0183. Jag är lite osäker på hur jag skall läsa av rätt "rad" från GPSen. Min GPS sänder ut följande rader med uppdatering varje 2 sekunder

$GPRMC,212949,A,4915.61,N,12310.55,W,000.0,360.0,111198,020.3,E*6B
$GPRMB,A,0.01,R,,JERICO,4916.55,N,12311.02,W,001.0,341.8,,V*0A
$GPWPL,4916.55,N,12311.02,W,JERICO*49
$PGRMZ,243,f,3*1E
$PGRMM,NAD27 Canada*2F
$GPRMC,212951,A,4915.61,N,12310.55,W,000.0,360.0,111198,020.3,E*62
$GPRMB,A,0.01,R,,JERICO,4916.55,N,12311.02,W,001.0,341.9,,V*0B
$GPWPL,4916.55,N,12311.02,W,JERICO*49
$PGRMZ,244,f,3*19

Jag vill läsa av raden som börjar med $GPRMC..... och hastighetsinformationen 020.3 som kommer efter 9st kommatecken. Att räkna komman är ju en baggis men hur särskiljer jag raden $GPRMC..... från de andra raderna på ett smidigt sätt? Kan man köra en switch-sats och jämföra tecken för tecken?

GPSen är kopplade till en PIC16F628 på UARTen.

/Cricke
Användarvisningsbild
stekern
Inlägg: 453
Blev medlem: 2 november 2008, 08:24:18
Ort: Esbo, Finland

Re: Flödesmätare del 2 - GPS

Inlägg av stekern »

i C kan du köra

Kod: Markera allt

if (!strncmp(mess,"$GPRMC",6))
bearing
Inlägg: 11677
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Flödesmätare del 2 - GPS

Inlägg av bearing »

Spara "GPRMC" i en array under programmets initieringsfas.

Under programmets gång.
1. Vänta på "$"
2. Nollställ en indexvariabel
3. Jämför nästa GPS-tecken med tecknet på indexpositionen i arrayen. Om fel, gå till punkt 1.
4. Öka index. Om index har passerat sista positionen i strängen, hoppa över punkt 5.
5. Gå till punkt 3.
6. Klart
Skriv svar