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


Compass Класс

Определение

Представляет датчик компаса.

Этот датчик возвращает заголовок относительно Магнитного Севера и, возможно, Истинного Севера. (Последнее зависит от возможностей системы.)

См. пример внедрения в примере с компасом.

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
Наследование
Object Platform::Object IInspectable Compass
Атрибуты

Требования к Windows

Семейство устройств
Windows 10 (появилось в 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (появилось в v1.0)

Комментарии

Данные датчика предоставляются относительно фиксированной системы координат датчика устройства и не зависят от ориентации дисплея. Для приложений, использующих данные датчика для управления вводом или для управления элементами на экране, разработчик должен учитывать текущую ориентацию экрана и соответствующим образом компенсировать данные. Дополнительные сведения о системе координат датчика см. в разделе Данные датчика и ориентация дисплея.

В следующем примере показано, как приложение UWP, созданное с помощью XAML и C#, использует метод GetDefault для установления соединения с компасом. Если интегрированный компас не найден, метод вернет значение NULL.

_compass = Compass.GetDefault();

В следующем примере показано, как приложение UWP, созданное с помощью 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";
        }
    });
}

Журнал версий

Версия Windows Версия пакета SDK Добавленная стоимость
1709 16299 FromIdAsync
1709 16299 GetDeviceSelector
1709 16299 MaxBatchSize
1709 16299 ReportLatency
2004 19041 ReportThreshold

Свойства

DeviceId

Возвращает идентификатор устройства.

MaxBatchSize

Возвращает максимальное количество событий, которые могут быть пакетированы датчиком.

MinimumReportInterval

Возвращает минимальный интервал отчета, поддерживаемый компасом.

ReadingTransform

Возвращает или задает преобразование, которое необходимо применить к данным датчика. Применяемые преобразования привязаны к ориентации экрана, с которой выравниваются данные датчика.

ReportInterval

Возвращает или задает текущий интервал отчета для компаса.

ReportLatency

Возвращает или задает задержку между пакетами информации о датчике.

ReportThreshold

Возвращает compassDataThreshold для датчика компаса.

Методы

FromIdAsync(String)

Асинхронно получает датчик из его идентификатора.

GetCurrentReading()

Возвращает текущее считывание компаса.

GetDefault()

Возвращает компас по умолчанию.

GetDeviceSelector()

Возвращает селектор устройства.

События

ReadingChanged

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

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

См. также раздел