Поделиться через


Compass.ReadingChanged Событие

Определение

Происходит каждый раз, когда компас сообщает о новом считывании датчика.

// 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) 

Тип события

Примеры

В следующем примере показано, как приложение UWP, созданное с помощью C# и XAML, регистрирует обработчик событий 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);
    }
}

В следующем примере показан обработчик событий 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";
        }
    });
}

Комментарии

Приложение может зарегистрировать этот обработчик событий для получения показаний датчика. Приложение должно установить нужный ReportInterval. Это информирует драйвер датчика о том, что ресурсы должны быть выделены для удовлетворения требований приложения.

Приложения могут задать частоту этого события, задав свойство ReportInterval .

Применяется к