From 8dd7b24e5649edf6f73e1146c4db576f7eb3dcdb Mon Sep 17 00:00:00 2001 From: wells <123> Date: 星期六, 11 七月 2020 14:16:54 +0800 Subject: [PATCH] 7.11 --- src/Bro.Device.GTSCard/GTSCardDriver.cs | 127 +++++++++++++++++++++--------------------- src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.cs | 10 --- src/Bro.UI.Device.Winform/MotionCard/FrmMotionCardOperationBase.cs | 3 src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.Designer.cs | 2 src/Bro.Common.Model/Model/MotionCardRelated.cs | 2 5 files changed, 67 insertions(+), 77 deletions(-) diff --git a/src/Bro.Common.Model/Model/MotionCardRelated.cs b/src/Bro.Common.Model/Model/MotionCardRelated.cs index 7010262..671c68e 100644 --- a/src/Bro.Common.Model/Model/MotionCardRelated.cs +++ b/src/Bro.Common.Model/Model/MotionCardRelated.cs @@ -249,7 +249,7 @@ [DisplayName("杩愬姩杞寸储寮�")] [Description("AxisIndex锛氳繍鍔ㄨ酱绱㈠紩")] [TypeConverter(typeof(AxisIndexConvert))] - public string AxisIndexStr { get; set; } = "0"; + public string AxisIndexStr { get; set; } = "1"; [Browsable(false)] [JsonIgnore] diff --git a/src/Bro.Device.GTSCard/GTSCardDriver.cs b/src/Bro.Device.GTSCard/GTSCardDriver.cs index a25b5bf..cd6746f 100644 --- a/src/Bro.Device.GTSCard/GTSCardDriver.cs +++ b/src/Bro.Device.GTSCard/GTSCardDriver.cs @@ -343,8 +343,8 @@ { var task = SingleAxisMoving(movingOp); taskList.Add(task); + task.Start(); } - Task.WaitAll(taskList.ToArray()); responseMessage.Result = taskList.All(u => u.GetAwaiter().GetResult()); if (!responseMessage.Result) @@ -382,69 +382,70 @@ return resultOK; } + TaskFactory taskFactory = new TaskFactory(TaskCreationOptions.LongRunning, TaskContinuationOptions.LongRunning); /// <summary> /// 鍗曚釜杞� 杩愬姩(鐐瑰埌鐐� jog 鍥為浂...锛� /// </summary> /// <param name="optionPara">杩愬姩鍙傛暟瀵硅薄</param> - public override async Task<bool> SingleAxisMoving(MovingOption optionPara) + public override Task<bool> SingleAxisMoving(MovingOption optionPara) { - return await Task.Run(() => - { - axisImmediatePauseHandleDict[optionPara.AxisIndex].WaitOne(); - bool isSuccessAndStop = false; - try - { - if (IConfig.AxisSettings.FirstOrDefault(a => a.AxisIndex == optionPara.AxisIndex)?.IsAxisEnabled ?? false) - { - string _position = ""; - string motionType = optionPara.MoveMode == EnumHelper.MotionMode.Normal ? (optionPara.IsAbsolute ? "Abs" : "Rel") : optionPara.MoveMode.ToString(); + return new Task<bool>(() => + { + axisImmediatePauseHandleDict[optionPara.AxisIndex].WaitOne(); + bool isSuccessAndStop = false; + try + { + if (IConfig.AxisSettings.FirstOrDefault(a => a.AxisIndex == optionPara.AxisIndex)?.IsAxisEnabled ?? false) + { + string _position = ""; + string motionType = optionPara.MoveMode == EnumHelper.MotionMode.Normal ? (optionPara.IsAbsolute ? "Abs" : "Rel") : optionPara.MoveMode.ToString(); - _position = $"{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff},{optionPara.AxisIndex},{motionType},{GetPosition(optionPara.AxisIndex)},{GetPrfPosition(optionPara.AxisIndex)},{optionPara.Destination},"; + _position = $"{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff},{optionPara.AxisIndex},{motionType},{GetPosition(optionPara.AxisIndex)},{GetPrfPosition(optionPara.AxisIndex)},{optionPara.Destination},"; - switch (optionPara.MoveMode) - { - case MotionMode.Normal: - { - if (_isResetting) - { - LogAsync(DateTime.Now, "澶嶄綅涓惎鍔ㄨ繍鍔ㄥ紓甯�", optionPara.AxisIndex + "鍚姩杩愬姩寮傚父"); - return false; - } + switch (optionPara.MoveMode) + { + case MotionMode.Normal: + { + if (_isResetting) + { + LogAsync(DateTime.Now, "澶嶄綅涓惎鍔ㄨ繍鍔ㄥ紓甯�", optionPara.AxisIndex + "鍚姩杩愬姩寮傚父"); + return false; + } - if (optionPara.IsAbsolute) - { - isSuccessAndStop = P2PMoveAbs(optionPara); - } - else - { - isSuccessAndStop = P2PMoveRel(optionPara); - } + if (optionPara.IsAbsolute) + { + isSuccessAndStop = P2PMoveAbs(optionPara); + } + else + { + isSuccessAndStop = P2PMoveRel(optionPara); + } - } - break; - case MotionMode.FindOri: - { - isSuccessAndStop = GoHome(optionPara); - } - break; - case MotionMode.Jog: - { - isSuccessAndStop = JogMove(optionPara); - } - break; - } - _position += $"{GetPosition(optionPara.AxisIndex)},"; - _position += $"{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff}"; - LogAsync(DateTime.Now, "", _position); - } - } - catch (Exception ex) - { - isSuccessAndStop = false; - LogAsync(DateTime.Now, $"杞磠optionPara.AxisIndex}杩愬姩寮傚父", ex.GetExceptionMessage()); - } - return isSuccessAndStop; - }); + } + break; + case MotionMode.FindOri: + { + isSuccessAndStop = GoHome(optionPara); + } + break; + case MotionMode.Jog: + { + isSuccessAndStop = JogMove(optionPara); + } + break; + } + _position += $"{GetPosition(optionPara.AxisIndex)},"; + _position += $"{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff}"; + LogAsync(DateTime.Now, "", _position); + } + } + catch (Exception ex) + { + isSuccessAndStop = false; + LogAsync(DateTime.Now, $"杞磠optionPara.AxisIndex}杩愬姩寮傚父", ex.GetExceptionMessage()); + } + return isSuccessAndStop; + }); } /// <summary> @@ -461,8 +462,8 @@ { throw new Exception("杞�" + axisNum + "鑾峰彇瑙勫垝浣嶇疆寮傚父锛岄敊璇爜锛�" + ret); } - var AxisRatio = IConfig.AxisSettings.FirstOrDefault(u => u.AxisIndex == axisNum) == null ? 1 : IConfig.AxisSettings.FirstOrDefault(u => u.AxisIndex == axisNum).AxisRatio; - position = prfpos / AxisRatio; + //var AxisRatio = IConfig.AxisSettings.FirstOrDefault(u => u.AxisIndex == axisNum) == null ? 1 : IConfig.AxisSettings.FirstOrDefault(u => u.AxisIndex == axisNum).AxisRatio; + position = prfpos ; return position; } @@ -476,14 +477,14 @@ lock (moveLock) { double position = 0; - int pPos = 0; - var ret = GTSCardAPI.GT_GetPos((short)IConfig.CardNum, (short)axisNum, out pPos); + double pPos = 0; + var ret = GTSCardAPI.GT_GetPrfPos((short)IConfig.CardNum, (short)axisNum, out pPos, 1, out uint pclock); if (ret != (short)GTSRetCode.GRCRunOK) { throw new Exception("杞�" + axisNum + "鑾峰彇鐩爣浣嶇疆寮傚父锛岄敊璇爜锛�" + ret); } - var AxisRatio = IConfig.AxisSettings.FirstOrDefault(u => u.AxisIndex == axisNum) == null ? 1 : IConfig.AxisSettings.FirstOrDefault(u => u.AxisIndex == axisNum).AxisRatio; - position = pPos / AxisRatio; + //var AxisRatio = IConfig.AxisSettings.FirstOrDefault(u => u.AxisIndex == axisNum) == null ? 1 : IConfig.AxisSettings.FirstOrDefault(u => u.AxisIndex == axisNum).AxisRatio; + position = pPos; return position; } } @@ -607,7 +608,7 @@ { //璁剧疆 杩愬姩鍙傛暟 isSuccessSetAxisParam = SetAxisParam(optionPara); - ret = GTSCardAPI.GT_SetPrfPos((short)IConfig.CardNum, (short)optionPara.AxisIndex, (int)(dPosition * AxisRatio));// 璁剧疆瑙勫垝浣嶇疆 + ret = GTSCardAPI.GT_SetPos((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) @@ -683,7 +684,7 @@ { //璁剧疆 杩愬姩鍙傛暟 isSuccessSetAxisParam = SetAxisParam(optionPara); - ret = GTSCardAPI.GT_SetPrfPos((short)IConfig.CardNum, (short)optionPara.AxisIndex, (int)(optionPara.Destination * AxisRatio));// 璁剧疆瑙勫垝浣嶇疆 + ret = GTSCardAPI.GT_SetPos((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) diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.Designer.cs b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.Designer.cs index ed30305..6bc91d2 100644 --- a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.Designer.cs +++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.Designer.cs @@ -231,7 +231,6 @@ this.buttonNegative.TabIndex = 6; this.buttonNegative.Text = "璐熷悜"; this.buttonNegative.UseVisualStyleBackColor = true; - this.buttonNegative.Click += new System.EventHandler(this.buttonNegative_Click); this.buttonNegative.MouseDown += new System.Windows.Forms.MouseEventHandler(this.buttonNegative_MouseDown); this.buttonNegative.MouseUp += new System.Windows.Forms.MouseEventHandler(this.buttonNegative_MouseUp); // @@ -251,7 +250,6 @@ this.buttonPositive.TabIndex = 6; this.buttonPositive.Text = "姝e悜"; this.buttonPositive.UseVisualStyleBackColor = true; - this.buttonPositive.Click += new System.EventHandler(this.buttonPositive_Click); this.buttonPositive.MouseDown += new System.Windows.Forms.MouseEventHandler(this.buttonPositive_MouseDown); this.buttonPositive.MouseUp += new System.Windows.Forms.MouseEventHandler(this.buttonPositive_MouseUp); // diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.cs b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.cs index f6ab955..2613cbf 100644 --- a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.cs +++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.cs @@ -76,16 +76,6 @@ MotionCard.MoveToPoint(opConfig); } - private void buttonPositive_Click(object sender, EventArgs e) - { - - } - - private void buttonNegative_Click(object sender, EventArgs e) - { - - } - private void buttonStart_Click(object sender, EventArgs e) { var opConfig = new MotionOperationCollection(); diff --git a/src/Bro.UI.Device.Winform/MotionCard/FrmMotionCardOperationBase.cs b/src/Bro.UI.Device.Winform/MotionCard/FrmMotionCardOperationBase.cs index 7aa4294..4ca0748 100644 --- a/src/Bro.UI.Device.Winform/MotionCard/FrmMotionCardOperationBase.cs +++ b/src/Bro.UI.Device.Winform/MotionCard/FrmMotionCardOperationBase.cs @@ -45,6 +45,7 @@ } + MotionCardMovingOption.SetAxisSetting(MotionCard.IConfig.AxisSettings); propGrid.SelectedObject = MotionCardMovingOption; } @@ -75,7 +76,7 @@ private void btnStart_Click(object sender, EventArgs e) { - MotionCard.SingleAxisMoving(MotionCardMovingOption).GetAwaiter().GetResult(); + MotionCard.SingleAxisMoving(MotionCardMovingOption).Start(); } private void buttonSmoothStop_Click(object sender, EventArgs e) -- Gitblit v1.8.0