命令的Response有四种,即lmp_accepted/lmp_not_accepted/lmp_accepted_ext/ lmp_not_accepted_ext。
其中lmp_accepted/ lmp_accepted_ext包含了被接受的命令的opcode,相应的lmp_not_accepted和lmp_not_accepted_ext包含了被拒绝的命令的opcode和reson(也可以称作Error Code)。
那么什么情况下使用带_ext的response,而又什么情况下使用不带_ext的response呢?
简单!对于opcode为7bit的情况,就是用不带_ext的response,对于opcode为15bit的情况,则使用带_ext的response。
下图中包含了对应上面四种response所包含的内容:
按照蓝牙协议中的描述,opcode长度包括两种,即7bit和15bit的,它们包含的内容有多有少,其layout分别如下:
下面简单的分析一个长度为15bit的opcode:
再来看一个长度为7bit的opcode: