From c1c3772a11b1f3fbad8846cc714120771d85fa53 Mon Sep 17 00:00:00 2001
From: alielie <alielie@git.com>
Date: 星期四, 12 六月 2025 20:10:59 +0800
Subject: [PATCH] 新增SeqEditor
---
Plugin.TestResult/TestResultView.xaml.cs | 140 ++++++++++++++++++++++++++++++++++++++++------
1 files changed, 122 insertions(+), 18 deletions(-)
diff --git a/Plugin.TestResult/TestResultView.xaml.cs b/Plugin.TestResult/TestResultView.xaml.cs
index b5877c6..5f56462 100644
--- a/Plugin.TestResult/TestResultView.xaml.cs
+++ b/Plugin.TestResult/TestResultView.xaml.cs
@@ -1,4 +1,7 @@
-锘縰sing NationalInstruments.TestStand.Interop.API;
+锘縰sing HMI.Core.Util;
+using HMI.UI.Util;
+using NationalInstruments.TestStand.Interop.AdapterAPI;
+using NationalInstruments.TestStand.Interop.API;
using NationalInstruments.TestStand.Interop.UI.Ax;
using NationalInstruments.TestStand.Utility;
using Plugin.TestResult_WPF.Constant;
@@ -33,7 +36,7 @@
/// <summary>
/// 娴嬭瘯搴忓垪鎿嶄綔鍙ユ焺
/// </summary>
- private SequenceContext SequenceContext = null;
+ public SequenceContext SequenceContext { get; private set; } = null;
/// <summary>
/// 娴嬭瘯妯″瀷搴忓垪
/// </summary>
@@ -70,7 +73,7 @@
((System.ComponentModel.ISupportInitialize)(this.testApp)).BeginInit();//myClient涓虹涓夋柟鎺т欢鍚�
host.Child = testApp;
((System.ComponentModel.ISupportInitialize)(this.testApp)).EndInit();
- InitMainGrid();
+
//InitTestStandEngine();
//StartTestSequence();
}
@@ -88,27 +91,37 @@
Random random = new Random(i * 13);
sb.Elapsed += (s, e) =>
{
-
+ table.RefreshCount(1, 0);
table.SetTemperature(random.Next(100));
for (int j = 0; j < 3; j++)
{
table.SetTemperature(j + "89", random.Next(100));
}
- table.SetOkCount(random.Next(100));
- table.SetNgCount(random.Next(100));
+ //table.SetOkCount(random.Next(100));
+ //table.SetNgCount(random.Next(100));
table.SetStatus(CommonStatus.GetRandomStatus());
table.SetStartTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
table.SetEndTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
table.SetConsumeTime(random.Next(10000));
+ tables[0].GetSingleCell(0).AddElectricData(random.Next(100));
-
- var cell = table.GetSingleCell(random.Next(table.GetSize()));
+ var cell = tables[0].GetSingleCell(0);//table.GetSingleCell(random.Next(table.GetSize()));
cell.SetStatus(CommonStatus.GetRandomStatus());
- cell.SetInfos(random.Next(1000) + "", random.Next(1000) + "");
+ cell.SetInfos(new Info
+ {
+ step = random.Next(1000) + "",
+ value = random.Next(1000) + ""
+ });
table.SetStatusText(DateTime.Now + "");
};
sb.Start();
}
+ }
+
+ private string CountIniPath;
+ public void SetCountIniPath(string countIniPath)
+ {
+ CountIniPath = countIniPath;
}
public void InitMainGrid()
@@ -129,7 +142,7 @@
for (int n = 0; n < cellCount; n++)
{
string name = n < names.Length ? names[n] : "";
- DataTable child = new DataTable(this, n, name, config);
+ DataTable child = new DataTable(this, n, name, CountIniPath, config);
mainGrid.Children.Add(child);
tables[n] = child;
nameTables[name] = child;
@@ -143,7 +156,7 @@
public DataTable GetDataTable(int index)
{
- if (index > 0 && index < tables.Length) return tables[index];
+ if (index >= 0 && index < tables.Length) return tables[index];
return null;
}
@@ -164,7 +177,8 @@
}
catch (Exception ex)
{
- throw new Exception("鍒濆鍖朤S寮曟搸澶辫触:" + ex.Message);
+ ViewControl.Logger.Error("InitTestStandEngine Failed.", ex);
+ throw new Exception($"{this.lang("Ts.InitTestStandEngineFail")}: {ex.Message}");
}
}
@@ -179,7 +193,8 @@
}
catch (Exception ex)
{
- throw new Exception("鍚姩娴嬭瘯搴忓垪澶辫触:" + ex.Message);
+ ViewControl.Logger.Error("StartTestSequence Failed.", ex);
+ throw new Exception($"{this.lang("Ts.StartTestSequenceFailed")}: {ex.Message}");
}
}
@@ -198,7 +213,8 @@
}
catch (Exception ex)
{
- throw new Exception(ex.Message);
+ ViewControl.Logger.Error("StopTest Failed.", ex);
+ throw new Exception($"{this.lang("Ts.StopTestSequenceFailed")}: {ex.Message}");
}
}
@@ -216,7 +232,8 @@
}
catch (Exception ex)
{
- MessageBox.Show("閲婃斁娴嬭瘯搴忓垪澶辫触:" + ex.Message);
+ MsgBoxHelper.Error(Window.GetWindow(this),
+ $"{this.lang("Ts.ReleaseSequenceFileFail")}: {ex.Message}");
}
}
@@ -313,6 +330,16 @@
int cellIndex = int.Parse(datas_10015[1]);
string status_10015 = datas_10015[2];
tables[ovenIndex].GetSingleCell(cellIndex).SetStatus(status_10015);
+
+ if (status_10015 == "OK" || status_10015 == "ok")
+ {
+ tables[ovenIndex].RefreshCount(1, 0);
+ }
+ else if (status_10015 == "ng" || status_10015 == "NG")
+ {
+ tables[ovenIndex].RefreshCount(0, 1);
+ }
+
return;
}
if (MethodCode == 7)
@@ -357,17 +384,58 @@
tables[ovenIndex].GetSingleCell(cellIndex).ClearInfo();
return;
}
+ if (MethodCode == 12)
+ {
+ /// 淇濆瓨娓╁害鏂囦欢
+ ///
+ strData = e.uiMsg.StringData;
+ string[] datas = strData.Split(';');
+ int ovenIndex = int.Parse(datas[0]);
+ string folder = datas[1];
+ tables[ovenIndex].SaveTempFile(folder);
+ return;
+ }
+ if (MethodCode == 13)
+ {
+ /// 娣诲姞鐢垫祦鏁版嵁
+ strData = e.uiMsg.StringData;
+ string[] datas = strData.Split(';');
+ int ovenIndex = int.Parse(datas[0]);
+ int cellIndex = int.Parse(datas[1]);
+ double eData = double.Parse(datas[2]);
+ tables[ovenIndex].GetSingleCell(cellIndex).AddElectricData(eData);
+ return;
+ }
+ if (MethodCode == 14)
+ {
+ /// 娓呯┖鐢垫祦鏁版嵁
+ strData = e.uiMsg.StringData;
+ int ovenIndex = int.Parse(strData);
+ tables[ovenIndex].ClearElectricData();
+ return;
+ }
+ if (MethodCode == 15)
+ {
+ /// 娓呯┖鐢垫祦鏁版嵁
+ strData = e.uiMsg.StringData;
+ string[] datas = strData.Split(';');
+ int ovenIndex = int.Parse(datas[0]);
+ int cellIndex = int.Parse(datas[1]);
+ string filePath = datas[2];
+ tables[ovenIndex].GetSingleCell(cellIndex).SaveElectricDataToCSV(filePath);
+ return;
+ }
}
catch (Exception ex)
{
-
+ ViewControl.Logger.Warn("TestStand Event Error.", ex);
}
}
public void SetStartFlag(int index, bool data)
{
if (this.SequenceContext == null) return;
- char name = (char)(index + 65);
+ string name = tables[index].title;
string key = $"StationState.Start_{name}";
this.engine.Globals.SetValBoolean(key, 0, data);
bool val = this.engine.Globals.GetValBoolean(key, 0);
@@ -375,9 +443,45 @@
//bool val = this.SequenceContext.StationGlobals.GetValBoolean(key, 0);
}
- public void SetSnrToSeqContext(int index, string snr)
+ public void ReleaseResource()
{
+ foreach (var table in tables)
+ {
+ table.RelaseResource();
+ }
+ }
+ /// <summary>
+ /// 璁℃暟娓呴浂
+ /// </summary>
+ public void ClearNumber()
+ {
+ foreach (var table in tables)
+ {
+ table.ClearNumber();
+ }
+ }
+
+ public void SetProductSource(List<string> productSource)
+ {
+ foreach (var table in tables)
+ {
+ table.SetProductSource(productSource);
+ }
+ }
+
+ public void SetCurrentProduct(string currentProduct)
+ {
+ foreach (var table in tables)
+ {
+ table.SetCurrentProduct(currentProduct);
+ }
+ }
+
+ public void SetOvenProduct(int index, string product)
+ {
+ string LookupStr = $"StationState.ProductModel_{tables[index].title}";
+ engine?.Globals?.SetValString(LookupStr, 1, product);
}
}
}
--
Gitblit v1.9.1