From cda7be2cd01f809f64cfb0e812d38034a456546c Mon Sep 17 00:00:00 2001
From: wells.liu <wells.liu@broconcentric.com>
Date: 星期六, 11 七月 2020 11:04:59 +0800
Subject: [PATCH] io优化

---
 src/Bro.UI.Model.Winform/UI/Ctrl/IOIndicatorCtrl.cs              |    4 ++--
 src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.cs    |    9 ++-------
 src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.cs   |   12 ++++++------
 src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.cs |   28 ++++++++++++++++++++++------
 4 files changed, 32 insertions(+), 21 deletions(-)

diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.cs b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.cs
index d7df378..7411bd0 100644
--- a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.cs
+++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.cs
@@ -1,5 +1,8 @@
-锘縰sing Bro.Common.Model;
+锘縰sing Bro.Common.Base;
+using Bro.Common.Interface;
+using Bro.Common.Model;
 using System;
+using System.Linq;
 using System.Windows.Forms;
 
 namespace Bro.UI.Device.Winform
@@ -11,27 +14,40 @@
             InitializeComponent();
         }
 
+        public IDevice Device { get; set; }
+
+        protected MotionCardBase MotionCard
+        {
+            get => Device as MotionCardBase;
+        }
+
+        private int _axisIndex { get; set; }
+        private string _axisName { get; set; }
+
         public AxisMovingStatus _axisMovingStatus = new AxisMovingStatus();
-        public CtrlMotionCardAxisStatus(AxisMovingStatus axisMovingStatus)
+        public CtrlMotionCardAxisStatus(IDevice device,int axisIndex,string axisName)
         {
             InitializeComponent();
-            _axisMovingStatus = axisMovingStatus;
-            groupBoxAxisStatus.Text = $"杩愬姩杞达細{_axisMovingStatus.AxisIndex}-{_axisMovingStatus.AxisName}";
+            Device = device;
+            _axisIndex = axisIndex;
+            _axisName = axisName;
+            groupBoxAxisStatus.Text = $"杩愬姩杞达細{axisIndex}-{axisName}";
         }
 
         private void RefreshStatus(object sender, EventArgs e)
         {
+            _axisMovingStatus = MotionCard.AxisStatusList.FirstOrDefault(u => u.AxisIndex == _axisIndex);
             textBoxPrfPositon.Text = _axisMovingStatus.Destination.ToString();
             textBoxCurPosition.Text = _axisMovingStatus.CurPosition.ToString();
             textBoxPrfVel.Text = _axisMovingStatus.PrfVelocity.ToString();
             textBoxCurVel.Text = _axisMovingStatus.CurVelocity.ToString();
             int axis_sts = _axisMovingStatus.AxisStatus;
-      
+
             ioIndicatorCtrl1.IsOn = (axis_sts & 0x2) == 0;//椹卞姩鎶ヨ
             ioIndicatorCtrl2.IsOn = (axis_sts & 0x200) == 0;//浼烘湇浣胯兘
             ioIndicatorCtrl6.IsOn = (axis_sts & 0x20) == 0;//姝i檺浣�
             ioIndicatorCtrl8.IsOn = (axis_sts & 0x40) == 0;//璐熼檺浣�
-            ioIndicatorCtrl9.IsOn =(axis_sts & 0x400) == 0;//杩愬姩鐘舵��
+            ioIndicatorCtrl9.IsOn = (axis_sts & 0x400) == 0;//杩愬姩鐘舵��
             ioIndicatorCtrl10.IsOn = (axis_sts & 0x10) == 0;//杩愬姩鍑洪敊
 
         }
diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.cs b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.cs
index 9a26301..528ef6b 100644
--- a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.cs
+++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.cs
@@ -31,11 +31,10 @@
             get => Device as MotionCardBase;
         }
 
-        public CtrlMotionCardIOStatus(IDevice device, List<IOItem> monitorValues)
+        public CtrlMotionCardIOStatus(IDevice device)
         {
             InitializeComponent();
             Device = device;
-            _monitorValues = monitorValues;
             InitIOEvent();
         }
 
@@ -51,14 +50,15 @@
             }
         }
 
-        private void IoOut_DoubleClick(string desc, bool isOn)
+        private void IoOut_DoubleClick(string name, bool isOn)
         {
-            var index = Convert.ToInt16(desc.Substring(3));
+            var index = Convert.ToInt16(name.Substring(6));
             MotionCard.WriteOutput(index, isOn ? IOValue.TRUE : IOValue.FALSE);
         }
 
         private void RefreshIOStatus(object sender, EventArgs e)
         {
+            _monitorValues = MotionCard.MonitorValues;
             foreach (var ioItem in _monitorValues)
             {
                 if (ioItem.IOType == Common.Helper.EnumHelper.IOType.INPUT)
@@ -67,7 +67,7 @@
                     if (ioInArray != null && ioInArray.Length == 1)
                     {
                         var ioIn = ioInArray[0] as IOIndicatorCtrl;
-                        ioIn.IsOn = ioItem.Value == IOValue.TRUE;
+                        ioIn.IsOn = ioItem.Value == IOValue.FALSE;
                     }
                 }
                 else
@@ -76,7 +76,7 @@
                     if (ioOutArray != null && ioOutArray.Length == 1)
                     {
                         var ioOut = ioOutArray[0] as IOIndicatorCtrl;
-                        ioOut.IsOn = ioItem.Value == IOValue.TRUE;
+                        ioOut.IsOn = ioItem.Value == IOValue.FALSE;
                     }
                 }
             }
diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.cs b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.cs
index f497998..279648c 100644
--- a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.cs
+++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.cs
@@ -44,16 +44,11 @@
         {
             foreach (var axisConfig in MotionCard.IConfig.AxisSettings.FindAll(u => u.IsAxisEnabled))
             {
-                var axisMovingStatus = MotionCard.AxisStatusList.FirstOrDefault(u => u.AxisIndex == axisConfig.AxisIndex);
-                if (axisMovingStatus == null)
-                {
-                    axisMovingStatus = new AxisMovingStatus();
-                }
-                CtrlMotionCardAxisStatus ctrlMotionCardAxisStatus = new CtrlMotionCardAxisStatus(axisMovingStatus);
+                CtrlMotionCardAxisStatus ctrlMotionCardAxisStatus = new CtrlMotionCardAxisStatus(Device,axisConfig.AxisIndex, axisConfig.AxisName);
                 flowLayoutPanel1.Controls.Add(ctrlMotionCardAxisStatus);
             }
 
-            CtrlMotionCardIOStatus ctrlMotionCardIOStatus = new CtrlMotionCardIOStatus(Device, MotionCard.MonitorValues);
+            CtrlMotionCardIOStatus ctrlMotionCardIOStatus = new CtrlMotionCardIOStatus(Device);
             flowLayoutPanel2.Controls.Add(ctrlMotionCardIOStatus);
         }
 
diff --git a/src/Bro.UI.Model.Winform/UI/Ctrl/IOIndicatorCtrl.cs b/src/Bro.UI.Model.Winform/UI/Ctrl/IOIndicatorCtrl.cs
index 3713aed..bfc2bf7 100644
--- a/src/Bro.UI.Model.Winform/UI/Ctrl/IOIndicatorCtrl.cs
+++ b/src/Bro.UI.Model.Winform/UI/Ctrl/IOIndicatorCtrl.cs
@@ -108,7 +108,7 @@
         {
             if (IsOn != null)
             {
-                OnIODoubleClick?.Invoke(Desc,IsOn.Value);
+                OnIODoubleClick?.Invoke(Name,IsOn.Value);
             }
         }
 
@@ -116,7 +116,7 @@
         {
             if (IsOn != null)
             {
-                OnIODoubleClick?.Invoke(Desc, IsOn.Value);
+                OnIODoubleClick?.Invoke(Name, IsOn.Value);
             }
         }
     }

--
Gitblit v1.8.0