Пример #1
0
 public GCodeCreatorTests()
 {
     GcodeCreator = new RepetierGCodeCreator();
 }
Пример #2
0
        static void Main(string[] args)
        {
            var con          = new SerialRepetierCommunicator(new SerialPortSerialConnection());
            var gcodeCreator = new RepetierGCodeCreator();
            var controller   = new GcodeArmController(con, gcodeCreator);

            controller.ConnectToArm("COM25");

            var manipulator = new ArmManipulator(controller, new ConsoleArmPresenter(), new HillClimbingInverseKinematicsCalculator(), new DobotDhKinematicChain());

            //manipulator.HomeArm();

            while (true)
            {
                var key       = Console.ReadKey(true);
                var precisely = key.Modifiers == ConsoleModifiers.Shift;
                switch (key.Key)
                {
                case ConsoleKey.LeftArrow:
                    manipulator.DecrementX(precisely);
                    break;

                case ConsoleKey.RightArrow:
                    manipulator.IncrementX(precisely);
                    break;

                case ConsoleKey.UpArrow:
                    manipulator.IncrementY(precisely);
                    break;

                case ConsoleKey.DownArrow:
                    manipulator.DecrementY(precisely);
                    break;

                case ConsoleKey.Backspace:
                    manipulator.DeleteLastStep();
                    break;

                case ConsoleKey.Delete:
                    manipulator.ClearRecording();
                    break;
                }

                switch (key.KeyChar.ToString().ToLower())
                {
                case "-":
                    manipulator.DecrementZ(precisely);
                    break;

                case "+":
                    manipulator.IncrementZ(precisely);
                    break;

                case "h":
                    manipulator.HomeArm();
                    break;

                case "s":
                    manipulator.IncrementServoPosition(0, precisely);
                    break;

                case "w":
                    manipulator.DecrementServoPosition(0, precisely);
                    break;

                case "a":
                    manipulator.IncrementServoPosition(1, precisely);
                    break;

                case "d":
                    manipulator.DecrementServoPosition(1, precisely);
                    break;

                case " ":
                    manipulator.RecordStep();
                    break;

                case "p":
                    manipulator.PlayBackSteps();
                    break;

                case "o":
                    manipulator.AddDwellStep();
                    break;

                case "g":
                    Console.Write("Play back specific step in recording: ");
                    var step = Console.ReadLine();
                    int stepIndex;
                    var enteredNumber = int.TryParse(step, out stepIndex);
                    if (enteredNumber)
                    {
                        manipulator.PlayBackStep(stepIndex);
                    }
                    break;

                case "c":
                    Console.Write("Enter coordinates: ");
                    var newPos = Console.ReadLine();
                    if (newPos == "")
                    {
                        break;
                    }
                    var coords = newPos.Split(',');
                    manipulator.SetPosition(GetDoubleFromString(coords[0]), GetDoubleFromString(coords[1]), GetDoubleFromString(coords[2]));
                    break;
                }
            }
        }