Receber telemetria de antena em tempo real
A Estação Terrestre do Azure Orbital emite eventos de telemetria de antena que podem ser usados para analisar a operação da estação terrestre durante um contato. Você pode configurar seu perfil de contato para enviar eventos de telemetria nos Hubs de Eventos do Azure.
Neste guia, você aprenderá a:
- Configurar os Hubs de Eventos do Azure na Estação Terrestre do Azure Orbital
- Habilite a telemetria no seu perfil de contato.
- Verificar o conteúdo dos dados de telemetria
- Entender os pontos de telemetria
Configurar os Hubs de Eventos
- Na sua assinatura, acesse provedores de recursos nas configurações. Pesquise Microsoft.Orbital e registre-o como um provedor.
- Criar um namespace dos Hubs de Eventos do Azure e um hub de eventos na sua assinatura.
Observação
Escolha Acesso público para obter acesso de conectividade aos Eventhubs. Não há suporte para acesso privado ou pontos de extremidade de serviço.
- No menu à esquerda, selecione Controle de acesso (IAM). Em 'Conceder acesso a esse recurso', selecione Adicionar a atribuição de função.
Observação
Para atribuir as funções do Azure, você deve ter: permissões de Microsoft.Authorization/roleAssignments/write
, como Administrador de Acesso do Usuário ou Proprietário
- Na guia Função, pesquise e selecione Remetente de Dados dos Hubs de Eventos do Azure. Clique em Avançar.
- Na guia Membros, atribua acesso a Usuário, grupo ou entidade de serviço.
- Clique em + Selecionar membros.
- Pesquise Provedor de Recursos do Azure Orbital e clique em Selecionar.
- Clique em Revisar + atribuir. Essa ação concederá à Estação Terrestre do Azure Orbital os direitos de enviar telemetria para o hub de eventos.
- Para confirmar a atribuição de função recém-adicionada, volte para a página Controle de Acesso (IAM) e selecione Exibir acesso a este recurso. O Provedor de Recursos do Azure Orbital deve estar em Remetente de Dados dos Hubs de Eventos do Azure.
Habilitar a telemetria dos Hubs de Eventos para um perfil de contato
Configure um perfil de contato da seguinte maneira:
- Escolha um namespace usando a lista suspensa Namespace do Hubs de Eventos.
- Escolha uma instância usando a lista suspensa Instância de Hubs de Eventos que aparece após a seleção do namespace.
Você pode atualizar as configurações de um perfil de contato existente
Verifique os dados de telemetria da antena de um contato
Agendar contatos usando o perfil de contato configurado anteriormente para telemetria dos Hubs de Eventos. Depois que um contato começar, você deverá começar a ver dados nos Hubs de Eventos logo depois.
Você poderá verificar a presença e o conteúdo dos dados de telemetria de entrada de várias maneiras.
Painel do namespace dos Hubs de Eventos
Para verificar se os eventos estão sendo recebidos nos seus Hubs de Eventos, você pode verificar os grafos presentes na página de visão geral do namespace dos Hubs de Eventos no seu grupo de recursos. Essa exibição mostra os dados em todas as instâncias dos Hubs de Eventos em um namespace. Você pode navegar até a página de visão geral de uma instância específica do Hub de Eventos no seu grupo de recursos para ver os grafos dessa instância.
Fornecer dados de telemetria da antena para uma conta de armazenamento
Você pode habilitar o recurso Captura de Hubs de Eventos para entregar automaticamente os dados de telemetria para uma conta de Armazenamento de Blobs do Azure da sua escolha. Siga as instruções para habilitar a Captura e capturar dados no armazenamento do Azure. Quando habilitado, será possível verificar o contêiner e exibir/baixar os dados.
Entender os pontos de telemetria
Versão atual do esquema de telemetria: 4.1
A estação terrestre fornece telemetria usando o Avro como esquema. O esquema está abaixo. Observe que as antenas da Microsoft emitem Telemetria depois que o primeiro ponto de dados é recebido. A telemetria é relatada usando uma abordagem de "último valor conhecido", o que significa que sempre enviaremos o valor mais recente que temos para uma métrica. Devido a esse comportamento, você poderá ver um valor NULL
no primeiro segundo de um contato até que essa métrica seja produzida pela primeira vez.
{
"namespace": "EventSchema",
"name": "TelemetryEventSchema",
"type": "record",
"fields": [
{
"name": "version",
"type": [ "null", "string" ]
},
{
"name": "contactId",
"type": [ "null", "string" ]
},
{
"name": "contactPlatformIdentifier",
"type": [ "null", "string" ]
},
{
"name": "groundStationName",
"type": [ "null", "string" ]
},
{
"name": "antennaType",
"type": {
"name": "antennaTypeEnum",
"type": "enum",
"symbols": [
"Microsoft",
"KSAT"
]
}
},
{
"name": "antennaId",
"type": [ "null", "string" ]
},
{
"name": "spacecraftName",
"type": [ "null", "string" ]
},
{
"name": "gpsTime",
"type": [ "null", "double" ]
},
{
"name": "utcTime",
"type": "string"
},
{
"name": "azimuthDecimalDegrees",
"type": [ "null", "double" ]
},
{
"name": "elevationDecimalDegrees",
"type": [ "null", "double" ]
},
{
"name": "contactTleLine1",
"type": [ "null", "string" ]
},
{
"name": "contactTleLine2",
"type": [ "null", "string" ]
},
{
"name": "links",
"type": [
"null",
{
"type": "array",
"items": {
"name": "antennaLink",
"type": "record",
"fields": [
{
"name": "name",
"type": [ "null", "string" ]
},
{
"name": "direction",
"type": {
"name": "directionEnum",
"type": "enum",
"symbols": [
"Uplink",
"Downlink"
]
}
},
{
"name": "polarization",
"type": {
"name": "polarizationEnum",
"type": "enum",
"symbols": [
"RHCP",
"LHCP",
"linearVertical",
"linearHorizontal"
]
}
},
{
"name": "uplinkEnabled",
"type": [ "null", "boolean" ]
},
{
"name": "channels",
"type": [
"null",
{
"type": "array",
"items": {
"name": "antennaLinkChannel",
"type": "record",
"fields": [
{
"name": "name",
"type": [ "null", "string" ]
},
{
"name": "modemName",
"type": [ "null", "string" ]
},
{
"name": "digitizerName",
"type": [ "null", "string" ]
},
{
"name": "endpointName",
"type": "string"
},
{
"name": "inputEbN0InDb",
"type": [ "null", "double" ]
},
{
"name": "inputEsN0InDb",
"type": [ "null", "double" ]
},
{
"name": "inputRfPowerDbm",
"type": [ "null", "double" ]
},
{
"name": "outputRfPowerDbm",
"type": [ "null", "double" ]
},
{
"name": "packetRate",
"type": [ "null", "double" ]
},
{
"name": "gapCount",
"type": [ "null", "double" ]
},
{
"name": "modemLockStatus",
"type": [
"null",
{
"name": "modemLockStatusEnum",
"type": "enum",
"symbols": [
"Unlocked",
"Locked"
]
}
]
},
{
"name": "commandsSent",
"type": [ "null", "double" ]
}
]
}
}
]
}
]
}
}
]
}
]
}
A tabela a seguir fornece o dispositivo/ponto de origem, os valores possíveis e a definição de cada ponto de telemetria.
Ponto de Telemetria | Dispositivo/Ponto de Origem | Valores possíveis | Definição |
---|---|---|---|
version | Definir manualmente internamente | Versão de lançamento da telemetria | |
contactID | Recurso do contato | Número de identificação do contato | |
contactPlatformIdentifier | Recurso do contato | ||
groundStationName | Recurso do contato | Nome da estação terrestre | |
antennaType | Os respectivos construtores de telemetria Microsoft/parceiro definem esse valor | MICROSOFT, KSAT, VIASAT | Rede de antena usada para o contato. |
antennaId | Recurso do contato | Nome legível por humanos da ID da antena | |
spacecraftName | Analisado do Identificador da Plataforma de Contato | Nome da espaçonave | |
gpsTime | Coversão do utcTime | Hora no GPS em que a mensagem de telemetria do cliente foi gerada. | |
utcTime | Hora atual | Hora em UTC em que a mensagem de telemetria do cliente foi gerada. | |
azimuthDecimalDegrees | ACU: AntennaAzimuth | Azimute da antena em graus decimais. | |
elevationDecimalDegrees | ACU: AntennaElevation | Elevação da antena em graus decimais. | |
contactTleLine1 | ACU: Satélite[0]. Model.Value | Cadeia de caracteres da Linha 1 do TLE | Primeira linha do TLE usado para o contato. |
contactTLeLine2 | ACU: Satélite[0]. Model.Value | Cadeia de caracteres da Linha 2 do TLE | Segunda linha do TLE usado para o contato. |
nome [Link-level] | Link do perfil de contato | Nome do link | |
direction | Link do perfil de contato | Uplink, Downlink | Direção do link usado para o contato. |
Polarização | Link do perfil de contato | RHCP, LHCP, DualRhcpLhcp, LinearVertical, LinearHorizontal | Polarização do link usado para o contato. |
uplinkEnabled | ACU: SBandCurrent ou UHFTotalCurrent | • NULL (Direção inválida do CenterFrequencyMhz ou Downlink) • Falso (Bandas diferentes de S e UHF ou Amp Current < Threshold) • Verdadeiro (Banda S/UHF, Uplink, Amp Current > Threshold) |
Indica se o uplink foi habilitado para o contato. |
nome [Channel-level] | Canal do link do perfil de contato | Nome do canal | |
modemName | Modem | Nome do dispositivo do modem | |
digitizerName | Digitalizador | Nome do dispositivo do digitalizador | |
endpointName | Canal do link do perfil de contato | Nome do ponto de extremidade usado para o contato. | |
inputEbN0InDb | Modem: measuredEbN0 | • NULL (Modelo de modem diferente de QRadio ou QRx) • Duplo: EbN0 de entrada |
Energia de entrada por bit para densidade espectral de energia de ruído no banco de dados. |
inputEsN0InDb | Modem: measuredEsN0 | • NULL (Modelo de modem diferente de QRx) • Duplo: EsN0 de entrada |
Energia de entrada por símbolo para densidade espectral de potência de ruído em dB. |
inputRfPowerDbm | Digitalizador: inputRfPower | • NULL (Driver de Uplink ou do Digitalizador diferente de SNNB ou SNWB) • Double: entrada de energia Rf |
Entrada de energia RF no dBm. |
outputRfPowerDbm | Digitalizador: outputRfPower | • NULL (Driver do Downlink ou do Digitalizador diferente de SNNB ou SNWB) • Double: saída de energia Rf |
Saída de energia RF no dBm. |
outputPacketRate | Digitalizador: rfOutputStream[0].measuredPacketRate | • NULL (Driver do Downlink ou do Digitalizador diferente de SNNB ou SNWB) • Duplo: taxa dos Pacotes de Saída |
Taxa de pacote medida para Uplink |
gapCount | Digitalizador: rfOutputStream[0].gapCount | • NULL (Driver do Downlink ou do Digitalizador diferente de SNNB ou SNWB) • Duplo: contagem de lacunas |
Contagem de lacunas de pacotes do Uplink |
modemLockStatus | Modem: carrierLockState | • NULL (Modelo de modem diferente de QRadio ou QRx; não foi possível analisar o status do bloqueio Enum) • Cadeia de caracteres vazia (se a leitura da métrica for nula) • Cadeia de caracteres: status do bloqueio |
Confirmação de que o modem estava bloqueado. |
commandsSent | Modem: commandsSent | • NULL (se não for Uplink e QRadio) • Duplo: # dos comandos enviados |
Confirmação de que os comandos foram enviados durante o contato. |
Consumidores de evento
Você pode gravar aplicativos de consumidor simples para receber eventos dos seus Hubs de Eventos usando consumidores de eventos. Consulte a documentação a seguir para saber como enviar e receber eventos Hubs de Eventos em vários idiomas:
Log de alteração
2024-04-17 - Esquema atualizado para incluir possíveis NULL para TLEs e EsN0 adicionado para QRX, e adição de sinopse sobre como as antenas da Microsoft podem ter um NULL em um campo durante o primeiro segundo de um contato.
2023-10-03 – Apresentar a versão 4.0. Esquema atualizado para incluir métricas de pacote de uplink e nomes de infraestrutura em uso (estação terrestre, antena, espaçonave, modem, digitalizador, link, canal)
2023-06-05 – Esquema atualizado para mostrar métricas em canais em vez de links.