Freigeben über


Compass Klasse

Definition

Stellt einen Kompasssensor dar.

Dieser Sensor gibt eine Überschrift in Bezug auf magnetischen Norden und möglicherweise True North zurück. (Letzteres hängt von den Systemfunktionen ab.)

Eine Beispielimplementierung finden Sie im Kompassbeispiel.

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
Vererbung
Object Platform::Object IInspectable Compass
Attribute

Windows-Anforderungen

Gerätefamilie
Windows 10 (eingeführt in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)

Hinweise

Sensordaten werden relativ zum festen Sensorkoordinatensystem des Geräts bereitgestellt und sind unabhängig von der Anzeigeausrichtung. Bei Anwendungen, die Sensordaten zur Eingabesteuerung oder zum Bearbeiten von Elementen auf dem Bildschirm benötigen, muss der Entwickler die aktuelle Anzeigeausrichtung berücksichtigen und die Daten entsprechend kompensieren. Weitere Informationen zum Sensorkoordinatensystem finden Sie unter Sensordaten und Anzeigeausrichtung.

Im folgenden Beispiel wird veranschaulicht, wie eine mit XAML und C# erstellte UWP-App die GetDefault-Methode verwendet, um eine Verbindung mit einem Kompass herzustellen. Wenn kein integrierter Kompass gefunden wird, gibt die Methode einen NULL-Wert zurück.

_compass = Compass.GetDefault();

Im folgenden Beispiel wird veranschaulicht, wie eine mit XAML erstellte UWP-App einen ReadingChanged-Ereignishandler registriert.

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);
    }
}

Das folgende Beispiel zeigt den ReadingChanged-Ereignishandler .

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";
        }
    });
}

Versionsverlauf

Windows-Version SDK-Version Mehrwert
1709 16299 FromIdAsync
1709 16299 GetDeviceSelector
1709 16299 MaxBatchSize
1709 16299 ReportLatency
2004 19041 ReportThreshold

Eigenschaften

DeviceId

Ruft den Gerätebezeichner ab.

MaxBatchSize

Ruft die maximale Anzahl von Ereignissen ab, die vom Sensor in einem Batch verarbeitet werden können.

MinimumReportInterval

Ruft das minimale Berichtsintervall ab, das vom Kompass unterstützt wird.

ReadingTransform

Ruft die Transformation ab, die auf Sensordaten angewendet werden muss, oder legt diese fest. Die anzuwendenden Transformationen sind an die Anzeigeausrichtung gebunden, an der die Sensordaten ausgerichtet werden sollen.

ReportInterval

Ruft das aktuelle Berichtsintervall für den Kompass ab oder legt es fest.

ReportLatency

Ruft die Verzögerung zwischen Batches von Sensorinformationen ab oder legt sie fest.

ReportThreshold

Ruft compassDataThreshold für den Kompasssensor ab.

Methoden

FromIdAsync(String)

Ruft den Sensor asynchron aus seinem Bezeichner ab.

GetCurrentReading()

Ruft den aktuellen Kompasswert ab.

GetDefault()

Gibt den Standardkompass zurück.

GetDeviceSelector()

Ruft die Geräteauswahl ab.

Ereignisse

ReadingChanged

Tritt jedes Mal auf, wenn der Kompass einen neuen Sensorwert meldet.

Gilt für:

Weitere Informationen