Odbieranie telemetrii anteny w czasie rzeczywistym
Stacja naziemna Platformy Azure emituje zdarzenia telemetryczne anteny, które mogą służyć do analizowania operacji stacji naziemnej podczas kontaktu. Profil kontaktu można skonfigurować tak, aby wysyłał zdarzenia telemetryczne do usługi Azure Event Hubs.
Niniejszy przewodnik zawiera informacje na temat wykonywania następujących czynności:
- Konfigurowanie usługi Azure Event Hubs dla stacji naziemnej platformy Azure Orbital
- Włącz telemetrię w profilu kontaktowym.
- Weryfikowanie zawartości danych telemetrycznych
- Omówienie punktów telemetrii
Konfigurowanie usługi Event Hubs
- W ramach subskrypcji przejdź do dostawców zasobów w ustawieniach. Wyszukaj ciąg Microsoft.Orbital i zarejestruj go jako dostawcę.
- Utwórz przestrzeń nazw usługi Azure Event Hubs i centrum zdarzeń w ramach subskrypcji.
Uwaga
Wybierz pozycję Dostęp publiczny, aby uzyskać dostęp do łączności z usługą EventHubs. Prywatny dostęp lub punkty końcowe usługi nie są obsługiwane.
- W menu po lewej stronie wybierz pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami).. W obszarze "Udziel dostępu do tego zasobu" wybierz pozycję Dodaj przypisanie roli.
Uwaga
Aby przypisać role platformy Azure, musisz mieć następujące Microsoft.Authorization/roleAssignments/write
uprawnienia, takie jak administrator dostępu użytkowników lub właściciel
- Na karcie Rola wyszukaj i wybierz pozycję Nadawca danych usługi Azure Event Hubs. Kliknij przycisk Dalej.
- Na karcie Członkowie przypisz dostęp do użytkownika, grupy lub jednostki usługi.
- Kliknij pozycję + Wybierz członków.
- Wyszukaj dostawcę zasobów orbitalnych platformy Azure i kliknij pozycję Wybierz.
- Kliknij pozycję Przejrzyj i przypisz. Ta akcja przyznaje stacji naziemnej Platformy Azure uprawnienia do wysyłania danych telemetrycznych do centrum zdarzeń.
- Aby potwierdzić nowo dodane przypisanie roli, wróć do strony Kontrola dostępu (zarządzanie dostępem i tożsamościami) i wybierz pozycję Wyświetl dostęp do tego zasobu. Dostawca zasobów orbitalnych platformy Azure powinien znajdować się w obszarze Nadawca danych usługi Azure Event Hubs.
Włączanie telemetrii usługi Event Hubs dla profilu kontaktu
Skonfiguruj profil kontaktu w następujący sposób:
- Wybierz przestrzeń nazw przy użyciu listy rozwijanej Przestrzeń nazw usługi Event Hubs.
- Wybierz wystąpienie przy użyciu listy rozwijanej Wystąpienie usługi Event Hubs wyświetlanej po wybraniu przestrzeni nazw.
Ustawienia istniejącego profilu kontaktowego można zaktualizować według
Weryfikowanie danych telemetrycznych anteny z kontaktu
Zaplanuj kontakty przy użyciu profilu kontaktu, który został wcześniej skonfigurowany na potrzeby telemetrii usługi Event Hubs. Po rozpoczęciu kontaktu należy zacząć widzieć dane w usłudze Event Hubs wkrótce po.
Możesz sprawdzić obecność i zawartość przychodzących danych telemetrycznych na wiele sposobów.
Pulpit nawigacyjny przestrzeni nazw usługi Event Hubs
Aby sprawdzić, czy zdarzenia są odbierane w usłudze Event Hubs, możesz sprawdzić wykresy znajdujące się na stronie przeglądu przestrzeni nazw usługi Event Hubs w grupie zasobów. Ten widok przedstawia dane we wszystkich wystąpieniach usługi Event Hubs w przestrzeni nazw. Możesz przejść do strony przeglądu określonego wystąpienia centrum zdarzeń w grupie zasobów, aby wyświetlić wykresy dla tego wystąpienia.
Dostarczanie danych telemetrycznych anteny do konta magazynu
Możesz włączyć funkcję przechwytywania usługi Event Hubs, aby automatycznie dostarczać dane telemetryczne do wybranego konta usługi Azure Blob Storage. Postępuj zgodnie z instrukcjami, aby włączyć przechwytywanie i przechwytywanie danych w usłudze Azure Storage. Po włączeniu możesz sprawdzić kontener i wyświetlić/pobrać dane.
Omówienie punktów telemetrii
Bieżąca wersja schematu telemetrii: 4.1
Stacja naziemna zapewnia telemetrię przy użyciu Avro jako schematu. Schemat znajduje się poniżej. Uwaga: anteny firmy Microsoft emitują dane telemetryczne po odebraniu pierwszego punktu danych. Dane telemetryczne są zgłaszane przy użyciu podejścia "ostatnia znana wartość", co oznacza, że zawsze wyślemy najnowszą wartość dla metryki. Ze względu na to zachowanie może zostać wyświetlona NULL
wartość w pierwszej sekundzie kontaktu do momentu utworzenia pierwszej metryki.
{
"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" ]
}
]
}
}
]
}
]
}
}
]
}
]
}
Poniższa tabela zawiera źródłowe urządzenie/punkt, możliwe wartości i definicję każdego punktu telemetrii.
Punkt telemetrii | Urządzenie/punkt źródłowy | Możliwe wartości | Definicja |
---|---|---|---|
version | Ręczne ustawianie wewnętrznie | Wersja wydania telemetrii | |
contactID | Zasób kontaktu | Numer identyfikacyjny kontaktu | |
contactPlatformIdentifier | Zasób kontaktu | ||
groundStationName | Zasób kontaktu | Nazwa stacji naziemnej | |
antenaType | Odpowiednie konstruktory telemetrii firmy Microsoft/partnera ustawiają tę wartość | MICROSOFT, KSAT, VIASAT | Sieć antenowa używana do kontaktu. |
antenaId | Zasób kontaktu | Czytelna dla człowieka nazwa identyfikatora anteny | |
spacecraftName | Przeanalizowane z identyfikatora platformy kontaktów | Nazwa statku kosmicznego | |
gpsTime | Coversion czasu utcTime | Czas w czasie GPS, kiedy został wygenerowany komunikat telemetrii klienta. | |
utcTime | Bieżący czas | Godzina w czasie UTC wygenerowania komunikatu telemetrii klienta. | |
azimuthDecimalDegrees | ACU: AntenaAzimuth | Azimuth anteny w stopniach dziesiętnych. | |
elevationDecimalDegrees | ACU: AntenaLewacja | Wysokość anteny w stopniach dziesiętnych. | |
contactTleLine1 | ACU: Satelita[0]. Model.Value | Ciąg linii TLE 1 | Pierwszy wiersz TLE używany do kontaktu. |
contactTLeLine2 | ACU: Satelita[0]. Model.Value | Ciąg linii TLE 2 | Drugi wiersz TLE używany do kontaktu. |
name [Poziom łącza] | Link profilu kontaktu | Nazwa łącza | |
kierunek | Link profilu kontaktu | Pasma, Link do dołu | Kierunek łącza używanego dla kontaktu. |
Polaryzacji | Link profilu kontaktu | RHCP, LHCP, DualRhcpLhcp, LinearVertical, LinearHorizontal | Polaryzacja łącza używanego do kontaktu. |
uplinkEnabled | ACU: SBandCurrent lub UHFTotalCurrent | • NULL (nieprawidłowy kierunek centerFrequencyMhz lub downlink) • Fałsz (przedziały inne niż S i UHF lub Amp Current < Threshold) • True (S/UHF-band, Pasma, Amp Current > Threshold) |
Wskazuje, czy dla kontaktu włączono pasma. |
name [Poziom kanału] | Kanał linku profilu kontaktu | Nazwa kanału | |
modemName | Modem | Nazwa urządzenia modemu | |
digitizerName | Digitizer | Nazwa urządzenia digitizer | |
endpointName | Kanał linku profilu kontaktu | Nazwa punktu końcowego używanego dla kontaktu. | |
inputEbN0InDb | Modem: measuredEbN0 | • NULL (model modemu inny niż QRadio lub QRx) • Podwójna: wejście EbN0 |
Energia wejściowa na bit do gęstości widmowej mocy szumu w dB. |
inputEsN0InDb | Modem: mierzonyEsN0 | • NULL (model modemu inny niż QRx) • Podwójne: wejście EsN0 |
Energia wejściowa na symbol do gęstości widmowej mocy szumu w dB. |
inputRfPowerDbm | Digitizer: inputRfPower | • NULL (sterownik pasma lub cyfry inny niż SNNB lub SNWB) • Podwójna: Moc rf wejścia |
Moc RF wejścia w dBm. |
outputRfPowerDbm | Digitizer: outputRfPower | • NULL (sterownik pasma lub cyfry inny niż SNNB lub SNWB) • Podwójna: Moc wyjściowa rf |
Moc Ouput RF w dBm. |
outputPacketRate | Digitizer: rfOutputStream[0].measuredPacketRate | • NULL (sterownik pasma lub cyfry inny niż SNNB lub SNWB) • Podwójna: szybkość pakietów wyjściowych |
Mierzona szybkość pakietów dla pasma |
gapCount | Digitizer: rfOutputStream[0].gapCount | • NULL (sterownik pasma lub cyfry inny niż SNNB lub SNWB) • Podwójna liczba luk |
Liczba luk w pakietach dla pasma |
modemLockStatus | Modem: carrierLockState | • Wartość NULL (model modemu innego niż QRadio lub QRx; nie można przeanalizować stanu blokady) • Pusty ciąg (jeśli odczyt metryki miał wartość null) • Ciąg: stan blokady |
Potwierdzenie, że modem został zablokowany. |
poleceniaSent | Modem: poleceniaSent | • NULL (jeśli nie pasma i QRadio) • Podwójne: liczba wysłanych poleceń |
Potwierdzenie wysłania poleceń podczas kontaktu. |
Odbiorcy zdarzeń
Możesz pisać proste aplikacje konsumenckie, aby odbierać zdarzenia z usługi Event Hubs przy użyciu odbiorców zdarzeń. Zapoznaj się z następującą dokumentacją, aby dowiedzieć się, jak wysyłać i odbierać zdarzenia usługi Event Hubs w różnych językach:
Dziennik zmian
2024-04-17 — Zaktualizowano schemat, aby uwzględnić możliwe wartości NULL dla TLE, i dodano EsN0 dla QRX i dodano blurb o tym, jak anteny firmy Microsoft mogą mieć wartość NULL dla pola podczas pierwszej sekundy kontaktu.
2023-10-03 — Wprowadzenie do wersji 4.0. Zaktualizowano schemat obejmujący metryki pakietów pasma i nazwy używanej infrastruktury (stacja naziemna, antena, statek kosmiczny, modem, digitizer, link, kanał)
2023-06-05 — Zaktualizowano schemat w celu wyświetlania metryk w kanałach zamiast linków.