Compass class
Represents a compass sensor.
This sensor returns a heading with respect to True North and, possibly, Magnetic North. (The latter is dependent on the sensor capabilities.)
Syntax
var compass = Windows.Devices.Sensors.Compass;
Attributes
- DualApiPartitionAttribute()
- MarshalingBehaviorAttribute(Agile)
- StaticAttribute(Windows.Devices.Sensors.ICompassStatics, NTDDI_WIN8)
- ThreadingAttribute(Both)
- VersionAttribute(NTDDI_WIN8)
Members
The Compass class has these types of members:
Events
The Compass class has these events.
| Event | Description |
|---|---|
| ReadingChanged | Occurs each time the compass reports a new sensor reading. |
Methods
The Compass class has these methods. With C#, Visual Basic, and C++, it also inherits methods from the Object class.
| Method | Description |
|---|---|
| GetCurrentReading | Gets the current compass reading. |
| GetDefault | Returns the default compass. |
Properties
The Compass class has these properties.
| Property | Access type | Description |
|---|---|---|
| Read-only | Gets the minimum report interval supported by the compass. | |
| Read/write | Gets or sets the current report interval for the compass. |
Remarks
The following example demonstrates how a Windows Store 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 Windows Store 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"; } }); }
Requirements
|
Minimum supported client | Windows 8 [Windows Store apps, desktop apps] |
|---|---|
|
Minimum supported server | Windows Server 2012 [Windows Store apps, desktop apps] |
|
Minimum supported phone | Windows Phone 8 |
|
Namespace |
|
|
Metadata |
|
See also
Build date: 2/25/2013
