Receba telemetria de antena em tempo real
A estação terrestre orbital do Azure 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 para os Hubs de Eventos do Azure.
Neste guia, ficará a saber como:
- Configurar Hubs de Eventos do Azure para a Estação Terrestre Orbital do Azure
- Habilite a telemetria em seu perfil de contato.
- Verificar o conteúdo dos dados de telemetria
- Compreender os pontos de telemetria
Configurar Hubs de Eventos
- Na sua subscrição, aceda a fornecedores de recursos nas definições. Pesquise por Microsoft.Orbital e registre-o como um provedor.
- Crie um namespace de Hubs de Eventos do Azure e um hub de eventos em sua assinatura.
Nota
Escolha Acesso público para 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 este recurso", selecione Adicionar atribuição de função.
Nota
Para atribuir funções do Azure, você deve ter: Microsoft.Authorization/roleAssignments/write
permissões, como Administrador de Acesso de Usuário ou Proprietário
- Na guia Função, procure e selecione Remetente de Dados dos Hubs de Eventos do Azure. Clique em Next.
- Na guia Membros, atribua acesso a Usuário, grupo ou entidade de serviço.
- Clique em + Selecionar membros.
- Procure o Provedor de Recursos Orbitais do Azure e clique em Selecionar.
- Clique em Rever + atribuir. Esta ação concede à Estação Terrestre Orbital do Azure os direitos para enviar telemetria para o seu 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 Orbitais do Azure deve estar em Remetente de Dados dos Hubs de Eventos do Azure.
Habilitar a telemetria de Hubs de Eventos para um perfil de contato
Configure um perfil de contato da seguinte maneira:
- Escolha um namespace usando a lista suspensa Namespace de 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 da seguinte forma:
Verificar os dados de telemetria da antena de um contato
Agende contatos usando o perfil de contato que você configurou anteriormente para telemetria de Hubs de Eventos. Quando um contato começar, você deve começar a ver os dados em seus Hubs de Eventos logo depois.
Você pode verificar a presença e o conteúdo dos dados de telemetria de entrada de várias maneiras.
Painel de namespace de Hubs de Eventos
Para verificar se os eventos estão sendo recebidos em seus Hubs de Eventos, você pode verificar os gráficos presentes na página de visão geral do namespace Hubs de Eventos dentro do seu grupo de recursos. Essa exibição mostra dados em todas as instâncias de 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 em seu grupo de recursos para ver os gráficos dessa instância.
Fornecer dados de telemetria de antena para uma conta de armazenamento
Você pode habilitar o recurso Captura de Hubs de Eventos para entregar automaticamente os dados de telemetria a uma conta de armazenamento de Blob do Azure de sua escolha. Siga as instruções para habilitar Capturar e capturar dados para o armazenamento do Azure. Uma vez ativado, você pode verificar seu contêiner e visualizar/baixar os dados.
Compreender os pontos de telemetria
Versão atual do esquema de telemetria: 4.1
A estação terrestre fornece telemetria usando Avro como um esquema. O esquema está abaixo. Observe que as antenas da Microsoft emitem Telemetria assim 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ê pode ver um NULL
valor 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 |
---|---|---|---|
versão | Definir manualmente internamente | Versão de lançamento da telemetria | |
ID de contato | Recurso de contato | Número de identificação do contacto | |
contactPlatformIdentifier | Recurso de contato | ||
groundStationName [en] | Recurso de contato | Nome da estação terrestre | |
tipo de antena | Os respetivos construtores de telemetria Microsoft/parceiros definem esse valor | MICROSOFT, KSAT, VIASAT | Rede de antena usada para o contato. |
antennaId | Recurso de contato | Nome legível por humanos do ID da antena | |
nave espacialNome | Analisado a partir do identificador da plataforma de contato | Nome da nave espacial | |
gpsTime | Coversão de utcTime | Tempo em tempo 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. | |
azimuteDecimalGraus | ACU: AntenaAzimute | Azimute da antena em graus decimais. | |
elevaçãoGraus decimais | ACU: AntennaElevation | Elevação da antena em graus decimais. | |
contatoTleLine1 | ACU: Satélite[0]. Modelo.Valor | String da Linha TLE 1 | Primeira linha do TLE usada para o contato. |
contatoTLeLine2 | ACU: Satélite[0]. Modelo.Valor | String da Linha TLE 2 | Segunda linha do TLE utilizada para o contacto. |
nome [Nível do link] | Link do perfil de contato | Nome do link | |
direção | 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. |
uplinkAtivado | ACU: SBandCurrent ou UHFTotalCurrent | • NULL (CenterFrequencyMhz inválido ou direção de downlink) • Falso (Bandas diferentes de S e UHF ou Amp Limiar de Corrente < ) • True (banda S/UHF, Uplink, Amp Current > Threshold) |
Indica se o uplink foi habilitado para o contato. |
nome [Nível do canal] | Canal de link do perfil de contato | Nome do canal | |
modemNome | Modem | Nome do dispositivo de modem | |
digitizerName | Digitalizador | Nome do dispositivo digitalizador | |
endpointName | Canal de 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: Entrada EbN0 |
Energia de entrada por bit para densidade espectral de potência de ruído em dB. |
inputEsN0InDb | Modem: measuredEsN0 | • NULL (modelo de modem diferente de QRx) • Duplo: Entrada EsN0 |
Energia de entrada por símbolo para densidade espectral de potência de ruído em dB. |
entradaRfPowerDbm | Digitalizador: inputRfPower | • NULL (Uplink ou driver de digitalizador diferente de SNNB ou SNWB) • Duplo: Entrada Rf Power |
Potência RF de entrada em dBm. |
saídaRfPowerDbm | Digitalizador: outputRfPower | • NULL (Downlink ou driver de digitalizador diferente de SNNB ou SNWB) • Duplo: Potência Rf de saída |
Potência RF Ouput em dBm. |
outputPacketRate | Digitalizador: rfOutputStream[0].measuredPacketRate | • NULL (Downlink ou driver de digitalizador diferente de SNNB ou SNWB) • Duplo: Taxa de pacotes de saída |
Taxa de pacotes medida para Uplink |
Contagem de lacunas | Digitalizador: rfOutputStream[0].gapCount | • NULL (Downlink ou driver de digitalizador diferente de SNNB ou SNWB) • Duplo: Contagem de lacunas |
Contagem de lacunas de pacotes para Uplink |
modemLockStatus | Modem: carrierLockState | • NULL (modelo de modem diferente de QRadio ou QRx; não foi possível analisar o status de bloqueio Enum) • String vazia (se a leitura métrica for nula) • String: Status do bloqueio |
Confirmação de que o modem estava bloqueado. |
comandosSent | Modem: comandosSent | • NULL (se não Uplink e QRadio) • Duplo: # de comandos enviados |
Confirmação de que os comandos foram enviados durante o contato. |
Consumidores de eventos
Você pode escrever aplicativos de consumidor simples para receber eventos de 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:
Registo de alterações
2024-04-17 - Esquema atualizado para incluir possível NULL para TLEs, e adicionado EsN0 para QRX, e adicionado blurb sobre como as antenas da Microsoft podem ter um NULL para um campo durante o primeiro segundo de um contato.
2023-10-03 - Introduza a versão 4.0. Esquema atualizado para incluir métricas de pacotes 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.