【问题标题】:Cumulocity Event Language (CEL): Computing the Total Energy Consumption from the Battery Level SignalCumulocity 事件语言 (CEL):根据电池电量信号计算总能耗
【发布时间】:2018-04-12 14:19:13
【问题描述】:

我在 Cumulocity 物联网平台上注册的设备有一个当前电池电量的信号:DLValues => battery_level

我想根据这个信号计算总能耗。两次电池电量测量之间的能耗可以使用以下表达式计算:

create expression double calcConsumedEnergy(prevBatteryLevel, newBatteryLevel) [
  var batteryCapacity = 100;
  var energyConsumption = 0;
  if(newBatteryLevel < prevBatteryLevel){
      energyConsumption = batteryCapacity * (prevBatteryLevel - newBatteryLevel) / 100;
  }
  energyConsumption;
];

我的问题是:如何将电池电量测量值之间的增量相加?

如果我创建一个新信号DLValuesCalc =&gt; energy_consumption,那么最初它根本没有测量值,所以我不能在概念上按以下方式使用这个信号:

DLValuesCalc.energy_consumption.value = DLValuesCalc.energy_consumption.value + delta

【问题讨论】:

    标签: esper cumulocity


    【解决方案1】:

    可能 esper 中的内置聚合函数已经为您解决了这个问题 (http://esper.espertech.com/release-7.0.0/esper-reference/html/functionreference.html#epl-function-aggregation)。有一个函数 sum() 将为您完成这项工作(它还处理初始空值)。它只需要你的表达式的返回值作为输入。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多