你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
接收实时天线遥测
Azure Orbital 地面站发出天线遥测事件,可用于分析联系期间的地面站运行情况。 可以将联系配置文件配置为将遥测事件发送到 Azure 事件中心。
在本指南中,你将学习如何:
- 为 Azure Orbital 地面站配置 Azure 事件中心
- 在联系配置文件中启用遥测。
- 验证遥测数据的内容
- 了解遥测点
配置事件中心
- 在订阅中,转到设置中的资源提供程序。 搜索 Microsoft.Orbital 并将其注册为提供程序。
- 在订阅中创建 Azure 事件中心命名空间和事件中心。
注意
选择“公共访问”可访问事件中心。 不支持专用访问或服务终结点。
- 在左侧菜单中,选择“访问控制(IAM)”。 在“授予对此资源的访问权限”下,选择“添加角色分配”。
- 在“角色”选项卡下,搜索并选择“Azure 事件中心数据发送方”。 单击“下一步”。
- 在“成员”选项卡下,将访问权限分配给用户、组或服务主体。
- 单击“+ 选择成员”。
- 搜索“Azure Orbital 资源提供程序”,单击“选择”。
- 单击“查看 + 分配”。 此操作授予 Azure Orbital 地面站将遥测数据发送到事件中心的权限。
- 要确认新添加的角色分配,请返回“访问控制(IAM)”页面并选择“查看对此资源的访问权限”。 Azure Orbital 资源提供程序应在“Azure 事件中心数据发送方”下。
为联系配置文件启用事件中心遥测
按如下所示配置联系配置文件:
- 使用“事件中心命名空间”下拉菜单选择命名空间。
- 使用在选择命名空间后出现的“事件中心实例”下拉菜单选择一个实例。
可以更新现有联系配置文件的设置,方法是
验证来自联系的天线遥测数据
使用之前为事件中心遥测配置的联系配置文件计划联系。 联系开始后,你应该很快就能在事件中心看到数据。
可以通过多种方式验证传入遥测数据的存在和内容。
事件中心命名空间仪表板
要验证事件中心是否接收到事件,可以查看资源组中事件中心命名空间概述页面上的图。 此视图显示某个命名空间中所有事件中心实例的数据。 可以导航到资源组中特定事件中心实例的概述页面,查看该实例的图。
将天线遥测数据传送到存储帐户
可以启用事件中心捕获功能,以自动将遥测数据传送到所选的 Azure Blob 存储帐户。 按照说明启用捕获并将数据捕获到 Azure 存储。 启用后,可以检查容器并查看/下载数据。
了解遥测点
当前遥测架构版本: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" ]
}
]
}
}
]
}
]
}
}
]
}
]
}
下表提供了每个遥测点的源设备/点、可能的值和定义。
遥测点 | 源设备/点 | 可能值 | 定义 |
---|---|---|---|
版本 | 在内部手动设置 | 遥测的发布版本 | |
contactID | 联系资源 | 联系的标识号 | |
contactPlatformIdentifier | 联系资源 | ||
groundStationName | 联系资源 | 地面站的名称 | |
antennaType | 相应的 Microsoft/合作伙伴遥测生成器设置此值 | MICROSOFT、KSAT、VIASAT | 用于联系的天线网络。 |
antennaId | 联系资源 | 天线 ID 的可读名称 | |
spacecraftName | 从联系平台标识符分析 | 航天器的名称 | |
gpsTime | utcTime 的转换 | 生成客户遥测消息的 GPS 时间。 | |
utcTime | 当前时间 | 生成客户遥测消息的 UTC 时间。 | |
azimuthDecimalDegrees | ACU: AntennaAzimuth | 天线方位角,以十进制度为单位。 | |
elevationDecimalDegrees | ACU: AntennaElevation | 天线仰角,以十进制度为单位。 | |
contactTleLine1 | ACU: Satellite[0].Model.Value | TLE 第 1 行字符串 | 用于联系的 TLE 的第一行。 |
contactTLeLine2 | ACU: Satellite[0].Model.Value | TLE 第 2 行的字符串 | 用于联系的 TLE 的第二行。 |
名称 [Link-level] | 联系配置文件链接 | 链接的名称 | |
direction | 联系配置文件链接 | 上行链路、下行链路 | 用于联系的链接方向。 |
极化 | 联系配置文件链接 | RHCP、LHCP、DualRhcpLhcp、LinearVertical、LinearHorizontal | 用于联系的链接的极化。 |
uplinkEnabled | ACU:SBandCurrent 或 UHFTotalCurrent | • NULL(无效的 CenterFrequencyMhz 或下行链接方向) • False(除 S 和 UHF 或 Amp Current < 阈值以外的带) • True(S/UHF 带,上行链路,Amp Current > 阈值) |
指示是否已为联系启用上行链路。 |
名称 [Channel-level] | 联系配置文件链接通道 | 通道的名称 | |
modemName | 调制解调器 | 调制解调器设备的名称 | |
digitizerName | 数字化器 | 数字化器设备的名称 | |
endpointName | 联系配置文件链接通道 | 用于联系的终结点的名称。 | |
inputEbN0InDb | 调制解调器:measuredEbN0 | • NULL(QRadio 或 QRx 以外的调制解调器模型) • 双:输入 EbN0 |
每比特输入能量与噪声功率谱密度的比值,单位为 dB。 |
inputEsN0InDb | 调制解调器:measuredEsN0 | • NULL(QRx 之外的调制解调器型号) • Double:输入 EsN0 |
每符号输入能量与噪声功率谱密度的比值,单位为 dB。 |
inputRfPowerDbm | 数字化器:inputRfPower | • NULL(SNNB 或 SNWB 以外的上行链路或数字化器驱动程序) • 双:输入射频功率 |
输入射频功率,单位为 dBm。 |
outputRfPowerDbm | 数字化器:outputRfPower | • NULL(SNNB 或 SNWB 以外的下行链路或数字化器驱动程序) • 双:输出射频功率 |
输出射频功率,单位为 dBm。 |
outputPacketRate | 数字化器:rfOutputStream[0].measuredPacketRate | • NULL(SNNB 或 SNWB 以外的下行链路或数字化器驱动程序) • 双:输出数据包速率 |
上行链路的测量数据包速率 |
gapCount | 数字化器:rfOutputStream[0].gapCount | • NULL(SNNB 或 SNWB 以外的下行链路或数字化器驱动程序) • 双:间隔计数 |
上行链路的数据包间隔计数 |
modemLockStatus | 调制解调器:carrierLockState | • NULL(QRadio 或 QRx 以外的调制解调器模型;无法分析锁定状态枚举) • 空字符串(如果指标读数为 null) • 字符串:锁定状态 |
确认调制解调器已锁定。 |
commandsSent | 调制解调器:commandsSent | • NULL(如果不是上行链路和 QRadio) • 双:已发送的命令数 |
确认在联系期间发送了命令。 |
事件使用者
可以使用事件使用者编写简单的使用者应用从事件中心接收事件。 请参阅以下文档,了解如何使用多种语言发送和接收事件中心事件:
更改日志
2024-04-17 - 更新了架构来为 TLE 包括可能的 NULL,为 QRX 添加了 EsN0,并添加了关于 Microsoft 天线在开始联系的第一秒可能具有字段值 NULL 的简介。
2023-10-03 - 引入版本 4.0。 已更新架构,包括正在使用的上行链路数据包指标和基础设施名称(地面站、天线、航天器、调制解调器、数字化器、链接、通道)
2023-06-05 - 已更新架构,在通道(而不是链接)下显示指标。