From 17db44bdab7772f465969bf778d417e08bf8a5f0 Mon Sep 17 00:00:00 2001
From: xcd <834800634@qq.com>
Date: 星期六, 04 七月 2020 17:58:34 +0800
Subject: [PATCH] 1. 大/小复位,机台状态 2. 板卡操作配置复数化 3. 界面日志输出机制修改 4. M071主界面CT,测量结果,测量状态,机台状态输出

---
 src/Bro.Device.GTSCard/GTSCardDriver.cs |   56 ++++++++++++++++++++++++++++----------------------------
 1 files changed, 28 insertions(+), 28 deletions(-)

diff --git a/src/Bro.Device.GTSCard/GTSCardDriver.cs b/src/Bro.Device.GTSCard/GTSCardDriver.cs
index 2cb1a6d..04c2bf1 100644
--- a/src/Bro.Device.GTSCard/GTSCardDriver.cs
+++ b/src/Bro.Device.GTSCard/GTSCardDriver.cs
@@ -164,22 +164,22 @@
         /// <returns>杩愬姩鎺у埗+鍋滄鍒ゆ柇</returns>
         public override ResponseMessage MoveToPoint(IOperationConfig opConfig)
         {
-            bool resultOK = false;
-            var gtsOperationConfig = opConfig as GTSCardOperationConfig;
-            List<Task<bool>> taskList = new List<Task<bool>>();
-            //TaskFactory factory = new TaskFactory(TaskCreationOptions.LongRunning, TaskContinuationOptions.None);
-            // 濡傛灉鏄涓酱鐨勮繍鍔� 绛夋瘡涓酱杩愬姩缁撴潫
-            foreach (var movingOp in gtsOperationConfig.MovingOps)
-            {
-                //var task = factory.StartNew<bool>((op) =>
-                //{
-                //    return SingleAxisMoving(op as MovingOption);
-                //}, movingOp);
-                var task = SingleAxisMoving(movingOp);
-                taskList.Add(task);
-            }
-            Task.WaitAll(taskList.ToArray());
-            resultOK = taskList.All(u => u.GetAwaiter().GetResult());
+            //bool resultOK = false;
+            //var gtsOperationConfig = opConfig as GTSCardOperationConfig;
+            //List<Task<bool>> taskList = new List<Task<bool>>();
+            ////TaskFactory factory = new TaskFactory(TaskCreationOptions.LongRunning, TaskContinuationOptions.None);
+            //// 濡傛灉鏄涓酱鐨勮繍鍔� 绛夋瘡涓酱杩愬姩缁撴潫
+            //foreach (var movingOp in gtsOperationConfig.MovingOps)
+            //{
+            //    //var task = factory.StartNew<bool>((op) =>
+            //    //{
+            //    //    return SingleAxisMoving(op as MovingOption);
+            //    //}, movingOp);
+            //    var task = SingleAxisMoving(movingOp);
+            //    taskList.Add(task);
+            //}
+            //Task.WaitAll(taskList.ToArray());
+            //resultOK = taskList.All(u => u.GetAwaiter().GetResult());
 
             //return resultOK;
             throw new NotImplementedException();
@@ -655,16 +655,17 @@
         /// <param name="cardNum">鍗″彿</param>
         /// <param name="index">杈撳嚭鍙�,杩斿洖1-16</param>
         /// <param name="value">false琛ㄧず杈撳嚭锛宼rue琛ㄧず鍏抽棴</param>
-        public void WriteOut(short cardNum, short index, bool value)
+        public override void WriteOutput(short cardNum, short index, IOValue value)
         {
             short outNum = (short)(index % 100 + 1);
-            if (value)
+            if ((int)value <= 1)
             {
-                GTSCardAPI.GT_SetDoBit(cardNum, GTSCardAPI.MC_GPO, outNum, 0);
+                GTSCardAPI.GT_SetDoBit(cardNum, GTSCardAPI.MC_GPO, outNum, (short)value);
             }
             else
             {
-                GTSCardAPI.GT_SetDoBit(cardNum, GTSCardAPI.MC_GPO, outNum, 1);
+                var currentValue = (int)MonitorValues.FirstOrDefault(u => u.IONum == outNum && u.IOType == IOType.OUTPUT).Value;
+                GTSCardAPI.GT_SetDoBit(cardNum, GTSCardAPI.MC_GPO, outNum, (short)(currentValue == 1 ? 0 : 1));
             }
         }
 
@@ -690,7 +691,7 @@
 
         #region IMonitor
 
-        public List<IOItem> MonitorValues { get; set; } = new List<IOItem>();
+        //public List<IOItem> MonitorValues { get; set; } = new List<IOItem>();
 
 
         public List<IOItem> GetMonitorValues()
@@ -709,13 +710,13 @@
                 IOItem inItem = new IOItem()
                 {
                     IONum = index,
-                    Value = (inValue & (1 << index)) == 0 ? 1 : 0,
+                    Value = (inValue & (1 << index)) == 0 ? IOValue.TRUE : IOValue.FALSE,
                     IOType = IOType.INPUT
                 };
                 IOItem outItem = new IOItem()
                 {
                     IONum = index,
-                    Value = (outValue & (1 << index)) == 0 ? 1 : 0,
+                    Value = (outValue & (1 << index)) == 0 ? IOValue.TRUE : IOValue.FALSE,
                     IOType = IOType.OUTPUT
                 };
                 result.Add(inItem);
@@ -772,7 +773,7 @@
             });
         }
 
