The GPSDriver library does support external GPS devices. You need to first set the intermediate driver to use the external GPS serial port. On most devices you can set it under Settings - External GPS. You can also use the attached Settings programs.
That's good news as I've obviously totally misunderstood what the "External GPS Settings" do :signOops: and do you know what, I've re-read the help (what little there is!) and still don't really understand it.
There is no real difference between internal and external devices. The Settings program tells the GPS intermediate driver which port it should open to connect to the GPS.
Presumably there is something magic about the "none" setting on the External GPS Settings Hardware tab that actually connects the internal GPS to the Intermediate Driver - why can't it say something sensible like "internal"
Hi, tested the new GPSDriver on my HTC Cruise 3650 WM6.0 Pro and it works good. But when I try to compile the complete demo for my device an error occurs in line 45: Code: UTM() = converter.WGS84LatLonToUTM(gps.Latitude,gps.Longitude) The altitude results are strange too. The sea level altitude is exactly the ellipsoid altitude and the ellipsoid altitude is not displayed. I think this is because off not all GPS chipsets support calculation of MSL (MSL = ellipsoid altitude - geoids separation). The values of the geoids separation are normally stored in a database and this database is missing on some receivers. To make the confusion complete do not all receivers deliver the same NMEA 0183: Fortuna Clip - On $GPGGA,161650.417,4841.7902,N,01004.0220,E,2,05,2.0,578.5,M,48.0,M,2.0,0000*70 578.5 = ellipsoid altitude (MSL = 530.5) Data Logger i - 747 $GPGGA,080026.000,4841.7900,N,01004.0198,E,1,9,0.96,532,5,M,48.0,M,,*5E 532.5 = MSL The correct MSL is 532 m. The HTC delivers 584 m which is a "good" ellipsoid altitude. What can we do?
How did you declared UTM() ? The altitude values are parsed from the NMEA strings by the GPS intermediate drive so there is no more information than what you see.
It is exactly your demofile "GPSDriverDemo". I changed nothing. Code: Sub Globals Dim Type (xZone, X, yZone, Y) UTM As doubleEnd Sub
It compiles fine here. Please try to download the zip file again and copy GPSDriver.cs to Basic4ppc libraries folder.
Thank you for your answer. If that's the case then it doesn't work. I've actually set it to 1000 milliseconds but it will always return the last fetched data, regardless of its age. Let me try to give you an example. If you write a simple program that retrieves the GPS data every second or so, and you turn off your PPC, the next time you switch your PPC ON again, the first dataset retrieved will always be data from the time the PPC was switched off. I will test again to make sure, but that's what I see happening here.
Hi, ClarkVent was a little bit faster but I try to ask with my own words. In the gpsdemo the age is set to 6000 msec. The normal update rate of a receiver is 1 Hz. What happens with the other 5 or 6 updates? What is our result, only the last values or a floating average calculation? I know I should test it.
Altitude problems solved? Hi, the test on an Asus 632 N (WM5) was successful too. Both, MSL and “ellipsoid altitude” are displayed but the ellipsoid altitude is not an altitude it is the geoidal separation. In my case it is 48 m, our MSL is 532 m. That means there is no doubt (for me). I can imagine, that on a receiver with the availability of geoidal separation item 9 of $GPGGA is MSL and item 11 is the geoidal separation and without, item 9 is the ellipsoid altitude (my HTC Cruise). If there is no geoidal separation item 11 is “nothing” and that’s the reason for nothing is displayed.
That is exactly what I observe in the NMEA sentences on two of my GPS devices, one does geoidal separation the other doesn't.
Error on GPSDriverdemo.exe Hi, when the GPSDriverdemo.exe runs, sometimes i get the error message: error occurred on sub _satellites_updatesatellites NullReferenceException ????
GPSDriver on several devices Hello all together! I have tested the new GPSDriver on several devices: - Qtek S200 with external bluetooth GPS-Sirf III - Eten Glofiish X600 with internal Sirf III-GPS - HTC Touch Diamond with internal Qualcomm-GPS - VPA Compact GPS with internal Qualcomm-GPS It runs very fine with all devices...:sign0060: But now, I have copy the GPSSettings.exe on the VPA Compact GPS to set a 'Program Port'. After the start, GPSSettings shows the 'Hardware Port' as GPD1, no Program Port and 115200 Baud with 'Manage automaticaly'. After this time, my Basic4ppc-application can't get data from the GPS, I have tested several settings. The GPS is COM9 but the GPSSettings only shows the com-ports until 8. Then, I have deinstalled the GPSSettings, but the same problem. Under TomTom5 the GPS-Chip works fine. Is there a way to initialize or reset the GPS-chip to the first time? Thanks for answer and :sign0188: to the GPSDriverLib.....
GPSDriver doesn't need to know a Com port and doesn't use one. It calls the Windows GPS Intermediate driver directly which ought to know how to access the GPS. The Program port is only required for older programs that expect to find the GPS connected to a COM port like, I think, TomTom 5 and has no effect on GPSDriver. The Hardware port governs the source of the GPS data that the Intermediate Driver manages. Assuming that GPD1 is the correct source for the internal GPS have you tried various baudrate settings? I don't think that "manage automatically" means that it will auto-detect baudrates. EDIT:- I've just noticed that you said it worked on "VPA Compact GPS with internal Qualcomm-GPS" so now I don't understand the problem!