From f83caa46dbaa42467fa92a050f9d1fa268833b2d Mon Sep 17 00:00:00 2001 From: wells.liu <wells.liu@broconcentric.com> Date: 星期一, 29 六月 2020 19:22:41 +0800 Subject: [PATCH] 点位到点位运动 修改 --- src/Bro.Device.GTSCard/GTSCardDriver.cs | 86 +++++++++++++++++++++++++------------------ 1 files changed, 50 insertions(+), 36 deletions(-) diff --git a/src/Bro.Device.GTSCard/GTSCardDriver.cs b/src/Bro.Device.GTSCard/GTSCardDriver.cs index c055b66..d4eea2e 100644 --- a/src/Bro.Device.GTSCard/GTSCardDriver.cs +++ b/src/Bro.Device.GTSCard/GTSCardDriver.cs @@ -104,10 +104,21 @@ { 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) { - resultOK = SingleAxisMoving(movingOp); + //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; } @@ -141,51 +152,54 @@ /// 鍗曚釜杞� 鐐逛綅鍒扮偣浣嶈繍鍔� /// </summary> /// <param name="optionPara">杩愬姩鍙傛暟瀵硅薄</param> - public bool SingleAxisMoving(MovingOption optionPara) + public async Task<bool> SingleAxisMoving(MovingOption optionPara) { - bool isSuccessAndStop = false; - if (IConfig.AxisSettings.FirstOrDefault(a => a.AxisIndex == optionPara.AxisIndex)?.IsAxisEnabled ?? false) + return await Task.Run(() => { - string _position = ""; - string motionType = optionPara.MoveMode == EnumHelper.MotorMoveMode.Normal ? (optionPara.IsAbsolute ? "Abs" : "Rel") : optionPara.MoveMode.ToString(); - - _position = $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")},{optionPara.AxisIndex},{motionType},{GetPosition(optionPara.AxisIndex).ToString()},{GetPrfPosition(optionPara.AxisIndex).ToString()},{optionPara.Destination},"; - - switch (optionPara.MoveMode) + bool isSuccessAndStop = false; + if (IConfig.AxisSettings.FirstOrDefault(a => a.AxisIndex == optionPara.AxisIndex)?.IsAxisEnabled ?? false) { - case MotorMoveMode.Normal: - { - if (_isResetting) + string _position = ""; + string motionType = optionPara.MoveMode == EnumHelper.MotorMoveMode.Normal ? (optionPara.IsAbsolute ? "Abs" : "Rel") : optionPara.MoveMode.ToString(); + + _position = $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")},{optionPara.AxisIndex},{motionType},{GetPosition(optionPara.AxisIndex).ToString()},{GetPrfPosition(optionPara.AxisIndex).ToString()},{optionPara.Destination},"; + + switch (optionPara.MoveMode) + { + case MotorMoveMode.Normal: { - LogAsync(DateTime.Now, "澶嶄綅涓惎鍔ㄨ繍鍔ㄥ紓甯�", optionPara.AxisIndex + "鍚姩杩愬姩寮傚父"); - return false; - } - //璁剧疆 杩愬姩鍙傛暟 - var isSuccess = SetAxisParam(optionPara); - if (isSuccess) - { - if (optionPara.IsAbsolute) + if (_isResetting) { - isSuccessAndStop = MoveAbs(optionPara); + LogAsync(DateTime.Now, "澶嶄綅涓惎鍔ㄨ繍鍔ㄥ紓甯�", optionPara.AxisIndex + "鍚姩杩愬姩寮傚父"); + return false; } - else + //璁剧疆 杩愬姩鍙傛暟 + var isSuccess = SetAxisParam(optionPara); + if (isSuccess) { - isSuccessAndStop = MoveRel(optionPara); + if (optionPara.IsAbsolute) + { + isSuccessAndStop = MoveAbs(optionPara); + } + else + { + isSuccessAndStop = MoveRel(optionPara); + } } } - } - break; - case MotorMoveMode.FindOri: - { - isSuccessAndStop = GoHome(optionPara); - } - break; + break; + case MotorMoveMode.FindOri: + { + isSuccessAndStop = GoHome(optionPara); + } + break; + } + _position += $"{GetPosition(optionPara.AxisIndex)},"; + _position += $"{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff}"; + LogAsync(DateTime.Now, "", _position); } - _position += $"{GetPosition(optionPara.AxisIndex)},"; - _position += $"{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff}"; - LogAsync(DateTime.Now, "", _position); - } - return isSuccessAndStop; + return isSuccessAndStop; + }); } /// <summary> -- Gitblit v1.8.0