From 3322022068ab818912d6f5d9e5eb31f51cc639c2 Mon Sep 17 00:00:00 2001
From: patrick.xu <patrick.xu@broconcentric.com>
Date: 星期四, 24 二月 2022 09:12:30 +0800
Subject: [PATCH] 添加配置文件的DataShift2

---
 src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.cs |   19 ++++++++++++++-----
 1 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.cs b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.cs
index 103622f..e47edce 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(5));
             MotionCard.WriteOutput(index, isOn ? IOValue.FALSE : IOValue.TRUE);
         }
 
         private void RefreshIOStatus(object sender, EventArgs e)
         {
+            _monitorValues = MotionCard.MonitorValues;
             foreach (var ioItem in _monitorValues)
             {
                 if (ioItem.IOType == Common.Helper.EnumHelper.IOType.INPUT)
@@ -67,6 +67,7 @@
                     if (ioInArray != null && ioInArray.Length == 1)
                     {
                         var ioIn = ioInArray[0] as IOIndicatorCtrl;
+
                         ioIn.IsOn = ioItem.Value == IOValue.TRUE;
                     }
                 }
@@ -76,7 +77,15 @@
                     if (ioOutArray != null && ioOutArray.Length == 1)
                     {
                         var ioOut = ioOutArray[0] as IOIndicatorCtrl;
-                        ioOut.IsOn = ioItem.Value == IOValue.TRUE;
+
+                        if (MotionCard.IConfig.IsOutputReversed)
+                        {
+                            ioOut.IsOn = ioItem.Value == IOValue.TRUE;
+                        }
+                        else
+                        {
+                            ioOut.IsOn = ioItem.Value == IOValue.FALSE;
+                        }
                     }
                 }
             }

--
Gitblit v1.8.0