我正在使用MESH SDK 1.6.1,并试图修改特定用途的供应商模型。
当我试图更改供应商OpCode时,出现以下错误且不工作。
[** ERR **]:[access_api.c]:[833]: [ACCESS] Check FAILED for 3字节操作码0 x00a000d2
如果我改回原来的定义,即0x00C000D2,它是有效的。
为什么会发生这种情况,我该如何改变这种行为?
关键词:
设备:
嗨火鸟,
我正在和我们的内部团队一起做这件事。会尽快给你一个解决方案。
最好的
LC_Dialog
嗨火鸟,
供应商操作码的格式受Mesh规范的限制,请参考Mesh_v1_0规范的3.7.3.1节第三个字节设置为0b11.请用这种格式实现一个操作码,并检查错误是否被解决。附上一个参考的规格如下。
3.7.3.1操作码
操作码(opcode)是由1、2或3个八位元组成的数组。操作码的第一个八位元决定了作为操作码一部分的八位元的数目。
如果操作码的第一个八位的最有效位为零,则该操作码包含一个八位。如果前八位的两个最有效位是0b10,则操作码包含两个八位。如果前八位的两个最有效位是0b11,则操作码包含三个八位。如表3.43所示。
字节码用于蓝牙SIG定义的应用程序操作码。蓝牙SIG可以定义和分配127个1-八位字节的操作码。操作码0x7F为将来可能的扩展保留。
2字节码用于蓝牙SIG定义的应用程序操作码。蓝牙SIG可以定义和分配16384个2字节的操作码。
3-八隅体操作码用于特定于制造商的操作码。每个公司标识符有64个3-八位体操作码,在表3.43中用“x”标识,如果需要,公司可以亚博全网进一步子类化操作码。公司标识亚博全网符是蓝牙SIG定义的16位值,被编码到3字节操作码的第二和第三字节中,使用表3.43中的“z”进行识别。特定于公亚博全网司的操作码由与标识符相关联的公司管理
最好的问候,
LC_Dialog
好的,我明白了。我会根据规范修改OpCode。