コード例 #1
0
ファイル: Module.py プロジェクト: morvan68/tbscript-plugin
 def __init__(self, type, value=None, description="", options=[]):
     self.type = type  #The GUI type of a setting
     self.value = value  #The value of a setting
     self.description = description  # The setting of a setting
     self.options = options  #The options that may be in a setting
     if type == "mailfolder":
         self.options = []
         self.value = ScriptUtils.getMessageFileList()[0][0]
         for item in ScriptUtils.getMessageFileList():
             self.options.append(item[0])
     elif type == "account":
         self.options = ScriptUtils.getAccountList()
         self.value = self.options[0]
     elif type == "extension":
         self.options = [
             "any", ".pdf", ".gif", ".jpg", ".jpeg", ".doc", ".docx",
             ".zip", ".rar"
         ]
     elif type == "option":
         self.value = self.options[0]
     elif type == "datetime":
         self.value = "unspecified"
     elif type == "text":
         self.value = ""
     elif type == "textoptions":
         self.value = ""
     elif type == "boolean":
         if self.value is None:
             self.value = "true"  # default to true
     """
コード例 #2
0
ファイル: Module.py プロジェクト: pudwerkin/tbscript-plugin
 def __init__ (self, type, value=None, description="", options=[]):
     self.type = type #The GUI type of a setting
     self.value = value #The value of a setting
     self.description = description # The setting of a setting
     self.options = options #The options that may be in a setting
     if type == "mailfolder":
         self.options = []
         self.value = ScriptUtils.getMessageFileList()[0][0]
         for item in ScriptUtils.getMessageFileList():
             self.options.append(item[0])
     elif type == "account":
         self.options = ScriptUtils.getAccountList()
         self.value = self.options[0]
     elif type == "extension":
         self.options = ["any", ".pdf", ".gif", ".jpg", ".jpeg", ".doc", ".docx", ".zip", ".rar"]
     elif type == "option":
         self.value = self.options[0]
     elif type == "datetime":
         self.value = "unspecified"
     elif type == "text":
         self.value = ""
     elif type == "textoptions":
         self.value = ""
     elif type == "boolean":
         if self.value is None:
             self.value = "true" # default to true
     
     """
コード例 #3
0
 def __init__(self):
     self.folders = {}
     for account in self.settings["Account"].options:
         self.folders[account] = []
     folders = ScriptUtils.getMessageFileList()
     for folder in ScriptUtils.getMessageFileList():
         for account in self.settings["Account"].options:
             if folder[0].find(account) == 0:
                 self.folders[account].append(folder[1])
コード例 #4
0
 def __init__(self):
     self.folders = {}
     for account in self.settings["Account"].options:
         self.folders[account] = []
     folders = ScriptUtils.getMessageFileList()
     for folder in ScriptUtils.getMessageFileList():
         for account in self.settings["Account"].options:
             if folder[0].find(account) == 0:
                 self.folders[account].append(folder[1])
コード例 #5
0
 def Initialize(self, servers):
     self.su = script_utils.script_utils()
     self.util = ScriptUtils(servers)
     self.sss.Init("tray")
     self.sss.Init("torso")
     self.sss.Init("arm")
     self.sss.Init("sdh")
     # Move all components to starting positions
     self.sss.Move("tray", "down", False)
     self.sss.Move("sdh", "home", False)
     self.sss.Move("torso", "back", False)
     self.su.MoveLED("arm", "folded")
     self.sss.SetLight("green")
コード例 #6
0
 def run(self):
     files = ScriptUtils.getMessageFileList()
     messages = []
     for file in files:
         for message in mailbox.mbox(file[1]):
             messages.append(message)
     return messages
コード例 #7
0
 def run(self):
     files = ScriptUtils.getMessageFileList()
     messages = []
     for file in files:
         for message in mailbox.mbox(file[1]):
             messages.append(message)
     return messages
コード例 #8
0
 def __init__ (self):
     '''TODO: check module type...'''
     self.modulePath = ScriptUtils.getExtensionPath() + os.sep + "modules"
     for moduleFile in os.listdir(self.modulePath):
         if moduleFile[-3:] == ".py": # if it's a python file, import it
             # load python file for module, load class from file
             try:
                 module = getattr(imp.load_source(moduleFile[:-3], self.modulePath + os.sep + moduleFile), moduleFile[:-3])
             except:
                 continue
             if not ScriptUtils.verifyModule(module):
                 print moduleFile, "not a module"
                 continue
             if module.isRoot():
                 self.rootModules.append(module)
             else:
                 self.nodeModules.append(module)      
