Compartir a través de


Recepción de telemetría de antena en tiempo real

La estación terrestre de Azure Orbital emite eventos de telemetría de antena que se pueden usar para analizar la operación de la estación terrestre durante un contacto. Puede configurar el perfil de contacto para enviar eventos de telemetría a Azure Event Hubs..

En esta guía, aprenderá a:

  • Configuración de Azure Event Hubs para Azure Orbital Ground Station
  • Habilite la telemetría en el perfil de contacto.
  • Comprobación del contenido de los datos de telemetría
  • Descripción de los puntos de telemetría

Configuración de Event Hubs

  1. En la suscripción, vaya a proveedores de recursos en la configuración. Busque Microsoft.Orbital y regístrelo como proveedor.
  2. Crear un espacio de nombres de Azure Event Hubs y un centro de eventos en la suscripción.

Nota:

Elija Acceso público para el acceso de conectividad a Eventhubs. No se admite el acceso privado ni los puntos de conexión de servicio.

  1. En el menú izquierdo, seleccione Control de acceso (IAM). En "Conceder acceso a este recurso", seleccione Agregar asignación de roles.

Nota:

Para asignar roles de Azure, debe tener: Microsoft.Authorization/roleAssignments/writepermisos, como Administrador de acceso de usuario o Propietario

  1. En la pestaña Rol, busque y seleccione Remitente de datos de Azure Event Hubs. Haga clic en Next.
  2. En la pestaña Miembros, asigne acceso a Usuario, grupo o entidad de servicio.
  3. Haga clic en +Seleccionar miembros.
  4. Busque Proveedor de recursos de Azure Orbitaly haga clic en Seleccione.
  5. Haga clic en Revisar y asignar. Esta acción concede a Azure Orbital Ground Station los derechos para enviar telemetría al centro de eventos.
  6. Para confirmar la asignación de roles recién agregada, vuelva a la página Control de acceso (IAM) y seleccione Consulta del acceso a este recurso. El proveedor de recursos de Azure Orbital debe estar en Remitente de datos de Azure Event Hubs.

Habilitación de la telemetría de Event Hubs para un perfil de contacto

Configure un perfil de contacto de la manera siguiente:

  1. Elija un espacio de nombres en la lista desplegable Espacio de nombres de Events Hubs.
  2. Elija una instancia en la lista desplegable Instancia del Events Hubs que aparece después de seleccionar el espacio de nombres.

Puede actualizar la configuración de un perfil de contacto existente

Comprobación de los datos de telemetría de antena desde un contacto

Programar contactos mediante el perfil de contacto que configuró anteriormente para la telemetría de Event Hubs. Una vez que comience un contacto, debería empezar a ver los datos en Event Hubs poco después.

Puede comprobar la presencia y el contenido de los datos de telemetría entrantes de varias maneras.

Panel del espacio de nombres de Event Hubs

Para comprobar que los eventos se reciben en Event Hubs, puede comprobar los gráficos presentes en la página de información general del espacio de nombres de Event Hubs dentro del grupo de recursos. Esta vista muestra los datos de todas las instancias de Event Hubs dentro de un espacio de nombres. Puede ir a la página de información general de una instancia específica del centro de eventos en el grupo de recursos para ver los gráficos de esa instancia.

Entrega de datos de telemetría de antena a una cuenta de almacenamiento

Puede habilitar la característica Capture de Event Hubs para entregar automáticamente los datos de telemetría a una cuenta de Azure Blob Storage que elija. Siga las Instrucciones para habilitar Capture y capturar datos en Azure Storage. Una vez habilitada, puede comprobar el contenedor y ver o descargar los datos.

Descripción de los puntos de telemetría

Versión actual del esquema de telemetría: 4.1

La estación terrestre proporciona telemetría mediante Avro como esquema. A continuación se muestra el esquema. Tenga en cuenta que las antenas de Microsoft emiten telemetría una vez recibido el primer punto de datos. La telemetría se notifica mediante un enfoque de "último valor conocido", lo que significa que siempre enviaremos el valor más reciente que tenemos para una métrica. Debido a este comportamiento, es posible que vea un valor NULL en el primer segundo de un contacto hasta que se produzca la métrica por primera 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" ]
                        }
                      ]
                    }
                  }
                ]
              }
            ]
          }
        }
      ]
    }
  ]
}

En la tabla siguiente se proporciona el dispositivo o punto de origen, los valores posibles y la definición de cada punto de telemetría.

