From 8cbf4a6b9f334246d88c8101ae3db9a21f1bab3f Mon Sep 17 00:00:00 2001
From: patrick.xu <patrick.xu@broconcentric.com>
Date: 星期三, 28 四月 2021 11:40:08 +0800
Subject: [PATCH] Merge branch 'master' of http://gitblit.broconcentric.com:8088/r/M071
---
src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.cs | 47 +++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 43 insertions(+), 4 deletions(-)
diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.cs b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.cs
index 13762cf..e47edce 100644
--- a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.cs
+++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.cs
@@ -10,6 +10,8 @@
using Bro.Common.Model;
using Bro.UI.Model.Winform;
using static Bro.Common.Helper.EnumHelper;
+using Bro.Common.Interface;
+using Bro.Common.Base;
namespace Bro.UI.Device.Winform
{
@@ -20,17 +22,43 @@
public CtrlMotionCardIOStatus()
{
InitializeComponent();
+ InitIOEvent();
+ }
+ private IDevice Device { get; set; }
+
+ protected MotionCardBase MotionCard
+ {
+ get => Device as MotionCardBase;
}
-
- public CtrlMotionCardIOStatus(List<IOItem> monitorValues)
+ public CtrlMotionCardIOStatus(IDevice device)
{
InitializeComponent();
- _monitorValues = monitorValues;
+ Device = device;
+ InitIOEvent();
+ }
+
+ private void InitIOEvent()
+ {
+ foreach (var ctr in groupBoxIOOut.Controls)
+ {
+ if (ctr is IOIndicatorCtrl ioOut)
+ {
+ ioOut.Cursor = Cursors.Hand;
+ ioOut.OnIODoubleClick += IoOut_DoubleClick;
+ }
+ }
+ }
+
+ private void IoOut_DoubleClick(string name, bool isOn)
+ {
+ 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)
@@ -39,6 +67,7 @@
if (ioInArray != null && ioInArray.Length == 1)
{
var ioIn = ioInArray[0] as IOIndicatorCtrl;
+
ioIn.IsOn = ioItem.Value == IOValue.TRUE;
}
}
@@ -48,10 +77,20 @@
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;
+ }
}
}
}
+
+ this.Invalidate();
}
}
}
--
Gitblit v1.8.0