From 9211ec11c112e18cd99e77f889a01110a70031ce Mon Sep 17 00:00:00 2001
From: alielie <alielie@git.com>
Date: 星期一, 24 十一月 2025 17:47:15 +0800
Subject: [PATCH] 优化项目结构

---
 HMI.UnitTest/MainWindow.xaml.cs |  159 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 156 insertions(+), 3 deletions(-)

diff --git a/HMI.UnitTest/MainWindow.xaml.cs b/HMI.UnitTest/MainWindow.xaml.cs
index d367685..2c18c54 100644
--- a/HMI.UnitTest/MainWindow.xaml.cs
+++ b/HMI.UnitTest/MainWindow.xaml.cs
@@ -1,17 +1,18 @@
 锘縰sing ConnectionUtil;
 using HMI.Core.Api;
 using HMI.Core.Util;
+using HMI.Simple.Util;
 using log4net;
+using ModBusTcp;
 using Panuon.WPF.UI;
 using Plugin.DataBoard;
-using Plugin.TestBuilder;
 using Plugin.TestResult_WPF;
 using Plugin.TsExecution;
 using System;
+using System.IO;
 using System.Threading;
 using System.Threading.Tasks;
 using System.Windows;
-
 namespace UnitTest
 {
     /// <summary>
@@ -22,14 +23,122 @@
         private ILog log = LogManager.GetLogger("UnitTest");
         public MainWindow()
         {
+            ProductModelHelper.GetModelBySNR("cc123", out string model, out string msg);
             LangUtil.Load();
             InitializeComponent();
+            //RebuildDb();
+
+            ModBusTcpController controller = new ModBusTcpController("127.0.0.1", 502);
+            if (controller.Start(out msg)) {
+                bool res;
+                int? target;
+
+                controller.WriteBool("1", true, out msg);
+                controller.ReadDOBool("1", out res, out msg);
+                Console.WriteLine(res);
+                controller.ReadDOInt("1", out target, out msg);
+                Console.WriteLine(target); 
+                controller.WriteInt("1", 1, out msg);
+                controller.ReadDOInt("1", out target, out msg);
+                Console.WriteLine(target);
+                Console.WriteLine(target);
+            }
+
+
             //page.Children.Add(new UserControl1());
         }
 
         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)
         {
@@ -40,6 +149,51 @@
             //        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);
             //    }
             //});
 
@@ -160,7 +314,6 @@
 
         private TsExecution tsExecution;
 
-        private TestBuilder testBuilder;
         private DataBoard dataBoard;
 
         private void Window_Loaded(object sender, RoutedEventArgs e)

--
Gitblit v1.9.1