Поделиться через


перечисление GNSS_DRIVERCOMMAND_TYPE (gnssdriver.h)

Это перечисление указывает тип команды драйвера или конфигурации драйвера для драйвера GNSS, предоставленного в структуре GNSS_DRIVERCOMMAND_PARAM.

Синтаксис

typedef enum {
  GNSS_SetLocationServiceEnabled,
  GNSS_SetLocationNIRequestAllowed,
  GNSS_ForceSatelliteSystem,
  GNSS_ForceOperationMode,
  GNSS_ResetEngine,
  GNSS_ClearAgnssData,
  GNSS_SetSuplVersion,
  GNSS_SetNMEALogging,
  GNSS_SetUplServerAccessInterval,
  GNSS_SetNiTimeoutInterval,
  GNSS_ResetGeofencesTracking,
  GNSS_SetSuplVersion2,
  GNSS_CustomCommand
} GNSS_DRIVERCOMMAND_TYPE;

Константы

 
GNSS_SetLocationServiceEnabled
Сообщает драйверу о том, включено ли расположение на устройстве. Эта команда выдается каждый раз, когда служба расположений включена или отключена на устройстве.

Связанные данные команды — это boOL.

После получения этого набора команд необходимо задать значение FALSE драйвера GNSS и устройства GNSS:

— Остановите любые текущие сеансы расположения любого типа и из любого приложения HLOS (если поддерживаются несколько приложений).

— Если устройство или драйвер GNSS выполняет какие-либо операции в фоновом режиме, например отслеживание геозон, обновление данных помощи и т. д., они также должны быть остановлены. Адаптер GNSS остановит все отключенные операции при отключении расположения.

В отношении запросов к расположению от мобильного оператора:

— Запросы расположения от мобильного оператора для экстренного реагирования, для удовлетворения требований CALEA и т. д., по-прежнему должны обслуживаться независимо от состояния переключателя расположения. Ожидается, что эти запросы будут переопределять флаг конфиденциальности или /и быть инициированы в течение времени, когда пользователь выполняет экстренный вызов.

— Другие запросы, инициированные сетью, должны учитывать команду GNSS_SetLocationNIRequestAllowed, если это поведение требуется мобильным оператором и реализовано драйвером GNSS.

Если HLOS должен инициировать любой новый запрос расположения, например, чтобы разрешить пользователю удаленно находить устройство, адаптер GNSS отправит команду, чтобы задать GNSS_SetLocationServiceEnabled значение TRUE, инициировать сеанс исправления и при получении результатов будет отправлена другая команда, чтобы задать GNSS_SetLocationServiceEnabled значение FALSE:

- GNSS_SetLocationServiceEnabled задано значение TRUE=1-> Включено

- GNSS_SetLocationServiceEnabled значение FALSE=0-> Отключено

Если эта команда не выдана адаптером GNSS, драйвер должен предположить, что служба расположения отключена в системе.
GNSS_SetLocationNIRequestAllowed
Сообщает драйверу, если разрешено развлекать запросы на расположение, инициированные сетью, поступающие из мобильной сети. Команда должна поддерживаться только в том случае, если это требуется оператором мобильной связи. По состоянию на Windows 10 корпорация Майкрософт не знает о любом мобильном операторе, требующем больше этого, но это остается, чтобы избежать каких-либо блокирующих проблем во время коммерции. Если команда не реализована, драйвер GNSS должен просто сохранить его поведение по умолчанию.

Связанные данные команды — это boOL:

- GNSS_SetLocationNIRequestAllowed для параметра TRUE=1– разрешить>

- GNSS_SetLocationNIRequestAllowed значение FALSE=0-> NotAllow

Если эта команда явно не выдана адаптером GNSS, драйвер должен предположить, что запросы NI включены в системе.

Адаптер GNSS поддерживает состояние на уровне системы, указывающее, разрешены ли запросы NI. Это состояние определяется главным параметром расположения (параметром, который пользователь может включить или отключить) и параметром, настроенным мобильным оператором, чтобы указать, зависят ли запросы NI от главного коммутатора расположения или нет.

Адаптер GNSS оценивает значение этих двух параметров и указывает драйверу GNSS, если запросы NI разрешены или нет.

