def bag_cap( self, request ): # request.data => String array # sample args: ['rosbag', 'record', '/tf', '/rfid/ears_reader_arr', '-o', 'data/data'] if (request.data == [] or request.data[0] == 'kill'): if self.bag_pid == None: rospy.logout( 'orient_node: No open bag to kill.' ) else: rospy.logout( 'orient_node: Killing open bag.' ) self.bag_pid.kill() self.bag_pid = None return int( True ) s = reduce( lambda x,y: x+' '+y, request.data ) rospy.logout( 'orient_node: Calling CmdProcess with args: %s' % s ) self.bag_pid = CmdProcess( request.data ) self.bag_pid.run() return int( True )