pande
(LEGO) EV3藍牙連線基礎測試,進階應用實測記錄
pande
Bluetooth Connection Block
- On
- Off
- Initiate
- Clear
https://images.plurk.com/4QMr94mXd9olKz4KUGPTrh.jpg
pande
» 藍牙連線操作可寫入主機
pande
» 執行中 [連線Block] 回報錯誤訊息
 主要是因為 [藍牙清單] 中沒有該裝置
pande
» 斷線(Clear)可以不指定主機名稱
 連線(Initiate)一定要指定主機名稱,才能有效運作
pande
斷線(Clear)如果不指定,會一次斷多台嗎?

答:一次斷一台。依照藍牙清單上的先後順序切斷。
pande
用Slave做連線(Initiate)動作,會改變成master嗎?

【Master-slave架構&連線(Ininiate)】

答:
- 如果對象已經連線(無論是master/slave),對象不會做反應
- 如果對象是自己的master,連線(Initiate)不會送出
- 只要對象不是自己的master:
 先切斷自己的master,再發連線(Initiate)
 ‧ 如果對象已經連線,對象不會做反應 → 維持斷線
 ‧ 如果對象尚未連線 → 做為master建立新連線
pande
有戲 (腦洞
pande
此時
無論新架構有沒有建立,都不會再對連線做反應
任何新建立的連線架構,藍牙傳訊(Message)功能都失常
→ 關閉(Off)再開啟(On)就會回復正常 (如果還能關閉的話)

(Bug狀態)

所以總結
用Slave做連線動作,會造成主機藍牙相關功能當機
正確操作方式是,先將master斷線(Clear)
不是Slave了,再做新的連線(Initiate)
pande
[測試實境圖像描繪]

» 藍牙開啟,執行 [On] 不額外等待
 藍牙關閉,執行 [On] 需額外等待時間
» 藍牙開啟or關閉,執行 [Off] 皆不需額外等待

» 藍牙清單中沒有該裝置,執行 [Initiate] 會回報錯誤訊息

» 執行 [Initiate] 需額外等待時間
 裝置已連線,執行 [Initiate] 不需額外等待
» 執行 [Clear] 需額外等待時間
 已無連線中的裝置,執行 [Clear] 不需額外等待

» 藍牙關閉,執行 [Initiate]或[Clear] 皆回報錯誤訊息
載入新的回覆