天天看點

BLE錯誤碼全面解析&連接配接失敗原因錯誤碼解析&BLE Disconnect Reason

錯誤代碼用于訓示錯誤的原因,當出現一些異常情況時會出現一些對應的錯誤碼。錯誤代碼的大小為8個位元組。

未知HCI指令(0x01)

未知HCI指令錯誤代碼表示控制器不了解主機發送的HCI指令資料包操作碼。所給出的操作碼可能不對應于本文檔中指定的任何操作碼,也不對應于任何特定于供應商的操作碼,或者該指令可能尚未實作。

未知連接配接辨別符(0x02)

未知連接配接辨別符錯誤代碼表示從主機發送了一個指令,該指令應該識别一個連接配接,但該連接配接不存在或沒有識别正确的連接配接類型。

硬體故障(0x03)

硬體故障錯誤代碼向主機表明,控制器中的某些故障的方式無法用任何其他錯誤代碼來描述。此錯誤代碼所隐含的含義依賴于實作。

PAGE逾時(0x04)

頁面逾時錯誤代碼表示由于頁面逾時配置參數而導緻頁面逾時。此錯誤代碼可能隻出現在HCI_Remote_Name_Request和HCI_Create_Connection指令中。

身份驗證失敗(0x05)

身份驗證失敗錯誤代碼表示由于配對或身份驗證過程中的結果不正确,導緻配對或身份驗證失敗。這可能是由于一個錯誤的密碼或連結鍵。

PIN或密鑰丢失(0x06)

當配對因PIN丢失而失敗,或認證因密鑰丢失而失敗時,将使用PIN或密鑰丢失的錯誤代碼。

記憶體容量超過(0x07)

記憶體容量超過錯誤代碼向主機表明控制器記憶體不足,無法存儲新參數。

連接配接逾時(0x08)

連接配接逾時錯誤代碼表示給定連接配接的鍊路監視逾時已逾時,或者給定廣播的同步逾時已過期。

超過連接配接限制(0x09)

連接配接限制超過錯誤代碼表示嘗試建立另一個連接配接失敗,因為控制器已經達到其可以支援的連接配接數量的限制。裝置可以支援的連接配接數取決于實作。

對裝置的同步連接配接限制超過(0x0A)

對裝置的同步連接配接限制超過錯誤代碼表示控制器已達到可以達到對裝置的同步連接配接數量的限制。裝置可以支援的同步連接配接數取決于實作。

連接配接已存在(0x0B)

連接配接已存在錯誤代碼表明,當已經連接配接到該裝置,且不允許對同一裝置進行多個連接配接時,已嘗試建立到該裝置的新連接配接。

不允許指令(0x0C)

不允許指令的錯誤代碼表示無法執行所請求的指令,因為控制器目前處于此時無法處理此指令的狀态。錯誤代碼未知HCI指令有效的指令操作碼。

由于有限的資源而被拒絕的連接配接(0x0D)

由于資源有限而被拒絕的連接配接錯誤代碼表明一個連接配接由于資源有限而被拒絕。

由于安全原因而被拒絕的連接配接(0x0E)

由于安全原因而被拒絕的連接配接錯誤代碼表明一個連接配接由于未滿足安全要求而被拒絕,如身份驗證或配對。

連接配接被拒絕是由于不可接受的BD_ADDR(0x0F)

由于不可接受的BD_ADDR錯誤代碼而被拒絕的連接配接表明一個連接配接被拒絕了,因為該裝置不接受BD_ADDR。這可能是因為該裝置将隻接受來自特定BD_ADDRs的連接配接。

連接配接接受逾時超過(0x10)

連接配接接受逾時超過錯誤代碼表明此連接配接嘗試已超過連接配接接受逾時。

不支援的特性或參數值(0x11)

不支援的特性或參數值錯誤代碼表示不支援HCI指令中的特性或參數值。此錯誤代碼不得在LMP中用于PDU。

無效的HCI指令參數(0x12)

無效的HCI指令參數錯誤代碼表明至少有一個HCI指令參數無效。

當參數總長度無效時,應使用。

•一個指令參數的類型無效。

•中的一個連接配接辨別符與對應的事件不比對。

•當一個參數需要為偶數時,它是奇數的。

•中的一個參數超出了指定的範圍。