コード例 #9
0
ファイル: Workflow.py プロジェクト: pudwerkin/tbscript-plugin
	def appendModule (self, moduleName):
		# load module
		print "loading", moduleName
		module = getattr(imp.load_source(moduleName[:-3], self.modulePath + os.sep + moduleName), moduleName[:-3])
		if not ScriptUtils.verifyModule(module):
			raise Exception
		self.modules.append(module())
		return len(self.modules) - 1
コード例 #10
0
	def __init__(self,servers):
		rospy.init_node('grasp_deliver')
		self.sss = simple_script_server.simple_script_server()
		self.su = script_utils.script_utils()
		self.util = ScriptUtils(servers)
		self.sss.Init("tray")
		self.sss.Init("torso")
		self.sss.Init("arm")
		self.sss.Init("sdh")
コード例 #11
0
 def __init__(self):
     """TODO: check module type..."""
     self.modulePath = ScriptUtils.getExtensionPath() + os.sep + "modules"
     for moduleFile in os.listdir(self.modulePath):
         if moduleFile[-3:] == ".py":  # if it's a python file, import it
             # load python file for module, load class from file
             try:
                 module = getattr(
                     imp.load_source(moduleFile[:-3], self.modulePath + os.sep + moduleFile), moduleFile[:-3]
                 )
             except:
                 continue
             if not ScriptUtils.verifyModule(module):
                 print moduleFile, "not a module"
                 continue
             if module.isRoot():
                 self.rootModules.append(module)
             else:
                 self.nodeModules.append(module)
コード例 #12
0
 def appendModule(self, moduleName):
     # load module
     print "loading", moduleName
     module = getattr(
         imp.load_source(moduleName[:-3],
                         self.modulePath + os.sep + moduleName),
         moduleName[:-3])
     if not ScriptUtils.verifyModule(module):
         raise Exception
     self.modules.append(module())
     return len(self.modules) - 1
コード例 #13
0
class ZipFile(Module):
    name = "Output to Zip"
    description = "Outputs files to a zip file"
    input = "files"
    root = False
    settings = {
        "Output File": Setting("file", ScriptUtils.getHomePath() + os.sep + "tbscriptoutput.zip", "Zip file to put contents into. *Overwrites if exists", ["*.zip"])
    }
    
    def run(self, input):
        print "Outputting", len(input), "items"
        output = zipfile.ZipFile (self.settings["Output File"].value, "w")
        for file in input: # assume input is set of something...
            print file.filename
            output.writestr(file.filename, file.data)
        output.close()
            
        
コード例 #14
0
ファイル: Log.py プロジェクト: morvan68/tbscript-plugin
class Log(Module):
    name = "Log"
    description = "Logs a string representation of the given input to a file"
    input = "any"
    root = False
    settings = {
        "Log Directory":
        Setting("directory", ScriptUtils.getHomePath(),
                "Directory to output log file(s) to")
    }

    def run(self, input):
        print "logging", len(input), "items"
        logfile = open(
            self.settings["Log Directory"].value + os.sep + "tbscript-" +
            str(datetime.now()) + ".log", "w")
        for item in input:  # assume input is set of something...
            logfile.write(str(item))
        logfile.close()
