From 4cac1b533e133fdc8b3def90a0f998820f51907a Mon Sep 17 00:00:00 2001
From: alielie <alielie@git.com>
Date: 星期三, 26 三月 2025 17:57:59 +0800
Subject: [PATCH] 优化UI,新增日志自动删除;
---
Plugin.TestResult/DataTable.xaml.cs | 135 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 134 insertions(+), 1 deletions(-)
diff --git a/Plugin.TestResult/DataTable.xaml.cs b/Plugin.TestResult/DataTable.xaml.cs
index aa7f621..aa54886 100644
--- a/Plugin.TestResult/DataTable.xaml.cs
+++ b/Plugin.TestResult/DataTable.xaml.cs
@@ -1,9 +1,13 @@
锘縰sing HMI.Core.Util;
using HMI.Util;
using Plugin.TestResult_WPF.Model;
+using Plugin.TestResult_WPF.Util;
using SuperSocket.SocketBase.Protocol;
using System;
+using System.CodeDom.Compiler;
+using System.Collections.Generic;
using System.ComponentModel;
+using System.IO;
using System.Runtime.CompilerServices;
using System.Windows;
using System.Windows.Controls;
@@ -62,7 +66,7 @@
set { RaiseAndSetIfchanged(ref tcpServerInfo, value); }
}
-
+ private static CommonCodeParser codeParser = new CommonCodeParser();
private readonly int index;
private readonly int cellCount;
private readonly string chartTitle;
@@ -75,6 +79,11 @@
private TcpServer tcpServer;
private string CountIniPath;
+
+ // 骞冲潎娓╁害
+ public List<double> tempratures = new List<double>();
+ public Dictionary<string, List<double>> detailTempratures
+ = new Dictionary<string, List<double>>();
public DataTable(TestResultView parent, int index, string title,
string countIniPath,
@@ -126,11 +135,23 @@
public void SetTemperature(double t)
{
infoTable.temperature = t;
+ tempratures.Add(t);
chart.AddData(t);
}
public void SetTemperature(string name, double t)
{
+ List<double> list;
+ if (detailTempratures.ContainsKey(name))
+ {
+ list = detailTempratures[name];
+ }
+ else
+ {
+ list = new List<double>();
+ detailTempratures.Add(name, list);
+ }
+ list.Add(t);
multiChart.AddData(name, t);
}
@@ -183,6 +204,8 @@
}
}
+ private Scanner scanner;
+
private void Window_Closed(object sender, EventArgs e)
{
window = null;
@@ -194,6 +217,49 @@
parent.SetStartFlag(this.index, true);
}
+ private void ScanWindow_Click(object sender, RoutedEventArgs e)
+ {
+ if (scanner != null)
+ {
+ scanner.Activate();
+ }
+ else
+ {
+ scanner = new Scanner(this.lang("Tr.ScanTitle", title))
+ {
+ Tag = title
+ };
+ scanner.FinishBarcode += Scanner_FinishBarcode;
+ scanner.Closed += Scanner_Closed;
+ scanner.Show();
+ }
+ }
+
+ private void Scanner_Closed(object sender, EventArgs e)
+ {
+ scanner = null;
+ }
+
+ private void Scanner_FinishBarcode(object sender, BarcodeEventArg e)
+ {
+ if (parent.SequenceContext == null) return;
+ CellInfo cellInfo = codeParser.GetCellInfoByCode(e.positionCode);
+
+ string paramName = $"StationState.StartScanner_{title}";
+ parent.engine.Globals.SetValBoolean(paramName, 0, true);
+ string positionCode = e.positionCode, snrCode = e.snrCode;
+ //TODO 闇�瑕佸鍔犳潯鐮佹牎楠屽姛鑳�
+
+ //灏嗚鍒扮殑鏉$爜鍐欏叆鍒癝N涓�
+ int dutNo = Convert.ToInt16(positionCode.Split('-')[2]) - 1;
+ string LookupStr = e.name == "Zone1" ? $"StationState.SN[{dutNo}]" : $"StationState.SN[{(dutNo + 54)}]";
+
+ parent.engine.Globals.SetValString(LookupStr, 0, snrCode);
+ string code = parent.engine.Globals.GetValString(LookupStr, 0);
+ parent.nameTables[cellInfo.OvenName].GetSingleCell(cellInfo.Index).SetStatus("hadCode");
+ }
+
+
/// <summary>
/// 娓呯┖涓や釜鍥捐〃鏁版嵁
/// </summary>
@@ -201,6 +267,9 @@
{
chart.Clear();
multiChart.Clear();
+
+ tempratures.Clear();
+ detailTempratures.Clear();
}
/// <summary>
@@ -363,5 +432,69 @@
{
StartTcpServer();
}
+
+ public void SaveTempFile(string filePath)
+ {
+ try
+ {
+ FileInfo fi = new FileInfo(filePath);
+ if (!fi.Directory.Exists)
+ {
+ fi.Directory.Create(); //鏂囦欢涓嶅瓨鍦紝鍒涘缓鏂囦欢
+ }
+
+ using (FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write))
+ using (StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.UTF8))
+ {
+ string title = string.Join(",", detailTempratures.Keys) + ",骞冲潎鍊�";
+ sw.WriteLine(title);
+
+ for (int i = 0; i < tempratures.Count; i++)
+ {
+ string line = "";
+ foreach (string key in detailTempratures.Keys)
+ {
+ if (detailTempratures[key] == null || detailTempratures[key].Count <= i)
+ {
+ line += ",";
+ }
+ else
+ {
+ line += $"{detailTempratures[key][i]},";
+ }
+ }
+ line += tempratures[i];
+ sw.WriteLine(line);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine(ex.ToString());
+ }
+ }
+
+ public void SetProductSource(List<string> productSource)
+ {
+ CbProduct.ItemsSource = productSource;
+ }
+
+ public void SetCurrentProduct(string currentProduct)
+ {
+ CbProduct.SelectedItem = currentProduct;
+ }
+
+ private void CbProduct_SelectionChanged(object sender, SelectionChangedEventArgs e)
+ {
+ if (e.AddedItems.Count > 0)
+ {
+ var str = e.AddedItems[0];
+ parent.SetOvenProduct(index, str.ToString());
+ }
+ else
+ {
+ parent.SetOvenProduct(index, "");
+ }
+ }
}
}
--
Gitblit v1.9.1