» »

GPS - branje pozicije

GPS - branje pozicije

boss-tech ::

GPS mi preko porta pošilja te podatke:

$GPRMC,140955.00,A,4610.15277,N,01504.99284,E,1.462,126.57,261208,,,A*60
$GPVTG,126.57,T,,M,1.462,N,2.710,K,A*3F
$GPGGA,140955.00,4610.15277,N,01504.99284,E,1,03,3.16,429.5,M,43.7,M,,*56
$GPGSA,A,2,19,03,32,,,,,,,,,,3.31,3.16,1.00*0D
$GPGSV,3,1,11,19,78,229,34,03,47,169,17,32,28,221,33,22,43,056,*74
$GPGSV,3,2,11,20,04,230,,28,12,325,,06,38,158,,06,38,158,*72
$GPGSV,3,3,11,14,39,114,,11,33,288,,18,10,051,*4C
$GPGLL,4610.15277,N,01504.99284,E,140955.00,A,A*6E
$GPZDA,140955.00,26,12,2008,00,00*67


1. Zanima me kaj katera stvar pomeni in kje dobim ven pozicijo?
2. Kako bi najlažje sprogramiral, da bi preko trenutne pozicije izračunal hitrost? Tako kot jo imajo gps programi

joze67 ::

boss-tech ::

Fino. To sem iskal... zanima me še samo, kako bi sedaj recimo najlažje izračunal potovalno hitrost?

fiction ::

$GPRMC,140955.00,A,4610.15277,N,01504.99284,E,1.462,126.57,261208,,,A*60
$GPVTG,126.57,T,,M,1.462,N,2.710,K,A*3F

Si prebral tisto o NMEA?
Trenutna potovalna hitrost po povrsju zemlje je 1.462 vozla ali 2.710 km/h. GPS sprejemnik to nacara kolikor vem s pomocjo Dopplerjevega pojava. Podatek je precej natancen. Lahko pa uporabis tudi enostavno hitrost = sprememba poti / sprememba casa. Izracunas razdaljo med koordinatama dveh tock (npr. s pomocjo Haversine formule), razliko v casu, oboje skupaj delis pa imas hitrost. Seveda ni nujno, da to uporabis na dveh sosednjih tockah, lahko vzames prvo in zadnjo tocko potovanja pa imas povprecno hitrost.

_Dejan_ ::

Tudi sam sem se prišel ukvarjati z GPS programom in me zanima ima kdo kakšno kodo za C# ki vsebuje komunikacijo z Serijskim portom in dekodiranje NMEA GPS stringe(latitude, longitude, direction, speed, altitude)?
Hvala.

Lp, _Dejan_
ASUS P5E3, INTEL Q6600(3000Mhz 333x9), ATI HD 2600XT,
A-Data 4x2GB PC3-10700H(9-9-9-24-2T),LSI 9260-8i,
4x OCZ Vertex Turbo 30GB(RAID10), 3x1TB (RAID1+Spare)

darkolord ::

Jaz mam, bom poiskal tekom dneva

_Dejan_ ::

Super hvala ti.
ASUS P5E3, INTEL Q6600(3000Mhz 333x9), ATI HD 2600XT,
A-Data 4x2GB PC3-10700H(9-9-9-24-2T),LSI 9260-8i,
4x OCZ Vertex Turbo 30GB(RAID10), 3x1TB (RAID1+Spare)

_Dejan_ ::

Bolj kot samo dekodiranje me zanima del ki komunicira z serijskim portom...
Sedaj imam tako:
protected void ReadSerialPortTimer_Tick(object sender, EventArgs e)
        {
            try
            {
                ReadSerialPortTimer.Stop();
                if (GPSPort.IsOpen)
                {
                    string data = GPSPort.ReadExisting();
                    string[] strArr = data.Split('$');
                    for (int i = 0; i < strArr.Length; i++)
                    {
                        Initialize(strArr[i]);
                    }
                }
                else
                {
                    OpenSerialPort();
                }
            }
            catch (Exception errmsg) { WriteLog(errmsg.ToString()); }
            finally
            {
                ReadSerialPortTimer.Start();
            }
        }

Vendar se dostikrat zgodi da strArr[i] ni cel niz kot bi moral biti ampak samo določen del... Kako to rešiti? Initialize() je metoda ki cel string npr:
GPGSV,3,1,12,20,00,000,,10,00,000,,31,00,000,,27,00,000,*7C
dekodira in iz njega izlušči potrebne podatke... timer ima interval 1000ms vendar ga bom v prihodnosti znižal na 200ms(5Hz GPS).

Nihče ne zna pomagati?
ASUS P5E3, INTEL Q6600(3000Mhz 333x9), ATI HD 2600XT,
A-Data 4x2GB PC3-10700H(9-9-9-24-2T),LSI 9260-8i,
4x OCZ Vertex Turbo 30GB(RAID10), 3x1TB (RAID1+Spare)

Zgodovina sprememb…

  • spremenil: _Dejan_ ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

GPS modul NEO-6M GPS in Arduino Nano

Oddelek: Elektrotehnika in elektronika
7785 (728) llc
»

C#, OBD2 in branje iz porta

Oddelek: Programiranje
191577 (1194) detroit
»

Kako na linuxu (Raspberry PI) prepričati NTP, da bo uporabil podatke iz GPS-a

Oddelek: Operacijski sistemi
202729 (2090) misek
»

[C++] Naloge

Oddelek: Programiranje
274035 (2366) LordiBoy
»

[VB] Komunikacija s serijskimi napravami

Oddelek: Programiranje
412299 (1573) mNeRo

Več podobnih tem