Using the GPS Intermediate Driver from Managed Code
9/8/2008
O driver intermediário de GPS é uma camada software que se situa entre aplicativos e o driver de dispositivo para hardware de GPS. Essa camada de abstração permite que os aplicativos ser gravado uma vez e trabalho com múltiplo dispositivos de GPS. The GPS Intermediate Driver API is exposed through a native code library. Você pode obter acessar para esta biblioteca de código gerenciado, usando o exemplo que acompanha o Windows Mobile 6 Professional SDK. Por padrão, este exemplo é instalado no seguinte localidade:
C:\Program Files\Windows Mobile 6 SDK\Samples\PocketPC\CS\GPS
Usando o exemplo de GPS gerenciado
O projeto exemplo GPS incluído no SDK é um gerenciado wrapper para o GPS Intermediate Driver que usa pInvoke Chamadas para acessar a biblioteca nativa. Ao criar seu próprio gerenciado de GPS aplicativo, compilação o projeto exemplo e adicionar uma referência ao assembly de saída para seu projeto. Em seguida, adicionar o seguinte usando diretiva para sua codificar.
using Microsoft.WindowsMobile.Samples.Location;
Observação
O Windows Mobile Version 5.0 SDK fornecido com uma versão preliminar do gerenciado exemplo de GPS.Você deve instalar o Windows Mobile 6 SDK e usar o exemplo de GPS a partir dessa instalação, mesmo se você tiver como alvo Windows Mobile Version 5.0-com os dispositivos.
Depois de você ter adicionado uma referência ao assembly de exemplo para seu aplicativo, você pode acessar o GPS dispositivo por meio de GPS WScript.Shell. O GpsDeviceState e GpsPosition auxiliar objetos armazenar informações sobre o dispositivo de GPS e sua atual localidade, respectivamente.
Gps gps = new Gps();
GpsDeviceState device = null;
GpsPosition position = null;
Adicionar Manipuladores evento para o DeviceStateChanged e LocationChanged Eventos da GPS objeto de modo que seu aplicativo é alertado ao status de dispositivo ou sua localidade dados são atualizados, o dispositivo.
updateDataHandler = new System.EventHandler(UpdateData);
gps.DeviceStateChanged += new Microsoft.WindowsMobile.Samples.
Location.DeviceStateChangedEventHandler(gps_DeviceStateChanged);
gps.LocationChanged += new Microsoft.WindowsMobile.Samples.
Location.LocationChangedEventHandler(gps_LocationChanged);
Quando você implementar esses manipuladores evento, você deve usar Chamar ao disparador um evento no segmento do seu aplicativo rather than mantendo backup segmento do dispositivo de GPS. O seguinte exemplo obtém as informações posição de GPS a partir de LocationChangedEventArgs e, em seguida, chama o manipulador de eventos updateDataHandler que é definida em qualquer lugar no aplicativo.
protected void gps_LocationChanged(object sender,
LocationChangedEventArgs args)
{
position = args.Position;
Invoke(updateDataHandler);
}
Em manipulador de eventos do seu aplicativo para dados de GPS, você usar o GpsDeviceState e GpsPosition Objetos auxiliar para acessar os dados.
void UpdateData(object sender, System.EventArgs args)
{
if (gps.Opened)
{
// verify that the device object is not null
if (device != null)
{
// display device status
StatusLabel.Text = device.FriendlyName + "Status: " +
device.ServiceState + ", " + device.DeviceState;
}
// verify that the position object is not null
if (position != null)
{
//The position object exposes
// additional properties that indicate
//which properties are currently valid.
if (position.LatitudeValid)
{
// display latitude
LatitudeLabel.Text = "Latitude(D,M,S): " +
position.LatitudeInDegreesMinutesSeconds;
}
…