GPSInt - Microsoft GPS Intermediate Driver Interface

taximania

Well-Known Member
Licensed User
Longtime User
Sorry :sign0148:

I'm giving up on this one, I cant get a working dll.

'GpsGate' and 'Port Splitter' both work.

My RawIR.dll also works, but you need to buy a Franson licence,
just like you would for GpsGate :(

I'm sat in the house with a full GPS signal,
and my Basic4ppc GPS app running via 'Port Splitter'.


So I suggest using 'Port Splitter'.
Link to port splitter.

If your connection port via the 'Input' dropdown menu doesn't show,
enter your own port via the SIP. eg, COM4



;)
 
Last edited:

wolfgang

Member
Licensed User
Longtime User
Tested on HTC 3650

Hi hsandy,
I tested your dll on a HTC 3650 Cruise WM6.0 Pro and it works. Sometimes the app has to be started twice and the speed won't be updated. One problem is, when I close the app the GPS device is still on (LED flashes). In standby modus the GPS is off but after wakeup the system GPS on again. I have to do a softreset to turn GPS off!?
 

derez

Expert
Licensed User
Longtime User
Questions

Hi hsandy
I tried again and this time it works (I have a MIO 350) - I can use the soft port.
It also runs faster :sign0060:

Some questions:
1. if the lat is south - will it be negative ?
2. same for longitude which is west.
3. If not - then I need the N/S and E/W methods as well.
4. is it possible to supply the streams as recieved from the gps ? I use it to show the position of the sattelites.

Thank a lot, nice work ! :sign0188:
 

derez

Expert
Licensed User
Longtime User
Another question

running the program on a device (HTC) with WM6 I get the following error.
What is missing ?
 

agraham

Expert
Licensed User
Longtime User
What is missing ?
Probably this http://www.b4x.com/forum/questions-help-needed/870-error-messages-device.html You are getting a secondary error because the cause of the primary error can't be displayed.

I'd give up on this library for the time being :(. It, or more probably Microsoft.Win....on.dll, is causing termination problems for me. Erel and I are playing with it as Erel intends to create a new GPS library using the API that this library exposes. So rather than struggle with the dll someone else compiled, or trying to tinker with the dll source myself, I'm waiting for Erel to come up with something. I'd rather spend time playing with something that will form the base for the official library rather than spend time playing with something that will be thrown away.
 

derez

Expert
Licensed User
Longtime User
Waiting...

I agree with your logic and wait patiently for the coming (soon...) library.

Thanks for your continuous support :sign0188:
 

derez

Expert
Licensed User
Longtime User
GPSint - in the meantime

Can anybody with HTC please check the attached small program and tell me if it runs and shows GPS data ?

It is written to run on both QVGA and VGA using the old way, before the new compiler (because compiling with it cause the above error...:()

Thanks
 

Attachments

  • gpsint_check.zip
    26.8 KB · Views: 15

taximania

Well-Known Member
Licensed User
Longtime User
#1: I get STATUS 'true' and SATS '7'

Thats after being stood outside for a few minutes,
then coming back in the house.

It's currently 'true' with '6' SATS, that's indoors :)

O2 XDA Orbit with WM6.1 ROM installed.
My own GPS apps don't work :confused:

@#1: 'That', is using the compiled app from your zip.
The SBP file in the zip file won't run on my machine.
Crashes big time :sign0148:
 

derez

Expert
Licensed User
Longtime User
Thanks Taximania

Have you compiled the "device exe " or the "forced QVGA" ? the second does not work, the first should.
Anyway - good news.
 

derez

Expert
Licensed User
Longtime User
GPS cycle time

Erel
In the attached program you can see the difference in cycle time between the hardware port (using GPS.dll) and the soft port (using GPSint.dll).

I noticed it in my navigation program but thought its because of the load of activities, but then its the same in this simple program.

The hardport gps is refreshed every 3-4 seconds, mostly 4 !
The soft - every second, as expected.

I'm sure it was not like that in the older versions of B4PPC (I checked only in 6.30 and its the same there).

I checked it on two mio 350 devices, so it is not a specific device problem.

