Compartir a través de


Compass Clase

Definición

Representa un sensor de brújula.

Este sensor devuelve un encabezado con respecto al norte magnético y, posiblemente, verdadero norte. (Este último depende de las funcionalidades del sistema).

Para ver una implementación de ejemplo, consulte el ejemplo de brújula.

public ref class Compass sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class Compass final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class Compass
Public NotInheritable Class Compass
Herencia
Object Platform::Object IInspectable Compass
Atributos

Requisitos de Windows

Familia de dispositivos
Windows 10 (se introdujo en la versión 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)

Comentarios

Los datos del sensor se proporcionan en relación con el sistema fijo de coordenadas del sensor del dispositivo y son independientes de la orientación de la pantalla. En el caso de las aplicaciones que dependen de los datos del sensor para el control de entrada o para manipular elementos en la pantalla, el desarrollador debe tener en cuenta la orientación de visualización actual y compensar los datos de forma adecuada. Para obtener más información sobre el sistema de coordenadas del sensor, consulta Orientación de visualización y datos del sensor.

En el ejemplo siguiente se muestra cómo una aplicación para UWP compilada con XAML y C# usa el método GetDefault para establecer una conexión a una brújula. Si no se encuentra ninguna brújula integrada, el método devolverá un valor NULL.

_compass = Compass.GetDefault();

En el ejemplo siguiente se muestra cómo una aplicación para UWP compilada con XAML registra un controlador de eventos ReadingChanged .

private void ScenarioEnable(object sender, RoutedEventArgs e)
{
    if (_compass != null)
    {
        // Establish the report interval
        _compass.ReportInterval = _desiredReportInterval;

        Window.Current.VisibilityChanged += new WindowVisibilityChangedEventHandler(VisibilityChanged);
        _compass.ReadingChanged += new TypedEventHandler<Compass, CompassReadingChangedEventArgs>(ReadingChanged);

        ScenarioEnableButton.IsEnabled = false;
        ScenarioDisableButton.IsEnabled = true;
    }
    else
    {
        rootPage.NotifyUser("No compass found", NotifyType.StatusMessage);
    }
}

En el ejemplo siguiente se muestra el controlador de eventos ReadingChanged .

async private void ReadingChanged(object sender, CompassReadingChangedEventArgs e)
{
    await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
    {
        CompassReading reading = e.Reading;
        ScenarioOutput_MagneticNorth.Text = String.Format("{0,5:0.00}", reading.HeadingMagneticNorth);
        if (reading.HeadingTrueNorth != null)
        {
            ScenarioOutput_TrueNorth.Text = String.Format("{0,5:0.00}", reading.HeadingTrueNorth);
        }
        else
        {
            ScenarioOutput_TrueNorth.Text = "No data";
        }
    });
}

Historial de versiones

Versión de Windows Versión del SDK Valor agregado
1709 16299 FromIdAsync
1709 16299 GetDeviceSelector
1709 16299 MaxBatchSize
1709 16299 ReportLatency
2004 19041 ReportThreshold

Propiedades

DeviceId

Obtiene el identificador del dispositivo.

MaxBatchSize

Obtiene el número máximo de eventos que el sensor puede procesar por lotes.

MinimumReportInterval

Obtiene el intervalo de informe mínimo admitido por la brújula.

ReadingTransform

Obtiene o establece la transformación que se debe aplicar a los datos del sensor. Las transformaciones que se van a aplicar están vinculadas a la orientación de visualización con la que se alinean los datos del sensor.

ReportInterval

Obtiene o establece el intervalo de informe actual para la brújula.

ReportLatency

Obtiene o establece el retraso entre lotes de información del sensor.

ReportThreshold

Obtiene compassDataThreshold para el sensor de brújula.

Métodos

FromIdAsync(String)

Obtiene de forma asincrónica el sensor de su identificador.

GetCurrentReading()

Obtiene la lectura de la brújula actual.

GetDefault()

Devuelve la brújula predeterminada.

GetDeviceSelector()

Obtiene el selector de dispositivos.

Eventos

ReadingChanged

Se produce cada vez que la brújula notifica una nueva lectura del sensor.

Se aplica a

Consulte también