领胜LDS 键盘AOI检测项目
wells.liu
2020-06-29 f83caa46dbaa42467fa92a050f9d1fa268833b2d
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>