在MESH供应商模型中使用自定义OpCode

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.xmece.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
4个职位/ 0个新职位
最后发表
火鸟
离线
最后看到:2周21小时前
加入:2019-07-12 09:48
在MESH供应商模型中使用自定义OpCode

我正在使用MESH SDK 1.6.1,并试图修改特定用途的供应商模型。

当我试图更改供应商OpCode时,出现以下错误且不工作。

[** ERR **]:[access_api.c]:[833]: [ACCESS] Check FAILED for 3字节操作码0 x00a000d2

如果我改回原来的定义,即0x00C000D2,它是有效的。

为什么会发生这种情况,我该如何改变这种行为?

关键词:
设备:
LC_Dialog
离线
最后看到:3个月1个星期前
工作人员
加入:2016-09-19 23:20
嗨火鸟,

嗨火鸟,

我正在和我们的内部团队一起做这件事。会尽快给你一个解决方案。

最好的
LC_Dialog

LC_Dialog
离线
最后看到:3个月1个星期前
工作人员
加入:2016-09-19 23:20
嗨火鸟,

嗨火鸟,

供应商操作码的格式受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

火鸟
离线
最后看到:2周21小时前
加入:2019-07-12 09:48
好的,我明白了。我将会改变

好的,我明白了。我会根据规范修改OpCode。