public void Move(float x, float y, float z, float i, float j, float k, float r)
        {
            switch (_state)
            {
            case MachineState.G0_RapidMove:
            case MachineState.G1_LinearMove:
                LinearMove(x, y, z);
                break;

            case MachineState.G2_ArcMove:
                ArcMove2(x, y, z, i, j, k, r, true);
                break;

            case MachineState.G3_ArcMoveCCW:
                ArcMove2(x, y, z, i, j, k, r, false);
                break;

            case MachineState.G92_SetPosition:
                _device.SetPosition(x, y, z);
                break;

            case MachineState.D92_Calibration:
                _device.Calibrate(x, y, z);
                break;

            default:
                //Logger.Error("Axis coords received, but machine is not in the right state");
                break;
            }
        }