我有一个使用远程监控加速器的 Azure IoT 解决方案。服务器(远程监控网络)和客户端(设备)都在更改设备孪生属性。有时,这些属性会进入“同步”状态,并且似乎无法摆脱它。
那么谁有权更改设备孪生属性以及何时有权更改设备孪生属性的规则是什么?
顺便说一句,我使用 IoTHubDeviceClient_LL_SendReportedState() 函数从设备端更改属性。
Azure IoT 设备孪生代表了可断开分布式的轻量级通用数据(状态)模型ends比如一个面向设备端 and 面向服务端。设备孪生支持以转换方式在这些端部之间创建“影子副本”。基本上,每个end拥有写入(或更新)其属性的所有权,而另一方则拥有写入(或更新)其属性的所有权end已收到有关此更改的通知。
基于此通知、版本控制和设备孪生元数据,状态可以从一个end以可靠的方式传递给其他人。请注意,轻量级状态机必须在通知更改触发的设备和后端等每一端实现。
上图来自文档设备孪生,其中详细描述了该模型。
Update:
以下屏幕片段是使用设备孪生属性在设备和后端之间转换状态的序列图示例:
在上面的例子中,这个分布式状态机处理来自进程中、确认、完成、空设备和后端之间。可以创建类似的转换,例如:进程中、nack、null,在后端和设备之间,用于断开连接的设备等。
此示例使用了附加属性,例如status来表明该属性Config处于过渡状态,但可以添加更多,例如原始值、版本等,它们有助于恢复状态等。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)