一个产品按顺序检测三个部位,走三次流程后,总数才算一个产品,每个部位一旦有ng,总数和ok数+1,最后一个部位ok后,总数和ok数+1
不用vm,直接在每次运行后做计数
private void UpdateResult(Label label, string strResult, string Num)
{
this.Dispatcher.BeginInvoke(new Action(() =>
{
if (strResult == "1" && Num !="3")
{
listBoxResult.Items.Add("产品数:" + totalCount.ToString() + " 检测结果:OK" + DateTime.Now.ToString(" yy/MM/dd HH:mm:s"));
label.Content = "OK";
label.Background = new BrushConverter().ConvertFromString("#00C000") as Brush;
}
if (strResult == "1" && Num == "3")
{
listBoxResult.Items.Add("产品数:" + totalCount.ToString() + " 检测结果:OK" + DateTime.Now.ToString(" yy/MM/dd HH:mm:s"));
label.Content = "OK";
label.Background = new BrushConverter().ConvertFromString("#00C000") as Brush;
okCount++;
labelOkCount.Content = okCount.ToString();
int passRate = (okCount * 100) / totalCount; // 计算通过率
labelPassRate.Content = $"{passRate}%"; // 显示通过率
totalCount++;
}
else if (strResult == "0")
{
listBoxResult.Items.Add("产品数:" + totalCount.ToString() + " 检测结果:NG" + DateTime.Now.ToString(" yy/MM/dd HH:mm:s"));
label.Content = "NG";
label.Background = Brushes.IndianRed;
// 计算通过率
ngCount++;
labelNgCount.Content = ngCount;
labelTotalCount.Content = totalCount.ToString();
if (okCount == 0)
{
labelPassRate.Content = "0%";
}
int passRate = (okCount * 100) / totalCount; // 计算通过率
labelPassRate.Content = $"{passRate}%"; // 显示通过率
totalCount++;
};
}));
}