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

  1. W ramach subskrypcji przejdź do dostawców zasobów w ustawieniach. Wyszukaj ciąg Microsoft.Orbital i zarejestruj go jako dostawcę.
  2. 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.

  1. 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ć uprawnieniaMicrosoft.Authorization/roleAssignments/write, takie jak dostęp użytkowników Administracja istrator lub właściciel

  1. Na karcie Rola wyszukaj i wybierz pozycję Nadawca danych usługi Azure Event Hubs. Kliknij przycisk Dalej.
  2. Na karcie Członkowie przypisz dostęp do użytkownika, grupy lub jednostki usługi.
  3. Kliknij pozycję + Wybierz członków.
  4. Wyszukaj dostawcę zasobów orbitalnych platformy Azure i kliknij pozycję Wybierz.
  5. Kliknij pozycję Przejrzyj i przypisz. Ta akcja przyznaje stacji naziemnej Platformy Azure uprawnienia do wysyłania danych telemetrycznych do centrum zdarzeń.
  6. 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:

  1. Wybierz przestrzeń nazw przy użyciu listy rozwijanej Przestrzeń nazw usługi Event Hubs.
  2. 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.

Następne kroki