Запросы о расположении для экстренных служб или CALEA (например, при переопределении конфиденциальности) должны обслуживаться независимо от значения этого параметра.
GNSS_ForceSatelliteSystem
Эта команда приводит к тому, что драйвер GNSS использует указанные вспомогательные системы для получения исправлений. Параметр представляет собой DWORD со следующими значениями:

- GNSS_SATELLITE_ANY (0x00)
- GNSS_SATELLITE_GPS (0x01)
- GNSS_SATELLITE_GLONASS (0x02)
- GNSS_SATELLITE_BEIDOU (0x04)
- GNSS_SATELLITE_GALILEO (0x08)

0x10-0xFF зарезервированы.

Ожидается, что это будет использоваться только в целях тестирования. Для некоторых мобильных операторов требуется проверка с помощью одной вспомогательной системы.
GNSS_ForceOperationMode
Эта команда приводит к тому, что драйвер GNSS использует указанный режим работы.

Параметр представляет собой DWORD со следующими значениями:

- GNSS_OPERMODE_ANY (0x00)
- GNSS_OPERMODE_MSA (0x01)
- GNSS_OPERMODE_MSB (0x02)
- GNSS_OPERMODE_MSS (0x04)
- GNSS_OPERMODE_CELLID (0x08)
- GNSS_OPERMODE_AFLT (0x10)
- GNSS_OPERMODE_OTDOA (0x20)

0x40-0xFF зарезервированы.

Эта команда используется для двух целей:

— Чтобы настроить режим работы в случае конфигурации SUPL. Ожидается, что мобильные операторы настраивают устройство только для работы в режиме майкрософт, с помощью которого служба SUPL используется для получения данных помощи (GNSS_OPERMODE_MSB), или в автономном режиме (GNSS_OPERMODE_MSS), в котором устройство GNSS может работать действительно автономно или использовать помощь, полученную из источников, отличных от службы SUPL. Автономный режим фактически эквивалентен режиму по умолчанию (GNSS_OPERMODE_ANY).

— Настройка различных режимов операций в целях тестирования. В основном это будет использоваться мобильными операторами или изготовителами оборудования для проверки.

Установка GNSS_ForceOperationMode SUPL на GNSS_OPERMODE_MSS является указанием для системы GNSS не выполнять никакого взаимодействия с сервером SUPL для данных AGNSS.
GNSS_ResetEngine
Эта команда очищает состояние подсистемы GNSS. После выдачи этой команды подсистема будет готова к исправлению холодного запуска:

— Все данные помощи будут удалены.

- Альманак сохранится.

— Параметры конфигурации ядра GNSS будут сохраняться.

Эта команда должна вызываться только при отсутствии активного сеанса исправления. Эта команда обычно используется для рекурсивного тестирования времени GNSS для первого исправления при холодном запуске.
GNSS_ClearAgnssData
Эта команда очищает данные о помощи AGNSS из подсистемы GNSS. Это используется главным образом для тестирования, чтобы убедиться, что драйвер запрашивает данные помощи при запросе исправления. Связанные данные команды содержат конкретный перечисление GNSS_AGNSS_REQUEST_TYPE, чтобы указать, что определенный элемент данных должен быть очищен:

— Если указан GNSS_AGNSS_TimeInjection, ссылка на время будет удалена в подсистеме GNSS. Это может привести к тому, что подсистема GNSS снова запрашивает внедрение времени.

— Если указана GNSS_AGNSS_PositionInjection, в подсистеме GNSS будет удалена ссылка на грубое положение. Это может привести к тому, что подсистема GNSS снова запрашивает грубое внедрение позиции.

— Если указана GNSS_AGNSS_BlobInjection, оба эфемериса, полученные из спутников, и все внедренные BLOB-объекты помощи будут удалены в подсистеме GNSS. Это может привести к тому, что подсистема GNSS снова запрашивает большой двоичный объект помощи.

Настоятельно рекомендуется поддерживать эту команду в целях тестирования, даже если данные справки не получены из платформы расположения ОС.
GNSS_SetSuplVersion
Эта команда задает версию SUPL, которую мобильный оператор хочет поддерживать. Данные команды содержат значение GNSS_SUPL_VERSION структуры, которая включает как основные, так и дополнительные версии SUPL, указанные мобильным оператором.

