Pregunta

Digamos que tiene un teléfono con Windows Mobile 6.0 que también tiene un receptor GPS. ¿El SDK de WinMobile admite el acceso a la funcionalidad GPS?

Si no, ¿cuáles son las opciones (API) para programar con el GPS, es decir, escribir aplicaciones que utilizarán la capacidad GPS. Estoy principalmente interesado en Windows Mobile 6.x, pero incluya también respuestas genéricas.

Seguramente votaré por las respuestas más útiles.

Gracias de antemano.

¿Fue útil?

Solución

Dos opciones:

  1. Existe el controlador GPS intermedio, que tiene un artículo de instrucciones para .Net en MSDN
  2. Puede conectarse al puerto serie (configurable en UI, por supuesto) y analizar las cadenas NMEA usted mismo

La opción (1) es probablemente aconsejable

Otros consejos

Chris Craft tenía mucho código fuente para este tipo de cosas en su serie 30 días de aplicaciones .NET Windows Mobile

  • Semana 1 - Incluye GPS Compass
  • Semana 3 - Incluye velocímetro GPS y altímetro GPS
  • Semana 4 - Incluye reloj GPS

Lamentablemente, esta serie de blogs parece haber muerto, pero afortunadamente el código se conserva en Codeplex:

  

30 días de aplicaciones de Windows Mobile

Y se puede encontrar un puerto a C y algunas discusiones sobre algunas de las publicaciones originales en / dev / mobile

También hay algunas notas sobre el uso del controlador GPS intermedio en Blog de Raffaele Limosani


Editar para agregar:

GPS.NET se ha convertido recientemente en código abierto y ahora está disponible en CodePlex:

  

GPS.NET 3.0

Si planea desarrollar en .NET Compact Framework, hay un ejemplo de GPS bastante extenso en las Muestras de desarrolladores de Windows Mobile. Básicamente, eso hace uso de wraps alrededor de gpsapi.dll pero muestra los trabajos. He instalado el kit WM6 en C: \ Archivos de programa \ Windows Mobile 6 SDK y la muestra de GPS está en C: \ Archivos de programa \ Windows Mobile 6 SDK \ Samples \ PocketPC \ CS \ GPS

¡Buena suerte!

Intente echar un vistazo a algunas de las soluciones en CodeProject.com . Hay muchos artículos muy buenos sobre Windows Mobile y GPS.

Y para probar el código que usa el controlador intermedio (ver otras respuestas), no olvide la utilidad FakeGPS del SDK que puede usar para canalizar una secuencia NMEA almacenada en un archivo a través de este controlador intermedio para que pueda probar fácilmente Software de GPS en esos datos de ubicación sin tener que tener recepción de GPS y comenzar a moverse.

Desde mi punto de vista, es mucho más fácil leer el puerto serie (en mi caso, COM5, baudrate 4800) y analizar los datos recibidos. (cómo analizar la cadena se puede encontrar a través de Google y la frase: oraciones NMEA gps)

Para mí es imposible entender el ejemplo en la dirección:

C:\Program Files\Windows Mobile 6 SDK\Samples\PocketPC\CS\GPS

Todo es muy complicado y directo. Esperaría una interfaz mucho más fácil y útil como:

myGps = new GPS()
myGPS.getPosition

Pero esto probablemente no sea posible :(

¿Y cómo hacerlo a través de RS232? (Trabajo en VB.NET)

En la GUI (o programáticamente) cree el objeto System.IO.Ports.SerialPort y use su evento DataReceived. Cada vez que los datos provienen del GPS, se produce este evento y en su cuerpo puedes procesarlo.

Los datos están en formato de una cadena muuuuuuuy larga dividida en secciones $ GPGGA, $ GPGSA, etc. Lo importante es $ GPGGA. Cada información particular está delimitada por comas. Luego solo analiza esta cadena, en VB.net usando: myArray = myData.Split (", " c).

http://aprs.gids.nl/nmea/

PS: ", " c significa que la coma es un Char, no String (VB.NET)

Como puede ver, no hay necesidad de escribir más que unas pocas líneas de código. Ejemplo de MS es innecesariamente difícil y no es para principiantes.

PS2: tenga en cuenta que no envía ningún comando al GPS. Automáticamente y periódicamente envía datos a su programa. Simplemente abra el puerto, lea todos los datos del búfer, conviértalo a cadena usando Chr () y analícelo. No es gran cosa.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top