•中的兩個或多個參數值的值不一緻。

注意:例如,當需要ACL連接配接句柄時,使用SCO連接配接句柄時,可能是無效的類型。

遠端使用者終止連接配接(0x13)

遠端使用者終止連接配接錯誤代碼表示遠端裝置上的使用者要麼終止了連接配接,要麼停止了廣播資料包。

由于低資源而導緻的遠端裝置終止連接配接(0x14)

由于資源不足導緻的遠端裝置終止連接配接錯誤代碼表明遠端裝置由于資源不足而終止了連接配接。

遠端裝置終止連接配接(0x15)

由于關機錯誤而導緻的遠端裝置終止連接配接代碼表明遠端裝置由于裝置即将關機而終止連接配接。

由本地主機終止的連接配接(0x16)

由本地主機終止的連接配接錯誤代碼表示本地裝置終止連接配接、終止與廣播器的同步,或終止廣播資料包。

重複嘗試(0x17)

重複嘗試錯誤代碼表明控制器不允許身份驗證或配對過程,因為自上次身份驗證或配對嘗試失敗後經過的時間太少。

不允許配對(0x18)

不允許配對的錯誤代碼表示裝置不允許配對。例如,當一個裝置隻允許在某些使用者輸入允許配對後的某個時間視窗内允許配對時。

未知LMP PDU(0x19)

未知LMP PDU錯誤代碼表示控制器接收到未知的LMP操作碼。

不支援的遠端功能(0x1A)

不支援的遠端功能錯誤代碼表明遠端裝置不支援與發出的指令、LMP PDU或連結層控制PDU關聯的功能。

SCO偏移被拒絕(0x1B)

SCO偏移被拒絕的錯誤代碼表示在LMP_SCO_LINK_REQ PDU中請求的偏移已被拒絕。

SCO時間間隔被拒絕(0x1C)

SCO時間間隔被拒絕的錯誤代碼表示在LMP_SCO_LINK_REQ PDU中請求的時間間隔已被拒絕。

SCO空氣模式被拒絕(0x1D)

SCO空氣模式被拒絕的錯誤代碼表示在LMP_SCO_LINK_REQ PDU中請求的空氣模式已被拒絕。

無效的LMP參數/無效的LL參數(0x1E)

無效的LMP參數/無效的LL參數錯誤代碼表明某些LMP PDU/LL控制PDU參數無效。

當PDU長度無效時,應使用。

•當一個參數需要為偶數時,它是奇數的。

•中的一個參數超出了指定的範圍。

•的兩個或多個參數的值不一緻。

未指定的錯誤(0x1F)

未指定的錯誤錯誤代碼表示沒有指定的其他錯誤代碼适合使用。

不受支援的LMP參數值/不受支援的LL參數值(0x20)

不受支援的LMP參數值/不受支援的LL參數值錯誤代碼表示LMP PDU或LL控制PDU包含至少一個此時控制器不支援的參數值。這通常是在長時間的協商過程之後使用的,例如在LMP_HOLD_REQ、LMP_SNIFF_REQ和LMP_ENCRYPTION_KEY_SIZE_-REQPDU交換期間。這可以被鍊路層使用,例如在連接配接參數請求鍊路層控制過程中。

不允許角色更改(0x21)

不允許角色更改的錯誤代碼表示控制器此時不允許角色更改。

LMP響應逾時/LL響應逾時(0x22)

LMP響應逾時/LL響應逾時錯誤代碼表示LMP事務在LMP響應逾時内未響應,或LL事務在LL響應逾時内未響應。

LMP PDU不允許(0x24)

LMP PDU不允許的錯誤代碼表示控制器發送了一個具有不允許的操作碼的LMP PDU。

加密模式不可接受(0x25)

加密模式不可接受的錯誤代碼表示此時所請求的加密模式不可接受。

無法更改連結鍵(0x26)

無法更改連結密鑰錯誤代碼表示無法更改連結鍵,因為使用了固定的機關密鑰。

請求的QoS不支援(0x27)

請求的QoS不支援的錯誤代碼表明不支援請求的服務品質。

即時傳遞(0x28)

即時傳遞的錯誤代碼表示無法執行包含瞬間的LMP PDU或LL PDU,因為這将發生的瞬間已經傳遞。