Punto de telemetría Origen Dispositivo/Punto Valores posibles Definición
version Establecer manualmente internamente Versión de lanzamiento de la telemetría
contactID Recurso de contacto Número de identificación del contacto
contactPlatformIdentifier Recurso de contacto
groundStationName Recurso de contacto Nombre de la estación de tierra
antennaType Los generadores de telemetría de asociados o Microsoft respectivos establecen este valor MICROSOFT, KSAT, VIASAT Red de antena utilizada para el contacto.
antennaId Recurso de contacto Nombre legible del id. de antena
spacecraftName Analizado desde el identificador de la plataforma de contacto Nombre de la nave espacial
gpsTime Coversion de utcTime Tiempo en el tiempo GPS en el que se generó el mensaje de telemetría del cliente.
utcTime Hora actual Hora UTC en la que se generó el mensaje de telemetría del cliente.
azimuthDecimalDegrees ACU: AntennaAzimuth La azimuth de la antena en grados decimales.
elevationDecimalDegrees ACU: AntennaElevation Elevación de antena en grados decimales.
contactTleLine1 ACU: Satellite[0].Model.Value Cadena de línea TLE 1 Primera línea del TLE utilizado para el contacto.
contactTLeLine2 ACU: Satellite[0].Model.Value Cadena de línea TLE 2 Segunda línea del TLE utilizado para el contacto.
nombre [Nivel de vínculo] Vínculo de perfil de contacto Nombre del vínculo
direction Vínculo de perfil de contacto Vínculo superior, vínculo hacia abajo Dirección del vínculo usado para el contacto.
polarización Vínculo de perfil de contacto RHCP, LHCP, DualRhcpLhcp, LinearVertical, LinearHorizontal Polarización del vínculo utilizado para el contacto.
uplinkEnabled ACU: SBandCurrent o UHFTotalCurrent • NULL (dirección CenterFrequencyMhz o Downlink no válida)
• False (Bandas distintas de S y UHF o Amp Current < Threshold)
• True (S/UHF-band, Uplink, Amp Current > Threshold)
Indica si el vínculo superior se ha habilitado para el contacto.
nombre [Nivel de canal] Canal de vínculo de perfil de contacto Nombre del canal
modemName Módem Nombre del dispositivo módem
digitalerName Digitalizador Nombre del dispositivo digitalizador
endpointName Canal de vínculo de perfil de contacto Nombre del punto de conexión usado para el contacto.
inputEbN0InDb Módem: measuredEbN0 • NULL (modelo de módem distinto de QRadio o QRx)
• Double: Input EbN0
Energía de entrada por bit a densidad espectral de potencia de ruido en dB.
inputEsN0InDb Módem: measuredEsN0 • NULL (modelo de módem distinto de QRx)
• Double: Input EsN0
Energía de entrada por símbolo a densidad espectral de potencia de ruido en dB.
inputRfPowerDbm Digitalizador: inputRfPower • NULL (controlador de vínculo superior o digitalizador que no sea SNNB o SNWB)
• Double: Entrada Rf Power
Potencia RF de entrada en dBm.
outputRfPowerDbm Digitalizador: outputRfPower • NULL (controlador de vínculo inferior o digitalizador que no sea SNNB o SNWB)
• Double: Salida RF Power
Potencia de RF de salida en dBm.
outputPacketRate Digitalizador: rfOutputStream[0].measuredPacketRate • NULL (controlador de vínculo inferior o digitalizador que no sea SNNB o SNWB)
• Double: Velocidad de paquetes de salida
Velocidad de paquetes medida para el vínculo superior
gapCount Digitalizador: rfOutputStream[0].gapCount • NULL (controlador de vínculo inferior o digitalizador que no sea SNNB o SNWB)
• Double: Gap count
Recuento de brechas de paquetes para vínculo superior
modemLockStatus Módem: carrierLockState • NULL (modelo de módem distinto de QRadio o QRx; no se pudo analizar el estado de bloqueo Enum)
• Cadena vacía (si la lectura de métricas era null)
• Cadena: Estado de bloqueo
Confirmación de que el módem estaba bloqueado.
commandsSent Módem: commandsSent • NULL (si no es Vínculo superior y QRadio)
• Double: número de comandos enviados
Confirmación de que los comandos se enviaron durante el contacto.

Consumidores de eventos

Puede escribir aplicaciones de consumidor sencillas para recibir eventos de Event Hubs mediante consumidores de eventos. Consulte la siguiente documentación para obtener información sobre cómo enviar y recibir eventos de Event Hubs en varios idiomas:

Registro de cambios

2024-04-17: Se ha actualizado el esquema para incluir posibles valores NULL para los TLE y se ha agregado EsN0 para QRX y se ha agregado información sobre cómo las antenas de Microsoft pueden tener un valor NULL para un campo durante el primer segundo de un contacto. 2023-10-03: Presenta la versión 4.0. Esquema actualizado para incluir métricas de paquetes de vínculo superior y nombres de infraestructura en uso (estación terrestre, antena, nave espacial, módem, digitalizador, enlace, canal)
2023-06-05: Esquema actualizado para mostrar las métricas en canales en lugar de vínculos.

Pasos siguientes