GNSS_GEOFENCE_STATE 열거형(gnssdriver.h)

GNSS_GEOFENCE_STATE 단일 지오펜스의 다양한 상태를 열거합니다.

Syntax

typedef enum {
  GNSS_GeofenceState_Unknown,
  GNSS_GeofenceState_Entered,
  GNSS_GeofenceState_Exited
} GNSS_GEOFENCE_STATE;

상수

 
GNSS_GeofenceState_Unknown
지오펜스의 상태를 알 수 없습니다.
GNSS_GeofenceState_Entered
지오펜스가 입력되었습니다.
GNSS_GeofenceState_Exited
지오펜스가 종료되었습니다.

설명

다음 비트 마스크는 HLOS에서 지오펜스에 대한 상태 변경 경고를 요청하는 데 사용됩니다.

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

지오펜스의 이전 상태를 알 수 없거나 종료하고 디바이스가 이제 지오펜스에 들어갔을 때 항목 경고가 발생합니다.

지오펜스의 이전 상태가 입력되고 디바이스가 이제 지오펜스를 종료하면 종료 경고가 발생합니다. 지오펜스의 이전 상태를 알 수 없고 디바이스가 현재 지오펜스 외부에 있는 경우 종료 경고가 생성되지 않습니다.

위치 플랫폼은 이전에 펜스에 대해 알려진 상태가 펜스 내에 있는 경우에만 앱에 출구 트리거를 보냅니다. 이는 지오펜스 구성에서 종료 이벤트의 잡담을 방지하기 위한 디자인 결정입니다(예: 사용자가 집 밖에서 이미 알림을 구성할 때 집 밖에 있다는 알림을 받을 필요가 있도록 집에서 출구 울타리를 구성하는 것을 기대하지 않는 경우). 그럼에도 불구하고 위치 플랫폼은 GNSS 드라이버가 종료 이벤트를 보내는 위치를 처리할 수 있지만 GNSS 어댑터와 GNSS 드라이버 간의 상호 작용이 매우 세부적이기 때문에 권장되지 않습니다. 사용자가 지오펜스에 들어갈 가능성이 지오펜스 외부에 있는 사용자보다 훨씬 작다는 점을 감안할 때 이 동작은 GNSS 드라이버와 GNSS 어댑터 간의 필요한 상호 작용을 줄입니다. 예를 들어 GNSS 드라이버에 푸시된 지오펜스가 100개이고 사용자가 모두 외부에 있는 경우 이 동작이 없으면 GNSS 어댑터 100 종료 알림으로 보내야 합니다. 항목 이벤트에 대해 이와 유사한 일이 발생할 가능성은 매우 적습니다.

지오펜스 상태 전환 및 관련 경고는 다음과 같습니다. 간단히 하기 위해 하이스테레시스 및 지오펜스 경계 조건이 암시됩니다.

GNSS 지오펜스 상태 다이어그램

이 상태 다이어그램의 주요 측면은 다음과 같습니다.

  • GNSS_GeofenceState_Unknown GNSS_GeofenceState_Exited 상태로 전환할 때 경고가 발생하지 않습니다.

  • GNSS 엔진이 지오펜스를 전혀 추적할 수 없는 경우 각 지오펜스에 대한 하나의 경고와는 달리 단일 전역 추적 상태 경고가 발생해야 합니다. GNSS 엔진은 GNSS_GeofenceState_Unknown 상태로 전환하는 대신 각 펜스에 대한 마지막 알 수 있는 상태를 유지할 수 있으므로 다시 추적할 수 있는 경우 새 진입/출구 검색에 따라 필요한 지오펜스 경고를 발생시킬 수 있습니다.

    그러나 GNSS 드라이버가 gnss_geofences_tracking_status 사용하여 이벤트를 FAILURE로 발생하면 HLOS의 위치 플랫폼이 지오펜스 추적을 시작하기 때문에 이 마지막으로 알려진 상태를 유지하는 것은 현재 필요하지 않습니다. 이 시간 동안 GNSS 엔진은 지오펜스를 다시 추적할 수 있는 경우 전원 최적화 방식으로 계속 검사 합니다. IHV는 최적화를 사용하여 저전력에서 이 검색을 수행할 수 있습니다. 최적화를 위한 일반적인 기술은 다음과 같습니다.

    • 프로그레시브 백오프

    • 가속기 데이터 또는 셀룰러/WiFi 변경 알림과 같은 디바이스 이동을 나타내는 저렴한 신호를 대기합니다.

    • 공용 지리적 위치 WinRT API를 사용하여 HLOS에서 낮은 정확도 거리 추적 세션을 요청합니다.

    • 위성 신호에 대한 저전력 검사.

    GNSS 엔진이 지오펜스를 다시 추적할 수 있는 경우 gnss_geofence_tracking_status SUCCESS로 GNSS 어댑터/HLOS로 설정하여 통신합니다.

    GNSS 어댑터는 GNSS_ResetGeofenceTracking 명령을 실행하고 각 지오펜스의 현재 진입/종료 조건으로 현재 활성 지오펜스를 다시 추가합니다. 추적할 지오펜스 집합이 변경되었거나 지오펜스의 상태가 변경된 경우 이 작업을 수행해야 합니다.

요구 사항

요구 사항
헤더 gnssdriver.h