Compartilhar via


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

  1. Na sua assinatura, acesse provedores de recursos nas configurações. Pesquise Microsoft.Orbital e registre-o como um provedor.
  2. 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.

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

  1. Na guia Função, pesquise e selecione Remetente de Dados dos Hubs de Eventos do Azure. Clique em Avançar.
  2. Na guia Membros, atribua acesso a Usuário, grupo ou entidade de serviço.
  3. Clique em + Selecionar membros.
  4. Pesquise Provedor de Recursos do Azure Orbital e clique em Selecionar.
  5. Clique em Revisar + atribuir. Essa ação concederá à Estação Terrestre do Azure Orbital os direitos de enviar telemetria para o 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 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:

  1. Escolha um namespace usando a lista suspensa Namespace do 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

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.

Próximas etapas