enumeração GNSS_DRIVERCOMMAND_TYPE (gnssdriver.h)
Essa enumeração indica o tipo de comando ou configuração do driver para o driver GNSS fornecido na estrutura GNSS_DRIVERCOMMAND_PARAM .
Syntax
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;
Constantes
GNSS_SetLocationServiceEnabled Informa ao driver se a localização está habilitada no dispositivo. Esse comando é emitido sempre que o serviço de localização é habilitado/desabilitado no dispositivo. Os dados de comando associados são um BOOL. Ao receber esse comando definido como FALSE, o driver GNSS e o dispositivo GNSS devem: – Interrompa as sessões de localização em andamento de qualquer tipo e de qualquer aplicativo HLOS (se houver suporte para vários aplicativos). - Se o dispositivo ou driver GNSS fizer qualquer operação em segundo plano, por exemplo, acompanhamento de cerca geográfica, atualização de dados de assistência etc., eles também deverão ser interrompidos. O adaptador GNSS interromperá todas as operações descarregadas quando o local estiver desabilitado. Em relação às solicitações de localização da operadora móvel: - As solicitações de localização da operadora móvel para localização de emergência, para atender aos requisitos da CALEA, etc. ainda devem ser atendidas independentemente da status de opção de localização. Espera-se que essas solicitações tenham o sinalizador de substituição de privacidade definido ou/e sejam iniciados na hora do usuário fazer uma chamada de emergência. - Outras solicitações de localização iniciadas pela rede devem respeitar o comando GNSS_SetLocationNIRequestAllowed se esse comportamento for exigido pela operadora móvel e implementado pelo driver GNSS. Se o HLOS precisar iniciar qualquer nova solicitação de localização, por exemplo, para permitir que o usuário localize remotamente o dispositivo, o adaptador GNSS enviará um comando para definir o GNSS_SetLocationServiceEnabled como TRUE, iniciará a sessão de correção e, quando os resultados forem recebidos, enviará outro comando para definir o GNSS_SetLocationServiceEnabled como FALSE: - GNSS_SetLocationServiceEnabled definido como TRUE=1-> Habilitado - GNSS_SetLocationServiceEnabled definido como FALSE=0-> Desabilitado A menos que esse comando seja emitido pelo adaptador GNSS, o driver deve assumir que o serviço de localização está desabilitado no sistema. |
GNSS_SetLocationNIRequestAllowed Informa ao driver se ele tem permissão para entreter solicitações de localização iniciadas pela rede provenientes da rede móvel. O comando só precisa ter suporte se necessário pela operadora móvel. A partir de Windows 10, a Microsoft não está ciente de nenhuma operadora móvel que exija isso por mais tempo, mas isso permanece para evitar problemas de bloqueio durante a comercialização. Se o comando não for implementado, o driver GNSS deverá simplesmente manter seu comportamento padrão. Os dados de comando associados são um BOOL: - GNSS_SetLocationNIRequestAllowed definido como TRUE=1 -> Permitir - GNSS_SetLocationNIRequestAllowed definido como FALSE=0-> NotAllow A menos que esse comando seja emitido explicitamente pelo adaptador GNSS, o driver deve assumir que as solicitações ni estão habilitadas no sistema. O adaptador GNSS mantém um estado em todo o sistema que indica se as solicitações de NI são permitidas. Esse estado é determinado pela opção master local (a configuração que o usuário pode alternar para ativar ou desativar a localização) e uma configuração configurada pela operadora móvel para indicar se as solicitações de NI dependem do local master alternar ou não. O adaptador GNSS avaliará o valor dessas duas configurações e indicará para o driver GNSS se as solicitações de NI forem permitidas ou não. As solicitações de localização para serviços de emergência ou para CALEA (por exemplo, o caso de substituição de privacidade que está sendo definida) devem ser atendidas independentemente do valor dessa configuração. |
GNSS_ForceSatelliteSystem Esse comando faz com que o driver GNSS use os sistemas satélite especificados para obter correções. O parâmetro é um DWORD com os seguintes valores: - GNSS_SATELLITE_ANY (0x00) - GNSS_SATELLITE_GPS (0x01) - GNSS_SATELLITE_GLONASS (0x02) - GNSS_SATELLITE_BEIDOU (0x04) - GNSS_SATELLITE_GALILEO (0x08) 0x10-0xFF são reservados. Espera-se que isso seja usado apenas para fins de teste. Algumas operadoras móveis exigem validações usando um único sistema satélite. |
GNSS_ForceOperationMode Esse comando faz com que o driver GNSS use o modo de operação especificado. O parâmetro é um DWORD com os seguintes valores: - 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 são reservadas. Esse comando é usado para duas finalidades: – Para configurar o modo de operação no caso da configuração de SUPL. Espera-se que as operadoras móveis configurem apenas o dispositivo para funcionar no modo baseado na Microsoft pelo qual o serviço SUPL é usado para obter dados de assistência (GNSS_OPERMODE_MSB) ou no modo autônomo (GNSS_OPERMODE_MSS) no qual o dispositivo GNSS pode funcionar realmente autônomo ou usar assistência obtida de fontes diferentes do serviço SUPL. O modo autônomo é, na verdade, equivalente ao modo padrão (GNSS_OPERMODE_ANY). – Para configurar diferentes modos de operação para fins de teste. Isso seria usado principalmente por operadoras móveis ou OEMs para fins de validação. Definir o GNSS_ForceOperationMode SUPL como GNSS_OPERMODE_MSS é uma indicação para o sistema GNSS não fazer nenhum tipo de interação com o servidor SUPL para dados AGNSS. |
GNSS_ResetEngine Esse comando limpa o estado do mecanismo GNSS. Depois que esse comando for emitido, o mecanismo estará pronto para uma correção de inicialização a frio: – Todos os dados de assistência serão excluídos. - O almanaque persistirá. - Os parâmetros de configuração do mecanismo GNSS persistirão. Esse comando só deve ser chamado quando não houver uma sessão de correção ativa. Normalmente, esse comando é usado para testar recursivamente o tempo do GNSS para corrigir pela primeira vez no início frio. |
GNSS_ClearAgnssData Esse comando limpa os dados de assistência do AGNSS do mecanismo GNSS. Isso é usado principalmente para fins de teste para garantir que o driver solicite dados de assistência quando uma correção é solicitada. Os dados de comando associados contêm a enumeração GNSS_AGNSS_REQUEST_TYPE específica para indicar o elemento de dados específico a ser limpo: - Se GNSS_AGNSS_TimeInjection for especificado, a referência de tempo será excluída no mecanismo GNSS. Isso pode fazer com que o mecanismo GNSS solicite novamente a injeção de tempo. - Se GNSS_AGNSS_PositionInjection for especificado, a referência de posição grosseira será excluída no mecanismo GNSS. Isso pode fazer com que o mecanismo GNSS solicite novamente a injeção de posição grosseira. - Se GNSS_AGNSS_BlobInjection for especificado, os efêmeros adquiridos dos satélites e qualquer blob de assistência injetado serão excluídos no mecanismo GNSS. Isso pode fazer com que o mecanismo GNSS solicite novamente um blob de assistência. É altamente recomendável que esse comando tenha suporte para fins de teste, mesmo que os dados de assistência não sejam obtidos da plataforma de localização do sistema operacional. |
GNSS_SetSuplVersion Esse comando define a versão SUPL que a operadora móvel deseja ter suporte. Os dados de comando contêm um valor de GNSS_SUPL_VERSION estrutura que inclui as versões principais e secundárias do SUPL indicadas pela operadora móvel. O cliente SUPL deve usar a versão SUPL conforme especificado nos padrões SUPL do OMA, resumindo da seguinte maneira: – Para cenários iniciados pela rede, a mensagem SUPL INIT do H-SLP ou do E-SLP para o SET carrega a versão principal e secundária do SUPL pretendida M1.m1 (normalmente a versão mais alta com suporte do SLP) no parâmetro de versão. A mensagem SUPL INIT também carrega o número mínimo da versão principal do SUPL M2 para o qual a continuação da sessão pelo SET é possível no parâmetro de versão mínimo. O valor de M2 dependerá do serviço SUPL pretendido – por exemplo, para uma única correção de local M2 pode ser um; para o local disparado M2 pode ser dois. Uma sessão SUPL pode ser realizada entre o SLP e o SET, desde que o SET esteja usando uma versão principal do SUPL entre M2 e M1. O SET continuará a sessão SUPL normalmente se oferecer suporte a uma versão principal M do SUPL entre M2 e M1 (por exemplo, M2 ≤ M ≤ M1) e indicar essa versão principal e uma versão secundária com suporte m na próxima mensagem (por exemplo, implicitamente no parâmetro de versão da mensagem). - Para sessões SUPL iniciadas por SET, a mensagem SUPL inicial do SET carrega a versão principal e secundária do SUPL com suporte M1.m1 (implicitamente no parâmetro de versão). O H-SLP continuará a sessão se der suporte à mesma versão principal M1 e, caso contrário, enviar um SUPL END e encerrar a sessão. |
GNSS_SetNMEALogging Esse comando define o status para registro em log NMEA. Esse comando faz com que o driver GNSS inicie/pare de fornecer as informações de correção de dados por meio de cadeias de caracteres NMEA. O driver GNSS deve continuar fornecendo correções na estrutura GNSS_FIXDATA . O parâmetro é um DWORD com os seguintes valores: - GNSS_NMEALOGGING_NONE (0x00) - GNSS_NMEALOGGING_ALL (0xFF) O valor padrão para esse comando não é nenhum registro em log NMEA (GNSS_NMEALOGGING_NONE). Esse comando não deve persistir na reinicialização do sistema. Esse comando foi introduzido para dar suporte ao teste de OEM. Esse comando não é usado pela estrutura de localização ou pelas ferramentas de teste da Microsoft. |
GNSS_SetUplServerAccessInterval Esse comando define o tempo mínimo entre as solicitações para o servidor para a posição assistida para evitar a sobrecarga de serviço. O intervalo de tempo é especificado em segundos. As operadoras móveis podem usar o provedor de serviços de configuração para ajustar essa configuração, se precisarem dela. Se não houver suporte para esse parâmetro, se puder ser ignorado, mas os comandos de configuração SUPL não falharão. |
GNSS_SetNiTimeoutInterval Esse comando define quanto tempo o dispositivo deve aguardar a entrada de um usuário antes de responder à solicitação NI que executa a ação padrão. O intervalo de tempo é especificado em segundos e o valor padrão é 35 segundos. Esse tempo limite é 5 segundos maior que o tempo limite usado pelo sistema operacional para aguardar a resposta do usuário e é simplesmente um failsafe no caso de o sistema operacional não responder. Esse comando é aplicável somente a solicitações iniciadas pela rede nas quais a verificação do usuário é solicitada. As operadoras móveis podem usar o provedor de serviços de configuração para substituir o valor padrão do sistema operacional. Nesse caso, os valores padrão especificados acima devem ser substituídos pelos valores fornecidos pela operadora móvel. |
GNSS_ResetGeofencesTracking Esse comando redefine a operação de acompanhamento de cerca geográfica. O driver GNSS deve excluir todas as cercas geográficas do mecanismo GNSS, interromper o rastreamento de cerca geográfica e interromper o monitoramento para condições de sinal. A operação de acompanhamento de cerca geográfica começará como de costume somente quando o HLOS criar uma ou mais novas cercas geográficas. |
GNSS_SetSuplVersion2 Esse comando define a versão SUPL 2 para o driver GNSS. |
GNSS_CustomCommand Intervalo para comandos GNSS personalizados específicos do IHV: 0x0100 – 0x01FF. |
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | gnssdriver.h |