Клиент SUPL должен использовать версию SUPL, как указано в стандартах OMA SUPL, сводные данные следующим образом:

— Для сценариев, инициированных сетью, сообщение SUPL INIT из H-SLP или E-SLP в SET содержит предполагаемый основной и дополнительный версии SUPL M1.m1 (обычно самая высокая версия, поддерживаемая SLP) в параметре версии. Сообщение SUPL INIT также содержит минимальный номер основной версии SUPL M2, для которого продолжение сеанса set возможно в минимальном параметре версии. Значение M2 будет зависеть от предполагаемой службы SUPL— например, для одного расположения исправление M2 может быть одним; для триггерного расположения M2 может быть двумя. Сеанс SUPL можно проводить между SLP и SET, пока set использует основную версию SUPL между M2 и M1. Set обычно продолжает сеанс SUPL, если он поддерживает основную версию M SUPL между M2 и M1 (например, M2 ≤ M ≤ M1) и указывает эту основную версию и поддерживаемую дополнительную версию m в следующем сообщении (например, неявно в параметре версии сообщения).

— Для сеансов SUPL, инициированных SET, начальное сообщение SUPL из SET содержит поддерживаемую основную и дополнительную версию SUPL M1.m1 (неявно в параметре версии). H-SLP продолжает сеанс, если он поддерживает ту же основную версию M1 и в противном случае отправляет SUPL END и завершает сеанс.
GNSS_SetNMEALogging
Эта команда задает состояние для ведения журнала NMEA.

Эта команда приводит к тому, что драйвер GNSS запускает или останавливает предоставление сведений об исправлении данных с помощью строк NMEA. Драйвер GNSS должен продолжать предоставлять исправления в структуре GNSS_FIXDATA.

Параметр представляет собой DWORD со следующими значениями:

- GNSS_NMEALOGGING_NONE (0x00)
- GNSS_NMEALOGGING_ALL (0xFF)

Значение по умолчанию для этой команды не является ведением журнала NMEA (GNSS_NMEALOGGING_NONE).

Эта команда не должна сохраняться во время перезагрузки системы.

Эта команда была введена для поддержки тестирования OEM.

Эта команда не используется платформой расположения или средствами тестирования Майкрософт.
GNSS_SetUplServerAccessInterval
Эта команда задает минимальное время между запросами на сервер, чтобы предотвратить перегрузку службы. Интервал времени задается в секундах.

Мобильные операторы могут использовать поставщик службы конфигурации для настройки этого параметра, если они требуют его. Если этот параметр не поддерживается, если его можно игнорировать, но команды конфигурации SUPL не должны завершиться ошибкой.
GNSS_SetNiTimeoutInterval
Эта команда задает время, сколько времени устройство должно ожидать ввода от пользователя, прежде чем он отвечает на запрос NI, выполняющий действие по умолчанию. Интервал времени указывается в секундах, а значение по умолчанию — 35 секунд. Это время ожидания превышает 5 секунд, чем время ожидания, используемое операционной системой для ожидания ответа от пользователя, и это просто не удалось в случае, если операционная система не отвечает.

Эта команда применима только к запросам, инициированным сетью, в которых запрашивается проверка от пользователя. Мобильные операторы могут использовать поставщика служб конфигурации для переопределения значения по умолчанию из операционной системы. В таком случае значения по умолчанию, указанные выше, должны быть заменены значениями, предоставленными мобильным оператором.
GNSS_ResetGeofencesTracking
Эта команда сбрасывает операцию отслеживания геозон. Драйвер GNSS должен удалить все геозоны из подсистемы GNSS, остановить отслеживание геозон и остановить мониторинг для условий сигнала. Операция отслеживания геозон начинается как обычно, только если HLOS создает одну или несколько новых геозон.
GNSS_SetSuplVersion2
Эта команда задает версию SUPL 2 для драйвера GNSS.
GNSS_CustomCommand
Диапазон для пользовательских команд GNSS для определенных IHV: 0x0100 – 0x01FF.

Требования

Требование Ценность
заголовка gnssdriver.h