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
- Наследование
- Атрибуты
Требования к 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 |
Происходит каждый раз, когда компас сообщает о новом считывании датчика. |