Condividi tramite


Compass Classe

Definizione

Rappresenta un sensore bussola.

Questo sensore restituisce un'intestazione rispetto al nord magnetico e, possibilmente, true nord. Quest'ultimo dipende dalle funzionalità di sistema.

Per un'implementazione di esempio, vedere l'esempio di bussola.

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
Ereditarietà
Object Platform::Object IInspectable Compass
Attributi

Requisiti Windows

Famiglia di dispositivi
Windows 10 (è stato introdotto in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)

Commenti

I dati del sensore vengono forniti in relazione al sistema di coordinate del sensore fisso del dispositivo ed è indipendente dall'orientamento dello schermo. Per le applicazioni che si basano sui dati del sensore per il controllo di input o per modificare gli elementi sullo schermo, lo sviluppatore deve prendere in considerazione l'orientamento di visualizzazione corrente e compensare i dati in modo appropriato. Per altre info sul sistema di coordinate del sensore, vedi Dati del sensore e orientamento dello schermo.

L'esempio seguente illustra come un'app UWP compilata con XAML e C# usi il metodo GetDefault per stabilire una connessione a una bussola. Se non viene trovata alcuna bussola integrata, il metodo restituirà un valore Null.

_compass = Compass.GetDefault();

L'esempio seguente illustra come un'app UWP compilata con XAML registra un gestore eventi 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);
    }
}

Nell'esempio seguente viene illustrato il gestore eventi 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";
        }
    });
}

Cronologia delle versioni

Versione di Windows Versione dell'SDK Valore aggiunto
1709 16299 FromIdAsync
1709 16299 GetDeviceSelector
1709 16299 MaxBatchSize
1709 16299 ReportLatency
2004 19041 ReportThreshold

Proprietà

DeviceId

Ottiene l'identificatore del dispositivo.

MaxBatchSize

Ottiene il numero massimo di eventi che possono essere inseriti in batch dal sensore.

MinimumReportInterval

Ottiene l'intervallo minimo di report supportato dalla bussola.

ReadingTransform

Ottiene o imposta la trasformazione che deve essere applicata ai dati del sensore. Le trasformazioni da applicare sono associate all'orientamento dello schermo con cui allineare i dati del sensore.

ReportInterval

Ottiene o imposta l'intervallo di rapporto corrente per la bussola.

ReportLatency

Ottiene o imposta il ritardo tra batch di informazioni sul sensore.

ReportThreshold

Ottiene la bussolaDataThreshold per il sensore bussola.

Metodi

FromIdAsync(String)

Ottiene in modo asincrono il sensore dal relativo identificatore.

GetCurrentReading()

Ottiene la lettura corrente della bussola.

GetDefault()

Restituisce la bussola predefinita.

GetDeviceSelector()

Ottiene il selettore del dispositivo.

Eventi

ReadingChanged

Si verifica ogni volta che la bussola segnala una nuova lettura del sensore.

Si applica a

Vedi anche