コード例 #15
0
class GraspFromCoolerAndDeliver:
	def __init__(self,servers):
		rospy.init_node('grasp_deliver')
		self.sss = simple_script_server.simple_script_server()
		self.su = script_utils.script_utils()
		self.util = ScriptUtils(servers)
		self.sss.Init("tray")
		self.sss.Init("torso")
		self.sss.Init("arm")
		self.sss.Init("sdh")

	def Initialize(self):
		# Move all components to starting positions
		self.sss.Move("tray","down",False)
		self.sss.Move("sdh","home",False)
		self.sss.Move("torso","back",False)
		self.su.MoveLED("arm","folded")
		self.sss.SetLight("green")
		
		
	def GraspFromCooler(self): 
		rospy.loginfo("Grasping water from cooler...")

		# start grasping, assuming that Care-O-bot stands right in front of the water cooler
		handle01 = self.sss.Move("arm","pregrasp",False)
		self.su.MoveLED("sdh","coolerbuttonup")
		handle01.wait()

		# lay finger on cooler button and get water
		self.su.MoveLED("arm","coolerbutton")
		self.sss.Move("sdh","coolerbuttondown")
		self.sss.sleep(3)
		self.sss.Move("sdh","coolerbuttonup")
		
		# move hand to cup and grasp it
		handle01 = self.sss.Move("arm","coolerpregrasp",False)
		self.sss.sleep(0.5)
		self.sss.Move("sdh","cylclosed")
		handle01.wait()
		self.sss.Move("sdh","coolercupopen")
		self.su.MoveLED("arm","coolergrasp")
		self.sss.Move("sdh","coolercupclosed")

		# draw hand back and place cup on tablet
		self.su.MoveLED("arm","coolerpostgrasp")
		handle01 = self.sss.Move("arm","coolerpostgrasp-to-tablet",False)
		self.sss.sleep(2)
		self.sss.Move("torso","front",False)
		self.sss.Move("tray","up")
		handle01.wait()
		self.su.MoveLED("arm","tablet")
		self.sss.Move("sdh","cuprelease")

		# draw hand back and fold arm
		handle01 = self.sss.Move("arm","tablet-to-folded",False)
		self.sss.sleep(2)
		self.sss.Move("sdh","home")
		handle01.wait()
		return 0
	
	def DriveToCooler(self):
		rospy.loginfo("Driving to water cooler ...")

		# get watercooler position from parameters
		position_param = "script_server/base/watercooler_mm_deg"
		if not rospy.has_param(position_param):
			rospy.logerr("parameter %s does not exist on ROS Parameter Server, aborting...",position_param)
			return -2
		else:
			position = rospy.get_param(position_param)
			handle01 = self.sss.Move("torso","back",False)
			self.util.movePlatformWait(*position)
			handle01.wait()
		return 0

	def DeliverDrink(self):
		rospy.loginfo("Delivering drink ...")
		
		# drive to delivery position at the table
		position_param = "script_server/base/table_mm_deg"
		if not rospy.has_param(position_param):
			rospy.logerr("parameter %s does not exist on ROS Parameter Server, aborting...",position_param)
			return -2
		else:
			position = rospy.get_param(position_param)
			handle01 = self.sss.Move("torso","front",False)
			self.util.movePlatformWait(*position)
			handle01.wait()

		# offer drink
		handle01 = self.sss.Move("torso","left",False)
		self.su.SpeakRandom("offer")
		handle01.wait()
		self.sss.Move("torso","right")
		self.sss.Move("torso","front")
		
		# check if drink has been taken and thank user
		taken_param = self.sss.wait_for_input()
		if taken_param == "\n":
			handle01 = self.sss.Move("torso","bow",False)
			self.su.SpeakRandom("taken")
			handle01.wait()
			self.sss.sleep(0.5)
				
		# back away and fold tablet if possible
		position_param = "script_server/base/watercooler_mm_deg"
		if not rospy.has_param(position_param):
			rospy.logerr("parameter %s does not exist on ROS Parameter Server, aborting...",position_param)
			return -2
		else:
			position = rospy.get_param(position_param)
			self.util.movePlatformWait(*position)
		if taken_param == "\n":
			self.sss.Move("tray","down",False)
		return 0
		
	def Run(self):
		#self.Initialize()
		#self.DriveToCooler()
		#self.GraspFromCooler()
		#self.DeliverDrink()
		#self.sss.Move("sdh","coolercupopen")
		#self.su.MoveLED("arm","coolergrasp")
		#self.sss.wait_for_input()
		#self.sss.Move("sdh","coolercupclosed")
		#self.su.MoveLED("arm","grasp-to-tablet")
		self.su.MoveLED("arm","tablet-to-folded")
コード例 #16
0
ファイル: getFolder.py プロジェクト: morvan68/tbscript-plugin
 def __init__(self):
     self.folders = {}
     for item in ScriptUtils.getMessageFileList():
         self.folders[item[0]] = item[1]
コード例 #17
0
ファイル: Workflow.py プロジェクト: pudwerkin/tbscript-plugin
	def __init__ (self):
		self.modulePath = ScriptUtils.getExtensionPath() + os.sep + "modules"
		self.mf = components.classes["@tbscript.wm.edu/ModuleFactory;1"].\
			getService(components.interfaces.IModuleFactory)
