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.Common.Device/DeviceBase/MotionCardBase.cs |   62 ++++++++++++++++++++++++++++++-
 1 files changed, 60 insertions(+), 2 deletions(-)

diff --git a/src/Bro.Common.Device/DeviceBase/MotionCardBase.cs b/src/Bro.Common.Device/DeviceBase/MotionCardBase.cs
index 2825f26..ef22a40 100644
--- a/src/Bro.Common.Device/DeviceBase/MotionCardBase.cs
+++ b/src/Bro.Common.Device/DeviceBase/MotionCardBase.cs
@@ -20,7 +20,41 @@
     {
         public event Action<DateTime, string, IDevice, IMonitorSet> OnMonitorInvoke;
         public event Action<DateTime, IDevice, IWarningSet> OnMonitorAlarm;
+        public event Action<int, string> OnAxisAlarmRaised;
+        public event Action<int, int, int> OnAxisStatusChanged;
+        public event Action<int, int> OnAxisPositionChanged;
+        
+        public void AxisAlarmRaised(int axisIndex, string msg)
+        {
+            OnAxisAlarmRaised?.Invoke(axisIndex, msg);
+        }
 
+        public void AxisStatusChanged(int axisIndex, int preStatus, int curStatus)
+        {
+            OnAxisStatusChanged?.Invoke(axisIndex, preStatus, curStatus);
+        }
+
+        public void AxisPositionChanged(int axisIndex, int currentPosition)
+        {
+            OnAxisPositionChanged?.Invoke(axisIndex, currentPosition);
+        }
+
+        protected override void Start()
+        {
+            AxisStatusList = IConfig.AxisSettings.Where(a => a.IsAxisEnabled).ToList().ConvertAll(a =>
+            {
+                AxisMovingStatus axisSts = new AxisMovingStatus();
+                axisSts.AxisIndex = a.AxisIndex;
+                axisSts.AxisName = a.AxisName;
+
+                return axisSts;
+            });
+
+            Task.Run(() =>
+            {
+                Monitor();
+            });
+        }
         public abstract List<AxisInfo> GetCurrentAxisInfo(params string[] axisName);
         public abstract void Monitor();
         public abstract ResponseMessage MoveToPoint(IOperationConfig opConfig);
@@ -99,9 +133,21 @@
         /// <summary>
         /// 杞寸殑杩愬姩鐘舵�佸��
         /// </summary>
-        public List<AxisMovingStatus> AxisMovingOptionValues { get; set; } = new List<AxisMovingStatus>();
+        public List<AxisMovingStatus> AxisStatusList { get; set; } = new List<AxisMovingStatus>();
 
         public abstract void WriteOutput(short index, IOValue value);
+
+        #region ImmediatePause
+        /// <summary>
+        /// 鍚姩绔嬪嵆鏆傚仠
+        /// </summary>
+        public abstract void SetImmediatePause();
+
+        /// <summary>
+        /// 鎭㈠绔嬪嵆鏆傚仠
+        /// </summary>
+        public abstract void ResetImmediatePause(bool isResumeMoving);
+        #endregion
     }
 
     public class MotionCardInitialConfigBase : InitialConfigBase, IMonitorConfig
@@ -109,7 +155,7 @@
         [Category("鏉垮崱閰嶇疆")]
         [DisplayName("鍗″彿")]
         [Description("CardNum锛氬崱鍙�")]
-        public int CardNum { get; set; }
+        public int CardNum { get; set; } = 1;
 
         [Category("鏉垮崱閰嶇疆")]
         [DisplayName("鍒濆閰嶇疆鏂囦欢璺緞")]
@@ -151,6 +197,10 @@
         [TypeConverter(typeof(CollectionCountConvert))]
         [Editor(typeof(ComplexCollectionEditor<IODefinition>), typeof(UITypeEditor))]
         public List<IODefinition> IODefinitionCollection { get; set; } = new List<IODefinition>();
+
+        [Category("IO閰嶇疆")]
+        [Description("true锛氳緭鍑哄彇鍙� false锛氳緭鍑轰笉鍙栧弽")]
+        public bool IsOutputReversed { get; set; } = true;
 
         #region IMonitorConfig
         [Category("鐩戝惉璁剧疆")]
@@ -275,6 +325,14 @@
         [Editor(typeof(MovingOpsCollectionEditor), typeof(UITypeEditor))]
         public List<MovingOption> MovingOps { get; set; } = new List<MovingOption>();
 
+        [Category("3.杩愬姩寤舵椂")]
+        [Description("鎿嶄綔鍓嶅欢鏃讹紝鍗曚綅ms")]
+        public int DelayBefore { get; set; } = 0;
+
+        [Category("3.杩愬姩寤舵椂")]
+        [Description("鎿嶄綔鍚庡欢鏃讹紝鍗曚綅ms")]
+        public int DelayAfter { get; set; } = 0;
+
         public string MotionCardId = "";
 
         //[Category("鏉垮崱杩愬姩閰嶇疆")]

--
Gitblit v1.8.0