public void Dispose()
 {
     if (VREPWrapper.simxPauseCommunication(clientID, 0) != 0)
     {
         throw new VREPException(simx_error.remote_error_flag, "Restarting communication failed");
     }
     // Console.WriteLine("--- Set Block closed ------");
 }
 public VREPSetBlock(int cID)
 {
     // Console.WriteLine("--- Opening Set Block -----");
     clientID = cID;
     if (VREPWrapper.simxPauseCommunication(cID, 1) != 0)
     {
         throw new VREPException(simx_error.remote_error_flag, "Pausing communication failed");
     }
 }
        public static simx_error SetJointPositionControl(int clientID, int jointID, bool onOff)
        {
            if (positionControlEnabled == onOff)
            {
                return(simx_error.noerror);
            }
            var code = new List <simx_error>
            {
                VREPWrapper.simxSetObjectIntParameter(clientID, jointID, 2001, (onOff) ? 1 : 0, simx_opmode.oneshot_wait),
                VREPWrapper.simxSetObjectFloatParameter(clientID, jointID, 2002, P, simx_opmode.oneshot),
                VREPWrapper.simxSetObjectFloatParameter(clientID, jointID, 2003, I, simx_opmode.oneshot),
                VREPWrapper.simxSetObjectFloatParameter(clientID, jointID, 2004, D, simx_opmode.oneshot)
            };

            foreach (var c in code.Where(p => p > simx_error.noerror).Select((p, i) => new { Code = p, Index = i }))
            {
                Console.WriteLine("Errors: {0}: {1} -> {2}", jointID, c.Index, c.Code);
            }

            positionControlEnabled = onOff;

            return(code.Max());
        }
 public static void EndSetBlock(int clientID)
 {
     VREPWrapper.simxPauseCommunication(clientID, 0);
 }