From bbac60058524198c13c4a22943719f853ef8e2bc Mon Sep 17 00:00:00 2001
From: xcd <834800634@qq.com>
Date: 星期三, 15 七月 2020 19:34:15 +0800
Subject: [PATCH] Excel输出4个sheet,横向排布 解决启动延迟问题
---
src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.cs | 76 ++++++++++++++++++++++++++++++++++++++
1 files changed, 76 insertions(+), 0 deletions(-)
diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.cs b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.cs
index b136bdc..e47edce 100644
--- a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.cs
+++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.cs
@@ -7,14 +7,90 @@
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
+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
{
public partial class CtrlMotionCardIOStatus : UserControl
{
+ public List<IOItem> _monitorValues { get; set; }
+
public CtrlMotionCardIOStatus()
{
InitializeComponent();
+ InitIOEvent();
+ }
+ private IDevice Device { get; set; }
+
+ protected MotionCardBase MotionCard
+ {
+ get => Device as MotionCardBase;
+ }
+
+ public CtrlMotionCardIOStatus(IDevice device)
+ {
+ InitializeComponent();
+ 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)
+ {
+ var ioInArray = groupBoxIOIn.Controls.Find("ioIn" + ioItem.IONum, false);
+ if (ioInArray != null && ioInArray.Length == 1)
+ {
+ var ioIn = ioInArray[0] as IOIndicatorCtrl;
+
+ ioIn.IsOn = ioItem.Value == IOValue.TRUE;
+ }
+ }
+ else
+ {
+ var ioOutArray = groupBoxIOOut.Controls.Find("ioOut" + ioItem.IONum, false);
+ if (ioOutArray != null && ioOutArray.Length == 1)
+ {
+ var ioOut = ioOutArray[0] as IOIndicatorCtrl;
+
+ if (MotionCard.IConfig.IsOutputReversed)
+ {
+ ioOut.IsOn = ioItem.Value == IOValue.TRUE;
+ }
+ else
+ {
+ ioOut.IsOn = ioItem.Value == IOValue.FALSE;
+ }
+ }
+ }
+ }
+
+ this.Invalidate();
}
}
}
--
Gitblit v1.8.0