2017-01-26 17 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,最後值接近最小值,最大值和平均。這似乎是一個很好的最後措施。