From 1bc2df66bc88a6405df345dccc24a5031e18b592 Mon Sep 17 00:00:00 2001 From: patrick.xu <patrick.xu@broconcentric.com> Date: 星期一, 21 十二月 2020 09:54:48 +0800 Subject: [PATCH] 1. gocator添加byte2/byte4的配置,目前测试byte4不成功,暂时还是使用byte2配置。 2. 添加键名代码映射配置和NG键名代码上传功能 --- src/Bro.Device.GTSCard/GTSCardDriver.cs | 43 ++++++++++++++++++++++++++++++++----------- 1 files changed, 32 insertions(+), 11 deletions(-) diff --git a/src/Bro.Device.GTSCard/GTSCardDriver.cs b/src/Bro.Device.GTSCard/GTSCardDriver.cs index d0c3dff..303ddb4 100644 --- a/src/Bro.Device.GTSCard/GTSCardDriver.cs +++ b/src/Bro.Device.GTSCard/GTSCardDriver.cs @@ -526,7 +526,7 @@ /// <returns></returns> public double GetPosition(int axisNum) { - lock (moveLock) + //lock (moveLock) { double position = 0; double pPos = 0; @@ -646,7 +646,9 @@ if (CurrentState != EnumHelper.DeviceState.DSOpen) { LogAsync(DateTime.Now, "闈炴甯哥姸鎬佸紓甯�", "杞�" + optionPara.AxisIndex + "璇曞浘鍦ㄩ潪姝e父鐘舵�佽繍鍔�"); - throw new ProcessException("杞�" + optionPara.AxisIndex + "璇曞浘鍦ㄩ潪姝e父鐘舵�佽繍鍔�", null); + + return false; + //throw new ProcessException("杞�" + optionPara.AxisIndex + "璇曞浘鍦ㄩ潪姝e父鐘舵�佽繍鍔�", null); } LogAsync(DateTime.Now, "杞�" + optionPara.AxisIndex + "寮�濮嬭繍鍔�", "鐩爣鍧愭爣锛�" + optionPara.Destination); @@ -725,8 +727,11 @@ if (CurrentState != EnumHelper.DeviceState.DSOpen) { LogAsync(DateTime.Now, "闈炴甯哥姸鎬佸紓甯�", "杞�" + optionPara.AxisIndex + "璇曞浘鍦ㄩ潪姝e父鐘舵�佽繍鍔�"); - throw new ProcessException("杞�" + optionPara.AxisIndex + "璇曞浘鍦ㄩ潪姝e父鐘舵�佽繍鍔�", null); + + return false; + //throw new ProcessException("杞�" + optionPara.AxisIndex + "璇曞浘鍦ㄩ潪姝e父鐘舵�佽繍鍔�", null); } + LogAsync(DateTime.Now, "杞�" + optionPara.AxisIndex + "寮�濮嬭繍鍔�", "鐩爣鍧愭爣锛�" + optionPara.Destination); short ret = 0; bool isSuccessSetAxisParam = false; @@ -783,7 +788,8 @@ bool isStop = false; if (option == 1) { - StateChange(EnumHelper.DeviceState.DSExcept); + //StateChange(EnumHelper.DeviceState.DSExcept); + LogAsync(DateTime.Now, "鎬ュ仠鍋滄", ""); } var ret = GTSCardAPI.GT_Stop((short)IConfig.CardNum, 1 << (axisNum - 1), option); if (ret != (short)GTSRetCode.GRCRunOK) @@ -891,6 +897,8 @@ { try { + Thread.CurrentThread.Priority = ThreadPriority.AboveNormal; + var goHomePara = IConfig.AxisSettings.FirstOrDefault(u => u.AxisIndex == movingOption.AxisIndex).GoHomePara; bool homeDirection = goHomePara.IsHomeDirPositive; bool isRightLimitReached = false; @@ -914,6 +922,8 @@ PositionReset(movingOption.AxisIndex, 1); ClearStatus(movingOption.AxisIndex, 1); + //LogAsync(DateTime.Now, $"{Name}浣嶇疆缃浂", ""); + if (goHomePara.IsCaptureMode) { //鎼滅储璺濈 闃舵1 @@ -922,7 +932,7 @@ } // 璁剧疆鐐逛綅妯″紡鐩爣浣嶇疆锛屽嵆鍘熺偣鎼滅储璺濈 - sRtn = GTSCardAPI.GT_SetPos((short)IConfig.CardNum, (short)movingOption.AxisIndex, homeDirection ? 99999999 : -99999999); + sRtn = GTSCardAPI.GT_SetPos((short)IConfig.CardNum, (short)movingOption.AxisIndex, homeDirection ? 999999999 : -999999999); // 鍚姩杩愬姩 sRtn = GTSCardAPI.GT_Update((short)IConfig.CardNum, 1 << (movingOption.AxisIndex - 1)); @@ -940,7 +950,7 @@ do { - Thread.Sleep(checkInterval * 2); + Thread.Sleep(checkInterval); if (goHomePara.IsCaptureMode) { @@ -950,11 +960,11 @@ else { GTSCardAPI.GT_GetDi((short)IConfig.CardNum, GTSCardAPI.MC_HOME, out int pValue); - capture = (short)((pValue & (1 << (movingOption.AxisIndex - 1))) == 0 ? 1 : 0); + //LogAsync(DateTime.Now, $"鍘熺偣鐘舵�亄pValue}锛岃酱{movingOption.AxisIndex}鍘熺偣{capture}", ""); } isStop = IsStop((short)movingOption.AxisIndex); - repeatTime -= checkInterval * 2; + repeatTime -= checkInterval; } while (!(isStop || capture == 1 || repeatTime <= 0)); if (repeatTime <= 0) @@ -965,11 +975,16 @@ var axisStatus = AxisStatusList.FirstOrDefault(u => u.AxisIndex == movingOption.AxisIndex); + //if (isStop) + //{ + // LogAsync(DateTime.Now, $"杞磠movingOption.AxisIndex}澶嶄綅涓仠姝�", $"Capture鐘舵�亄capture}"); + //} + if (isStop && capture != 1) { if (((axisStatus.AxisStatus & 0x20) != 0) || ((axisStatus.AxisStatus & 0x40) != 0)) { - //movingOption.GoHomePara.HomeDir = (short)(movingOption.GoHomePara.HomeDir == 1 ? -1 : 1); + capture = 0; //姝i檺浣� if ((axisStatus.AxisStatus & 0x20) != 0 && !goHomePara.IsCaptureDirPositive) @@ -984,6 +999,8 @@ } homeDirection = !homeDirection; + + LogAsync(DateTime.Now, $"杞磠movingOption.AxisIndex}鏋侀檺浣嶇疆鎹㈠悜", ""); } ClearStatus(movingOption.AxisIndex, 1); @@ -1018,14 +1035,18 @@ repeatTime--; } while (!isStop && repeatTime > 0); PositionReset(movingOption.AxisIndex, 1); + LogAsync(DateTime.Now, $"杞磠movingOption.AxisIndex}澶嶄綅瀹屾垚锛屼綅缃竻闆�", ""); + return (sRtn == (short)GTSRetCode.GRCRunOK) && isStop; } } while (!(capture == 1 && isRightLimitReached)); + return false; } catch (Exception ex) { + LogAsync(DateTime.Now, $"{Name}鍥炲師鐐瑰紓甯�", ex.GetExceptionMessage()); AllMoveStop(true); OnExceptionOccured?.Invoke(DateTime.Now, ex); return false; @@ -1099,7 +1120,7 @@ /// <returns></returns> public override int GetAxisStatus(int axisNum) { - lock (moveLock) + //lock (moveLock) { int sts = 0; uint pclock = 0; @@ -1122,7 +1143,7 @@ /// <returns></returns> public override bool PositionReset(int startAxisIndex, int count) { - lock (moveLock) + //lock (moveLock) { var rtn = GTSCardAPI.GT_ZeroPos((short)IConfig.CardNum, (short)startAxisIndex, (short)count); return rtn == (short)GTSRetCode.GRCRunOK; -- Gitblit v1.8.0