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