다음을 통해 공유


실시간 안테나 원격 분석 수신

Azure Orbital 지상국은 접촉 중 지상국 작동을 분석하는 데 사용할 수 있는 안테나 원격 분석 이벤트를 내보냅니다. 원격 분석 이벤트를 Azure Event Hubs로 보내도록 연락처 프로필을 구성할 수 있습니다.

이 가이드에서 배울 내용은 다음과 같습니다.

  • Azure Orbital 지상국에 대한 Azure Event Hubs 구성
  • 연락처 프로필에서 원격 분석을 사용하도록 설정합니다.
  • 원격 분석 데이터의 콘텐츠 확인
  • 원격 분석 지점 이해

Event Hubs 구성

  1. 구독의 설정에서 리소스 공급자로 이동합니다. Microsoft.Orbital을 검색하여 공급자로 등록합니다.
  2. 구독에 Azure Event Hubs 네임스페이스Event Hubs를 만듭니다.

참고 항목

Eventhubs에 대한 연결 액세스를 위해 공용 액세스를 선택합니다. 프라이빗 액세스 또는 서비스 엔드포인트는 지원되지 않습니다.

  1. 왼쪽 메뉴에서 액세스 제어(IAM)를 선택합니다. 이 리소스에 대한 액세스 권한 부여에서 역할 할당 추가를 선택합니다.

참고 항목

Azure 역할을 할당하려면 사용자 액세스 관리자 또는 소유자 같은 Microsoft.Authorization/roleAssignments/write 권한이 있어야 합니다.

  1. 역할 탭에서 Azure Event Hubs 데이터 보낸 사람을 검색하여 선택합니다. 다음을 클릭합니다.
  2. 멤버 탭에서 사용자, 그룹 또는 서비스 주체에 액세스 권한을 할당합니다.
  3. + 구성원 선택을 클릭합니다.
  4. Azure Orbital 리소스 공급자를 검색하고 선택을 클릭합니다.
  5. 검토 + 할당을 클릭합니다 이 작업은 Azure Orbital 지상국에 원격 분석을 이벤트 허브로 보낼 수 있는 권한을 부여합니다.
  6. 새로 추가된 역할 할당을 확인하려면 Access Control(IAM) 페이지로 돌아가서 이 리소스에 대한 액세스 보기를 선택합니다. Azure Orbital 리소스 공급자는 Azure Event Hubs 데이터 보낸 사람 아래에 있어야 합니다.

연락처 프로필에 대해 Event Hubs 원격 분석 사용

다음과 같이 연락처 프로필을 구성합니다.

  1. Event Hubs 네임스페이스 드롭다운을 사용하여 네임스페이스를 선택합니다.
  2. 네임스페이스 선택 후 표시되는 Event Hubs 인스턴스 드롭다운을 사용하여 인스턴스를 선택합니다.

기존 연락처 프로필의 설정을 업데이트할 수 있습니다.

연락처의 안테나 원격 분석 데이터 확인

이전에 Event Hubs 원격 분석을 위해 구성한 연락처 프로필을 사용하여 연락 일정을 예약합니다. 접촉이 시작되면 곧 Event Hubs에서 데이터가 표시되기 시작해야 합니다.

들어오는 원격 분석 데이터의 현재 상태와 콘텐츠를 여러 가지 방법으로 확인할 수 있습니다.

Event Hubs 네임스페이스 대시보드

Event Hubs에서 이벤트가 수신되고 있는지 확인하려면 리소스 그룹 내 Event Hubs 네임스페이스의 개요 페이지에 있는 그래프를 확인하면 됩니다. 이 보기는 네임스페이스 내의 모든 Event Hubs 인스턴스에 대한 데이터를 보여 줍니다. 리소스 그룹에 있는 특정 Event Hub 인스턴스의 개요 페이지로 이동하여 해당 인스턴스에 대한 그래프를 볼 수 있습니다.

안테나 원격 분석 데이터를 스토리지 계정에 배달

Event Hubs 캡처 기능을 사용하도록 설정하여 선택한 Azure Blob Storage 계정에 원격 분석 데이터를 자동으로 배달할 수 있습니다. 캡처 사용 지침을 따르고 Azure Storage에 데이터를 캡처합니다. 사용하도록 설정하면 컨테이너를 확인하고 데이터를 보거나 다운로드할 수 있습니다.

원격 분석 지점 이해

현재 원격 분석 스키마 버전: 4.1

지상국은 Avro를 스키마로 사용하여 원격 분석을 제공합니다. 스키마는 다음과 같습니다. Microsoft 안테나는 첫 번째 데이터 포인트가 수신되면 원격 분석을 내보낸다. 원격 분석은 "마지막으로 알려진 값" 접근 방식을 사용하여 보고됩니다. 즉, 메트릭에 대해 가지고 있는 가장 최근 값을 항상 보냅니다. 이 동작으로 인해 해당 메트릭이 처음 생성될 때까지 접속의 첫 순간에 NULL 값이 표시될 수 있습니다.

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

다음 표에서는 원본 디바이스/포인트, 가능한 값 및 각 원격 분석 포인트의 정의를 제공합니다.

