New GPSDriver library

Discussion in 'Official Updates' started by Erel, Nov 4, 2008.

  1. agraham

    agraham Expert Licensed User

    You will have to ask Erel that, it's not up to me! Anyway the code doesn't exist yet.
     
  2. Erel

    Erel Administrator Staff Member Licensed User

    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.
     

    Attached Files:

  3. agraham

    agraham Expert Licensed User

    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. :confused:
     
  4. Erel

    Erel Administrator Staff Member Licensed User

    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.
     
  5. agraham

    agraham Expert Licensed User

    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" :confused:
     
  6. wolfgang

    wolfgang Member Licensed User

    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?
     

    Attached Files:

  7. Erel

    Erel Administrator Staff Member Licensed User

    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.
     
  8. wolfgang

    wolfgang Member Licensed User

    It is exactly your demofile "GPSDriverDemo". I changed nothing.

    Code:
    Sub Globals
       
    Dim Type (xZone, X, yZone, Y) UTM As double
    End Sub
     
  9. Erel

    Erel Administrator Staff Member Licensed User

    It compiles fine here. Please try to download the zip file again and copy GPSDriver.cs to Basic4ppc libraries folder.
     
  10. ClarkVent

    ClarkVent Member Licensed User

    What's the use of the Age parameter in the GetGPSData method?
     
  11. wolfgang

    wolfgang Member Licensed User

    I did what you said and now it works!?
     
  12. agraham

    agraham Expert Licensed User

    From the MSDN docs.
     
  13. ClarkVent

    ClarkVent Member Licensed User

    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.
     
  14. wolfgang

    wolfgang Member Licensed User

    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.
     
  15. wolfgang

    wolfgang Member Licensed User

    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.
     
  16. agraham

    agraham Expert Licensed User

    That is exactly what I observe in the NMEA sentences on two of my GPS devices, one does geoidal separation the other doesn't.
     
  17. Georg

    Georg Member Licensed User

    Error on GPSDriverdemo.exe

    Hi,

    when the GPSDriverdemo.exe runs, sometimes i get the error message:

    error occurred on sub _satellites_updatesatellites
    NullReferenceException ???? :confused:
     
  18. Erel

    Erel Administrator Staff Member Licensed User

    Can you run the source code from the device IDE and see which line raises this error?
     
  19. schimanski

    schimanski Well-Known Member Licensed User

    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.....
     
  20. agraham

    agraham Expert Licensed User

    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!
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice