From 12e606635c42ea20f4b7c2bdda5204237a4b4c96 Mon Sep 17 00:00:00 2001
From: alielie <alielie@git.com>
Date: 星期一, 02 三月 2026 16:14:49 +0800
Subject: [PATCH] 优化

---
 Plugin.TsExecution/SingleControl.xaml.cs |  114 +++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 95 insertions(+), 19 deletions(-)

diff --git a/Plugin.TsExecution/SingleControl.xaml.cs b/Plugin.TsExecution/SingleControl.xaml.cs
index c82ecb6..e0bbebe 100644
--- a/Plugin.TsExecution/SingleControl.xaml.cs
+++ b/Plugin.TsExecution/SingleControl.xaml.cs
@@ -1,4 +1,5 @@
-锘縰sing HMI.Core.Util;
+锘縰sing HMI.Core.Manager;
+using HMI.Core.Util;
 using HMI.Util;
 using NationalInstruments.TestStand.Interop.API;
 using Plugin.TsExecution.Entity;
@@ -23,7 +24,6 @@
 
         protected void Set([CallerMemberName] string name = null)
         {
-
             PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
         }
 
@@ -58,15 +58,15 @@
             }
         }
 
-        private double passNum;
-        public double PassNum
+        private int passNum;
+        public int PassNum
         {
             get => passNum;
             private set { Set(ref passNum, value); }
         }
 
-        private double failNum;
-        public double FailNum
+        private int failNum;
+        public int FailNum
         {
             get => failNum;
             private set { Set(ref failNum, value); }
@@ -99,6 +99,13 @@
             set { Set(ref barcode, value); }
         }
 
+        private string model = string.Empty;
+        public string Model
+        {
+            get { return model; }
+            set { Set(ref model, value); }
+        }
+
         private string elapseTime = "00:00:00";
         public string ElapseTime
         {
@@ -108,7 +115,8 @@
                 if (value == "Start Timing")
                 {
                     this.refreshTimer.Enabled = true;
-                    TimeNow = DateTime.Now;
+                    TestStartTime = DateTime.Now;
+                    StepStartTime = DateTime.Now;
                 }
                 else
                 {
@@ -132,12 +140,13 @@
             }
         }
 
-        private DateTime TimeNow = new DateTime();
+        private DateTime TestStartTime = new DateTime();
+        private DateTime StepStartTime = new DateTime();
         private TimeSpan TimeCount = new TimeSpan();
 
-        private Timer refreshTimer;
+        private System.Timers.Timer refreshTimer;
 
