2009. március 29., vasárnap

A GPS Nyelv: NME0183

A helymeghatározás napjainkban már nem csupán az autóvezetők kiváltsága, a műszerfalakon világító navigációs rendszerek mellett egyre-másra jelennek meg a műholdas és egyéb módszereket kihasználó alkalmazások. Ezek egy része ma még gyerekcipőben jár, azonban a közeli jövőben a mobiltelefonhoz hasonlóan mindennapjaink részévé válhatnak.
Tehát nem lehet tovább halogatni, meg kell tanulni ezt a technikát, nincs mese. Írjunk hát navigációs programot. Ez a kitűzött cél, de mi kell hozzá?
  1. GPS vevő, külső vagy telcsibe szerelt
  2. .NET + C# (az ütős kombináció)
  3. Soros port ismeretek
  4. A GPS nyelvének értelmezése
  5. Koordinátarendszerek (EOV)
GPS vevő vagy van, vagy nincs. Erről ennyit. Fejlesztői környezet kialakításáról egy másik bejegyzésben szólok pár gondolatot. A soros porttal való ismerkedésünket még kicsit toljuk el. A GPS nyelve? Hmm? Mi is ez?!
Az NMEA 0183 egy nemzetközi hajózási elektronikai szabvány, melyet az NMEA (National Marine Electronics Association) nevű nonprofit szervezet ad ki, és gondoz. Eredetileg különféle hajónavigációs eszközök (LORAN, radarok, OMEGA stb.) közötti kommunikációra kialakított szabvány, amelyet kibővítettek GPS-specifikus formátummal is. Napjainkra a GPS-vevőkből kommunikációs porton keresztül nyert információk leggyakrabban használt formája. Kedvelt, hiszen könnyen értelmezhető, rövid, szabadon sorrendezhető és összeállítható ASCII üzenetcsomagokról van szó.
Minden küldött mondat $ karakterrel kezdődik, amelyet a küldő azonosítója követ, pl.: a GPS-t a GP karakterpár fog azonosítani, a hajónavigációs rendszert pedig az II azonosító jelöl.
Az NMEA 0183 szabvány szerint nagyon sok ún. "GPS adatmondat", parancs, lekérdezés létezik, a legáltalánosabb, a Globalsat összes GPS eszköze által használt parancsok jelentése a következő:
  • GGA - Pozíció adat hibaértékkel, magasságadatokkal
  • GSA - Aktív műholdak
  • GSV - Látható műholdak
  • RMC - Pozíció és UTC adatok
  • GLL - Csak Pozíció adat (hosszúsági és szélességi)
  • VTG - útirány és sebesség adatok
Az azonosító ismeretében tudható, hogy a következő (vesszőkkel elválasztott, azaz CSV formátumú) adatok éppen koordinátát, sebességet vagy valami mást jelentenek. A mondatok végén egy ellenőrzőösszeg és egy soremelés vagy sortörés karakter található.
Bővebben: http://www.nmea.org
Egyelőre ennyi elegendő kezdésnek. A későbbiekben megpróbáljuk majd kinyerni a GPS mondatokat a hardverből és értelmezni azokat. Folytatás következik.