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
- 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.
- 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.
- 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)
- Suchen Sie und wählen Sie auf der Registerkarte Rolle die Option Azure Event Hubs-Datensender aus. Klicken Sie auf Weiter.
- Weisen Sie auf der Registerkarte Mitglieder Benutzenden, Gruppe oder Dienstprinzipal Zugriff zu.
- Klicken Sie auf + Mitglieder auswählen.
- Suchen Sie nach Azure Orbital-Ressourcenanbieter, und klicken Sie auf Auswählen.
- Klicken Sie auf Überprüfen + zuweisen. Diese Aktion gewährt Azure Orbital Ground Station die Rechte zum Senden von Telemetriedaten an Ihren Event Hub.
- 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:
- Wählen Sie mithilfe der Dropdownliste Event Hubs-Namespace einen Namespace aus.
- 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.