Click here to get back home

Work with internal GPS on HTC Kaiser without GPS Intermediate Driver

 HomeNewsGroups | Search | About
 microsoft.public.smartphone.developer    Post an article   get this group's latest topics as an RSS feed add this group's latest topics to your My MSN content add this group's latest topics to your My Yahoo content
Subject Author Date
Work with internal GPS on HTC Kaiser without GPS Intermediate Driver rootlexa 05-30-2008
Get Chitika Premium
Posted by rootlexa on May 30, 2008, 10:42 am
Please log in for more thread options
Hi all

Im looking for a way to work with internal GPS receiver (Qualcomm) of
HTC Kaiser device (AT&T Tilt).

Normally, the GPS Intermediate Driver gets location from it when its
GPS Hardware Port setting is set to 'No Port', so it is enough to
connect to GPS ID Multiplexer COM port.

But what I'm trying to achieve is to get location data directly from
GPS device bypassing the GPS ID. As I understood the driver of this
internal GPS must implement POLL interface, but I cant find anything
in HKEY_LOCAL_MACHINE\Drivers\Active or HKEY_LOCAL_MACHINE\Drivers
\BuiltIn registry keys, neigher a regular COM port or POLL interface
for the internal GPS receiver.

Looking for any kind of help on this question.

Thanks

Posted by John Spaith [MS] on May 30, 2008, 3:33 pm
Please log in for more thread options
My first question is why you'd want to bypass GPSID in the first place? I'd
like to help make it workable if possible and also understand for future
versions of the product so we could it up.

You may not be able to access the underlying GPS poll driver directly in any
event and even if you can you probably don't want to.

I've advised OEMs that have consulted with me to mark the driver so that
only trusted applications can access it, in order to make the security
attack surface of the device a little smaller. Also be aware that the poll
drivers may be hard-coded to only know how to deal with one application at a
time, so that even if your app can get at it, there is the chance that it
would block GPSID and other apps from consuming it. (If you're on a
targeted device that's OK obviously, but for general purpose code running
"in the wild" it's a problem.) Finally, different OEMs may have different
poll drivers or even the same OEM may change it slightly from ROM version to
version. They only designed themselves & tested to work with GPSID as a
caller.

--
John Spaith
Senior Software Design Engineer
Windows CE Networking
Microsoft Corporation

http://blogs.msdn.com/cenet/.

This posting is provided "AS IS" with no warranties, and confers no rights.
You assume all risk for your use. © 2007 Microsoft Corporation. All rights
reserved.

> Hi all
>
> Im looking for a way to work with internal GPS receiver (Qualcomm) of
> HTC Kaiser device (AT&T Tilt).
>
> Normally, the GPS Intermediate Driver gets location from it when its
> GPS Hardware Port setting is set to 'No Port', so it is enough to
> connect to GPS ID Multiplexer COM port.
>
> But what I'm trying to achieve is to get location data directly from
> GPS device bypassing the GPS ID. As I understood the driver of this
> internal GPS must implement POLL interface, but I cant find anything
> in HKEY_LOCAL_MACHINE\Drivers\Active or HKEY_LOCAL_MACHINE\Drivers
> \BuiltIn registry keys, neigher a regular COM port or POLL interface
> for the internal GPS receiver.
>
> Looking for any kind of help on this question.
>
> Thanks



Posted by sergej.galat on June 2, 2008, 11:06 am
Please log in for more thread options
wrote:
> My first question is why you'd want to bypass GPSID in the first place? I'd
> like to help make it workable if possible and also understand for future
> versions of the product so we could it up.

Let me describe our use case.

We are developing a hybrid positioning system (HPS) which would take 2
position sources (first is our internal position system and second is
GPS) as the input and 'mix' the data to produce a final position as a
single output for applications. Our goal is not to break the scheme of
how GPS Intermediate Driver and GPS API works with applications and
GPS devices. Instead, we want to keep the system consistent to be
compatible with all existing and future applications, and make
installation of our product transparent for applications and user.

When our application is installed, it registers itself with GPSID and
takes the Hardware Port setting from it to use as GPS source. In other
words HPS puts itself into the middle of the chain Application->GPSID-
>GPS so it becomes Application->GPSID->HPS->GPS .That way an LBS app
would connect to GPS ID port (multiplexed) and get hybrid location
data from our system.

However, we've run into a problem with the internal GPS chip on the
AT&T Tilt handheld, which I believe is common for internal GPS chips.
It seems that GPSID is the only public way to read from the internal
GPS, as the internal GPS itself doesn't provide a separate COM port.

>
> You may not be able to access the underlying GPS poll driver directly in any
> event and even if you can you probably don't want to.
>
> I've advised OEMs that have consulted with me to mark the driver so that
> only trusted applications can access it, in order to make the security
> attack surface of the device a little smaller. Also be aware that the poll
> drivers may be hard-coded to only know how to deal with one application at a
> time, so that even if your app can get at it, there is the chance that it
> would block GPSID and other apps from consuming it. (If you're on a
> targeted device that's OK obviously, but for general purpose code running
> "in the wild" it's a problem.)

That should be OK as HPS is going to be an exclusive listener to the
poll driver.
Applications would connect to GPSID and GPSID would connect to HPS.

> Finally, different OEMs may have different
> poll drivers or even the same OEM may change it slightly from ROM version to
> version.

Isn't it enough to rely on the documented poll interface
(IOCTL_GPS_DRIVER_GET_LOCATION_V1 and GPS_POSITION structure)?

> They only designed themselves & tested to work with GPSID as a
> caller.

We will have to make HPS have no difference with GPSID as a listener
then.

What we can't figure out is how GPSID gets a handle of the poll
driver. We can't find a registry entry, probably that means that the
poll driver is implemented as part of another driver.
I guess the should be a common way for GPSID to find the poll driver,
otherwise it makes GPSID specific for the OEM which doesn't sound
right for me.

Can you provide any help for us on this subject?

Thanks,
Sergey.

Posted by sergej.galat on June 2, 2008, 1:32 pm
Please log in for more thread options
Actually we have found the registry settings for the poll device on
which the GPSID relies, so it looks possible to implement our approach
w/o using any OEM specifics.

Similar ThreadsPosted
Help with GPS Intermediate Driver May 4, 2007, 12:15 pm
GPS intermediate driver April 23, 2008, 6:48 am
WM 5.0 GPS Intermediate Driver not working November 30, 2005, 5:35 am
GPS Intermediate Driver IOCTL_SERVICE_REFRESH July 14, 2006, 9:59 am
Internal GPS July 6, 2005, 8:56 am
Connect to internal GSM in Pocket PC September 29, 2006, 12:07 pm
Class: method or internal procedure ??? May 17, 2007, 11:43 am
ril driver July 8, 2005, 1:19 am
NDIS driver October 15, 2005, 2:50 pm
passthru driver February 3, 2006, 6:47 am

Our other projects:

Art Dolls, Fairies and Mermaids - Sunnyfaces.net

Roy's Linux, Programming and Search Engines messages

1-Script XML SitemapXML Sitemap