不支援單元密鑰配對(0x29)

不支援單元密鑰配對錯誤代碼表示無法請求單元密鑰配對,不支援。

不同的事務沖突(0x2A)

不同的事務沖突錯誤代碼表示已啟動了與正在進行的事務發生沖突的LMP事務或LL的過程。

QoS不可接受參數(0x2C)

QoS不可接受參數錯誤碼表示此時不能接受指定的服務品質參數,但其他參數也可以接受。

QoS拒絕(0x2D)

QoS拒絕錯誤代碼表示不能接受指定的服務品質參數,應終止QoS協商。

不支援通道評估(0x2E)

不支援通道評估的錯誤代碼表明控制器無法執行通道評估,因為不支援它。

安全不足(0x2F)

安全不足錯誤代碼表示所發送的HCI指令或LMP PDU僅可在加密的鍊路上執行。

參數超出強制範圍(0x30)

參數超出強制範圍錯誤代碼表示請求的參數值超出了給定HCI指令或LMP PDU的強制參數範圍,并且收件人不接受該值。

ROLE切換挂起(0x32)

角色切換挂起錯誤代碼表明角色切換正在挂起。當HCI指令或LMP PDU因角色切換而不能被接受時,可以使用此指令。這也可用于通知對等裝置關于挂起的角色切換。

保留SLOT沖突(0x34)

保留插槽沖突錯誤代碼表示目前同步協商已終止,協商狀态設定為保留插槽沖突。 

ROLE開關失敗(0x35)

角色開關失敗的錯誤代碼表示已經嘗試了一個角色開關,但它失敗了,并恢複了原始的圖檔網結構。開關可能已經故障,因為TDD開關或圖檔開關故障。

擴充查詢響應太大(0x36)

擴充查詢響應太大的錯誤代碼表明,擴充查詢響應的要求太大,無法适應控制器支援的任何資料包類型。

主機不支援的安全簡單配對(0x37)

主機不支援的安全簡單配對錯誤代碼表明IO功能請求或響應被拒絕,因為發送主機不支援安全簡單配對,即使接收連結管理器不支援。

主機Busy-配對(0x38)

主機忙配對錯誤代碼表示主機忙于另一個配對操作,無法支援所請求的配對。接收裝置稍後應再次重試配對。

連接配接拒絕到未找到合适的通道(0x39)

由于未找到合适的通道而拒絕的連接配接錯誤代碼表明控制器無法計算通道選擇操作的适當值。

控制器BUSY(0x3A)

控制器繁忙的錯誤代碼表示操作被拒絕,因為控制器繁忙,無法處理請求。

不可接受的連接配接參數(0x3B)

不可接受的連接配接參數錯誤代碼表示遠端裝置由于一個或多個不可接受的連接配接參數而終止了連接配接或拒絕了一個請求。

廣播逾時(0x3C)

廣播逾時錯誤代碼表示固定時間的廣告完成,或者對于定向廣播,廣播在沒有建立連接配接的情況下完成。

由于MIC故障而終止的連接配接終止(0x3D)

由于MIC故障而終止的連接配接錯誤代碼表明,由于接收到的資料包上的消息完整性檢查(MIC)失敗,連接配接或同步已終止。

連接配接未能被建立起/同步逾時(0x3E)

連接配接未能建立/同步逾時錯誤代碼表明,LL啟動了連接配接或啟動了對定期廣播的同步,但連接配接未能建立,或連結層未能與第一次嘗試的6個周期廣播事件内的定期廣播同步。

粗時鐘調整被拒絕,但将嘗試使用時鐘拖動(0x40)

粗時鐘調整被拒絕,但将嘗試使用時鐘拖動錯誤代碼表明,此時無法使用提供的參數對微型時鐘進行粗調整。相反,中央系統将嘗試使用時鐘拖動來移動時鐘。

未定義類型0 SUBMAP(0x41)

類型0子映射未定義的錯誤代碼表示LMP PDU被拒絕,因為類型0子映射目前未定義。

未知廣播辨別符(0x42)

未知廣播辨別符錯誤代碼表示從主機發送了一個應該辨別廣播或同步句柄的指令,但廣播或同步句柄不存在。

達到限制(0x43)

被主機取消的操作(0x44)

包太長(0x45)

繼續閱讀