嗨,团队。
我正在分析网格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是错误或不成熟,或网格二进制库中的一些奇怪的魔法?
设备:
嗨Firebird,
感谢您分享反馈。如果我们携带有助于您的问题,请与我们的内部团队一起检查此内部团队。我会尽快从团队中听到。
此致,
lc_dialog.
我仔细审查了SDK代码,再次调试自己,我意识到“长度减1”是排除的技巧可选_fields_present.场地。
所以,仍然缺乏处理可选领域,但它可能会起作用。
抱歉我的误解,但我仍然对消息结构强烈怀疑没有包装。
是否将网格设备函数符合规范?可操作?
嗨Firebird,
实现不支持可选的字段处理,即为什么“减去一个字节”存在为什么。我们理解这不是处理它的最佳方式。
对话框实现是规范兼容,并已通过Mesh V1.0规范中所有支持的配置文件传递了蓝牙SIG资格(声明ID:D047269 QDID:114914)
如果您看到任何错误或迭代性问题,请随时报告它们,我们将尽一切努力尽快解决它们。
此致,
lc_dialog.