如何在ORION中创建实体?

时间:2015-08-31 10:40:15

标签: fiware-orion

我对如何在ORION中定义实体有一些疑问。

该实体将用于包含来自特定用户的智能手机的GPS,加速度计,罗盘和陀螺仪传感器数据。整个概念被定义为用户会话。我还想在会话“开始”和“结束”时发布。

考虑到专门针对加速度计,指南针和陀螺仪传感器的高容量,我不希望每次发生时都发送此传感器信息,但是说,可能一旦会话结束并且所有数据都已收集在智能手机中。因此,我将属性更多地视为值列表而不是离散值。因此,把这样的东西:

Thread t = new Thread(new Runnable() {
    @Override
    public void run() {
        runTCCmd(tc.createJavaClass());
    }
});
t.start();
t.join();

不确定这是否是正确的方法。我不想每秒钟甚至更少地杀死智能手机发送数据的电池,所以我可能每分钟都这样做,所以我需要一个代表传感器数据的每个属性的值列表。我是对的还是我以错误的方式接近这个?

最后,我想在另一个应用程序中订阅这些属性,并根据值创建警报进行一些推理,所以我也可能也需要一个警报实体。

谢谢!

1 个答案:

答案 0 :(得分:1)

Orion API非常灵活,可以为您提供多种功能:

  • 在单个请求中创建/更新给定实体的所有属性
  • 在单个请求中创建/更新给定实体的attributres的子集。例如,如果您的实体有100个属性,但您只想更新其中的2个(保持其他98个未触及),您可以这样做。
  • 在同一请求中的多个实体中创建/更新atributtes(全部或子集)。例如,您可以在同一请求中更新属于实体E1的属性A和B以及属于实体E2的属性C和D.

如果您想在客户端节省电池,那么最后一个选项可能是最合适的。例如,您可以在客户端中保存一个缓冲区,其中实体的更改会发生变化,并在每分钟发送一个updateContext请求时刷新缓冲区以及所有累积的更改。