Freigeben über


Informationen zu Sensorkonstanten

Die Windows-Sensor- und Standortplattform verwendet Konstanten auf unterschiedliche Weise. In diesem Abschnitt werden diese Konstanten und ihre Verwendung beschrieben.

Die Plattform definiert eine Vielzahl von Konstanten, die Sie in Ihrem Sensortreibercode verwenden können. Sie können auch eigene Konstanten definieren. Die Definitionen plattformdefinierter Konstanten finden Sie in den Dateien Sensors.h und Sensorsdef.h.

Sensor- und Daten-organization

Die Plattform organisiert Sensoren und ihre Daten wie folgt:

  • Kategorien stellen breite Klassen von Sensorgeräten dar. Kategorien bieten eine Möglichkeit, Sensoren zu gruppieren, die wahrscheinlich ähnliche Arten von Informationen bereitstellen oder anderweitig in irgendeiner Weise zusammenhängen. Jede Kategorie wird durch eine GUID-Konstante dargestellt. Beispielsweise gehören Sensoren, die Breiten- und Längengradkoordinaten melden, zur Kategorie des Standortsensors, die durch die SENSOR_CATEGORY_LOCATION-Konstante dargestellt wird.

  • Sensortypen stellen bestimmte Arten von Sensoren dar. Jeder Sensortyp passt in eine bestimmte Kategorie. Zwei Sensoren unterschiedlicher Typen können derselben Kategorie oder zwei verschiedenen Kategorien angehören. Jeder Sensortyp wird durch eine GUID-Konstante dargestellt. Beispielsweise würde ein Globaler Positionierungssystemsensor durch die SENSOR_TYPE_LOCATION_GPS-Konstante identifiziert, während ein Sensor, der den aktuellen Standort über eine Internet-IP-Adresse bereitstellt, durch die SENSOR_TYPE_LOCATION_LOOKUP-Konstante identifiziert würde. Beide Sensoren würden jedoch zur Kategorie Des Standortsensors gehören.

  • Datentypen stellen bestimmte Arten von Informationen dar, die der Sensor bereitstellen kann. Sensordatentypen können den tatsächlichen Messwert enthalten, z. B. Höhe, Informationen zu den Einheiten, die zum Ausdrücken der Daten verwendet werden, z. B. Meter, und Referenzpunkte für die Daten, z. B. Meeresspiegel. Jeder Datentyp wird durch eine PROPERTYKEY-Konstante dargestellt. Der Datentyp, der die x-Achsenbeschleunigung in g darstellt, wäre beispielsweise die SENSOR_DATA_TYPE_ACCELERATION_X_G Konstante.

  • Beim Melden von Daten soll ein Wert in einem Datenfeld enthalten sein, und eine Sammlung verwandter Datenfelder umfasst einen Datenbericht. Datenberichte werden mithilfe der IPortableDeviceValues-Schnittstelle zusammengepackt. Jeder Datenbericht muss mindestens ein gültiges Datenfeld und einen Zeitstempel enthalten, der den Zeitpunkt der Erstellung des Datenberichts angibt. Zeitstempel werden durch den SENSOR_DATA_TYPE_TIMESTAMP-Eigenschaftsschlüssel dargestellt.

Andere Konstanten

