.Net;从RS232读取稳定的重量

时间:2017-01-26 10:23:23

标签: vb.net compact-framework

我有一个小型应用程序可以连续读取称重秤。

我希望用户只在体重稳定约3秒时捕捉。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

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

首先创建一个类来保存值和时间戳,例如称为度量。

然后使用qqeue of measure创建另一个类。实现将度量添加到类内部队列并计算时间跨度的最小值,最大值和平均值的函数。然后,最终函数可以使用min,max和average来说明最后一个度量是否足够接近时间跨度内的平均值。

您可以使用数据表代替队列,然后使用sql命令获取最小值,最大值和平均值的标量。

如果值之间以恒定间隔传递,则可以避免使用时间跨度部分,并仅计算最后x个值。例如,如果比例每0.5秒传递一个新值,则最后三秒将有6个值。

FIFO将存储值(使用带有自定义添加功能或队列的数组)。要知道最后的值是否稳定,您需要知道最后一个度量的最小值,最大值和平均值。这使您可以确定最后一个值是否接近平均值,或者差异是否达到最大值和最大值。

即措施:

3 4 8 2 5 4给出min = 2,max = 8,avg = 4.3。最后一个val接近平均值但远离最大值

5 4 6 4 5 5给出min = 4,max = 6,avg = 4.9,最后一个值接近min,max和avg。这似乎是一个很好的最后措施。