-        private string currentStep = "绛夊緟鎵爜";
+        private string currentStep = "";
         public string CurrentStep
         {
             get => currentStep;
@@ -198,14 +207,24 @@
 
         public int ProbeWarn { get; private set; }
 
+        private bool isAutoMode;
+        public bool IsAutoMode
+        {
+            get => isAutoMode;
+            set
+            {
+                Set(ref isAutoMode, value);
+            }
+        }
+
         public SingleControl(int Index, string CountIniPath, int probeWarn)
         {
-            this.CountIniPath = CountIniPath;
             DataContext = this;
+            this.CountIniPath = CountIniPath;
             this.index = Index;
             ProbeWarn = probeWarn;
 
-            refreshTimer = new Timer()
+            refreshTimer = new System.Timers.Timer()
             {
                 Interval = 100
             };
@@ -213,6 +232,15 @@
             ReadProbeCount();
             ReadCounter();
             InitializeComponent();
+            try
+            {
+                var value = ParameterManager.GetCommonParameterByName("AutoTestMode");
+                IsAutoMode = bool.Parse(value.Value);
+            }
+            catch
+            {
+                IsAutoMode = true;
+            }
             //if (ProbeWarn > 0)
             //{
             //    probeWarnPanel.Visibility = Visibility.Visible;
@@ -243,7 +271,7 @@
 
             //AddTestData("1", "1", "1", "1", "1", "1", "1");
 
-            TimeCount = DateTime.Now - TimeNow;
+            TimeCount = DateTime.Now - TestStartTime;
             elapseTime = string.Format("{0:00}:{1:00}:{2:00}", TimeCount.Hours, TimeCount.Minutes, TimeCount.Seconds);
             Set("ElapseTime");
             Set("TestInfo");
@@ -274,8 +302,12 @@
                     Unit = unit,
                     Result = Status
                 };
-                Dispatcher.BeginInvoke(new Action(() =>
+                table.Dispatcher.Invoke(new Action(() =>
                 {
+                    var now = DateTime.Now;
+                    var span = now - StepStartTime;
+                    StepStartTime = now;
+                    data.ConsumeTime = $"{(span.TotalMilliseconds / 1000d).ToString("F2")}s";
                     Datasource.Add(data);
                     table.ScrollIntoView(data);
                 }));
@@ -328,16 +360,20 @@
             if (result == true)
             {
                 PassNum += 1;
+                //Interlocked.Increment(ref passNum);
+                //Set("PassNum");
             }
             else if (result == false)
             {
                 FailNum += 1;
+                //Interlocked.Increment(ref failNum);
+                //Set("FailNum");
             }
 
             TotalNum = PassNum + FailNum;
             if (TotalNum != 0)
             {
-                PassRate = (PassNum / TotalNum);
+                PassRate = ((double)PassNum / TotalNum);
             }
             else
             {
@@ -462,17 +498,57 @@
                     SequenceFileContext?.StationGlobals.SetValBoolean($"StationState.IsContinue_{index}", 1, true);
                     pausePanel.Visibility = Visibility.Collapsed;
                     break;
+                case "scannerSetting":
+                    //ScannerSetting setting = new ScannerSetting()
+                    //{
+                    //    Owner = Window.GetWindow(this)
+                    //};
+                    //setting.Open(true, $"Socket{index}", CountIniPath);
+                    ShowScannerPanel();
+                    break;
+                case "scannerOkBtn":
+                    SendSnr2Ts();
+                    break;
                 default:
                     break;
             }
         }
+        public void ShowScannerPanel()
+        {
+            //scannerPanel.Visibility = Visibility.Visible;
+        }
+
+        private void SendSnr2Ts()
+        {
+            //try
+            //{
+            //    string snr = TbManualSnr.Text;
+            //    SequenceFileContext?.StationGlobals.SetValString($"StationState.SN[{index}]", 1, snr);
+            //    scannerPanel.Visibility = Visibility.Collapsed;
+            //    TbManualSnr.Text = string.Empty;
+            //}
+            //catch (Exception ex)
+            //{
+            //    ToastHelper.Error(ex.Message);
+            //}
+        }
 
         private void pausePanel_Loaded(object sender, RoutedEventArgs e)
         {
-            var can = pausePanel;
-            var modal = visualModal;
-            Canvas.SetLeft(modal, (pausePanel.ActualWidth - visualModal.ActualWidth) / 2);
-            Canvas.SetTop(modal, (pausePanel.ActualHeight - visualModal.ActualHeight) / 2);
+            if (sender == pausePanel)
+            {
+                var can = pausePanel;
+                var modal = visualModal;
+                Canvas.SetLeft(modal, (pausePanel.ActualWidth - visualModal.ActualWidth) / 2);
+                Canvas.SetTop(modal, (pausePanel.ActualHeight - visualModal.ActualHeight) / 2);
+            }
+            else
+            {
+                //var can = scannerPanel;
+                //var modal = scannerVisualModal;
+                //Canvas.SetLeft(modal, (scannerPanel.ActualWidth - scannerVisualModal.ActualWidth) / 2);
+                //Canvas.SetTop(modal, (scannerPanel.ActualHeight - scannerVisualModal.ActualHeight) / 2);
+            }
         }
     }
 }

--
Gitblit v1.9.1