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
- Dans votre abonnement, accédez à fournisseurs de ressources dans Paramètres. Recherchez Microsoft.Orbital et inscrivez-le en tant que fournisseur.
- 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.
- 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
- Sous l’onglet Rôle, recherchez et sélectionnez Expéditeur de données Azure Event Hubs. Sélectionnez Suivant.
- Sous l’onglet Membres, attribuez l’accès à Utilisateur, groupe ou principal de service.
- Cliquer sur + Sélectionner des membres.
- Recherchez Fournisseur de ressources Azure Orbital et cliquez sur Sélectionner.
- 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.
- 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 :
- Choisissez un espace de noms à l’aide de la liste déroulante Espace de noms Event Hubs.
- 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.