【问题标题】:Can't store attribute's value with properly type using IoTAgentUL无法使用 IoTAgent UL 存储属性类型的属性值
【发布时间】:2017-07-05 14:19:06
【问题描述】:

我需要在 OrionCB 的 MongoDB 中以正确的类型存储设备属性的值。

由于我无法执行,我深入研究了代码,发现 IoTAgentUL(以及 IoTAgentJSON)使用 OrionCB 的 API v1 而不是 API v2

我可以看到API v1updateContext 将数据发送到 MongoDB没有它的类型,所以每个度量都存储为文本。

另一方面,我发现 API v2update entity 将数据发送到 MongoDB 使用它的类型。它使我可以使用它的类型存储属性的值,这在操作数据(即创建索引、排序等)时对我有好处。

我的问题是,是否有任何解决方法可以使用当前的 IoT 代理实现来解决此问题。

【问题讨论】:

  • 在我看来,保存为文本的类型没有任何问题。只需在使用值时进行测试。如果已知,则不需要进行测试。如果应用程序不知道它在处理什么样的数据,只需进行测试以查看类型并做出具体决定。

标签: fiware fiware-orion


【解决方案1】:

我能想到的唯一解决方法是,一旦物联网代理自动创建实体,您就可以自己更新此类实体的类型。我的意思是,AFAIK,您可以更新实体的值和类型。

更详细地说,我可以考虑订阅特定类型的所有实体(由代理创建的实体)的脚本。然后,当创建实体时,会通知脚本,脚本会自动更新实体属性的类型。

请注意,您只需要修改一次属性的类型,就在实体创建时,而不是在实体属性更新时;因此,您的脚本中需要类似数组或已修改实体的缓存。

【讨论】:

    猜你喜欢
    • 2015-04-18
    • 1970-01-01
    • 2017-03-22
    • 2017-05-06
    • 2015-03-29
    • 2013-10-26
    • 2021-06-26
    • 2019-07-11
    • 1970-01-01
    相关资源
    最近更新 更多