From 1161ebd25831a44067b7272df348d93c6f85a6c0 Mon Sep 17 00:00:00 2001
From: wells <123>
Date: 星期六, 11 七月 2020 16:53:49 +0800
Subject: [PATCH] 板卡修复

---
 src/Bro.Device.GTSCard/GTSCardDriver.cs |   52 +++++++++++++++++++++++++++++++++-------------------
 1 files changed, 33 insertions(+), 19 deletions(-)

diff --git a/src/Bro.Device.GTSCard/GTSCardDriver.cs b/src/Bro.Device.GTSCard/GTSCardDriver.cs
index 85c4e5f..c472ba4 100644
--- a/src/Bro.Device.GTSCard/GTSCardDriver.cs
+++ b/src/Bro.Device.GTSCard/GTSCardDriver.cs
@@ -609,7 +609,7 @@
                 {
                     //璁剧疆 杩愬姩鍙傛暟
                     isSuccessSetAxisParam = SetAxisParam(optionPara);
-                    ret = GTSCardAPI.GT_SetPos((short)IConfig.CardNum, (short)optionPara.AxisIndex, (int)(dPosition * AxisRatio));// 璁剧疆鐩殑浣嶇疆
+                    ret = GTSCardAPI.GT_SetPos((short)IConfig.CardNum, (short)optionPara.AxisIndex, (int)(dPosition));// 璁剧疆鐩殑浣嶇疆
                     ret = GTSCardAPI.GT_Update((short)IConfig.CardNum, 1 << (optionPara.AxisIndex - 1));//鏇存柊杩愬姩
 
                     if (ret != (short)GTSRetCode.GRCRunOK)
@@ -685,7 +685,7 @@
                 {
                     //璁剧疆 杩愬姩鍙傛暟
                     isSuccessSetAxisParam = SetAxisParam(optionPara);
-                    ret = GTSCardAPI.GT_SetPos((short)IConfig.CardNum, (short)optionPara.AxisIndex, (int)(optionPara.Destination * AxisRatio));// 璁剧疆鐩爣浣嶇疆
+                    ret = GTSCardAPI.GT_SetPos((short)IConfig.CardNum, (short)optionPara.AxisIndex, (int)(optionPara.Destination));// 璁剧疆鐩爣浣嶇疆
                     ret = GTSCardAPI.GT_Update((short)IConfig.CardNum, 1 << (optionPara.AxisIndex - 1));//鏇存柊杩愬姩
 
                     if (ret != (short)GTSRetCode.GRCRunOK)
@@ -863,29 +863,42 @@
                 sRtn = GTSCardAPI.GT_Update((short)IConfig.CardNum, 1 << (movingOption.AxisIndex - 1));
 
                 int repeatTime = 1000;
+                short capture;
+                int pos;
+                uint clk;//鏃堕挓鍙傛暟
                 do
                 {
                     Thread.Sleep(20);
-                    isStop = IsStop((short)movingOption.AxisIndex);
-                    repeatTime--;
-                } while (!isStop && repeatTime > 0);
-
-                if (isStop)
-                {
-                    short capture;
-                    int pos;
-                    uint clk;//鏃堕挓鍙傛暟
                     // 璇诲彇鎹曡幏鐘舵��
                     GTSCardAPI.GT_GetCaptureStatus((short)IConfig.CardNum, (short)movingOption.AxisIndex, out capture, out pos, 1, out clk);
+                    isStop = IsStop((short)movingOption.AxisIndex);
+                    repeatTime--;
+                } while (!(isStop || capture == 1 || repeatTime <= 0));
+
+                if (repeatTime <= 0)
+                {
+                    MoveStop((short)movingOption.AxisIndex, 0);
+                    throw new Exception($"杩愬姩杞磠movingOption.AxisIndex} 锛屽洖鍘熺偣瓒呮椂寮傚父");
+                }
+                if (isStop && capture != 1)
+                {
+
+                    ClearStatus((short)movingOption.AxisIndex, 1);
+                    throw new Exception($"杩愬姩杞磠movingOption.AxisIndex} 锛屽洖鍘熺偣瓒呮椂寮傚父");
+                }
+
+                if (capture == 1)
+                {
+                    //鍏坰top
+                    MoveStop((short)movingOption.AxisIndex, 0);
+                    ClearStatus((short)movingOption.AxisIndex, 1);
                     //宸茬粡鎹曡幏鍒癏ome鎵嶅彲浠ュ洖闆� 闃舵2
-                    if (capture == 1)
-                    {
-                        // 杩愬姩鍒�"鎹曡幏浣嶇疆+鍋忕Щ閲�"
-                        sRtn = GTSCardAPI.GT_SetPos((short)IConfig.CardNum, (short)movingOption.AxisIndex, pos + movingOption.GoHomePara.HomeOffset);
-                        // 鍦ㄨ繍鍔ㄧ姸鎬佷笅鏇存柊鐩爣浣嶇疆
-                        sRtn = GTSCardAPI.GT_Update((short)IConfig.CardNum, 1 << (movingOption.AxisIndex - 1));
-                        isStop = false;
-                    }
+                    // 杩愬姩鍒�"鎹曡幏浣嶇疆+鍋忕Щ閲�"
+                    sRtn = GTSCardAPI.GT_SetPos((short)IConfig.CardNum, (short)movingOption.AxisIndex, pos + movingOption.GoHomePara.HomeOffset);
+                    // 鍦ㄨ繍鍔ㄧ姸鎬佷笅鏇存柊鐩爣浣嶇疆
+                    sRtn = GTSCardAPI.GT_Update((short)IConfig.CardNum, 1 << (movingOption.AxisIndex - 1));
+                    isStop = false;
+
                     repeatTime = 1000;
                     do
                     {
@@ -893,6 +906,7 @@
                         isStop = IsStop((short)movingOption.AxisIndex);
                         repeatTime--;
                     } while (!isStop && repeatTime > 0);
+                    PositionReset(movingOption.AxisIndex, 1);
                     return (sRtn == (short)GTSRetCode.GRCRunOK) && isStop;
                 }
                 return false;

--
Gitblit v1.8.0