From da0da2d1238555c4ff488dbaaae1371ba4cf6827 Mon Sep 17 00:00:00 2001 From: wells.liu <wells.liu@broconcentric.com> Date: 星期四, 09 七月 2020 17:22:51 +0800 Subject: [PATCH] Merge branch 'master' of http://gitblit.broconcentric.com:8088/r/M071 --- src/Bro.Device.GTSCard/GTSCardDriver.cs | 33 ++++++++++++++++++--------------- 1 files changed, 18 insertions(+), 15 deletions(-) diff --git a/src/Bro.Device.GTSCard/GTSCardDriver.cs b/src/Bro.Device.GTSCard/GTSCardDriver.cs index 240c375..ed10b08 100644 --- a/src/Bro.Device.GTSCard/GTSCardDriver.cs +++ b/src/Bro.Device.GTSCard/GTSCardDriver.cs @@ -162,7 +162,7 @@ // 2.鏉垮崱杩愬姩 if (CurrentState == DeviceState.DSOpen) { - responseMessage = MoveToPoint(operationSet.MotionOperationCollection); + responseMessage = MoveToPoint(new MotionOperationCollection() { MovingOps = operationSet.MovingOps }); if (!responseMessage.Result) { return responseMessage; @@ -362,14 +362,15 @@ { List<short> resultCode = new List<short>() { 0 }; GTSCardAPI.TTrapPrm trapprm = new GTSCardAPI.TTrapPrm(); - resultCode.Add(GTSCardAPI.GT_PrfTrap((short)IConfig.CardNum, (short)optionPara.AxisIndex)); - resultCode.Add(GTSCardAPI.GT_GetTrapPrm((short)IConfig.CardNum, (short)optionPara.AxisIndex, out trapprm)); + short axisIndex = short.Parse(optionPara.AxisIndexStr); + resultCode.Add(GTSCardAPI.GT_PrfTrap((short)IConfig.CardNum, axisIndex)); + resultCode.Add(GTSCardAPI.GT_GetTrapPrm((short)IConfig.CardNum, axisIndex, out trapprm)); trapprm.smoothTime = 1; trapprm.acc = optionPara.VelocityPara.Acc != 0 ? optionPara.VelocityPara.Acc : 1; trapprm.dec = optionPara.VelocityPara.Dec != 0 ? optionPara.VelocityPara.Dec : 1; - resultCode.Add(GTSCardAPI.GT_SetTrapPrm((short)IConfig.CardNum, (short)optionPara.AxisIndex, ref trapprm)); - resultCode.Add(GTSCardAPI.GT_SetVel((short)IConfig.CardNum, (short)optionPara.AxisIndex, optionPara.VelocityPara.Velocity * IConfig.AxisVelocityRatio)); + resultCode.Add(GTSCardAPI.GT_SetTrapPrm((short)IConfig.CardNum, axisIndex, ref trapprm)); + resultCode.Add(GTSCardAPI.GT_SetVel((short)IConfig.CardNum, axisIndex, optionPara.VelocityPara.Velocity * IConfig.AxisVelocityRatio)); var resultOK = resultCode.All(u => u == (short)GTSRetCode.GRCRunOK); if (!resultOK) @@ -386,7 +387,7 @@ public override async Task<bool> SingleAxisMoving(MovingOption optionPara) { return await Task.Run(() => - { + { axisImmediatePauseHandleDict[optionPara.AxisIndex].WaitOne(); bool isSuccessAndStop = false; try @@ -458,7 +459,8 @@ { throw new Exception("杞�" + axisNum + "鑾峰彇瑙勫垝浣嶇疆寮傚父锛岄敊璇爜锛�" + ret); } - position = prfpos / IConfig.AxisVelocityRatio; + var AxisRatio = IConfig.AxisSettings.FirstOrDefault(u => u.AxisIndex == axisNum) == null ? 1 : IConfig.AxisSettings.FirstOrDefault(u => u.AxisIndex == axisNum).AxisRatio; + position = prfpos / AxisRatio; return position; } @@ -478,7 +480,8 @@ { throw new Exception("杞�" + axisNum + "鑾峰彇鐩爣浣嶇疆寮傚父锛岄敊璇爜锛�" + ret); } - position = pPos / IConfig.AxisVelocityRatio; + var AxisRatio = IConfig.AxisSettings.FirstOrDefault(u => u.AxisIndex == axisNum) == null ? 1 : IConfig.AxisSettings.FirstOrDefault(u => u.AxisIndex == axisNum).AxisRatio; + position = pPos / AxisRatio; return position; } } @@ -487,7 +490,7 @@ /// 鑾峰彇瑙勫垝閫熷害 /// </summary> /// <param name="axisNum">Axis number</param> - /// <returns></returns> + /// <returns>閫熷害鑴夊啿</returns> public double GetPrfVelocity(int axisNum) { double prfVel = 0; @@ -497,7 +500,6 @@ { throw new Exception("杞�" + axisNum + "鑾峰彇瑙勫垝閫熷害寮傚父锛岄敊璇爜锛�" + ret); } - prfVel = prfVel / IConfig.AxisVelocityRatio; return prfVel; } @@ -505,7 +507,7 @@ /// 鑾峰彇褰撳墠閫熷害 /// </summary> /// <param name="axisNum">Axis number</param> - /// <returns></returns> + /// <returns>閫熷害鑴夊啿</returns> public double GetVelocity(int axisNum) { double vel = 0; @@ -514,7 +516,6 @@ { throw new Exception("杞�" + axisNum + "鑾峰彇褰撳墠閫熷害寮傚父锛岄敊璇爜锛�" + ret); } - vel = vel / IConfig.AxisVelocityRatio; return vel; } @@ -599,11 +600,12 @@ int currentPosition = (int)GetPosition(optionPara.AxisIndex); int dPosition = optionPara.Destination + currentPosition; int timeout = optionPara.MovingTimeout; + var AxisRatio = IConfig.AxisSettings.FirstOrDefault(u => u.AxisIndex == optionPara.AxisIndex) == null ? 1 : IConfig.AxisSettings.FirstOrDefault(u => u.AxisIndex == optionPara.AxisIndex).AxisRatio; while (CurrentState == DeviceState.DSOpen) { //璁剧疆 杩愬姩鍙傛暟 isSuccessSetAxisParam = SetAxisParam(optionPara); - ret = GTSCardAPI.GT_SetPrfPos((short)IConfig.CardNum, (short)optionPara.AxisIndex, (int)(dPosition * IConfig.AxisVelocityRatio));// 璁剧疆瑙勫垝浣嶇疆 + ret = GTSCardAPI.GT_SetPrfPos((short)IConfig.CardNum, (short)optionPara.AxisIndex, (int)(dPosition * AxisRatio));// 璁剧疆瑙勫垝浣嶇疆 ret = GTSCardAPI.GT_Update((short)IConfig.CardNum, 1 << (optionPara.AxisIndex - 1));//鏇存柊杩愬姩 if (ret != (short)GTSRetCode.GRCRunOK) @@ -674,11 +676,12 @@ short ret = 0; bool isSuccessSetAxisParam = false; int timeout = optionPara.MovingTimeout; - while (CurrentState == DeviceState.DSOpen&&!_isPause) + var AxisRatio = IConfig.AxisSettings.FirstOrDefault(u => u.AxisIndex == optionPara.AxisIndex) == null ? 1 : IConfig.AxisSettings.FirstOrDefault(u => u.AxisIndex == optionPara.AxisIndex).AxisRatio; + while (CurrentState == DeviceState.DSOpen && !_isPause) { //璁剧疆 杩愬姩鍙傛暟 isSuccessSetAxisParam = SetAxisParam(optionPara); - ret = GTSCardAPI.GT_SetPrfPos((short)IConfig.CardNum, (short)optionPara.AxisIndex, (int)(optionPara.Destination * IConfig.AxisVelocityRatio));// 璁剧疆瑙勫垝浣嶇疆 + ret = GTSCardAPI.GT_SetPrfPos((short)IConfig.CardNum, (short)optionPara.AxisIndex, (int)(optionPara.Destination * AxisRatio));// 璁剧疆瑙勫垝浣嶇疆 ret = GTSCardAPI.GT_Update((short)IConfig.CardNum, 1 << (optionPara.AxisIndex - 1));//鏇存柊杩愬姩 if (ret != (short)GTSRetCode.GRCRunOK) -- Gitblit v1.8.0