-        private void OnMethodInvoked(IAsyncResult ar)
+        public override void OnMethodInvoked(IAsyncResult ar)
         {
             MotionCardMonitorSet monitorSet = ar.AsyncState as MotionCardMonitorSet;
             ProcessResponse resValues = monitorSet.Response;
@@ -804,13 +805,12 @@
             {
                 MotionCardWarningSet warningSet = wSet as MotionCardWarningSet;
 
-                bool isOn = ((tempNew.FirstOrDefault(u => u.IONum == warningSet.TriggerIndex && u.IOType == warningSet.WarningIOModel)?.Value >> warningSet.TriggerIndex) & 1) == (warningSet.TriggerValue ? 1 : 0);
+                bool isOn = (((int)((tempNew.FirstOrDefault(u => u.IONum == warningSet.TriggerIndex && u.IOType == warningSet.WarningIOModel)?.Value)) >> warningSet.TriggerIndex) & 1) == (warningSet.TriggerValue ? 1 : 0);
 
                 if (warningSet.CurrentStatus != isOn)
                 {
                     warningSet.CurrentStatus = isOn;
                     warningSet.TriggerTime = DateTime.Now;
-                    warningSet.WarningDescription = $"璀︽姤锛歿warningSet.Name}-瑙﹀彂绱㈠紩锛歿warningSet.TriggerIndex}-{warningSet.WarningIOModel.GetEnumDescription()}:{warningSet.WarningCode}";
                     SaveAlarmCSVAsync(DateTime.Now, this.Name, warningSet);
                     ExcuteMonitorAlarm(DateTime.Now, this, warningSet);
                 }
@@ -831,7 +831,7 @@
 
                 if (newIOItem?.Value != oldIOItem?.Value)
                 {
-                    if (monitorSet.TriggerValue == -999 || newIOItem.Value == monitorSet.TriggerValue)
+                    if (monitorSet.TriggerValue == -999 || (int)newIOItem.Value == monitorSet.TriggerValue)
                     {
                         if (monitorSet.OpConfig == null)
                         {
@@ -843,7 +843,7 @@
                         //    return tempNew[index].Value;
                         //}).ToList();
 
-                        ExcuteMonitorInvok(DateTime.Now, monitorSet.InvokeDevice, this, monitorSet, OnMethodInvoked);
+                        ExcuteMonitorInvoke(DateTime.Now, monitorSet.InvokeDevice, this, monitorSet);
                     }
                 }
             });

--
Gitblit v1.8.0