2017-01-26 19 views

回答

0

您需要将接收到的值存储与有在队列中的时间戳,然后计算最小,最大和平均最后3秒以上。

首先创建一个类来保存值和时间戳,例如所谓的措施。

然后用度量qqueue创建另一个类。实现将度量添加到班级内部队列的功能,并计算时间范围的最小值,最大值和平均值。然后最终函数可以使用最小值,最大值和平均值来说明最后的测量值是否接近一段时间内的平均值。

相反,你可以使用数据表,然后使用SQL队列中的命令来获取对于最小值,最大值和平均值的标量。

如果数值与之间的恒定间隔发送,可以避开时间跨度部分,且只计算在过去的x值。例如,如果量表每0.5秒提供一个新值,则最后三秒钟将有6个值。

甲FIFO将存储的值(使用自定义的阵列添加功能或者队列)。要知道上一个值是否稳定,您需要知道最后一个度量值的最小值,最大值和平均值。这使您可以决定最后一个值是否接近平均值,或者最小值和最大值的差值是否过大。

即措施:

3 4 8 2 5 4给出分钟= 2,最大值= 8,平均值= 4.3。最后val为接近平均但远离最大

5 4 6 4 5 5给出分钟= 4,最大= 6,平均= 4.9Hz,最后值接近最小值,最大值和平均。这似乎是一个很好的最后措施。