From fe2aa4880d5c9fd88088ad0ed81ebaca05629f5f Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 02 十一月 2026 17:59:45 +0800
Subject: [PATCH] feat: 集成CAN驱动/模拟器 + 仪器仪表注册/硬件调试模块
---
HMI.UnitTest/MainWindow.xaml.cs | 281 ++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 191 insertions(+), 90 deletions(-)
diff --git a/HMI.UnitTest/MainWindow.xaml.cs b/HMI.UnitTest/MainWindow.xaml.cs
index 2de0f1d..d0fbc30 100644
--- a/HMI.UnitTest/MainWindow.xaml.cs
+++ b/HMI.UnitTest/MainWindow.xaml.cs
@@ -1,17 +1,20 @@
锘縰sing ConnectionUtil;
using HMI.Core.Api;
using HMI.Core.Util;
+using HMI.Simple.Util;
+using HslCommunication.Core.Pipe;
+using HslCommunication.Profinet.Siemens;
using log4net;
using Panuon.WPF.UI;
+using PLCHelper;
using Plugin.DataBoard;
-using Plugin.TestBuilder;
using Plugin.TestResult_WPF;
using Plugin.TsExecution;
+using Plugin.UICollection;
using System;
-using System.Threading;
-using System.Threading.Tasks;
+using System.IO;
using System.Windows;
-
+using System.Xml.Linq;
namespace UnitTest
{
/// <summary>
@@ -22,30 +25,196 @@
private ILog log = LogManager.GetLogger("UnitTest");
public MainWindow()
{
- LangUtil.Load();
- InitializeComponent();
+ //ProductModelHelper.GetModelBySNR("cc123", out string model, out string msg);
+ //LangUtil.Load();
+ //InitializeComponent();
+ ////RebuildDb();
+ //border2.Child = new TcpDebugger();
+
+ var client = new SiemensS7Net(SiemensPLCS.S1500);
+ PipeTcpNet pipeTcpNet = new PipeTcpNet("127.0.0.1", 102);
+ pipeTcpNet.ConnectTimeOut = 200;
+ pipeTcpNet.ReceiveTimeOut = 200;
+ client.CommunicationPipe = pipeTcpNet;
+ client.ConnectServer();
+
+ var ss = new IntReader(client, "DB10.DBW100", 0);
+ ss.DataChanged += Ss_DataChanged;
+ ss.Run();
+
+
+
+
//page.Children.Add(new UserControl1());
+ }
+
+ private void Ss_DataChanged(object sender, DataChangedArg<int> e)
+ {
+ MessageBox.Show($"{e.oldValue} => {e.newValue}");
}
TcpClientWrapper tcpClient;
PipeClient2 client;
+ public string Conv(object obj)
+ {
+ if (obj == null || obj is DBNull)
+ {
+ return "NULL";
+ }
+ if (obj is DateTime dt)
+ {
+ return $"'{dt.ToString("yyyy-MM-dd HH:mm:ss")}'";
+ }
+ return $"'{obj.ToString()}'";
+ }
+
+
+ public void RebuildDb()
+ {
+ string folder = "C:\\Workspace\\VisualStudio\\WPFProject\\WPFProject\\bin\\x64\\Debug\\Config\\DataBoard";
+ var startDate = DateTime.Parse("2025-10-01");
+ var endDate = startDate.AddDays(1);
+ SqliteHelper sourceHelper = new SqliteHelper("C:\\Workspace\\VisualStudio\\WPFProject\\WPFProject\\bin\\x64\\Debug\\Config\\DataBoard\\DataLog.db");
+
+ while (endDate < DateTime.Parse("2025-10-12"))
+ {
+ string targetFile = Path.Combine(folder, $"Data_{startDate.ToString("yyyyMMdd")}.db");
+ SqliteHelper targetHelper = null;
+ if (!File.Exists(targetFile))
+ {
+ SqliteHelper.CreateDatabase(targetFile);
+ targetHelper = new SqliteHelper(targetFile);
+ targetHelper.ExecuteSql(@"CREATE TABLE IF NOT EXISTS serialData (
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
+ sn TEXT NOT NULL,
+ model TEXT,
+ station TEXT NOT NULL,
+ step TEXT NOT NULL,
+ position TEXT,
+ limitDown TEXT,
+ limitUp TEXT,
+ unit TEXT,
+ offset TEXT,
+ value TEXT,
+ status TEXT,
+ finalStatus TEXT,
+ consumeTime TEXT,
+ totalConsumeTime TEXT,
+ time DATETIME NOT NULL);");
+ targetHelper.ExecuteSql(@"CREATE TABLE IF NOT EXISTS testResult (
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
+ sn TEXT NOT NULL,
+ model TEXT,
+ station TEXT NOT NULL,
+ position TEXT,
+ status TEXT,
+ result TEXT NOT NULL,
+ time DATETIME NOT NULL);");
+
+ string sql = $@"SELECT sn,model,station,step,position,limitDown,limitUp,unit,offset,value,status,
+finalStatus,consumeTime,totalConsumeTime,time
+FROM serialData WHERE time>='{startDate.ToString("yyyy-MM-dd")}' AND time < '{endDate.ToString("yyyy-MM-dd")}';";
+
+ var dt = sourceHelper.GetDataTable(sql);
+ foreach (System.Data.DataRow dr in dt.Rows)
+ {
+ targetHelper.ExecuteSql($@"INSERT INTO serialData
+(sn,model,station,step,position,limitDown,limitUp,unit,offset,value,status,finalStatus,consumeTime,totalConsumeTime,time) VALUES
+({Conv(dr["sn"])}, {Conv(dr["model"])}, {Conv(dr["station"])}, {Conv(dr["step"])}, {Conv(dr["position"])}, {Conv(dr["limitDown"])}, {Conv(dr["limitUP"])},
+{Conv(dr["unit"])}, {Conv(dr["offset"])}, {Conv(dr["value"])}, {Conv(dr["status"])}, {Conv(dr["finalStatus"])}, {Conv(dr["consumeTime"])},
+{Conv(dr["totalConsumeTime"])}, {Conv(dr["time"])})");
+ }
+ sql = $@"SELECT sn,model,station,position,status,result,time FROM testResult WHERE time>='{startDate.ToString("yyyy-MM-dd")}'
+AND time < '{endDate.ToString("yyyy-MM-dd")}';";
+
+ dt = sourceHelper.GetDataTable(sql);
+ foreach (System.Data.DataRow dr in dt.Rows)
+ {
+ targetHelper.ExecuteSql($@"INSERT INTO testResult
+(sn,model,station,position,status,result,time) VALUES
+({Conv(dr["sn"])}, {Conv(dr["model"])}, {Conv(dr["station"])}, {Conv(dr["position"])}, {Conv(dr["status"])}, {Conv(dr["result"])}, {Conv(dr["time"])})");
+ }
+
+ targetHelper.Dispose();
+ startDate = startDate.AddDays(1);
+ endDate = endDate.AddDays(1);
+ }
+ }
+ sourceHelper.Dispose();
+ }
+
private void Button_Click(object sender, RoutedEventArgs e)
{
- Task.Run(() =>
- {
- for (int j = 0; j < 1000; j++)
- {
- string status = (j % 2 == 0) ? "Passed" : "Failed";
- tsExecution.AddTestData(0, $"{j},2,3,4,5,6,{status}");
- }
- });
+ //var win = new ManualDebug()
+ //{
+ // seqPath = "C:\\Users\\chrry\\Desktop\\鎵嬪姩璋冭瘯绀轰緥.seq"
+ //};
- tsExecution.UpdatePositionStatus(0, "Passed");
- tsExecution.UpdatePositionProcessValue(0, 12);
- tsExecution.PausePosition(0);
- tsExecution.SetPositionBarcode(0, "123456789");
+ //win.Show();
+
+ //Task.Run(() =>
+ //{
+ // for (int j = 0; j < 1000; j++)
+ // {
+ // string status = (j % 2 == 0) ? "Passed" : "Failed";
+ // string d = (j % 2 == 0) ? "9" : "9999999999999999999999999999999999999999999999999999999999999999995";
+ // tsExecution.AddTestData(0, $"ConnectivityCANRec,2,3,4,{d},6,{status}");
+ // Thread.Sleep(5);
+ // }
+ //});
+
+ //Task.Run(() =>
+ //{
+ // for (int j = 0; j < 1000; j++)
+ // {
+ // string status = (j % 2 == 0) ? "Passed" : "Failed";
+ // string d = (j % 2 == 0) ? "9" : "9999999999999999999999999999999999999999999999999999999999999999995";
+ // tsExecution.AddTestData(1, $"ConnectivityCANRec,2,3,4,{d},6,{status}");
+ // Thread.Sleep(5);
+ // }
+ //});
+
+ //Task.Run(() =>
+ //{
+ // for (int j = 0; j < 1000; j++)
+ // {
+ // string status = (j % 2 == 0) ? "Passed" : "Failed";
+ // string d = (j % 2 == 0) ? "9" : "9999999999999999999999999999999999999999999999999999999999999999995";
+ // tsExecution.AddTestData(2, $"ConnectivityCANRec,2,3,4,{d},6,{status}");
+ // Thread.Sleep(5);
+ // }
+ //});
+
+ //Task.Run(() =>
+ //{
+ // for (int j = 0; j < 1000; j++)
+ // {
+ // string status = (j % 2 == 0) ? "Passed" : "Failed";
+ // string d = (j % 2 == 0) ? "9" : "9999999999999999999999999999999999999999999999999999999999999999995";
+ // tsExecution.AddTestData(3, $"ConnectivityCANRec,2,3,4,{d},6,{status}");
+ // Thread.Sleep(5);
+ // }
+ //});
+
+ //Task.Run(() =>
+ //{
+ // for (int j = 0; j < 1000; j++)
+ // {
+ // string status = (j % 2 == 0) ? "Passed" : "Failed";
+ // string d = (j % 2 == 0) ? "9" : "9999999999999999999999999999999999999999999999999999999999999999995";
+ // tsExecution.AddTestData(1, $"ConnectivityCANRec,2,3,4,{d},6,{status}");
+ // Thread.Sleep(5);
+ // }
+ //});
+
+ //tsExecution.UpdatePositionStatus(0, "Passed");
+ //tsExecution.UpdatePositionStatus(0, "Failed");
+ //tsExecution.UpdatePositionProcessValue(0, 12);
+ //tsExecution.PausePosition(0);
+ //tsExecution.SetPositionBarcode(0, "123456789");
+ //tsExecution.SavePositionCSV(0);
//tsExecution.UpdatePositionStatus(1, "Failed");
@@ -74,73 +243,6 @@
Console.WriteLine($"{e.Data}");
}
- private void Client_OnData(object sender, PipeDataEventArgs e)
- {
- Dispatcher.Invoke(() =>
- {
- console.Text += e.Data;
- });
- }
-
- private void Button_Click2(object sender, RoutedEventArgs e)
- {
- var allStart = DateTime.Now;
- for (int i = 0; i < 100; i++)
- {
- var start = DateTime.Now;
- if (client.SendMessage("ping", out string res))
- {
- var interval = (DateTime.Now - start).TotalMilliseconds;
- Console.WriteLine($"{interval}: {res}");
- }
- }
- Console.WriteLine($"Total: {(DateTime.Now - allStart).TotalMilliseconds}");
- }
-
- private void Button_Click3(object sender, RoutedEventArgs e)
- {
- try
- {
- var allStart = DateTime.Now;
- for (int i = 0; i < 500; i++)
- {
- var start = DateTime.Now;
- string data = input.Text;
- string str = $"{{\"command\":5,\"value\":{data},\"id\":\"DITag0\"}}\r\n";
- string res = tcpClient.SendMessage(str);
- var interval = (DateTime.Now - start).TotalMilliseconds;
- Console.WriteLine($"{interval}: {res}");
- }
- Console.WriteLine($"Total: {(DateTime.Now - allStart).TotalMilliseconds}");
- }
- catch (Exception ex)
- {
-
- }
- }
-
- private void Button_Click4(object sender, RoutedEventArgs e)
- {
- try
- {
- var allStart = DateTime.Now;
- for (int i = 0; i < 500; i++)
- {
- var start = DateTime.Now;
- string data = input.Text;
- string str = $"{{\"command\":5,\"value\":{data},\"id\":\"DITag0\"}}";
- client.SendMessage(str, out string res);
- var interval = (DateTime.Now - start).TotalMilliseconds;
- Console.WriteLine($"{interval}: {res}");
- }
- Console.WriteLine($"Total: {(DateTime.Now - allStart).TotalMilliseconds}");
-
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.StackTrace);
- }
- }
private void HandlePlugin(object obj)
{
@@ -157,15 +259,14 @@
private TsExecution tsExecution;
- private TestBuilder testBuilder;
private DataBoard dataBoard;
private void Window_Loaded(object sender, RoutedEventArgs e)
{
- var plugin = new TsExecution();
- HandlePlugin(plugin);
- border.Child = plugin;
- tsExecution = plugin;
+ //var plugin = new TsExecution();
+ //HandlePlugin(plugin);
+ //border.Child = plugin;
+ //tsExecution = plugin;
this.Loaded -= Window_Loaded;
}
}
--
Gitblit v1.9.1