事物存在
为了适应连接到 ThingWorx Platform 的范围广泛的设备,“互联”这一概念已经从“当前使用 websocket 进行绑定”转变为“连接正常”,后者被称为“事物存在”。事物存在将基于设备的预期行为指示事物连接何时处于“正常”状态。
ThingWorx AlwaysOn 设备 (运行基于 ThingWorx Edge SDK 的应用程序或基于 ThingWorx WebSocket 的 Edge MicroServer) 将绑定 websocket。如果未配置为在一段时间内脱机,则始终可从 ThingWorx Platform 接收消息。另一方面,Axeda eMessage 代理设备定期轮询平台 ("ping"),并且仅在连接和绑定时从平台接收消息。这两种主要类型的设备都受到“事物存在”支持。
事物存在对于不同类别的设备都相似,且受所有 ThingWorx 接口支持。例如,服务组织可能想要创建一个仪表板,指示可用于服务调用的所有设备或意外脱机的所有设备。ThingWorx SCM 扩展使用事物存在来确定设备是否“正常”连接 (通过选中名为 isReporting 的属性),以便可为设备选择和部署包。
请务必了解事物存在不会尝试诊断设备的整体状况。事物存在显示为单个的布尔型属性,使 ThingWorx 能够为各种资产提供统一的体验。
工作原理
从一般意义上来说,任何定义为 RemoteThing 的设备都具有以下新属性
类型
名称
说明
属性
isReporting
根据应用的“报告策略”,标识是否确定设备可用于“正常”通信。
属性
reportingLastChange
标识上次更改 isReporting 值的时间。
属性
reportingLastEvaluation
标识 isReporting 上次评估发生的时间。
配置
reportingStrategy
此事物可定义用于确定设备是否正在报告的算法。
服务
EvaluateReporting
评估设备是否正在报告并相应地设置 isReporting 属性。
服务
SetReportingStrategy
设置用于评估设备是否正在报告的策略。
服务
GetReportingStrategy
获取当前用于评估设备是否正在报告的策略。
用于确定设备是否正在报告的确切算法因特定的 ReportingStrategy 事物而异。但是,一般过程如下:
1. EvaluateReporting 服务由某个事件触发
2. EvaluateReporting 随后调用策略事物上的 ReportingAlgorithm 服务。
3. ReportingAlgorithm 返回基于特定算法的布尔值。
4. 将基于 ReportingAlgorithm 服务结果设置 isReporting 属性。
EvaluateReporting 服务
EvaluateReporting 服务使用以下参数:
eventName - 导致报告状态重新评估的事件的名称。
eventTime - 事件发生的时间。
source - 生成事件的事物的名称。
sourceProperty - 事件的源属性。
eventData - 事件的数据。
EvaluateReporting() 的所有参数都直接传递给 ReportingStrategy.ReportingAlgorithm()
在事物绑定或解除绑定过程中执行此服务时:
eventNameBindingEvent
eventData 包含单独一行,其中在 isBound 键下方有一个值,指示事物刚刚已绑定还是已解除绑定 (true 表示已绑定,false 表示已解除绑定)。
如果在此服务期间出现问题 (包括在 ReportingAlgorithm 中)、事物将更新为“不报告”并在 ApplicationLog 中添加一条消息。