

# 選擇閘道以接收 LoRaWAN 下行資料流量
<a name="lorawan-gateway-participate"></a>

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

## 如何指定閘道清單
<a name="lorawan-participate-how"></a>

您可以使用 [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_SendDataToWirelessDevice.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_SendDataToWirelessDevice.html) 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 執行下行佇列操作](lorawan-downlink-queue.md#lorawan-downlink-queue-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`，資料封包繩也可能會被丟棄。如需如何解決錯誤的詳細資訊，請參閱 [下行訊息佇列錯誤疑難排解](lorawan-downlink-queue.md#lorawan-downlink-queue-troubleshoot)。

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

## 取得參與閘道清單的資訊
<a name="lorawan-participate-get"></a>

您可以列出下行佇列中的訊息，以取得有關參與接收下行訊息之閘道清單的資訊。若要列出訊息，請使用 [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListQueuedMessages.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListQueuedMessages.html) API。

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

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