跳到主要内容

网格SDK中的奇怪代码

da1468x.

1年前

张贴了Firebird.0分 3回复
0旋转

嗨,团队。

我正在分析网格SDK代码,并在SDK基础上构建我自己的网格应用程序。

在多种型号中有非常奇怪的实现。

例如,在通用级别服务器模型中,状态消息由以下代码发送给客户端。

返回ms_access_publish(&model-> model_handle,ms_access_generic_level_status_opcode,(Uchar *)和状态,sizeof(ms_generic_level_status_struct) -  1,ms_true);

1.为什么要发送总结构大小减去一个字节?

2.根据网格规范,状态消息应为3或5字节长。

但在SDK中,没有可选的字段处理,甚至MS_GENERIC_LEVEL_STATUS_STURE也没有包装!

我在SDK中发现了类似的代码。

所有这些代码都意味着SDK是错误或不成熟,或网格二进制库中的一些奇怪的魔法?

1年前

lc_dialog

嗨Firebird,

感谢您分享反馈。如果我们携带有助于您的问题,请与我们的内部团队一起检查此内部团队。我会尽快从团队中听到。

最好的问候,
lc_dialog

1年前

Firebird. 0分

我仔细审查了SDK代码,再次调试自己,我意识到“长度减1”是排除的技巧可选_fields_present.领域。

所以,仍然缺乏处理可选领域,但它可能会起作用。

抱歉我的误解,但我仍然对消息结构强烈怀疑没有包装。

是否将网格设备函数符合规范?可操作?

1年前

lc_dialog

嗨Firebird,

实现不支持可选的字段处理,即为什么“减去一个字节”存在为什么。我们理解这不是处理它的最佳方式。

对话框实现是规范兼容,并已通过Mesh V1.0规范中所有支持的配置文件传递了蓝牙SIG资格(声明ID:D047269 QDID:114914)

如果您看到任何错误或迭代性问题,请随时报告它们,我们将尽一切努力尽快解决它们。

最好的问候,
lc_dialog