Welcome to MSDN Blogs Sign in | Join | Help

News

  • Constanze Kratel's Facebook profile Windows Embedded Developer Interest Group
GPS Intermediate Driver – One of your best friends

I do believe that more and more Windows Mobile Applications will become Location Aware. Prior to Windows Mobile 5.0 it took a lot of work to deal with either integrated or external GPS hardware on Windows Mobile Devices. Even though GPS data is usually received through a serial port, you had to figure out which serial port to use, read raw NMEA data and interpret that data to retrieve for instance latitude and longitude information. Even more challenging was the fact that, most GPS functionality was exposed through a Stream Interface Device Driver. Using one of those drivers is easy enough, since it closely follows File IO API’s. In order to open a device you were calling CreateFile, specifying a device instead of a physical file. To retrieve raw NMEA data you repeatedly needed to call ReadFile, followed by parsing the NMEA data string. Finally once you were done you would call CloseHandle. Even though the Stream Interface Device Driver Model is easy to use, it also gave you some challenges, not limited to retrieving GPS data. First off, each application dealing with NMEA data most likely contained its own NMEA parser, meaning re-inventing the wheel frequently. Perhaps an even bigger challenge had to do with the nature of a Stream Interface Device Driver. Only one application at a time could get exclusive access to the GPS hardware. With Location Awareness becoming more popular, this is really a problem. After all, I don’t like to close my navigation software when I for instance want to start a social networking application that is location enabled as well.

Windows Mobile 5.0 and Windows Mobile 6 devices solve all of these problems thanks to the fact that they ship with the GPS Intermediate Driver (GPSID). Even though GPSID is not really a true device driver, it is a software layer implemented as a Windows CE service that sits between the GPS hardware’s device driver and the applications that want to make use of Location Awareness on your Windows Mobile Device. In other words, to the GSP hardware’s device driver, GPSID acts as the only application that will access the GPS hardware, and to applications on your Windows Mobile Device, GPSID acts as the entry point to the actual GPS hardware. For legacy applications, GPSID exposes a Virtual COM Port, so these applications can still access the GPS hardware without any modifications. GPSID can even return raw NMEA data to legacy applications. The only functionality available for legacy applications inside GPSID is a translation from a virtual COM port to the physical COM port on which the GPS Hardware operates, to assure that requests from a legacy application will actually arrive at the GPS Hardware.

For newly written applications, GPSID exposes its own API’s that allow accessing GPS Hardware on a higher level. Of course there are native API’s available like GPSOpenDevice, GPSGetPosition, GPSGetDeviceState and GPSCloseDevice. These API’s make use of Win32 events to allow your application to react on Postion and DeviceState changes when they occur rather than polling for information. In this way, you will preserve precious battery power.

You can also access GPSID from inside managed applications. When you install either the Windows Mobile 5.0 or the Windows Mobile 6 SDK’s, you will get lots of sample code. One of the samples not only shows you how to make use of GPSID, but it also contains a managed wrapper around GPSID functionality. You can find these samples in the following folder:

<Installation Folder>\<Windows Mobile SDK>\Samples\PocketPC\Cs\Gps

or

<Installation Folder>\<Windows Mobile SDK>\Samples\Smartphone\Cs\Gps

Of course, the sample is available for Visual Basic.NET as well.

Using GPSID, either in native or managed applications will give you a number of advantages. It is no longer necessary to parse raw NMEA data. GPSID will take care of that for you, and can for instance return latitude and longitude information in a data structure. Probably the biggest advantage of using GPSID is the fact that multiple applications can simultaneously make use of GPS Hardware, because GPSID implements a multiplexer to allow different applications to retrieve and make use of Location Information. To me, GPSID is an important and very valuable piece of software and I strongly recommend you to take a look at it, start playing with it and make sure to use GPSID inside your next Location Aware application.

In a number of consequent blog entries I will show you some samples on how to use GPSID both in native and managed applications.

Happy Coding!

Constanze

 

New Windows Mobile Application Development chat series coming up in August

Mark your calendars. Starting on August 12th, 2008 we are launching a new chat series that focuses exclusively on Windows Mobile Application Development. This chat will cover the tools and technologies used to develop applications using the Windows Mobile operating system. MVPs and members of the Windows Mobile product team will be joining this chat to answer your questions. For the August chat, we will also go through the top 10 FAQ on Windows Mobile.