コード例 #18
0
class GraspFromCoolerAndDeliver(ssscript):
    def Initialize(self, servers):
        self.su = script_utils.script_utils()
        self.util = ScriptUtils(servers)
        self.sss.Init("tray")
        self.sss.Init("torso")
        self.sss.Init("arm")
        self.sss.Init("sdh")
        # Move all components to starting positions
        self.sss.Move("tray", "down", False)
        self.sss.Move("sdh", "home", False)
        self.sss.Move("torso", "back", False)
        self.su.MoveLED("arm", "folded")
        self.sss.SetLight("green")

    def GraspFromCooler(self):
        rospy.loginfo("Grasping water from cooler...")

        # start grasping, assuming that Care-O-bot stands right in front of the water cooler
        handle01 = self.sss.Move("arm", "pregrasp", False)
        self.su.MoveLED("sdh", "coolerbuttonup")
        handle01.wait()

        # lay finger on cooler button and get water
        self.su.MoveLED("arm", "coolerbutton")
        self.sss.Move("sdh", "coolerbuttondown")
        self.sss.sleep(3)
        self.sss.Move("sdh", "coolerbuttonup")

        # move hand to cup and grasp it
        handle01 = self.sss.Move("arm", "coolerpregrasp", False)
        self.sss.sleep(0.5)
        self.sss.Move("sdh", "cylclosed")
        handle01.wait()
        self.sss.Move("sdh", "coolercupopen")
        self.su.MoveLED("arm", "coolergrasp")
        self.sss.Move("sdh", "coolercupclosed")

        # draw hand back and place cup on tablet
        self.su.MoveLED("arm", "coolerpostgrasp")
        handle01 = self.sss.Move("arm", "coolerpostgrasp-to-tablet", False)
        self.sss.sleep(2)
        self.sss.Move("torso", "front", False)
        self.sss.Move("tray", "up")
        handle01.wait()
        self.su.MoveLED("arm", "tablet")
        self.sss.Move("sdh", "cuprelease")

        # draw hand back and fold arm
        handle01 = self.sss.Move("arm", "tablet-to-folded", False)
        self.sss.sleep(2)
        self.sss.Move("sdh", "home")
        handle01.wait()
        return 0

    def DriveToCooler(self):
        rospy.loginfo("Driving to water cooler ...")

        # get watercooler position from parameters
        position_param = "script_server/base/watercooler_mm_deg"
        if not rospy.has_param(position_param):
            rospy.logerr(
                "parameter %s does not exist on ROS Parameter Server, aborting...",
                position_param)
            return -2
        else:
            position = rospy.get_param(position_param)
            handle01 = self.sss.Move("torso", "back", False)
            self.util.movePlatformWait(*position)
            handle01.wait()
        return 0

    def DeliverDrink(self):
        rospy.loginfo("Delivering drink ...")

        # drive to delivery position at the table
        position_param = "script_server/base/table_mm_deg"
        if not rospy.has_param(position_param):
            rospy.logerr(
                "parameter %s does not exist on ROS Parameter Server, aborting...",
                position_param)
            return -2
        else:
            position = rospy.get_param(position_param)
            handle01 = self.sss.Move("torso", "front", False)
            self.util.movePlatformWait(*position)
            handle01.wait()

        # offer drink
        handle01 = self.sss.Move("torso", "left", False)
        self.su.SpeakRandom("offer")
        handle01.wait()
        self.sss.Move("torso", "right")
        self.sss.Move("torso", "front")

        # check if drink has been taken and thank user
        taken_param = self.sss.wait_for_input()
        if taken_param == "\n":
            handle01 = self.sss.Move("torso", "bow", False)
            self.su.SpeakRandom("taken")
            handle01.wait()
            self.sss.sleep(0.5)

        # back away and fold tablet if possible
        position_param = "script_server/base/watercooler_mm_deg"
        if not rospy.has_param(position_param):
            rospy.logerr(
                "parameter %s does not exist on ROS Parameter Server, aborting...",
                position_param)
            return -2
        else:
            position = rospy.get_param(position_param)
            self.util.movePlatformWait(*position)
        if taken_param == "\n":
            self.sss.Move("tray", "down", False)
        return 0

    def run(self):
        self.Initialize()
        self.DriveToCooler()
        self.GraspFromCooler()
        self.DeliverDrink()
        self.sss.Move("sdh", "coolercupopen")
        self.su.MoveLED("arm", "coolergrasp")
        self.sss.wait_for_input()
        self.sss.Move("sdh", "coolercupclosed")
        self.su.MoveLED("arm", "grasp-to-tablet")
        self.su.MoveLED("arm", "tablet-to-folded")
コード例 #19
0
 def __init__(self):
     self.folders = {}
     for item in ScriptUtils.getMessageFileList():
         self.folders[item[0]] = item[1]
コード例 #20
0
 def __init__(self):
     self.modulePath = ScriptUtils.getExtensionPath() + os.sep + "modules"
     self.mf = components.classes["@tbscript.wm.edu/ModuleFactory;1"].\
      getService(components.interfaces.IModuleFactory)