选择网关以接收 LoRaWAN 下行链路数据流量 - AWS IoT Wireless

选择网关以接收 LoRaWAN 下行链路数据流量

当您从 适用于 LoRaWAN 的 AWS IoT Core 向设备发送下行链路消息时,您可以选择要用于下行链路数据流量的网关。您可以指定单个网关或从网关列表中进行选择,以接收下行链路流量。

如何指定网关列表

当使用 SendDataToWirelessDevice API 操作从 适用于 LoRaWAN 的 AWS IoT Core 向设备发送下行链路消息时,您可以指定要使用的单个网关或网关列表。调用 API 操作时,通过为网关使用 ParticipatingGateways 对象指定以下参数。

注意

您要使用的网关列表在 AWS IoT 控制台中不可用。仅当使用 SendDataToWirelessDevice API 操作或 CLI 时,才可以指定要使用的这一网关列表。

  • DownlinkMode:指示是以顺序模式还是并发模式发送下行链路消息。对于 A 类设备,请指定 UsingUplinkGateway,以仅使用先前上行链路消息传输中选定的网关。

  • GatewayList:您要用于发送下行链路数据流量的网关列表。下行链路负载将以指定的频率发送到指定的网关。这是使用由 GatewayIdDownlinkFrequency 对组成的 GatewayListItem 对象的列表来表示的。

  • TransmissionInterval:适用于 LoRaWAN 的 AWS IoT Core 在将负载传输到下一个网关之前将等待的时间。

注意

您可以将此网关列表指定为仅在向 B 类或 C 类无线设备发送下行链路消息时使用。如果您使用 A 类设备,则在向设备发送下行链路消息时,将使用您在发送上行链路消息时选择的网关。

下面的示例显示如何为网关指定这些参数。input.json 文件将包含其他详细信息。有关使用 SendDataToWirelessDevice API 操作发送下行链路消息的更多信息,请参阅使用 API 执行下行链路队列操作

注意

使用 AWS IoT 控制台从 适用于 LoRaWAN 的 AWS IoT Core 发送下行链路消息时,用于指定参与网关列表的参数不可用。

aws iotwireless send-data-to-wireless-device \ --id "11aa5eae-2f56-4b8e-a023-b28d98494e49" \ --transmit-mode "1" \ --payload-data "SGVsbG8gVG8gRGV2c2lt" \ --cli-input-json file://input.json

下面显示的是 input.json 文件的内容。

input.json 的内容

{ "WirelessMetadata": { "LoRaWAN": { "FPort": "1", "ParticipatingGateways": { "DownlinkMode": "SEQUENTIAL", "TransmissionInterval": 1200, "GatewayList": [ { "DownlinkFrequency": 100000000, "GatewayID": a01b2c34-d44e-567f-abcd-0123e445663a }, { "DownlinkFrequency": 100000101, "GatewayID": 12345678-a1b2-3c45-67d8-e90fa1b2c34d } ] } } } }

运行此命令的输出会生成下行链路消息的 MessageId。在某些情况下,即使收到 MessageId,数据包也可能丢失。有关如何解决错误的更多信息,请参阅 排查下行链路消息队列错误

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

获取有关参与网关的列表的信息

您可以通过列出下行链路队列中的消息,获取有关参与接收下行链路消息的网关列表的信息。要列出消息,请使用 ListQueuedMessages API。

aws iotwireless list-queued-messages \ --wireless-device-type "LoRaWAN"

运行此命令会返回有关队列中的消息及其参数的信息。