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

Azure Orbital Ground station émet des événements de télémétrie d’antenne qui peuvent être utilisés pour analyser l’opération de station terrestre 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 Azure Orbital Ground Station
  • Activez 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 aux fournisseurs de ressources dans les paramètres. Recherchez Microsoft.Orbital et inscrivez-le en tant que fournisseur.
  2. Créez un espace de noms Azure Event Hubs et un hub d’événements dans votre abonnement.

Remarque

Choisissez l’accès public pour l’accès à la connectivité aux Eventhubs. 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’autorisationsMicrosoft.Authorization/roleAssignments/write, telles que l’accès utilisateur Administration istrator 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 à l’utilisateur, au groupe ou au principal du service.
  3. Cliquer sur + Sélectionner des membres.
  4. Recherchez le fournisseur de ressources Orbital Azure, puis cliquez sur Sélectionner.
  5. Cliquez sur Analyser + attribuer. Cette action accorde à Azure Orbital Ground Station les droits d’envoi de données de télémétrie dans votre hub d’événements.
  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 Orbital Azure doit se trouver sous l’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 par

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

Planifiez des contacts à l’aide du profil de contact que vous avez précédemment configuré pour la télémétrie Event Hubs. Une fois qu’un contact commence, vous devez commencer à voir les données dans vos hubs d’événements peu de temps 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 hubs d’événements, vous pouvez case activée les graphiques présents sur la page vue d’ensemble de votre espace de noms Event Hubs au sein de 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 vue d’ensemble d’une instance Event Hub spécifique dans votre groupe de ressources pour afficher 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 remettre 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.0

La station terrestre fournit des données de télémétrie à l’aide d’Avro comme schéma. Le schéma est ci-dessous :

{
  "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": "string"
    },
    {
      "name": "contactTleLine2",
      "type": "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 Definition
version Définir 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 de terre
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 lisible par l’homme de l’ID d’antenne
spatialName Analysé à partir de l’identificateur de plateforme de contacts Nom du vaisseau spatial
gpsTime Couvertures de utcTime Temps dans le temps GPS que le message de télémétrie du client a été généré.
utcTime Heure actuelle Heure UTC pendant laquelle le message de télémétrie du client a été généré.
azimuthDecimalDegrees ACU : AntennaAzimuth Azimuth 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.
name [Niveau du lien] Lien du profil de contact Nom du lien
direction Lien du profil de contact Liaison montante, Lien bas 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 (direction centerFrequencyMhz non valide ou downlink)
• False (bandes autres que S et UHF ou Seuil actuel < )
• True (bande S/UHF, liaison montante, seuil actuel > )
Indique si la liaison montante a été activée pour le contact.
name [Niveau du canal] Canal de lien de profil de contact Nom du canal
modemName Modem Nom de l’appareil modem
numériseurName Numériseur Nom de l’appareil du numériseur
endpointName Canal de lien de profil de contact Nom du point de terminaison utilisé pour le contact.
inputEbN0InDb Modem : measuredEbN0 • NULL (modèle modem autre que QRadio ou QRx)
• Double : EbN0 d’entrée
Énergie d’entrée par bit pour la densité de puissance sonore en DB.
inputEsN0InDb Non utilisé dans la télémétrie de l’antenne Microsoft NULL (Non utilisé dans la télémétrie de l’antenne Microsoft) Énergie d’entrée par symbole pour la densité 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 dans dBm.
outputRfPowerDbm Numériseur : outputRfPower • NULL (pilote downlink ou numériseur autre que SNNB ou SNWB)
• Double : Puissance rf de sortie
Puissance RF d’ouput en sgbd.
outputPacketRate Numériseur : rfOutputStream[0].measuredPacketRate • NULL (pilote downlink ou 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 downlink ou 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 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 a été verrouillé.
commandsSent Modem : commandsSent • NULL (s’il n’y a pas de liaison montante et 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 des événements de votre Event Hubs à l’aide de consommateurs d’événements. Reportez-vous à la documentation suivante pour savoir comment envoyer et recevoir des événements Event Hubs dans différentes langues :

Journal des modifications

2023-10-03 - 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 terrestre, antenne, vaisseau spatial, modem, numériseur, lien, canal)
2023-06-05 - Schéma mis à jour pour afficher les métriques sous les canaux au lieu de liens.

Étapes suivantes