连接您的 Sidewalk 设备并查看上行链路元数据格式 - AWS IoT Wireless

连接您的 Sidewalk 设备并查看上行链路元数据格式

在本教程中,您将使用 MQTT 测试客户端来测试连接,并查看在终端设备与 AWS Cloud之间交换的消息。要接收消息,请在 MQTT 测试客户端中,订阅在为目标创建 IoT 规则时指定的主题。也可以使用 SendDataToWirelessDevice API 操作从适用于 Amazon Sidewalk 的 AWS IoT Core 向您的设备发送下行链路消息。您可以通过启用消息传送状态事件通知来验证消息是否已送达。

注意

有关连接和设置硬件平台的信息,请参阅《Amazon Sidewalk 文档》中的预置和注册终端设备设置硬件开发工具包(HDK)

使用 SendDataToWirelessDevice API 操作或 send-data-to-wireless-device CLI 命令从适用于 Amazon Sidewalk 的 AWS IoT Core 将下行链路消息发送到您的 Sidewalk 终端设备。下面显示了如何运行此命令的示例。有效负载数据是要发送的二进制文件,以 base64 编码。

aws iotwireless send-data-to-wireless-device \ --id "<Wireless_Device_ID>" \ --payload-data "SGVsbG8gVG8gRGV2c2lt" \ --wireless-metadata Sidewalk={Seq=1,AckModeRetryDurationSecs=10}

以下显示了运行此命令的示例输出,也即发送到设备的下行链路消息的 ID。

{ MessageId: "6011dd36-0043d6eb-0072-0008" }
注意

SendDataToWirelessDevice API 可以返回消息 ID,但消息可能未能成功传送。要检查发送到设备的消息的状态,您可以为您 Sidewalk 账户和设备启用消息传送状态事件。有关如何启用此事件的信息,请参阅Sidewalk 资源的事件通知。有关此事件类型的更多信息,请参阅消息传送事件

在连接设备之后,您可以订阅在创建目标规则时指定的主题(例如,project/sensor/observed),并观察来自设备的上行链路消息。

如果您在创建目标时指定了主题名称,则可以订阅该主题以监控来自终端设备的上行链路消息。转到 AWS IoT 控制台的测试页面上的 MQTT 测试客户端,输入主题名称(例如,project/sensor/observed),然后选择订阅

下面的示例显示了从 Sidewalk 设备发送到 AWS IoT 的上行链路消息格式。WirelessMetadata 包含有关消息请求的元数据。

{ "PayloadData":"ZjRlNjY1ZWNlNw==", "WirelessDeviceId":"wireless_device_id", "WirelessMetadata":{ "Sidewalk":{ "CmdExStatus":"Cmd", "SidewalkId":"device_id", "Seq":0, "MessageType":"messageType" } } }

下表显示了上行链路元数据中不同参数的定义。device-id 是无线设备的 ID(例如 ABCDEF1234),而 messageType 是从设备接收的上行链路消息的类型。

Sidewalk 上行链路元数据参数
参数 描述 类型 必需
PayloadData

从无线设备发送的消息有效负载。

字符串
WirelessDeviceID 发送数据的无线设备的标识符 字符串
Sidewalk.CmdExStatus

命令运行时状态。响应类型的消息应包含状态代码,COMMAND_EXEC_STATUS_SUCCESS。但是,通知可能不包含状态代码。

枚举
Sidewalk.NackExStatus

响应 nack 状态,可以为 RADIO_TX_ERROR 或者 MEMORY_ERROR

字符串数组