I wonder if on other machines it appears the same.

Any explanation ? :confused:

edit: use only normal compilation, not forced vga

edit2: I succeeded in testing an old version from 9/2007 - it is still 4 seconds, maybe it was like that all the time...
 
Last edited:

Frank

Member
Licensed User
Longtime User
Re: GPSint - in the meantime

I tested it on a German O2 XDA Orbit (HTC Artemis) with Windows Mobile 6 (or 6.1? How do I see that?).

Works fine: it shows "Status=true" with 6 or 7 satellites.

Frank
 

Erel

B4X founder
Staff member
Licensed User
Longtime User
On devices that use the GPS driver all hardware operations are emulated by the driver. Only the driver really access the hardware GPS. Therefore the behavior of this virtual port may not be perfect.
I'm currently working on an official library that will allow using the GPS driver.

Erel
In the attached program you can see the difference in cycle time between the hardware port (using GPS.dll) and the soft port (using GPSint.dll).

I noticed it in my navigation program but thought its because of the load of activities, but then its the same in this simple program.

The hardport gps is refreshed every 3-4 seconds, mostly 4 !
The soft - every second, as expected.

I'm sure it was not like that in the older versions of B4PPC (I checked only in 6.30 and its the same there).

I checked it on two mio 350 devices, so it is not a specific device problem.

I wonder if on other machines it appears the same.

Any explanation ? :confused:

edit: use only normal compilation, not forced vga

edit2: I succeeded in testing an old version from 9/2007 - it is still 4 seconds, maybe it was like that all the time...
 

wolfgang

Member
Licensed User
Longtime User
Re: GPSint

Hi,
tested on HTC 3650 Cruise WM6.0 Pro. Works fine.
 

taximania

Well-Known Member
Licensed User
Longtime User
Thanks Taximania

Have you compiled the "device exe " or the "forced QVGA" ? the second does not work, the first should.
Anyway - good news.

If I 'optimize compile' for device on the desktop, it works on the device.
Compiling for forced QVGA throws lots of errors on my device, as expected.
 

agraham

Expert
Licensed User
Longtime User
Before you guys expend too much effort playing with this stuff here is a taster of something like the forthcoming GPS library with a demo app that I have just knocked up. It runs fine in forced QVGA mode on my HTC Diamond :)

Note that this is NOT a beta of the forthcoming offical library, that is up to Erel, but I wouldn't be surprised if it turned out a bit like this ;)
 

wolfgang

Member
Licensed User
Longtime User
@ agraham,
tested on HTC 3650 Cruise WM6.0 Pro. Works fine, only altitude is always 0. VDOP was good. Nice thing, I'm still waiting.
BTW: FastRotation works fine. Thank you.
 

wolfgang

Member
Licensed User
Longtime User
I assume you mean "WGS84 altitude" which does return a value on my Diamond. Either you only have a 2D fix ("Fix: Type 1") or your device doesn't implement altitude.
Tested the second time: Fix: Type 2. But that's not so important, it's only a demo. The altitude is not a feature of a device it is part of the NMEA sentence GPGGA and should be displayed on all devices.
Please note that not all GPS chipsets deliver the same elevation. Some deliver MSN (main sea level) and others the altitude above WGS84 ellipsoid. The difference in my region is about 48m. That’s very oft the reason for people thinking GPS elevation is not very accurate.
Sometimes it is not easy to explain things in another language and it sounds a little bit vain. I hope you can understand my English. These are only friendly hints.
 

agraham

Expert
Licensed User
Longtime User
The altitude is not a feature of a device it is part of the NMEA sentence GPGGA and should be displayed on all devices.
That may be so but the the Windows Intermediate Driver (WIA) is returning zero for the Ellipsoid altitude on your device whereas on my device it does return that altititude. If the driver doesn't return that data there is nothing more that can be done. Sealevel altitude is also available from the WIA as is magnetic variation. Both are also part of the NMEA specification but both are zero on my device which is why I chose to display the Ellipsoid altitude.

EDIT:- On that demo the constellation is inverted as I got a sign wrong :(
 
Last edited:
Top