調試作業需要具備「調試者」角色的裝置,以及具備「加入者」角色的裝置。Commissioner 是現有 Thread 網路中的 Thread 裝置,或是 Thread 網路外的裝置 (例如手機),負責執行委員會角色。加入者是指想要加入 Thread 網路的裝置。
執行緒委派程式可用於驗證網路上的裝置。它不會轉移或擁有 Thread 網路憑證 (例如網路金鑰)。
本指南將說明基本、在同網絡上進行的調試作業,不需使用外部調節器或邊界路由器。如要瞭解如何使用外部委派程式,請參閱「外部執行緒委派」。
如需使用虛擬裝置進行調試的範例,請參閱 OpenThread 模擬程式碼研究室。
啟用角色
如要啟用委派者和加入者角色,請使用下列 cmake 選項:
選項 | 說明 |
---|---|
-DOT_COMMISSIONER=ON |
啟用「委派人」角色 |
-DOT_JOINER=ON |
啟用「加入者」角色 |
舉例來說,如要建構 CC2538 範例平台,僅用於做為 Joiner:
./script/build -DOT_JOINER=ON
將每個二進位檔案刷新至所需裝置。其中一部裝置會擔任發起者,另一部則擔任加入者。
如要查看建構及刷新支援平台的具體操作說明,請前往各平台的 OpenThread 存放區。請參閱 OpenThread GitHub 機構,找出存放區。
建立網路
在擔任發布者的裝置上建立網路:
dataset init new
Donedataset
Active Timestamp: 1 Channel: 13 Channel Mask: 07fff800 Ext PAN ID: d63e8e3e495ebbc3 Mesh Local Prefix: fd3d:b50b:f96d:722d/64 Network Key: dfd34f0f05cad978ec4e32b0413038ff Network Name: OpenThread-8f28 PAN ID: 0x8f28 PSKc: c23a76e98f1a6483639b1ac1271e2e27 Security Policy: 0, onrcb Donedataset commit active
Doneifconfig up
Donethread start
Done
稍候幾秒鐘,確認裝置已成為 Thread 領導裝置:
state
leader
Done
啟動「委派者」角色
在相同裝置上啟動「佣金」角色:
commissioner start
Done
使用萬用字元「*」可讓任何具有指定加入者憑證的加入者,將佣金提撥至網路。系統會使用加入者憑證 (連同擴充 PAN ID 和網路名稱) 產生裝置的預先共用金鑰 (PSKd)。接著,在執行 Thread 委派作業時,系統會使用 PSKd 驗證裝置。每部裝置的加入者憑證不得重複。
commissioner joiner add * J01NME
Done
限制為特定加入者
如要將調試作業限制在特定 Joiner 裝置上,請使用 eui64
參數,這是裝置工廠指定的 IEEE EUI-64。
在做為加入者裝置的裝置上,取得 EUI-64:
eui64
2f57d222545271f1
Done
在 Commissioner 裝置上,請在 commissioner joiner
指令中使用該值,而非 * 萬用字元:
commissioner joiner add 2f57d222545271f1 J01NME
Done
啟動加入者角色
在做為加入者裝置的裝置上執行恢復原廠設定,然後使用在委派者上指定的相同加入者憑證啟用加入者角色:
factoryreset
ifconfig up
Donejoiner start J01NME
Done
請稍候幾秒鐘,等待確認:
Join success!
加入裝置已成功向管理員驗證,並收到 Thread Network 憑證。
接著,請在加入者裝置上啟動 Thread:
thread start
Done
驗證驗證
檢查加入者裝置的狀態,確認該裝置已加入網路。狀態會在兩分鐘內從子項轉換為路由器:
state
child Done ...state
router Done