From 559890c482f5973f06aafdfec9550fee5ba3c7f2 Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 09 十一月 2026 17:02:15 +0800
Subject: [PATCH] feat: CAN 模拟器 TCP 化 + 多设备并发调试 + 后台生命周期管理

---
 SimpleUtil/HMI.SerialData.Util/SerialDataHelper.cs |   69 +++++++++++++++++++++++-----------
 1 files changed, 47 insertions(+), 22 deletions(-)

diff --git a/SimpleUtil/HMI.SerialData.Util/SerialDataHelper.cs b/SimpleUtil/HMI.SerialData.Util/SerialDataHelper.cs
index a725973..178c70d 100644
--- a/SimpleUtil/HMI.SerialData.Util/SerialDataHelper.cs
+++ b/SimpleUtil/HMI.SerialData.Util/SerialDataHelper.cs
@@ -6,13 +6,27 @@
 {
     public class SerialDataHelper
     {
+        private static string FileName = "SerialData";
+        /// <summary>
+        /// 闃叉澶氱嚎绋嬪垱寤烘枃浠讹紙浣嗘槸涓嶇煡閬搕eststand浼氫笉浼氬杩涚▼璋冪敤锛�
+        /// </summary>
+        private static object fileLock = new object();
+
         private static string createTableSql = @"CREATE TABLE IF NOT EXISTS serialData (
                     id INTEGER PRIMARY KEY AUTOINCREMENT,
                     sn TEXT NOT NULL,
                     station TEXT NOT NULL,
                     step TEXT NOT NULL,
-                    status TEXT NOT NULL,
-                    time TIME NOT NULL);";
+                    limitDown TEXT,
+                    limitUp TEXT,
+                    unit TEXT,
+                    offset TEXT,
+                    value TEXT,
+                    status TEXT,
+                    finalStatus TEXT,
+                    consumeTime BIGINT, 
+                    totalConsumeTime BIGINT, 
+                    time DATETIME NOT NULL);";
 
         private static string GetConnectionStr(string dbFile)
         {
@@ -21,42 +35,53 @@
 
         private static void CreateDbFile(string dbFile)
         {
-            if (!File.Exists(dbFile))
+            lock (fileLock)
             {
-                string dir = Path.GetDirectoryName(dbFile);
-                if (!Directory.Exists(dir))
+                if (!File.Exists(dbFile))
                 {
-                    Directory.CreateDirectory(dir);
-                }
-                SQLiteConnection.CreateFile(dbFile);
+                    string dir = Path.GetDirectoryName(dbFile);
+                    if (!Directory.Exists(dir))
+                    {
+                        Directory.CreateDirectory(dir);
+                    }
+                    SQLiteConnection.CreateFile(dbFile);
 
-                using (SQLiteConnection conn = new SQLiteConnection())
-                using (SQLiteCommand cmd = new SQLiteCommand(conn))
-                {
-                    conn.ConnectionString = GetConnectionStr(dbFile);
-                    conn.Open();
-                    cmd.CommandText = createTableSql;
-                    cmd.ExecuteNonQuery();
+                    using (SQLiteConnection conn = new SQLiteConnection())
+                    using (SQLiteCommand cmd = new SQLiteCommand(conn))
+                    {
+                        conn.ConnectionString = GetConnectionStr(dbFile);
+                        conn.Open();
+                        cmd.CommandText = createTableSql;
+                        cmd.ExecuteNonQuery();
+                    }
                 }
             }
         }
 
-        public static bool InsertSerialData(string dbFile, string sn, string station, string step, string status, out string errMsg)
+        private static string GetDbFile()
+        {
+            string value = RegUtil.GetLocaltion();
+            string path = Path.Combine(value, "Config", "DataBoard", $"{FileName}_{DateTime.Now:yyyy-MM}.db");
+            if (!File.Exists(path))
+            {
+                CreateDbFile(path);
+            }
+            return path;
+        }
+
+        public static bool InsertSerialData(string sn, string station, string step, string status, out string errMsg)
         {
             errMsg = string.Empty;
             try
             {
-                if (!File.Exists(dbFile))
-                {
-                    CreateDbFile(dbFile);
-                }
+                string dbFile = GetDbFile();
                 using (SQLiteConnection conn = new SQLiteConnection())
                 using (SQLiteCommand cmd = new SQLiteCommand(conn))
                 {
                     conn.ConnectionString = GetConnectionStr(dbFile);
                     conn.Open();
                     cmd.CommandText =
-                        $@"INSERT INTO serialData (sn, station, step, status, time) VALUES ('{sn}', '{station}', '{step}', '{status}', '{DateTime.Now:yyyy-MM-dd HH:mm.ss}');";
+                        $@"INSERT INTO serialData (sn, station, step, status, time) VALUES ('{sn}', '{station}', '{step}', '{status}', '{DateTime.Now:yyyy-MM-dd HH:mm:ss}');";
                     if (cmd.ExecuteNonQuery() > 0)
                     {
                         return true;
@@ -88,7 +113,7 @@
                     conn.ConnectionString = GetConnectionStr(dbFile);
                     conn.Open();
                     cmd.CommandText =
-                        $@"UPDATE serialData SET status='{status}', time='{DateTime.Now:yyyy-MM-dd HH:mm.ss}' WHERE sn='{sn}';";
+                        $@"UPDATE serialData SET status='{status}', time='{DateTime.Now:yyyy-MM-dd HH:mm:ss}' WHERE sn='{sn}';";
                     if (cmd.ExecuteNonQuery() > 0)
                     {
                         return true;

--
Gitblit v1.9.1