GNSS_GEOFENCE_STATE-Enumeration (gnssdriver.h)

GNSS_GEOFENCE_STATE listet die verschiedenen Zustände eines einzelnen Geofence auf.

Syntax

typedef enum {
  GNSS_GeofenceState_Unknown,
  GNSS_GeofenceState_Entered,
  GNSS_GeofenceState_Exited
} GNSS_GEOFENCE_STATE;

Konstanten

 
GNSS_GeofenceState_Unknown
Der Status des Geofence ist unbekannt.
GNSS_GeofenceState_Entered
Der Geofence wurde eingegeben.
GNSS_GeofenceState_Exited
Der Geofence wurde beendet.

Hinweise

Die folgenden Bitmasken werden vom HLOS verwendet, um Zustandsänderungswarnungen für Geofences anzufordern:

#define GNSS_GEOFENCEALERTTYPE_ENTRY  GNSS_GeofenceState_Entered    // Enter Geofence
#define GNSS_GEOFENCEALERTTYPE_EXIT   GNSS_GeofenceState_Exited     // Exit Geofence

Eine Eingangswarnung wird ausgelöst, wenn der vorherige Geofence-Status unbekannt oder beendet war und das Gerät nun in den Geofence eingetreten ist.

Eine Exitwarnung wird ausgelöst, wenn der vorherige Geofence-Status eingegeben wurde und das Gerät den Geofence nun beendet hat. Wenn der vorherige Status des Geofence unbekannt war und sich das Gerät derzeit außerhalb des Geofence befindet, wird keine Exitwarnung generiert.

Die Standortplattform sendet nur dann einen Exittrigger an Apps, wenn sich der vorherige bekannte Zustand für einen Zaun innerhalb des Zauns befindet. Dies ist eine Entwurfsentscheidung zur Vermeidung von Chats von Exitereignissen in der Geofencekonfiguration (z. B. wenn ein Benutzer, der einen Ausgangszaun von zu Hause konfiguriert, nicht erwartet, dass er benachrichtigt werden muss, dass er sich außerhalb des Hauses befindet, wenn er die Benachrichtigung konfiguriert, wenn er sich bereits außerhalb des Hauses befindet). Dennoch könnte die Standortplattform verarbeiten, wo der GNSS-Treiber Exitereignisse sendet. Dies wird jedoch nicht empfohlen, da dann die Interaktion zwischen dem GNSS-Adapter und dem GNSS-Treiber sehr ausführlich wird. Da die Wahrscheinlichkeit, dass der Benutzer einen Geofence eingibt, viel geringer ist als der Benutzer außerhalb eines Geofences, reduziert dieses Verhalten die erforderliche Interaktion zwischen dem GNSS-Treiber und dem GNSS-Adapter. Bei 100 Geofences, die an den GNSS-Treiber gepusht wurden und sich ein Benutzer außerhalb aller von ihnen befand, muss ohne dieses Verhalten an den GNSS-Adapter 100-Exitbenachrichtigungen gesendet werden. Die Wahrscheinlichkeit, dass etwas Ähnliches wie bei Eintrittsereignissen passiert, ist sehr gering.

Der Geofencezustandsübergang und die zugehörigen Warnungen sind unten dargestellt. Der Einfachheit halber sind die Hysterese- und Geofencegrenzbedingungen impliziert.

GNSS-Geofence-Zustandsdiagramm.

Die wichtigsten Aspekte dieses Zustandsdiagramms sind:

  • Beim Übergang von GNSS_GeofenceState_Unknown zu GNSS_GeofenceState_Exited Zustand soll keine Warnung ausgelöst werden.

  • Wenn die GNSS-Engine überhaupt keine Geofences nachverfolgen kann, muss anstelle einer Warnung für jeden Geofence eine einzelne globale Nachverfolgung status Warnung ausgelöst werden. Die GNSS-Engine könnte den letzten Kenntniszustand für jeden Zaun beibehalten, anstatt in GNSS_GeofenceState_Unknown Zustand zu wechseln, sodass die erforderlichen Geofencewarnungen basierend auf der neuen Ein-/Ausstiegserkennung ausgelöst werden können, wenn sie erneut nachverfolgen kann.

    Die Aufrechterhaltung dieses letzten bekannten Zustands ist derzeit jedoch nicht erforderlich, da die Standortplattform im HLOS die Geofences-Nachverfolgung durchführt, sobald der GNSS-Treiber das Ereignis mit gnss_geofences_tracking_status als FAILURE auslöst. Während dieser Zeit sollte die GNSS-Engine weiterhin energieoptimiert überprüfen, ob Geofences erneut nachverfolgt werden können. Die IHV kann Optimierungen verwenden, um diese Erkennung bei geringer Leistung zu ermöglichen. Zu den gängigen Optimierungstechniken gehören die folgenden:

    • Progressives Back-Off

    • Warten auf kostengünstige Signale, die auf Geräteverschiebungen hinweisen, z. B. Beschleunigerdaten oder Benachrichtigungen über Mobilfunk-/WLAN-Änderungen.

    • Anfordern einer Entfernungsverfolgungssitzung mit niedriger Genauigkeit vom HLOS mithilfe der winRT-APIs für die öffentliche Geolocation.

    • Überprüfungen bei geringer Leistung für Satellitensignal.

    Wenn die GNSS-Engine Geofences erneut nachverfolgen kann, kommuniziert sie dies, indem sie den gnss_geofence_tracking_status als SUCCESS auf GNSS-Adapter/HLOS festlegt.

    Der GNSS-Adapter gibt GNSS_ResetGeofenceTracking Befehle aus und fügt derzeit aktive Geofences mit den aktuellen Ein-/Ausstiegskriterien jedes Geofences erneut hinzu. Dies muss für den Fall erfolgen, dass sich der zu verfolgende Geofence-Satz geändert hat oder sich der Zustand für einen Geofence geändert hat.

Anforderungen

Anforderung Wert
Header gnssdriver.h