From c401a2f2fd1a509cdeb33e850bb5c2827074af48 Mon Sep 17 00:00:00 2001
From: alielie <alielie@git.com>
Date: 星期一, 17 三月 2025 08:44:51 +0800
Subject: [PATCH] 完善框架,新增两个close方法;
---
Plugin.TsExecution/TsExecution.xaml.cs | 134 +++++++++++++++++++++-----------------------
1 files changed, 63 insertions(+), 71 deletions(-)
diff --git a/Plugin.TsExecution/TsExecution.xaml.cs b/Plugin.TsExecution/TsExecution.xaml.cs
index 598abec..4e71b42 100644
--- a/Plugin.TsExecution/TsExecution.xaml.cs
+++ b/Plugin.TsExecution/TsExecution.xaml.cs
@@ -5,6 +5,7 @@
using HMI.ParameterManage.Util;
using HMI.UI;
using HMI.UI.Util;
+using HMI.Util;
using NationalInstruments.TestStand.Interop.API;
using NationalInstruments.TestStand.Interop.UI.Ax;
using Panuon.WPF.UI;
@@ -14,6 +15,7 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
+using System.ComponentModel;
using System.Drawing;
using System.IO;
using System.Linq;
@@ -101,6 +103,8 @@
}
}
+ private Pie pie;
+ private string CountIniPath;
public TsExecution()
{
@@ -111,63 +115,29 @@
InitTsEngine();
//鍒濆鍖朤estStand寮曟搸
this.InitTestStandEngine();
+
+ }
+
+ public override void SetBaseFolder(string folder)
+ {
+ CountIniPath = Path.Combine(folder, "Count.ini");
+ base.SetBaseFolder(folder);
+ }
+
+ public override void InitFinish()
+ {
this.ReadCount(out int pass, out int fail);
this.DisplayCount(pass, fail);
UpdateChart(pass, fail);
InitProducts();
+ base.InitFinish();
}
- private Pie pie;
/// <summary>
/// 鍒濆鍖朩inform鍥捐〃
/// </summary>
private void InitChart()
{
- //ChartArea chartArea1 = new ChartArea();
- //Legend legend1 = new Legend();
- //Series series1 = new Series();
- //DataPoint dataPoint1 = new DataPoint(0D, 10D);
- //DataPoint dataPoint2 = new DataPoint(0D, 10D);
-
- //chart = new Chart();
- ////
- //// chart
- ////
- //this.chart.BackColor = System.Drawing.SystemColors.Control;
- //chartArea1.BackColor = System.Drawing.SystemColors.Control;
- //chartArea1.Name = "ChartArea1";
- //this.chart.ChartAreas.Add(chartArea1);
- //this.chart.Dock = System.Windows.Forms.DockStyle.Fill;
- //legend1.BackColor = System.Drawing.SystemColors.Control;
- //legend1.Name = "Legend1";
- //this.chart.Legends.Add(legend1);
- //this.chart.Location = new System.Drawing.Point(0, 0);
- //this.chart.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
- //this.chart.Name = "chart";
- //this.chart.Palette = ChartColorPalette.None;
- //series1.BorderColor = System.Drawing.SystemColors.Control;
- //series1.ChartArea = "ChartArea1";
- //series1.ChartType = SeriesChartType.Pie;
- //series1.Color = System.Drawing.SystemColors.Control;
- //series1.LabelBackColor = System.Drawing.Color.White;
- //series1.Legend = "Legend1";
- //series1.Name = "Series1";
- //dataPoint1.AxisLabel = "OK";
- //dataPoint1.Color = Color.Green;
- //dataPoint1.IsVisibleInLegend = true;
- //dataPoint1.Label = "";
- //dataPoint2.AxisLabel = "NG";
- //dataPoint2.Color = Color.FromArgb(230, 0, 18);
- //series1.Points.Add(dataPoint1);
- //series1.Points.Add(dataPoint2);
- //this.chart.Series.Add(series1);
- //this.chart.Size = new System.Drawing.Size(215, 191);
- //this.chart.TabIndex = 0;
- //this.chart.Text = "chart1";
- //((System.ComponentModel.ISupportInitialize)(chart)).BeginInit();
- //chartHost.Child = chart;
- //((System.ComponentModel.ISupportInitialize)(chart)).EndInit();
-
pieChart.Plot.Axes.Frameless();
pieChart.Plot.HideGrid();
pieChart.Plot.DataBackground.Color = Colors.Transparent;
@@ -193,12 +163,12 @@
private void InitProducts()
{
- Products = new ObservableCollection<ProductData>(ParameterManager.GetProducts());
+ Products = ParameterManager.GetProducts<ObservableCollection<ProductData>>();
if (Products != null && Products.Count > 0)
{
List<ParameterData> parameters =
- ParameterManager.GetParametersByProductName(Products[0].Name);
- string tmpNum = parameters.FirstOrDefault(p => p.Name == "SocketNum")?.Value?.ToString();
+ ParameterManager.GetCommonParameter<List<ParameterData>>();
+ string tmpNum = parameters?.FirstOrDefault(p => p.Name == "SocketNum")?.Value?.ToString();
if (!string.IsNullOrEmpty(tmpNum))
{
this.socketNum = Convert.ToInt32(tmpNum);
@@ -274,7 +244,7 @@
//閲嶆柊鐢熸垚瀛愰潰鏉�
for (int i = 0; i < this.socketNum; i++)
{
- SingleControl control = new SingleControl(i, 0, 0);
+ SingleControl control = new SingleControl(i, CountIniPath);
panel.Children.Add(control);
tsSockets.Add(control);
}
@@ -308,14 +278,14 @@
/// <param name="fail">涓嶅悎鏍兼暟</param>
private void ReadCount(out int pass, out int fail)
{
- pass = 0; //Convert.ToInt32(OperateIniFile.ReadIniData("Count", "Pass", "", CountiniPath));
- fail = 0; //Convert.ToInt32(OperateIniFile.ReadIniData("Count", "Fail", "", CountiniPath));
+ pass = Convert.ToInt32(IniFileHelper.ReadIniData("Count", "Pass", "", CountIniPath));
+ fail = Convert.ToInt32(IniFileHelper.ReadIniData("Count", "Fail", "", CountIniPath));
}
private void WriteCount(int pass, int fail)
{
- //OperateIniFile.WriteIniData("Count", "Pass", pass.ToString(), CountiniPath);
- //OperateIniFile.WriteIniData("Count", "Fail", fail.ToString(), CountiniPath);
+ IniFileHelper.WriteIniData("Count", "Pass", pass.ToString(), CountIniPath);
+ IniFileHelper.WriteIniData("Count", "Fail", fail.ToString(), CountIniPath);
}
/// <summary>
@@ -400,6 +370,26 @@
}
}
+ public void StopSequenceClick()
+ {
+ new MaskWindow((WindowX)Window.GetWindow(this),
+ (win) =>
+ {
+ Dispatcher.Invoke(() =>
+ {
+ try
+ {
+ StopSequence();
+ }
+ finally
+ {
+ win.Close();
+ }
+ });
+ }
+ ).Info(LangUtil.Get("App.SequenceIsStopping"));
+ }
+
/// <summary>
/// 鍋滄娴嬭瘯搴忓垪
/// </summary>
@@ -407,15 +397,14 @@
{
try
{
- if (this.tsSockets.Count == 0)
- return;
- if (this.tsSockets[0].SequenceFileContext == null)
- return;
- bool val = this.tsSockets[0].SequenceFileContext.StationGlobals.Exists("StationState.StopTest", 0);
- if (val)
+ if (this.tsSockets.Count > 0 && this.tsSockets[0]?.SequenceFileContext != null)
{
- tsSockets[0].SequenceFileContext.StationGlobals.SetValBoolean("StationState.StopTest", 0, true);
- bool isStop = this.execution.WaitForEndEx(2000, true, null, null);
+ bool val = this.tsSockets[0].SequenceFileContext.StationGlobals.Exists("StationState.StopTest", 0);
+ if (val)
+ {
+ tsSockets[0].SequenceFileContext.StationGlobals.SetValBoolean("StationState.StopTest", 0, true);
+ bool isStop = this.execution.WaitForEndEx(2000, true, null, null);
+ }
}
this.CbProduct.IsEnabled = true;
this.BtnStartSeq.IsEnabled = true;
@@ -435,10 +424,9 @@
{
case "BtnStartSeq":
StartClick();
-
break;
case "BtnStopSeq":
- StopSequence();
+ StopSequenceClick();
break;
case "BtnClearNum":
ClearNum();
@@ -627,13 +615,6 @@
pie.Slices[0].Value = pass;
pie.Slices[1].Value = fail;
pieChart.Refresh();
-
- //Dispatcher.Invoke(() => {
- // ((System.ComponentModel.ISupportInitialize)(chart)).BeginInit();
- // chart.Series[0].Points[0].YValues[0] = pass;
- // chart.Series[0].Points[1].YValues[0] = fail;
- // ((System.ComponentModel.ISupportInitialize)(chart)).EndInit();
- //});
}
private void SetTestSeqFile(ProductData product)
@@ -659,6 +640,17 @@
}
}
+ public override void OnClose(object sender, CancelEventArgs e)
+ {
+ StopSequence();
+ this.engine?.ReleaseSequenceFileEx(this.testSeq, 0);
+ this.engine?.ReleaseSequenceFileEx(this.modeSeq, 0);
+ this.engine?.UnloadAllModules();
+ this.testSeq = null;
+ this.modeSeq = null;
+ base.OnClose(sender, e);
+ }
+
private void PluginControl_SizeChanged(object sender, SizeChangedEventArgs e)
{
--
Gitblit v1.9.1