示例#1
0
        public void ValidateRobotTrajectory(RobotDescartesTrajectory robotTrajectory)
        {
            var robotValidationResult = new RobotValidationResult();

            robotValidationResult.RobotId = robotTrajectory.RobotId;

            var trajectoryPoints = robotTrajectory.Trajectory;

            bool result = true;

            foreach (var trajectoryPoint in trajectoryPoints)
            {
                result = trajectoryPoint.X <= DescartesRobotFactory.Dimensions.Width && trajectoryPoint.Y <= DescartesRobotFactory.Dimensions.Height;

                if (!result)
                {
                    robotValidationResult.ValidationMessage = "Trajectory coordinare are out of bounds";
                    break;
                }
            }

            robotValidationResult.ValidationResult = result;

            OperationContext operationContext = OperationContext.Current;
            IRobotTrajectoryValidationServiceCallback callback = operationContext.GetCallbackChannel <IRobotTrajectoryValidationServiceCallback>();

            callback.RobotTrajectoryValidated(robotValidationResult);
        }
        private void TrajectoryValidatedCallback(RobotValidationResult robotValidationResult)
        {
            OnTrajectoryValidated(new TrajectoryValidatedEventArguments(robotValidationResult.RobotId, robotValidationResult.ValidationResult, robotValidationResult.ValidationMessage));

            if (robotValidationResult.ValidationResult)
            {
                SetupTrajectory();
            }
        }
 public void RobotTrajectoryValidated(RobotValidationResult robotValidation)
 {
     callback(robotValidation);
 }