使用 OT CLI 測試受限制應用程式通訊協定 (CoAP) 資源的連線能力

在 GitHub 上查看原始碼

OpenThread 提供 CoAP 伺服器和用戶端功能,可讓裝置連線至 CoAP 伺服器上的資源,並觀察每個資源目前的狀態變化。CLI 中提供的 CoAP 代理程式可做為 CoAP 用戶端或伺服器。

CoAP 指令

如需 coap 指令清單,請輸入 help

coap help
help
cancel
delete
get
observe
parameters
post
put
resource
set
start
stop
Done

CLI 指令參考資料

如需所有指令的說明和語法,請參閱 CLI 指令參考資料。 coap 指令會以字母順序開始,並以 coap cancel 做為開頭。

CoAP 伺服器和用戶端指令使用範例

本例使用基本 CLI 指令來啟動 CoAP 伺服器和用戶端、在 CoAP 伺服器上建立測試資源,以及讓 CoAP 用戶端與資源互動。 樣本資料僅供參考。

設定 CoAP 伺服器

在 CoAP 伺服器節點上執行下列步驟:

  1. 啟動 CoAP 代理程式。

    coap start
    Done
    
  2. 建立測試資源。

    coap resource test-resource
    Done
    

設定 CoAP 用戶端

在 CoAP 用戶端節點上,執行下列步驟:

  1. 啟動 CoAP 代理程式:

    coap start
    Done
    
  2. 執行 get 指令以取得資源相關資訊:

    coap get fdde:ad00:beef:0:d395:daee:a75:3964 test-resource
    Done
    coap response from [fdde:ad00:beef:0:2780:9423:166c:1aac] with payload: 30
    

    伺服器 response 的最後一部分是 with payload: 一詞,後面加上十六進位數字格式的所有酬載位元組。因此,在範例中,with payload: 30 表示資源目前的酬載已設為具有 0x30 十六進位值的酬載資訊位元組。如要進一步瞭解如何使用 payload 選項,請參閱「Coap 貼文」。

  3. 您可以使用 put 指令修改資源:

    coap put fdde:ad00:beef:0:2780:9423:166c:1aac test-resource con hellothere
    Done
    coap response from [fdde:ad00:beef:0:2780:9423:166c:1aac]
    

    在本例中,con 表示您希望將可靠的訊息 (透過可確認訊息 (con) 取得) 傳送至 CoAP 伺服器。預設設定是傳送無法確認的訊息 (non-con)。

    typeconnon-con 時,使用選用 payload 參數時,字串 hellothere 就是使用選用 payload 參數的範例。詳情請參閱 coap put

    伺服器會以 IPv6 位址回應,表示要求已處理。

傳送至 CoAP 伺服器的回應

在伺服器上,本範例的輸出內容會如下所示:

coap request from [fdde:ad00:beef:0:b3:e3f6:2dcc:4b79] GET
coap response sent
coap request from [fdde:ad00:beef:0:b3:e3f6:2dcc:4b79] PUT with payload: 68656c6c6f7468657265
coap response sent

68656c6c6f7468657265payload 值是轉換為 ASCII 程式碼位元組序列的字串 hellothere