Compass Compass Compass Compass Compass Class

Definition

Represents a compass sensor.

This sensor returns a heading with respect to Magnetic North and, possibly, True North. (The latter is dependent on the system capabilities.)

For an example implementation, see the compass sample.

public : sealed class Compass : ICompass, ICompass2, ICompassDeviceId
struct winrt::Windows::Devices::Sensors::Compass : ICompass, ICompass2, ICompassDeviceId
public sealed class Compass : ICompass, ICompass2, ICompassDeviceId
Public NotInheritable Class Compass Implements ICompass, ICompass2, ICompassDeviceId
// This class does not provide a public constructor.
Attributes
Windows 10 requirements
Device family
Windows 10 (introduced v10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduced v1)

Remarks

Sensor data is provided relative to the device's fixed sensor coordinate system, and is independent of display orientation. For applications that rely on sensor data for input control or to manipulate elements on the screen, the developer must take current display orientation into account and compensate the data appropriately. For more info about the sensor coordinate system, see Sensor data and display orientation.

The following example demonstrates how a UWP app built with XAML and C# uses the GetDefault method to establish a connection to a compass. If no integrated compass is found, the method will return a null value.

_compass = Compass.GetDefault();

The following example demonstrates how a UWP app built with XAML registers a ReadingChanged event handler.

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

The following example shows the ReadingChanged event handler.

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

Properties

DeviceId DeviceId DeviceId DeviceId DeviceId

Gets the device identifier.

MaxBatchSize MaxBatchSize MaxBatchSize MaxBatchSize MaxBatchSize

Gets the maximum number of events that can be batched by the sensor.

MinimumReportInterval MinimumReportInterval MinimumReportInterval MinimumReportInterval MinimumReportInterval

Gets the minimum report interval supported by the compass.

ReadingTransform ReadingTransform ReadingTransform ReadingTransform ReadingTransform

Gets or sets the transformation that needs to be applied to sensor data. Transformations to be applied are tied to the display orientation with which to align the sensor data.

ReportInterval ReportInterval ReportInterval ReportInterval ReportInterval

Gets or sets the current report interval for the compass.

ReportLatency ReportLatency ReportLatency ReportLatency ReportLatency

Gets or sets the delay between batches of sensor information.

Methods

FromIdAsync(String) FromIdAsync(String) FromIdAsync(String) FromIdAsync(String) FromIdAsync(String)

Asynchronously obtains the sensor from its identifier.

GetCurrentReading() GetCurrentReading() GetCurrentReading() GetCurrentReading() GetCurrentReading()

Gets the current compass reading.

GetDefault() GetDefault() GetDefault() GetDefault() GetDefault()

Returns the default compass.

GetDeviceSelector() GetDeviceSelector() GetDeviceSelector() GetDeviceSelector() GetDeviceSelector()

Gets the device selector.

Events

ReadingChanged ReadingChanged ReadingChanged ReadingChanged ReadingChanged

Occurs each time the compass reports a new sensor reading.

See Also