選擇閘道以接收 LoRaWAN 下行資料流量 - AWS IoT Wireless

選擇閘道以接收 LoRaWAN 下行資料流量

從 AWS IoT Core for LoRaWAN 傳送下行訊息時,您可以選擇要用於下行資料流量的閘道。您可以指定個別閘道,或從閘道清單中選擇以接收下行流量。

如何指定閘道清單

您可以使用 SendDataToWirelessDevice API 操作,指定從 AWS IoT Core for LoRaWAN 傳送下行訊息至裝置時要使用的個別閘道或閘道清單。呼叫 API 操作時,使用閘道的 ParticipatingGateways 物件指定下列參數。

注意

您要使用的閘道清單不適用於 AWS IoT 主控台。僅在使用 SendDataToWirelessDevice API 操作或 CLI 時才能指定此閘道清單。

  • DownlinkMode:指出是以順序模式還是並行模式傳送下行訊息。對於 A 類裝置,請指定 UsingUplinkGateway,僅使用先前上行訊息傳輸中選擇的閘道。

  • GatewayList:您要用來傳送下行資料流量的閘道清單。下行承載將以指定的頻率傳送到指定的閘道。這是使用 GatewayListItem 物件清單來表示,包含 GatewayIdDownlinkFrequency 對。

  • TransmissionInterval:在將承載傳輸到下一個閘道之前,AWS IoT Core for LoRaWAN 等待的持續時間。

注意

只有在將下行訊息傳送至 B 類或 C 類無線裝置時,才能指定此閘道清單。如果您使用 A 類裝置,則傳送下行訊息至裝置時,將使用您在傳送上行訊息時選擇的閘道。

下列範例說明如何指定閘道的這些參數。input.json 檔案將包含其他詳細資訊。如需使用 SendDataToWirelessDevice API 傳送下行訊息的詳細資訊,請參閱 使用 API 執行下行佇列操作

注意

當您使用 AWS IoT 主控台從 AWS IoT Core for LoRaWAN 傳送下行訊息時,無法使用用來指定參與閘道清單的參數。

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"

執行此命令會傳回佇列中訊息及其參數的相關資訊。