원격 분석 지점 원본 디바이스/포인트 가능한 값 정의
version 내부적으로 수동으로 설정 원격 분석의 릴리스 버전
contactID 리소스에 문의 연락처의 식별 번호
contactPlatformIdentifier 리소스에 문의
groundStationName 리소스에 문의 지상국 이름
antennaType 각 Microsoft/파트너 원격 분석 작성기가 이 값을 설정합니다. Microsoft, KSAT, VIASAT 접촉에 사용되는 안테나 네트워크.
antennaId 리소스에 문의 인간이 읽을 수 있는 안테나 ID 이름
spacecraftName 연락처 플랫폼 식별자에서 구문 분석됨 우주선의 이름
gpsTime UTC 시간 변환 고객 원격 분석 메시지가 생성된 GPS 시간입니다.
utcTime 현재 시간 고객 원격 분석 메시지가 생성된 UTC 시간입니다.
azimuthDecimalDegrees ACU: AntennaAzimuth 안테나의 방위각(10진 각도)입니다.
elevationDecimalDegrees ACU: AntennaElevation 안테나의 고도(10진 각도)입니다.
contactTleLine1 ACU: 위성[0].모델.값 TLE 라인 1의 문자열 접점에 사용되는 TLE의 첫 번째 줄입니다.
contactTLeLine2 ACU: 위성[0].모델.값 TLE 라인 2의 문자열 연락처에 사용되는 TLE의 두 번째 줄입니다.
이름 [링크 수준] 프로필 링크에 문의 링크 이름
direction 프로필 링크에 문의 업링크, 다운링크 연락처에 사용되는 링크의 방향입니다.
편광 프로필 링크에 문의 RHCP, LHCP, DualRhcpLhcp, LinearVertical, LinearHorizontal 접점에 사용되는 링크의 극성입니다.
uplinkEnabled ACU: SBandCurrent or UHFTotalCurrent • NULL(잘못된 CenterFrequencyMhz 또는 다운링크 방향)
• False(S 및 UHF 또는 앰프 전류 < 임계값 이외의 대역)
• True(S/UHF 대역, 업링크, 앰프 전류 > 임계값)
연락처에 대해 업링크가 사용하도록 설정되었는지 여부를 나타냅니다.
이름 [채널 수준] 프로필 링크 채널에 문의 채널의 이름
modemName 모뎀 모뎀 디바이스 이름
digitizerName 디지타이저 디지타이저 디바이스 이름
endpointName 프로필 링크 채널에 문의 연락처에 사용되는 엔드포인트의 이름입니다.
inputEbN0InDb Modem: measuredEbN0 • NULL(QRadio 또는 QRx 이외의 모뎀 모델)
• 이중: EbN0 입력
dB 단위의 노이즈 전력 스펙트럼 밀도에 대한 비트당 에너지를 입력합니다.
inputEsN0InDb 모뎀: measuredEsN0 • NULL(QRx 이외의 모뎀 모델)
• 이중: EsN0 입력
dB 단위의 노이즈 전력 스펙트럼 밀도에 대한 기호당 에너지를 입력합니다.
inputRfPowerDbm 디지타이저: inputRfPower • NULL(SNNB 또는 SNWB 이외의 업링크 또는 디지타이저 드라이버)
• 이중: Rf 전력 입력
RF 전력(dBm 단위)을 입력합니다.
outputRfPowerDbm 디지타이저: outputRfPower • NULL(SNNB 또는 SNWB 이외의 다운링크 또는 디지타이저 드라이버)
• 이중: 출력 Rf 전력
출력 RF 전력(dBm)
outputPacketRate 디지타이저: rfOutputStream[0].measuredPacketRate • NULL(SNNB 또는 SNWB 이외의 다운링크 또는 디지타이저 드라이버)
• 이중: 출력 패킷 속도
업링크에 대해 측정된 패킷 속도
gapCount 디지타이저: rfOutputStream[0].gapCount • NULL(SNNB 또는 SNWB 이외의 다운링크 또는 디지타이저 드라이버)
• 이중: 간격 개수
업링크의 패킷 간격 수
modemLockStatus 모뎀: CarrierLockState • NULL(QRadio 또는 QRx 이외의 모뎀 모델, 잠금 상태 Enum을 구문 분석할 수 없음)
• 빈 문자열(메트릭 판독값이 null인 경우)
• 문자열: 잠금 상태
모뎀이 잠겨 있는지 확인합니다.
commandsSent 모뎀: 명령 전송됨 • NULL(업링크 및 QRadio가 아닌 경우)
• 이중: 전송된 명령 수
접촉 중에 명령이 전송되었음을 확인합니다.

이벤트 소비자

이벤트 소비자를 사용하여 Event Hubs에서 이벤트를 수신하는 간단한 소비자 앱을 작성할 수 있습니다. 다양한 언어로 Event Hubs 이벤트를 보내고 받는 방법을 알아보려면 다음 설명서를 참조하세요.

Changelog

2024-04-17 - TLE에 대해 가능한 NULL을 포함하도록 스키마를 업데이트하고 QRX용 EsN0를 추가했으며, Microsoft 안테나가 접속의 첫 순간에 필드에 NULL을 가질 수 있는 방법에 대한 안내문을 추가했습니다. 2023-10-03 - 버전 4.0을 소개합니다. 업링크 패킷 메트릭과 사용 중인 인프라 이름(지상국, 안테나, 우주선, 모뎀, 디지타이저, 링크, 채널)을 포함하도록 스키마가 업데이트되었습니다.
2023-06-05 - 링크 대신 채널 아래에 메트릭을 표시하도록 스키마가 업데이트되었습니다.

다음 단계