The chat will take place on August 12, at 9 AM PST. To register for it, please click on this link: http://www.microsoft.com/communities/chats/vcs/08_0812_msdn_MOBILE.ics.

Stay tuned on any upcoming chats! 

 

MVP interview video with Maarten Struys has been posted on Youtube.
Last week I had the chance to interview Windows Mobile Application Development MVP Maarten Struys while he was visiting Redmond. I asked Maarten about his experiences developing for Windows Mobile and he had lots of information to share. You can view the interview on Youtube. Check it out:

 

Stay tuned for more MVP videos!

 

 

Mark your Calendars: Windows Mobile/Embedded Chat coming up on July 29!

It's time again for our monthly Windows Mobile/Embedded Chat. It will take place tomorrow Tuesday, July 29, 2008 from 9 to 10 AM PST.

To add the event to your calendar, go to this link: http://www.microsoft.com/communities/chats/vcs/08_0729_msdn_CE.ics.

 See you guys at the chat tomorrow!

 

 

Thanks for attending our webcast on "Unit Testing" last week - the recording is now available for download.

I wanted to say thanks to everybody who attended our webcast on "Unit Testing for Devices" last week. We had lots of good questions and feedback. The webcast is now available for download from: http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&EventID=1032382825&CountryCode=US. Maarten Struys has posted the code on his blog at http://www.dotnetfordevices.com/forum.html.

We will keep you posted on upcoming webcasts.

Thanks,

Constanze

 

 

 

 

Mark your Calendars: Windows Mobile Webcast on Unit Testing coming up on July 23rd!

Hi everybody,

It's time for another Webcast. Next Wednesday, July 23rd at 10 AM PST, Maarten Struys and I will be hosting a webcast on Unit Testing for Devices. This webcast is a follow up to Maarten's session on "Unit Testing for devices" at TechEd 2008. We will show you lots of samples that will show you how to create unit tests for your smart applications. You will also learn how to debug unit tests and how to run unit tests inside a command prompt.

To register, click on this link: http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032382824&EventCategory=4&culture=en-US&CountryCode=US.

See you guys next Wednesday!

Constanze

TechEd Online Panel Discussion on Windows Mobile Application has been posted!

When we were at TechEd Developer last month, I hosted a panel discussion on Windows Mobile Application Development for TechEd Online. Dr. Neil Roodyn, Maarten Struys, Andy Wigley, and Paul Yao were talking about what you need to know about developing Windows Mobile applications. Our panel discussion has now been posted online for you to view it. To view the video, click on this link.

 

New Windows Mobile article posted on MSDN Magazine: Adaptable Apps for Windows Mobile

Michael Saffitz, Program Manager for the Windows Mobile Developer Experience Team, has written an article for the June issue of MSDN Magazine. In his article, Going Places: Adaptable Apps for Windows Mobile, Michael describes how to build an application that runs well on a variety of different devices with different characteristics and form factors. 

New Blog: Windows Mobile for Australia

Are you interested in what's happening in the Mobile World Down Under?

Check this out, Microsoft Australia has just started a new blog that's focussing on "all things Mobile" for Australia.

Learn about new devices, new Mobility-related events in Australia and more by visiting Windows Mobile for Australia

 

Mark your calendars: Windows Mobile and Embedded CE Live Chat is coming up tomorrow, June 24!

It's time for another Windows Embedded CE and Windows Mobile Live Chat!

Do you have tough technical questions regarding Windows Embedded CE or Windows Mobile for which you're seeking answers?  Do you want to tap into the deep knowledge of the talented Microsoft Embedded Devices Group members? If so, please join us tomorrow, June 24, 2008 at 9 AM PST for a live chat and bring on the questions! Windows Embedded CE is the operating system that is powering the next generation of 32-bit, small-footprint and mobile devices. This chat will cover the tools and technologies used to develop devices using the CE operating system. 

To register for the chat, go to: http://msdn.microsoft.com/chats.

To add a reminder for this chat to your calendar, go to: http://www.microsoft.com/communities/chats/vcs/08_0624_msdn_CE.ics.

