Beispiel #1
0
    def stop_simulation(self):
        if not self.sim_running:
            raise RuntimeError('Simulation is not running.')

        self.RAPI_rc(vrep.simxStopSimulation(self.cID, vrep.simx_opmode_blocking))

        # Checking if the server really stopped
        try:
            while True:
                self.RAPI_rc(vrep.simxGetIntegerSignal(self.cID, 'sig_debug', vrep.simx_opmode_blocking))
                e = vrep.simxGetInMessageInfo(self.cID, vrep.simx_headeroffset_server_state)
                still_running = e[1] & 1
                if not still_running:
                    break
        except Exception as e:
            print("BROKE OUT OF STOP SIM LOOP DUE TO ERROR\n{}\nLet's try one more time!".format(e))
            for i in range(6):
                time.sleep(10)
                try:
                    while True:
                        self.RAPI_rc(vrep.simxGetIntegerSignal(self.cID, 'sig_debug', vrep.simx_opmode_blocking))
                        e = vrep.simxGetInMessageInfo(self.cID, vrep.simx_headeroffset_server_state)
                        still_running = e[1] & 1
                        if not still_running:
                            break
                except Exception as e:
                    print("BROKE OUT OF STOP SIM LOOP DUE TO ERROR the {}th time\n{}\n".format(i, e))
                else:
                    print("We're on it again!")

        self.sim_running = False
Beispiel #2
0
    def stop_simulation(self):
        if not self.sim_running:
            raise RuntimeError('Simulation is not running.')
        self.RAPI_rc(
            vrep.simxStopSimulation(self.cID, vrep.simx_opmode_blocking))

        # Checking if the server really stopped
        while True:
            self.RAPI_rc(
                vrep.simxGetIntegerSignal(self.cID, 'sig_debug',
                                          vrep.simx_opmode_blocking))
            e = vrep.simxGetInMessageInfo(self.cID,
                                          vrep.simx_headeroffset_server_state)
            still_running = e[1] & 1
            if not still_running:
                break

        self.sim_running = False
Beispiel #3
0
 def get_integer_signal(self, sig_name):
     return self.RAPI_rc(
         vrep.simxGetIntegerSignal(self.cID, sig_name, self.opM_get))
Beispiel #4
0
 def get_integer_signal(self, sig_name):
     return self.RAPI_rc(
         vrep.simxGetIntegerSignal(self.cID, sig_name,
                                   vrep.simx_opmode_blocking))