Freigeben über


Compass.ReadingChanged Ereignis

Definition

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

// Register
event_token ReadingChanged(TypedEventHandler<Compass, CompassReadingChangedEventArgs const&> const& handler) const;

// Revoke with event_token
void ReadingChanged(event_token const* cookie) const;

// Revoke with event_revoker
Compass::ReadingChanged_revoker ReadingChanged(auto_revoke_t, TypedEventHandler<Compass, CompassReadingChangedEventArgs const&> const& handler) const;
public event TypedEventHandler<Compass,CompassReadingChangedEventArgs> ReadingChanged;
function onReadingChanged(eventArgs) { /* Your code */ }
compass.addEventListener("readingchanged", onReadingChanged);
compass.removeEventListener("readingchanged", onReadingChanged);
- or -
compass.onreadingchanged = onReadingChanged;
Public Custom Event ReadingChanged As TypedEventHandler(Of Compass, CompassReadingChangedEventArgs) 

Ereignistyp

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie eine mit C# und XAML erstellte UWP-App den 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";
        }
    });
}

Hinweise

Eine Anwendung kann diesen Ereignishandler registrieren, um Sensorwerte zu erhalten. Die Anwendung muss einen gewünschten ReportInterval einrichten. Dadurch wird der Sensortreiber darüber informiert, dass Ressourcen zugeordnet werden sollten, um die Anforderungen der Anwendung zu erfüllen.

Anwendungen können die Häufigkeit dieses Ereignisses festlegen, indem sie die ReportInterval-Eigenschaft festlegen.

Gilt für: