Empfangen von Echtzeit-Antennentelemetrie

Eine Azure Orbital-Erdfunkstelle sendet Antenentelemetrieereignisse, mit denen der Erdfunkstellenbetrieb während eines Kontakts analysiert werden kann. Sie können Ihr Kontaktprofil so konfigurieren, dass Telemetrieereignisse an Azure Event Hubs gesendet werden.

In diesem Leitfaden lernen Sie Folgendes:

  • Konfigurieren von Azure Event Hubs für Azure Orbital Ground Station
  • Aktivieren Sie Telemetrie in Ihrem Kontaktprofil.
  • Überprüfen des Inhalts von Telemetriedaten
  • Grundlegendes zu Telemetriepunkten

Konfigurieren von Event Hubs

  1. Wählen Sie in den Einstellungen für Ihr Abonnement die Option Ressourcenanbieter aus. Suchen Sie nach Microsoft.Orbital, und registrieren Sie es als Anbieter.
  2. Erstellen Sie einen Azure Event Hubs-Namespace und einen Event Hub in Ihrem Azure-Abonnement.

Hinweis

Wählen Sie „Öffentlicher Zugriff“, um Zugang zu den Event Hubs zu erhalten. Private Zugriffs- oder Dienstendpunkte werden nicht unterstützt.

  1. Wählen Sie im linken Menü Zugriffssteuerung (IAM) aus. Wählen Sie unter Zugriff auf diese Gruppe gewähren die Option „Rollenzuweisung hinzufügen“ aus.

Hinweis

Zum Hinzufügen von Azure-Rollen sind Berechtigungen vom Typ Microsoft.Authorization/roleAssignments/write erforderlich (beispielsweise Benutzerzugriffsadministrator oder Besitzer)

  1. Suchen Sie und wählen Sie auf der Registerkarte Rolle die Option Azure Event Hubs-Datensender aus. Klicken Sie auf Weiter.
  2. Weisen Sie auf der Registerkarte MitgliederBenutzenden, Gruppe oder Dienstprinzipal Zugriff zu.
  3. Klicken Sie auf + Mitglieder auswählen.
  4. Suchen Sie nach Azure Orbital-Ressourcenanbieter, und klicken Sie auf Auswählen.
  5. Klicken Sie auf Überprüfen + zuweisen. Diese Aktion gewährt Azure Orbital Ground Station die Rechte zum Senden von Telemetriedaten an Ihren Event Hub.
  6. Um die neu hinzugefügte Rollenzuweisung zu bestätigen, kehren Sie zur Seite „Zugriffssteuerung (IAM)“ zurück, und wählen Sie Zugriff auf diese Ressource anzeigen aus. Der Azure Orbital-Ressourcenanbieter sollte unter Azure Event Hubs-Datensender zu finden sein.

Aktivieren der Event Hubs-Telemetrie für ein Kontaktprofil

So konfigurieren Sie ein Kontaktprofil:

  1. Wählen Sie mithilfe der Dropdownliste Event Hubs-Namespace einen Namespace aus.
  2. Wählen Sie eine Instanz mithilfe der Dropdownliste Event Hubs-Instanz aus, die nach der Auswahl des Namespace angezeigt wird.

Sie können die Einstellungen eines vorhandenen Kontaktprofils aktualisieren, indem Sie Folgendes tun

Überprüfen von Antennentelemetriedaten von einem Kontakt

Planen Sie Kontakten mithilfe des Kontaktprofils, das Sie zuvor für Event Hubs-Telemetrie konfiguriert haben. Sobald der Kontakt beginnt, sollten Ihnen Daten in Ihrer Event Hubs-Instanz angezeigt werden.

Sie können sowohl das Vorhandensein als auch den Inhalt eingehender Telemetriedaten auf mehrere Arten überprüfen.

Event Hubs-Namespacedashboard

Um zu überprüfen, ob Ereignisse in Ihrer Event Hubs-Instanz empfangen werden, können Sie die Diagramme auf der Übersicht in Ihrem Event Hubs-Namespace innerhalb Ihrer Ressourcengruppe prüfen. Diese Ansicht zeigt Daten für alle Event Hubs-Instanzen in einem Namespace an. Sie können zur Übersicht einer bestimmten Event Hub-Instanz in Ihrer Ressourcengruppe navigieren, um die Diagramme für diese Instanz anzuzeigen.

Bereitstellen von Antennentelemetriedaten an ein Speicherkonto

Sie können das Feature „Event Hubs Capture“ aktivieren, um Telemetriedaten automatisch an ein Azure Blob-Speicherkonto ihrer Wahl zu senden. Befolgen Sie die Anweisungen zum Aktivieren von Capture und zeichnen Sie Daten in Azure Storage auf. Nach der Aktivierung können Sie Ihren Container überprüfen und die Daten anzeigen/herunterladen.

Grundlegendes zu Telemetriepunkten

Aktuelle Telemetrieschemaversion: 4.1

Die Erdfunkstelle stellt Telemetrie mithilfe von Avro als Schema bereit. Das Schema ist nachfolgend dargestellt. Hinweis: Microsoft-Antennen geben Telemetrie aus, sobald der erste Datenpunkt empfangen wurde. Telemetrie wird mit dem Ansatz „Letzter bekannter Wert“ (Last Known Value, LKNV) gemeldet, was bedeutet, dass wir immer den neuesten Wert senden, den wir für eine Metrik haben. Aufgrund dieses Verhaltens kann es vorkommen, dass in der ersten Sekunde eines Kontakts ein NULL-Wert angezeigt wird, bis diese Metrik zum ersten Mal ausgegeben wird.

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

Die folgende Tabelle enthält das Quellgerät/den Quellpunkt, die möglichen Werte und die Definition der einzelnen Telemetriepunkte.

Telemetriepunkt Quellgerät/Quellpunkt Mögliche Werte Definition
version Manuell intern festlegen Releaseversion der Telemetrie
contactID Kontaktressource ID des Kontakts
contactPlatformIdentifier Kontaktressource
groundStationName Kontaktressource Name der Erdstation
antennaType Dieser Wert wird durch entsprechende Microsoft-/ Partnertelemetriegeneratoren festgelegt. MICROSOFT, KSAT, VIASAT Antennennetzwerk, das für den Kontakt verwendet wird.
antennaId Kontaktressource Lesbarer Name der Antennen-ID
spacecraftName Analysiert vom der Kontaktplattform-ID Name des Raumfahrzeugs
gpsTime Konvertierung von utcTime Zeitpunkt in GPS-Zeit, zu dem die Telemetriemeldung der Kundschaft erzeugt wurde.
utcTime Die aktuelle Zeit Uhrzeit in UTC, zu der die Telemetriemeldung der Kundschaft erzeugt wurde.
azimuthDecimalDegrees ACU: AntennaAzimuth Azimut der Antenne in Dezimalgraden.
elevationDecimalDegrees ACU: AntennaElevation Elevation der Antenne in Dezimalgraden.
contactTleLine1 ACU: Satellite[0].Model.Value Zeichenfolge der TLE-Zeile 1 Erste Zeile der für den Kontakt verwendeten TLE.
contactTLeLine2 ACU: Satellite[0].Model.Value Zeichenfolge der TLE-Zeile 2 Zweite Zeile der für den Kontakt verwendeten TLE.
Name [Link-Ebene] Kontaktprofilverbindung Name des Links
direction Kontaktprofilverbindung Uplink, Downlink Richtung der Verbindung, die für den Kontakt verwendet wird.
Polarisation Kontaktprofilverbindung RHCP, LHCP, DualRhcpLhcp, LinearVertical, LinearHorizontal Polarisierung der für den Kontakt verwendeten Verbindung.
uplinkEnabled ACU: SBandCurrent oder UHFTotalCurrent • NULL (ungültige CenterFrequencyMhz oder Downlinkrichtung)
• FALSE (andere Bänder als S und UHF oder Amp Current < Threshold)
• TRUE (S/UHF-band, Uplink, Amp Current > Threshold)
Gibt an, ob Uplink für den Kontakt aktiviert wurde.
Name [Kanalebene] Kontaktprofilverbindungskanal Name des Kanals
modemName Modem Name des Modemgeräts
digitizerName Digitizer Name des Digitalisierungsgeräts
endpointName Kontaktprofilverbindungskanal Name des Endpunkts, der für den Kontakt verwendet wird.
inputEbN0InDb Modem: measuredEbN0 • NULL (anderes Modemmodell als QRadio oder QRx)
• Double: Input EbN0
Eingangsenergie pro Bit zu Rauschleistungsspektraldichte in dB.
inputEsN0InDb Modem: measuredEsN0 • NULL (anderes Modemmodell als QRx)
• Double: Input EsN0
Spektrale Leistungsdichte von Eingangsenergie pro Symbol und Rauschen in dB.
inputRfPowerDbm Digitizer: inputRfPower • NULL (anderer Treiber für Uplink oder Digitalisierer als SNNB oder SNWB)
• Double: Input Rf Power
RF-Eingabeleistung in dBm.
outputRfPowerDbm Digitalisierer: outputRfPower • NULL (andere Downlink- oder Digitalisierertreiber als SNNB oder SNWB)
• Double: Output Rf Power
RF-Ausgabeleistung in dBm.
outputPacketRate Digitalisierer: rfOutputStream[0].measuredPacketRate • NULL (andere Downlink- oder Digitalisierertreiber als SNNB oder SNWB)
• Double: Ausgabepaketrate
Gemessene Paketrate für Uplink
gapCount Digitalisierer: rfOutputStream[0].gapCount • NULL (andere Downlink- oder Digitalisierertreiber als SNNB oder SNWB)
• Double: Anzahl der Lücken
Anzahl der Paketlücken für Uplink
modemLockStatus Modem: carrierLockState • NULL (anderes Modemmodell als QRadio oder QRx; Sperrstatusenumeration konnte nicht analysiert werden)
• Leere Zeichenfolge (wenn der metrische Lesewert NULL war)
• Zeichenfolge: Sperrstatus
Bestätigung, dass das Modem gesperrt wurde.
commandsSent Modem: commandsSent • NULL (wenn nicht Uplink und QRadio)
• Double: Anzahl der gesendeten Befehle
Bestätigung, dass Befehle während des Kontakts gesendet wurden.

Ereignisconsumer

Sie können einfache Consumerapps schreiben, um Ereignisse von Ihren Event Hubs mithilfe von Ereignisconsumers zu empfangen. In der folgenden Dokumentation erfahren Sie, wie Event Hubs in verschiedenen Sprachen gesendet und empfangen werden:

Änderungsprotokoll

17.04.2024 – Das Schema wurde aktualisiert, um mögliche NULL für TLEs einzubeziehen, und EsN0 für QRX hinzugefügt, und ein Hinweis darauf hinzugefügt, dass Microsoft-Antennen in der ersten Sekunde eines Kontakts eine NULL für ein Feld haben können. 03.10.2023 – Einführung der Version 4.0. Aktualisiertes Schema zur Aufnahme von Uplinkpaketmetriken und Namen der verwendeten Infrastruktur (Erdfunkstelle, Antenne, Raumfahrzeug, Modem, Digitalisierer, Link, Kanal)
05.06.2023 – Schema aktualisiert, um Metriken unter Channels statt unter Links anzuzeigen.

Nächste Schritte