Ihr Treiber muss auch andere Arten von Konstanten verwenden. Zu diesen Konstanten gehören:

  • Sensoreigenschaften, z. B. SENSOR_PROPERTY_DESCRIPTION. Diese Konstanten enthalten WPD-Konstanten, z. B. WPD_FUNCTIONAL_OBJECT_CATEGORY. Normalerweise werden diese Konstanten verwendet, um Ihren Sensor zu beschreiben, z. B. wenn sie in ISensorDriver::OnGetSupportedSensorObjects aufgerufen werden. Sie geben auch Eigenschaftswerte über ISensorDriver::OnGetSupportedProperties und ISensorDriver::OnGetProperties zurück.

  • Einige Sensoreigenschaften müssen vom Treiber bereitgestellt werden, einige Eigenschaften können von Clientanwendungen festgelegt werden, und einige müssen immer denselben Wert zurückgeben. Im Abschnitt Referenz zu Sensoreigenschaften werden diese Informationen für jede Eigenschaft bereitgestellt. Informationen dazu, welche Eigenschaften für eine bestimmte Methode erforderlich sind, finden Sie in der Methodendokumentation im Abschnitt Windows-Sensorreferenz .

  • Ereigniskonstanten, z. B. SENSOR_EVENT_STATE_CHANGED. Ereigniskonstanten umfassen GUIDS, die Ereignistypen darstellen, und PROPERTYKEYs, die Ereignisparametertypen darstellen. Sie verwenden diese Konstanten, wenn sie von der Klassenerweiterung in ISensorDriver::OnGetSupportedEvents aufgerufen werden oder wenn Ereignisse über ISensorClassExtension::P ostEvent oder ISensorClassExtension::P ostStateChange ausgelöst werden.

  • Symbolkonstanten. Ihr Treiber kann ein bestimmtes Symbol angeben, um das Gerät in Windows darzustellen. Weitere Informationen finden Sie unter Angeben eines Symbols.

  • Die Sensorplattform definiert die GUID_DEVINTERFACE_SENSOR Konstante, um die Sensorgeräteschnittstellenklasse zu identifizieren. Während der Installation registriert sich ein Treiber für mindestens eine Geräteschnittstellenklasse. Die Sensorklassenerweiterung registriert die Sensorgeräteschnittstellenklasse für Sie.

Persistenter eindeutiger Bezeichner

Die Sensoreigenschaft mit dem Namen SENSOR_PROPERTY_PERSISTENT_UNIQUE_ID erfordert besondere Aufmerksamkeit. Der Wert für diese Eigenschaft muss für jeden Sensor auf einem Gerät eindeutig sein. Gleichzeitig muss dieser Wert für einen bestimmten Sensor bei jeder Verwendung durch die Sensorplattform konsistent bleiben. Ein Beispiel zum Erstellen des persistenten eindeutigen Bezeichners in Ihrem Treibercode finden Sie unter Erstellen eines persistenten eindeutigen Bezeichners.

Bereitstellen von Geolocationinformationen

Manchmal ist es für Benutzer wichtig, den physischen Standort eines Sensors zu kennen, auch wenn der Sensor kein Standortsensor ist. Beispielsweise ist die Bedeutung von Daten, die eine Wetterstation bereitstellt, eng mit dem Standort der Station verknüpft.

Um diese Art von Geolocationdaten bereitzustellen, kann jeder Sensor geeignete Datenfelder aus der kategorie SENSOR_CATEGORY_LOCATION verwenden, auch wenn der Sensor kein Standortsensor ist. Daher könnte eine Wetterstation ihren Standort mithilfe der SENSOR_DATA_TYPE_LATITUDE_DEGREES und SENSOR_DATA_TYPE_LONGITUDE_DEGREES Datenfeldkonstanten melden. Es ist jedoch wichtig, solche Sensoren nicht zu melden, die zur Kategorie Standort gehören, wenn sie in ISensorDriver::OnGetProperties aufgerufen werden.

Windows behandelt einen Sensor mit einem der Standorttypen als vorhanden in der Standortkategorie (SENSOR_CATEGORY_LOCATION). Daher fallen diese Sensoren unter das Standortberechtigungsmodell. Sie sollten nicht versuchen, das Berechtigungsmodell für einen Standortsensor zu umgehen (z. B. die Darstellung eines GPS-Sensortyps als SENSOR_TYPE_LOCATION_GPS aber die Angabe einer Nicht-Standortkategorie).

Benutzerdefinierte Werte

Sie können benutzerdefinierte Werte für Kategorien, Sensortypen, Datenfelder, Eigenschaften und Ereignisse definieren.

Richtlinien und ein Beispiel zum Definieren benutzerdefinierter Werte für Konstanten finden Sie unter Definieren benutzerdefinierter Werte für Konstanten.