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


перечисление 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
Сообщает драйверу о том, включено ли расположение на устройстве. Эта команда выполняется каждый раз, когда служба определения местоположения включается или отключается на устройстве.

Связанные данные команды являются логическим значением.

После получения этой команды значение 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 должен просто сохранить поведение по умолчанию.

Связанные данные команды являются логическим значением:

- GNSS_SetLocationNIRequestAllowed задано значение TRUE=1—> Разрешить

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

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

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

Адаптер 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 , то в подсистеме GNSS будут удалены оба эфемерия, полученные от спутников, и любой внедренный вспомогательный BLOB-объект. Это может привести к тому, что подсистема GNSS снова запросит большой двоичный объект помощи.

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

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

— Для сценариев, инициированных сетью, сообщение SUPL INIT от H-SLP или E-SLP в SET содержит предполагаемую основную и дополнительную версию SUPL M1.m1 (как правило, самую высокую версию, поддерживаемую SLP) в параметре version. Сообщение 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