计算每个传感器的平均温度:
rule "Average"
when
$s : Sensor()
accumulate( Reading( sensor == $s, $temp : temperature );
$avg : average( $temp )
)
then
// print average of EACH sensor
end
然后我想得到什么传感器具有最大“平均温度”,我正在尝试这样的事情,但显然是不正确的:
rule "MaxAvg"
when
accumulate ($s : Sensor()
accumulate( Reading( sensor == $s, $temp : temperature );
$avg : average( $temp )
);
&max : max($avg)
)
then
// print sensor with max "average temperature"
end
请帮忙。
答案 0 :(得分:0)
如果您根据每个传感器的平均值创建事实并使用第二个规则来确定最大值,我认为您会更好。
rule "Average"
when
$s : Sensor()
accumulate( Reading( sensor == $s, $temp : temperature );
$avg : average( $temp ))
then
// print average of EACH sensor
insert( new Average( $s, $ave ) );
end
rule "maxAverage"
salience -100
when
Average( $s: sensor, $a: average )
not Average( average > $a )
then
// sensor $s has max. average $a
end
第二条规则可能会重复触发,因为除非已完成某些操作,否则会插入平均对象。我使用了显着性,但还有其他方法。