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.
Quote:
Originally Posted by derez
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 ?
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...
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
@ 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.
__________________
Thanks for all
wolfgang
___________________
Desktop: Dual Core 3.0 GHz, Win7
Device: IPAQ 3970 WM 2003, Asus 632N WM5, HTC 3650 Cruise
GPS: iblue 747
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.
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.
__________________
Thanks for all
wolfgang
___________________
Desktop: Dual Core 3.0 GHz, Win7
Device: IPAQ 3970 WM 2003, Asus 632N WM5, HTC 3650 Cruise
GPS: iblue 747
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