選擇閘道以接收 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
物件清單來表示,包含GatewayId
和DownlinkFrequency
對。 -
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-jsonfile://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"
執行此命令會傳回佇列中訊息及其參數的相關資訊。