Recevoir des données de télémétrie d’antenne en temps réel

Une station terrienne Azure Orbital émet des évènements de télémétrie qui peuvent être utilisés pour analyser le fonctionnement de la station terrienne pendant un contact. Vous pouvez configurer votre profil de contact pour envoyer des évènements de télémétrie à Azure Event Hubs.

Dans ce guide, vous allez apprendre à :

  • Configurer Azure Event Hubs pour une Station terrienne Azure Orbital
  • Activer la télémétrie dans votre profil de contact.
  • Vérifier le contenu des données de télémétrie
  • Comprendre les points de télémétrie

Configurer les hubs d’événement

  1. Dans votre abonnement, accédez à fournisseurs de ressources dans Paramètres. Recherchez Microsoft.Orbital et inscrivez-le en tant que fournisseur.
  2. Créez un espace de noms Azure Event Hubs et un Event Hub dans votre abonnement.

Remarque

Choisissez Accès public pour l’accès à la connectivité vers les Event Hubs. L’accès privé ou les points de terminaison de service ne sont pas pris en charge.

  1. Dans le menu de gauche, sélectionnez Contrôle d’accès (IAM). Sous Accorder l’accès à cette ressource, sélectionnez Ajouter une attribution de rôle.

Remarque

Pour attribuer des rôles Azure, vous devez disposer d’autorisations Microsoft.Authorization/roleAssignments/write comme Administrateur de l’accès utilisateur ou Propriétaire

  1. Sous l’onglet Rôle, recherchez et sélectionnez Expéditeur de données Azure Event Hubs. Sélectionnez Suivant.
  2. Sous l’onglet Membres, attribuez l’accès à Utilisateur, groupe ou principal de service.
  3. Cliquer sur + Sélectionner des membres.
  4. Recherchez Fournisseur de ressources Azure Orbital et cliquez sur Sélectionner.
  5. Cliquez sur Analyser + attribuer. Cette action octroie à la Station terrienne Azure Orbital les droits d’envoi des données de télémétrie dans votre Event Hub.
  6. Pour confirmer l’attribution de rôle nouvellement ajoutée, revenez à la page Contrôle d’accès (IAM) et sélectionnez Afficher l’accès à cette ressource. Le fournisseur de ressources Azure Orbital doit se trouver sous Expéditeur de données Azure Event Hubs.

Activer la télémétrie Event Hubs pour un profil de contact

Configurez un profil de contact comme suit :

  1. Choisissez un espace de noms à l’aide de la liste déroulante Espace de noms Event Hubs.
  2. Choisissez une instance en utilisant la liste déroulante Instance Event Hubs qui apparaît après la sélection de l’espace de noms.

Vous pouvez mettre à jour les paramètres d’un profil de contact existant en

Vérifier les données de télémétrie de l’antenne d’un contact

Planifiez des contacts en utilisant le profil de contact que vous avez précédemment configuré pour la télémétrie Event Hubs. Une fois que le contact commence, vous devriez commencer à voir les données dans vos Event Hubs peu après.

Vous pouvez vérifier la présence et le contenu des données de télémétrie entrantes de plusieurs façons.

Tableau de bord de l’espace de noms Event Hubs

Pour vérifier que les évènements sont reçus dans vos Event Hubs, vous pouvez consulter les graphes présents sur la page de présentation de votre espace de noms Event Hubs dans votre groupe de ressources. Cette vue affiche les données de toutes les instances Event Hubs au sein d’un espace de noms. Vous pouvez accéder à la page de présentation d’une instance Event Hub spécifique dans votre groupe de ressources pour visualiser les graphiques de cette instance.

Fournir des données de télémétrie d’antenne à un compte de stockage

Vous pouvez activer la fonctionnalité Event Hubs Capture pour fournir automatiquement les données de télémétrie à un compte de stockage Blob Azure de votre choix. Suivez les instructions pour activer Capture et capturer des données dans le stockage Azure. Une fois activée, vous pouvez vérifier votre conteneur et afficher ou télécharger les données.

Comprendre les points de télémétrie

Version actuelle du schéma de télémétrie : 4.1

La station terrestre fournit des données de télémétrie à l’aide d’Avro comme schéma. Le schéma se trouve ci-dessous. Notez que les antennes Microsoft émettent des données de télémétrie une fois le premier point de données est reçu. La télémétrie est rapportée à l’aide d’une approche « dernière valeur connue », ce qui signifie que nous enverrons toujours la valeur la plus récente dont nous disposons pour une métrique. En raison de ce comportement, vous pouvez voir une valeur NULL pendant la première seconde d’un contact jusqu’à ce que cette métrique soit générée pour la première fois.

{
  "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" ]
                        }
                      ]
                    }
                  }
                ]
              }
            ]
          }
        }
      ]
    }
  ]
}

Le tableau suivant fournit l’appareil/point source, les valeurs possibles et la définition de chaque point de télémétrie.

