'**************************************************************** '* Name : GPS.BAS * '* Author : Steve Turner * '* Notice : Copyright (c) 2002 Use as you please. * '* : All Rights Reserved * '* Date : 6/22/02 * '* Version : 1.1 * '* Notes : Program to extract useful information from the * '* : $GPRMC sentence of a GPS * '**************************************************************** warn var byte 'receiver warning - A = ok, V = warning deglat var byte 'degrees of lattitude dd minlat var byte 'minutes of lattitude mm fracminlat var word '.mmmm nslat var byte 'North or South lattitude deglon var byte 'degrees of longitude dd minlon var byte 'minutes of longitude mm fracminlon var word '.mmmm welon var byte 'West or East longitude knotgndspd var byte 'Groundspeed in Knots read from GPS groundspeed var word 'in MPH heading var word 'In true degrees magvar var byte 'Magnetic Variation magdir var byte 'Direction of Magnetic Variation sats var byte 'Number of Satilites in use calalt var word 'Altitude MSL in feet after conversion metalt var word 'Altitude in meters from GPS ReadGPS: SERIN2 PORTD.6,188,3000,NoData,[WAIT("$GPRMC,"),skip 7,warn,skip 1,_ dec2 deglat,dec2 minlat,skip 1,dec4 fracminlat,skip 1,nslat,skip 1,_ dec3 deglon,dec2 minlon,skip 1,dec4 fracminlon,skip 1,_ welon,dec knotgndspd,skip 2,dec heading,skip 9,dec1 magvar,skip 3,magdir] SERIN2 PORTD.6,188,2000,NoData,[WAIT("$GPGGA,"),skip 33,dec sats,_ skip 4,dec metalt] 'Unit Conversions 'Altitude in Meters to Feet metalt = metalt * 33 calalt = DIV32 10 'Groundspeed in Knots to MPH knotgndspd = knotgndspd * 115 groundspeed = DIV32 100 Goto Send NoData: 'Make the Navigation Warnig variable V warn = "V" SEROUT2 PORTD.7,188,[warn,10,13] goto ReadGPS Send: SEROUT2 PORTD.7,188,[warn,",",dec2 sats,",",dec2 deglat,",",dec2 minlat,".",_ dec4 fracminlat,",",nslat,",",dec3 deglon,",",dec2 minlon,".",_ dec4 fracminlon,",",welon,",",dec5 calalt,",",dec3 groundspeed,",",_ dec3 heading,",",dec1 magvar,",",magdir,10,13] Goto ReadGPS