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

  1. Na sua subscrição, aceda a fornecedores de recursos nas definições. Pesquise por Microsoft.Orbital e registre-o como um provedor.
  2. 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.

  1. 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

  1. Na guia Função, procure e selecione Remetente de Dados dos Hubs de Eventos do Azure. Clique em Next.
  2. Na guia Membros, atribua acesso a Usuário, grupo ou entidade de serviço.
  3. Clique em + Selecionar membros.
  4. Procure o Provedor de Recursos Orbitais do Azure e clique em Selecionar.
  5. 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.
  6. 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:

  1. Escolha um namespace usando a lista suspensa Namespace de Hubs de Eventos.
  2. 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.

Próximos passos