Point de télémétrie Appareil/point source Valeurs possibles Définition
version Défini manuellement en interne Version de publication de la télémétrie
contactID Ressource de contact Numéro d'identification du contact
contactPlatformIdentifier Ressource de contact
groundStationName Ressource de contact Nom de la station terrienne
antennaType Les générateurs de télémétrie Microsoft/partenaire respectifs définissent cette valeur MICROSOFT, KSAT, VIASAT Réseau d’antenne utilisé pour le contact.
antennaId Ressource de contact Nom de l’ID d’antenne en format lisible par l’homme
spacecraftName Analysé depuis l’identificateur de plateforme de contact Nom du vaisseau spatial
gpsTime Conversion de utcTime Heure GPS à laquelle le message de télémétrie du client a été généré.
utcTime Heure actuelle Heure UTC à laquelle le message de télémétrie du client a été généré.
azimuthDecimalDegrees ACU : AntennaAzimuth Azimut de l’antenne en degrés décimaux.
elevationDecimalDegrees ACU : AntennaElevation Élévation de l’antenne en degrés décimaux.
contactTleLine1 ACU : Satellite[0].Model.Value Chaîne de la ligne TLE 1 Première ligne du TLE utilisé pour le contact.
contactTLeLine2 ACU : Satellite[0].Model.Value Chaîne de la ligne TLE 2 Deuxième ligne du TLE utilisé pour le contact.
nom [Link-level] Lien du profil de contact Nom du lien
direction Lien du profil de contact Liaison montante, liaison descendante Direction du lien utilisé pour le contact.
Polarisation Lien du profil de contact RHCP, LHCP, DualRhcpLhcp, LinearVertical, LinearHorizontal Polarisation du lien utilisé pour le contact.
uplinkEnabled ACU : SBandCurrent ou UHFTotalCurrent • NULL (CenterFrequencyMhz ou liaison descendante non valide)
• False (bandes autres que S et UHF ou ampérage < au seuil)
• True (bande S/UHF, liaison montante, ampérage > au seuil)
Indique si la liaison montante a été activée pour le contact.
name [Channel-level] Canal de liaison du profil de contact Nom du canal
modemName Modem Nom de l’appareil modem
digitizerName Numériseur Nom de l’appareil numériseur
endpointName Canal de liaison du profil de contact Nom du point de terminaison utilisé pour le contact.
inputEbN0InDb Modem : measuredEbN0 • NULL (modèle du modem autre que QRadio ou QRx)
• Double : EbN0 d’entrée
Énergie d’entrée par bit pour la densité spectrale de puissance sonore en dB.
inputEsN0InDb Modem : measuredEsN0 • NULL (modèle du modem autre que QRx)
• Double : EsN0 d’entrée
Énergie d’entrée par symbole pour la densité spectrale de puissance sonore en dB.
inputRfPowerDbm Numériseur : inputRfPower • NULL (pilote de liaison montante ou de numériseur autre que SNNB ou SNWB)
• Double : Alimentation Rf d’entrée
Alimentation RF d’entrée en dBm.
outputRfPowerDbm Numériseur : outputRfPower • NULL (pilote de liaison descendante ou de numériseur autre que SNNB ou SNWB)
• Double : Puissance Rf de sortie
Puissance RF de sortie en dBm.
outputPacketRate Numériseur : rfOutputStream[0].measuredPacketRate • NULL (pilote de liaison descendante ou de numériseur autre que SNNB ou SNWB)
• Double : Taux de paquets de sortie
Taux de paquets mesuré pour la liaison montante
gapCount Numériseur : rfOutputStream[0].gapCount • NULL (pilote de liaison descendante ou de numériseur autre que SNNB ou SNWB)
• Double : Nombre d’écarts
Nombre d’écarts de paquets pour la liaison montante
modemLockStatus Modem : carrierLockState • NULL (modèle du modem autre que QRadio ou QRx ; impossible d’analyser l’énumération d’état de verrouillage)
• Chaîne vide (si la lecture des métriques était null)
• Chaîne : état de verrouillage
Confirmation que le modem était verrouillé.
commandsSent Modem : commandsSent • NULL (s’il n’y a pas de liaison montante ni de QRadio)
• Double : nombre de commandes envoyées
Confirmation que les commandes ont été envoyées pendant le contact.

Consommateurs d'événements

Vous pouvez écrire des applications grand public simples pour recevoir les évènements de vos Event Hubs en utilisant les consommateurs d’évènement. Reportez-vous à la documentation suivante pour savoir comment envoyer et recevoir des évènements Event Hubs dans différentes langues :

Journal des modifications

17/04/2024 - Schéma mis à jour pour inclure la valeur possible NULL pour les TLE, ajouté EsN0 pour QRX et ajouté blurb sur la façon dont les antennes Microsoft peuvent avoir une valeur NULL pour un champ pendant la première seconde d’un contact. 03/10/2023 - Présentation de la version 4.0. Schéma mis à jour pour inclure les métriques de paquets de liaison montante et les noms de l’infrastructure en cours d’utilisation (station terrienne, antenne, vaisseau spatial, modem, numériseur, lien, canal)
05/06/2023 - Schéma mis à jour pour afficher les métriques sous les canaux au lieu de liens.

Étapes suivantes