Felsökning av kommunikation mellan DLS och GPS mottagare. 1. Anslut GPS mottagaren till datorn med en kommunikationskabel. Starta sedan både GPS och datorn. En förutsättning för att kunna presentera positionen i DLS är givetvis att tillräckligt med satellitsignaler kan tas emot, oftast kan det räcka med att lägga GPS:en i ett fönster för att få in tillräckligt antal satelliter. Kommunikationen som sådan kan testas även utan satellitkontakt, alltså även inomhus. 2. Slå till utmatning av NMEA meddelanden. 2.1. Vad är NMEA? NMEA är en förkortning av National Marine Electronics Association som tagit fram ett antal standarder för kommunikation där NMEA 0183 är en av dessa. NMEA 0183 finns i flera olika revisioner men för de meddelanden som är aktuella för DLS skiljer det ingenting mellan revision 2.0 och 3.0 utan båda varianterna skall fungera. 2.2. Vilka meddelanden behövs? Från DLS Hjälptext: Om din GPS-mottagare kan ställas in för att sända flera varianter av NMEA, ska du vara uppmärksam på att Det Levande Sjökortet använder NMEA-kommandona GLL, RMC och GGA för positionering, och alla andra kommandon blir ignorerade. GLL, GGA och RMC är tre olika format för överföring av position från din GPS. Det enklaste av dessa är GLL som enbart innehåller position och tid. GGA meddelandet innehåller förutom position mer information om antal använda sateliter, höjd och information om använda differentiella korrektioner mm (om man använder DGPS). RMC är ytterligare ett format som förutom position innehåller bland annat fart och kurs över grund. Endast ett av dessa är nödvändigt för att kunna presentera din position i sjökortsbilden men inget hindrar att utmatning för samtliga är tillslagen. RMC meddelandet behövs dock för att man ska erhålla fart och kursinformation i DLS.
3. Inställningar för överföringen 3.1. NMEA 0183 2.0 standarden kräver följande inställningar på GPSmottagaren: Bitar per sekund / Baud rate: 4800 Databitar / Data bits: 8 Stopbitar / Stop bits: 1 Paritet / Parity: None Om din GPS skall kunna skicka NMEA meddelanden men du inte kan kontrollera inställningarna för porthastighet mm. så bör ovanstående vara inställt som default i mottagaren. 3.2. Test av överföringen Starta hyperterminalen i Windows XP. Detta görs under Program Tillbehör Kommunikation Hyperterminal Ange ett namn för anslutningen i den ruta som kommer upp till exempel Min GPS Om du har ett modem anslutet eller inbyggt i din dator måste du välja alternativet Direkt kabelanslutning då programmet annars vill ringa upp och ansluta. Välj den port som du anslutit din GPS till, normalt COM 1 om du använder en inbyggd serieport. Om du ansluter via USB kabel (i en dator som har en inbyggd serieport) bör du ha ett annat COM nummer valbart i listan. Om datorn har ett inbyggt modem brukar det normalt vara tilldelat som COM 3. Om du använder USB anslutning och helt saknar en valbar port eller annan port än COM1/(3) (om datorn har intern serieport) så övergå till att felsöka på USB inställningarna innan du fortsätter. Se Felsökning av USB enhet
På nästa dialogruta som kommer upp, ställ in kommunikationen till att bli enligt nedan. Efter att OK knappen tryckts in skall det börja komma data in i terminalfönstret varje sekund. 3.3. Ser meddelandena ok ut? Då bör dom se ut ungefär som nedan. $GPGLL,5922.1340,N,01331.5188,E,122935,A*2A $GPGGA,122935,5922.1340,N,01331.5188,E,1,8,0.9,5,M,35,M,,*70 $GPVTG,155.2,T,153.2,M,7.2,N,13.2,K*7D $GPZDA,122935,13,09,2006,0,0*49 $GPRMC,122935,A,5922.1340,N,01331.5188,E,7.2,155.2,130906,2,E*61 $GPGLL,5922.1322,N,01331.5205,E,122936,A*2B $GPGGA,122936,5922.1322,N,01331.5205,E,1,8,0.9,5,M,35,M,,*71 $GPVTG,155.5,T,153.5,M,7.2,N,13.2,K*7D $GPZDA,122936,13,09,2006,0,0*4A $GPRMC,122936,A,5922.1322,N,01331.5205,E,7.2,155.5,130906,2,E*67 $GPGLL,5922.1304,N,01331.5221,E,122937,A*28 $GPGGA,122937,5922.1304,N,01331.5221,E,1,8,0.9,5,M,35,M,,*72 $GPVTG,155.6,T,153.6,M,7.2,N,13.2,K*7D $GPZDA,122937,13,09,2006,0,0*4B $GPRMC,122937,A,5922.1304,N,01331.5221,E,7.2,155.6,130906,2,E*67 $GPGLL,5922.1286,N,01331.5237,E,122938,A*2B $GPGGA,122938,5922.1286,N,01331.5237,E,1,8,0.9,5,M,35,M,,*71
$GPVTG,155.9,T,153.9,M,7.2,N,13.2,K*7D $GPZDA,122938,13,09,2006,0,0*44 $GPRMC,122938,A,5922.1286,N,01331.5237,E,7.2,155.9,130906,2,E*6B $GPGLL,5922.1268,N,01331.5253,E,122939,A*28 $GPGGA,122939,5922.1268,N,01331.5253,E,1,8,0.9,5,M,35,M,,*72 $GPVTG,156.1,T,154.1,M,7.2,N,13.2,K*79 $GPZDA,122939,13,09,2006,0,0*45 $GPRMC,122939,A,5922.1268,N,01331.5253,E,7.2,156.1,130906,2,E*63 Den sträng som här ovan börjar med $GPZDA, är en sträng för tidssynkronisering som DLS helt bortser från. Likaså $GPVTG, som är en sträng (Vector Track over Ground) som ger fart och kursinformation. DLS använder här istället den informationen ifrån $GPRMC, meddelandet. 3.4. Kommer det bara skräptecken? Om det som kommer in bara ser ut som en blandning av en massa konstiga tecken så beror det troligen på att överföringshastigheten i GPS inte stämmer överens med inställningarna i hyperterminalen. Kontrollera då inställningarna i din GPS på nytt eller försök att ändra hastigheten i hyperterminalen för att kontrollera vilken hastighet din GPS sänder data med. För att det skall fungera in till DLS måste hastigheten från GPS alltid vara 4800 Baud. 3.5. Kommer inga tecken alls in i din display? Det kan bero på fler saker. Du har valt en annan port (COM) än vad din GPS är ansluten på. Prova med ett annat portnummer om du har flera att välja mellan. Utmatningen har inte blivit aktiverad i din GPS. Försök att aktivera den på nytt. Kabelfel mellan GPS och dator. Undersök kabeln efter klämskador och liknande och kontrollera att den är ordentligt isatt i båda ändarna.
3.6. Kommer datat in läsbart men meddelandena är sönderskrivna eller är ofullständiga? Om datat kommer in och ser ut som i exemplet nedan $GPGLL,,,,,1 $GPGGA,19 $GPGGA,193359,,,,,0,00,,,M,,M,,*622,*5C $GPGGA,193143,,,,,0,00,,,M,,M,,*6B10,00,,,,,,,,*72 $GPGGA,193301,,,,,0,00,,,M,,M,,*6F $GPGLL,,,,,19314 $GPGGA,193145,,,,,0,00,, $GPGLL,,,,,193302,*5A,063,00*78*7E $GPGGA,193147,,,,,0,00,,,M,,M, $GPGLL,,,,,193304,*5C,,,,,*1E64,058,31,05, Här kommer lite om hur man kan tolka informationen ovan: De mycket få "oskadda" meddelandena som kommer in här innehåller ingen position som skall finnas i tredje och fjärde fältet i GGA meddelandet. $GPGGA,193255,,,,,0,00,,,M,,M,,*6F $GPGGA,193301,,,,,0,00,,,M,,M,,*6F *6F (det som står efter * kan variera) som står på slutet är en checksumma som enligt standarden är frivillig att skicka ut. Den har funnits med sedan NMEA standarden var ny och skall inte orsaka några problem men den får bara förekomma i slutet på ett meddelande och inte som nedan: $GPGLL,,,,,193302,*5A,063,00*78*7E * förekommer alltså endast som tredje tecken i slutet på varje meddelande! Denna rad är alltså ett hopkok av minst tre olika meddelanden. GGA, GLL och RMC skall om utmatning av samtliga är tillslagen alltid komma i grupp med samma tidstämpel i datat. Meddelanderaden inleds alltid med ett dollartecken och en identifierare Standarden säger också att det skall skickas radslut (Carriage Return) + (Linefeed) så alla $xxgga (xx är normalt GP för Global Positioning men kan vara ett företagsindex) skall börja på en ny rad när man läser det i Hyperterminalen. Antalet kommatecken (separatorer) skall alltid vara konstant i ett meddelande däremot kräver standarden inte att alla fält skall vara fyllda utan det kan variera mellan olika leverantörers mottagare. De fält som inte fylls exempelvis när position saknas representeras alltså bara av kommatecken. Decimaler i meddelandet separeras med punkt.
Slutsatser: Då GLL och GGA meddelandena (de ostörda) inte innehåller mer än tidstämpel och checksumma så lämnar inte mottagaren någon position. Meddelandena skrivs sönder och GLL samt GGA meddelandena kommer inte parvis (får vara andra meddelanden mellan men skall alltid ha samma tidsstämpel) tyder på att PC:n inte tar emot de sända meddelandena korrekt. Förslag: Avsaknad av position i meddelandena: Se till att mottagarens antenn sitter fritt utomhus så tillräckligt antal satelliter kan erhållas för att säkert få in en position. Låt mottagaren vara tillslagen under en längre tid så den säkert kan ladda ner satellitalmanackan. Detta kan ta upp till en halvtimme om mottagaren aldrig har haft satellitkontakt eller om det är flera månader sedan den användes senast. En del mer avancerade mottagare kan ha gränsvärden för positionskvaliteten satta. De som normalt används heter PDOP (Position Dillution Of Precission) och räknar på det sammanvägda horisontella och vertikala felet i position. HDOP (Horisontal Dillution Of Precission) räknar enbart på det horisontella felet. Om satta gränsvärden (ibland larmgränser) för dessa parametrar överskrids så upphör en del GPS mottagare att sända ut positionen till extern utrustning. Prova att öka eller ta bort satta gränsvärden. Jag känner till minst ett fall där WAAS-korrektion var tillslaget i en GPS av "Puck-typ" som slutade skicka position ett par sekunder efter att den fick en positionslösning mot sateliterna. I det fallet hjälpte det att slå av användningen av WAAS korrektionen med hjälp av den medföljande programvaran.
Sönderskrivna meddelanden: En del GPS system har möjlighet att skicka en hel mängd olika meddelanden men med en överföring på 4800 Baud klarar man inte hur många meddelanden som helst om en position skickas en gång per sekund. Om möjligt slå av utmatning av alla meddelanden som inte behövs av DLS och eventuell övrig utrustning. Detta skulle kunna lösa problemet med de sönderskrivna meddelandena om problemet ligger i att överföringshastigheten är för låg så att inte alla meddelanden som din GPS vill skicka till datorn hinns med att tas emot och tolkas. Om GGA används behövs inte GLL meddelandet heller då båda innehåller positionen. Se till att hyperterminalen står inställd på "Flödesreglering = INGEN" då GPS inte bryr sig om ifall PC:n vill stoppa utmatningen.