INFO - FAQ - CC2-Forum - CCPro-Forum |
|
> > Hallo zusammen! > > hab gelesen ihr seid Spezialisten auf c-control und Gps! > ich bin Anfänger auf der C-Control .Ich möchte aus einem Garmin GPS Gerät die NMEA daten > auswerten . Die Daten werden ein mal pro sec mit 4800 Bd ausgegeben --ich möchte eine > Kursänderung von einem Grad auswerten und am Digitalport einen pin für + Abweichung > bzw einen pin für-Abweichung setzen.Ich bin ein Neuling bei der Programmierung meiner > C-Control 1 Mainunit. > BITTE kann mir jemand mit einem Beispielprogrämmchen weiterhelfen,wie man aus einem > NMEA Datenstring eine bestimmte Stelle herrausliest? So sieht es bei mir aus (nur die entsprechende Funktion in Basic++): ' ------------------------------------- GetGPSData ----------------------------------------------------------- function GPS_Auswertung() #GPGGA get zeichen if zeichen <> 71 then goto GPGGA ' G get zeichen if zeichen <> 80 then goto GPGGA ' P get zeichen if zeichen <> 71 then goto GPGGA ' G get zeichen if zeichen <> 71 then goto GPGGA ' G get zeichen if zeichen <> 65 then goto GPGGA ' A GPGGA empfangen for i = 1 to 8 ' ,hhmmss, entfernen get zeichen next i get bgggzehner ' 8 x entfernen + bggg get bggg get bgminzehner ' bgmin get bgmin get zeichen ' entfernen get bgsek1000er ' bgsek get bgsek100er get bgsekzehner get bgsekeiner for i = 1 to 3 ' ",N,"entfernen get zeichen next i get lggg100er get lgggzehner get lggg get lgminzehner ' lgmin get lgmin get zeichen ' . entfernen get lgsek1000er ' lgsek get lgsek100er get lgsekzehner get lgsekeiner for i = 1 to 5 get zeichen next i get satzehner ' Satelitenanzahl get satanzahl for i = 1 to 7 get zeichen next i get isthoehe10000er get isthoehe1000er get isthoehe100er get isthoehezehner get zeichen ' . entfernen get isthoeheeiner #GPVTG get zeichen if zeichen <> 71 then goto GPVTG ' G get zeichen if zeichen <> 80 then goto GPVTG ' P get zeichen if zeichen <> 86 then goto GPVTG ' V get zeichen if zeichen <> 84 then goto GPVTG ' T get zeichen if zeichen <> 71 then goto GPVTG ' G GPVTG empfangen get zeichen ' Komma entfernen get istkurs1000er get istkurs100er get istkurszehner get zeichen ' Punkt entfernen get istkurseiner for i = 1 to 14 ' 14 Zeichen entfernen get zeichen next i get speed100er get speedzehner get speed bggg = (bggg-48) +(10*(bgggzehner-48)) bgmin = (bgmin-48)+(10*(bgminzehner-48)) bgsek = (bgsekeiner-48)+(1000*(bgsek1000er-48))+(100*(bgsek100er-48))+(10*(bgsekzehner-48)) lggg = (lggg-48)+(100*(lggg100er-48))+(10*(lgggzehner-48)) lgmin = (lgmin-48)+(10*(lgminzehner-48)) lgsek = (lgsekeiner-48)+(1000*(lgsek1000er-48))+(100*(lgsek100er-48))+(10*(lgsekzehner-48)) GPSHoehe = (isthoeheeiner-48)+(10000*(isthoehe10000er-48))+(1000*(isthoehe1000er-48))+(100*(isthoehe100er-48))+(10*(isthoehezehner-48)) IstKurs = (istkurseiner-48)+(1000*(istkurs1000er-48))+(100*(istkurs100er-48))+(10*(istkurszehner-48)) speed = (speed-48)+(100*(speed100er-48))+(10*(speedzehner-48)) SatAnzahl = (10*(satzehner-48)+(satanzahl-48)) end function |
Antwort schreiben |