What happened to the "Implementing Transparency, Gradients, and 3-D Glass Effects on .NET Compact Framework Controls" article?

There has been quite a lot of feedback on Darren Shaffer's article: "Implementing Transparency, Gradients, and 3-D Glass Effects on .NET Compact Framework Controls." People have been interested in learning more about implementing cool UI effects on Windows Mobile devices.

Unfortunately we have to inform you that we had to temporarily remove this article from the MSDN library for administrative reasons. We are working on replacing this paper with a series of articles that provide code and guidance on how to implement rich user interface controls on Windows Mobile devices very shortly.

We apologize for any inconvenience this may have caused you.

Stay tuned!

Constanze 

 

 

Mark your calendars: Smart Device Development Chat coming up tomorrow (6/19)!

Please join experts from the Windows Mobile, Windows CE, SQL Server CE and .NET Compact Framework communities in a chat around application development for smart devices. These chats are a great opportunity to have your questions answered by experts from around the world.

Time: 11am - 12pm PST
Location: http://msdn.com/chats/

Add to Calendar: http://www.microsoft.com/communities/chats/vcs/08_0619_msdn_SDD.ics

Hope to see you tomorrow!

Constanze 

 

Greetings from Orlando: Please visit us at TechEd!

Hi everybody,

 

So by now most of you who are attending TechEd Developer week have probably made it to Orlando. Hope you guys are enjoying the sunshine. I sure am. I’ve spent the day by the pool rehearsing for my talk on Wednesday. Don’t blame me, though, since I’m a sun-deprived Washingtonian! Even we deserve some sunshine every once in a while!

 

Anyway, enough joking, we have a lot of interesting events coming up at TechEd this week, so make sure to check them out.

 

So, tomorrow (Tuesday, June 3, 2008), after you have attended Bill Gates’ final keynote, make sure to visit us at the Windows Mobile booth, we will have exhibitions featuring cool technologies, such as Silverlight, Visual Studio 2008 for Devices, Line of Business Accelerator and a general device showcase with cool new devices.

 

My team will also be administering a survey on a set of Windows Mobile devices, so make sure to take it!

 

Tomorrow, Maarten Struys will give a talk on “The .NET Compact Framework 3.5 Powertoys.” The talk will take place at the Technical Learning Center near the Windows Mobile booth. It will be from noon to one. So you might want to sacrifice your lunch break to attend Maarten’s talk.

 

I will be at the Bloggers Lounge from 2 to 3 PM tomorrow (June 3, 2008), so please come and visit me.

 

We also have some cool events planned for Wednesday. At 1 PM, make sure to join us for our final Webcast out of our 5-part series. This is your perfect opportunity to meet us in person and ask us anything you want to know. Be aware, though, we may interview you during the Webcast! If you are unable to see us live, you can still join us by registering for the Webcast: MSDN Webcast: Live from Orlando: Developing Windows Mobile Applications.

 

My talk, “Beyond Maps with the Windows Embedded CE Platform” will start on Wednesday, June 4, 2008 at 2:45 PM. If you want to learn how to build your next cool location-aware application, please make sure to join me.

 

I'm looking forward to meeting some of you in person.

 

Also, make sure to visit Rob Tiffany's blog to read about any additional TechEd activities for Windows Mobile.

 

 

Enjoy TechEd and see you soon!

 

Constanze

 

 

 

New "Managed Services for Windows Mobile" project published on CodePlex

Peter Nowak has just published a new project, "Managed Services for Windows Mobile" on CodePlex. The URL for the project is http://www.codeplex.com/managedserviceswm.

 

Here's a description of Peter's project:

"This lightweight library contains the functionality for creating Windows-like services in managed code, as Windows Mobile/Windows CE do not support creating Windows services. The library is compatible with the .NET Compact Framework 2.0 and higher."

 

Bloggers: Meet me at the Bloggers Lounge at TechEd Orlando DevWeek!

I'll be in the bloggers lounge at TechEd 2008 (Developers) on the following day:

  • Tuesday June 3 from 2 to 3 PM

If you have questions about the Windows Mobile Developer Community, our upcoming Webcast series, or just want to chat, please come and visit me!

Constanze

More Posts Next page »
Page view tracker