示例#1
0
    def SetTextureHandler(config, logger, uriHandler=None):
        """ Fetches a TextureManager for specific mode and channel.

        @param config:              The Retrospect Config object
        @param logger:              An Logger
        @param uriHandler:          The UriHandler

        @return: A TextureHandler object for the requested mode

        """

        mode = config.TextureMode.lower()
        if logger is not None:
            logger.Trace("Creating '%s' Texture Mananger", mode)

        if mode == Local:
            import local
            TextureHandler.__TextureHandler = local.Local(logger)
        elif mode == Remote:
            import remote
            TextureHandler.__TextureHandler = remote.Remote(
                config.TextureUrl, logger)
        elif mode == Cached:
            import cached
            TextureHandler.__TextureHandler = cached.Cached(
                config.TextureUrl, config.profileDir, logger, uriHandler)
        else:
            raise Exception("Invalide mode: %s" % (mode, ))

        return TextureHandler.__TextureHandler
示例#2
0
def main():
    if os.path.exists(config.SOCKET):
        sys.exit('sqlmp socket already open')
    
    stdscr, palette = init.ncurses()

    try:
        db = musicdb.Musicdb(config.DBPATH, config.LIBPATH)
    except Exception as e:
        debug.print_error('db error:', e)

    try:
        signal.signal(signal.SIGINT, lambda a, b: cleanup(stdscr, True))

        #init the ui
        ui = player_ui.Player_ui(stdscr, palette, db)

        #init remote
        remote.Remote(ui, config.SOCKET)

        #start mainloop
        ui.mainloop()

        #cleanup curses
        cleanup(stdscr)

    except Exception as e:
        cleanup(stdscr)
        debug.print_error('error:', e)
示例#3
0
 def power_samsung_tv(self, tv):
     try:
         myremote = remote.Remote(tv['ip'], tv['mac'], tv['model'])
         myremote.connect(3)
         myremote.sendkey('KEY_POWEROFF')
         myremote.close()
     except:
         pass
示例#4
0
	def updateSuccessors(self, ret = True):
		suc = self.successor()
		if suc.id() != self.id():
			successors = [suc]
			suc_list = suc.getSuccessors()
			if suc_list:
				for i in suc_list:
					successors.append(remote.Remote(address.Address(i[0], i[1]), self))
			self._succ = successors
		return ret
示例#5
0
	def join(self, hostAddress = None):
		self._finger = [None] * LOGSIZE
		self._pred = None
		if hostAddress:
			address.validateAddress(hostAddress)
			self._finger[0] = remote.Remote(hostAddress, self).findSuccessor(self.id())
			if self._finger[0] == None:
				return False
		else:
			self._finger[0] = self
		return True
示例#6
0
    def __init__(self, debug_queue, error_queue, address, learning, iteration,
                 trajectory):
        (self.controller_address, self.receiver_address) = address
        self.debug_queue = debug_queue
        self.error_queue = error_queue

        self.learning = learning
        self.iterations = iteration
        self.trajectories = trajectory

        # The default command that is sent to the drone.
        self.default_cmd = {
            'X': 0.0,
            'Y': 0.0,
            'Z': 0.0,
            'R': 0.0,
            'C': 0,
            'T': False,
            'L': False,
            'S': False
        }

        # The drone's address and ports.
        self.drone_address = '192.168.1.1'
        self.ports = {'NAVDATA': 5554, 'VIDEO': 5555, 'CMD': 5556}

        # The drone's cameras.
        self.cameras = {'FRONT': 0, 'BOTTOM': 3, 'CUSTOM': 4}
        self.active_camera = self.cameras['FRONT']

        # The method of tracking we are going to use.
        self.tracking = None

        # Initialize all modules.
        self.remote = remote.Remote(self.debug_queue, self.error_queue)
        self.controller = controller.Controller(self.debug_queue,
                                                self.error_queue)
        self.receiver = receiver.Receiver(self.debug_queue, self.error_queue)

        camera_address = 'tcp://' + self.drone_address + ':' + str(
            self.ports['VIDEO'])
        self.image_queue = Queue.Queue(maxsize=1)
        self.camera = camera.Camera(self.debug_queue, self.error_queue,
                                    camera_address, self.image_queue)
        self.camera.daemon = True
        self.camera.start()
示例#7
0
    def saveRemote(self):
        """Sync current remote with forms values and save it."""

        name = self.nameLineEdit.text().strip()
        if not name:
            if not self.urlLineEdit.text():
                return
            name = "New Remote"

        namechange = False
        if self.remote and name != self.remote.name:
            print "CHANGING REMOTE NAME."
            namechange = True
            self.remote = None

        # Make sure the name is not used.
        if namechange and name in self.remotes:
            i = 1
            while True:
                newname = "%s_%d" % (name, i)
                if newname not in self.remotes:
                    break
                i += 1
            self.nameLineEdit.setText(newname)
            name = newname

        print "saving name = %s" % name
        if not self.remote:
            self.remote = remote.Remote()
            self.remotes[name] = self.remote
            self.targetList.addItem(name)

        self.remote.name = name
        self.remote.url = self.urlLineEdit.text()

        self.remote.basicauth = self.useBasicAuthCheckBox.isChecked()
        self.remote.user = self.userLineEdit.text()
        self.remote.password = self.passwordLineEdit.text()

        flavour = self.tweakForComboBox.currentText()
        self.remote.flavour = None if flavour == "none" else flavour

        self.remotes.save()

        for x in self.remotes:
            print x, self.remotes[x].name
示例#8
0
    def __init__(self, config):
        # read config file
        self.cfg = config

        # launch remote control "driver"
        if self.cfg.remote:
            self.rc = remote.Remote()
        else:
            self.rc = None

        # initialize theme
        self.thm = theme.Theme(self.cfg)

        # initialize menu classes
        self.tv_menu = tv.TV_Menu(self.cfg, self.thm)
        self.video_menu = video.Video_Menu(self.cfg, self.thm)
        self.dvd_menu = dvd.DVD_Menu(self.cfg, self.thm)
        self.music_menu = music.Music_Menu(self.cfg, self.thm)
        self.photo_menu = photo.Photo_Menu(self.cfg, self.thm)
        self.web_menu = web.Web_Menu(self.cfg, self.thm)
示例#9
0
def get_remote(study_path, remote_name_in):
    # _printer.print_msg("Testing connection to remote '%s'..." % r.name, end='')
    # r.available()
    # print "OK"

    remotes = RemotesFile(study_path)
    remotes.load()
    r = remote.Remote()
    # Set to "default" if args.remote is None
    if remote_name_in == None:
        remote_name = remotes.default_remote
        _printer.print_msg("Using default remote '{}'...".format(remote_name))
    else:
        remote_name = remote_name_in
    try:
        remote_yaml = remotes[remote_name]
    except KeyError:
        raise Exception(
            "Remote '{}' not found in 'remotes.yaml'.".format(remote_name))
    r.configure(remote_name, remote_yaml)
    return r
示例#10
0
文件: kietol.py 项目: sepen/kietol
	def __init__(self, targets):
		
		window = gtk.Window(gtk.WINDOW_TOPLEVEL)  #create window
		window.connect("destroy", self.quit)
		window.set_title(self.versionString)
		window.set_icon(self.getIcon())
		
		self.window = window
		
		self.prefs = prefs.Prefs(self)
		
		self.mplayer = mplayer.Mplayer(self)
		self.remote = remote.Remote(self)
		self.playlist = playlist.Playlist(self)
		self.systray = systray.Systray(self)
		self.control = control.Control(self)
		self.menu = menu.Menu(self)
		
		vbox = gtk.VBox(False, 0)
		vbox.pack_start(self.playlist.scrollview, True, True, 0) 
		vbox.pack_start(self.control.hbox, False, False, 0)
		
		window.add(vbox)  #prepare to start ui
		window.show_all()
		
		window.move(self.prefs.getInt("x"), self.prefs.getInt("y"))
		window.resize(self.prefs.getInt("width"), self.prefs.getInt("height"))
		
		if targets:  #process targets
			
			self.playlist.load(targets)
			
			if self.playlist.continuous:  #and begin playback
				self.playlist.jump(0)
			
		else:  #or load last list
			self.playlist.loadm3u()
			
		gtk.main()
示例#11
0
def sync_desc(desc):
    import yaml
    ChanCls = type('C', (remote.SshSudoChannel, remote.BinaryEncoding), {})
    with remote.Remote(ChanCls(desc['hostname'])) as rmt:
        filist = []
        if '-t' in optdict:
            with open('%s.meta' % desc['hostname'], 'rb') as fi:
                attrs = api.filist_load(fi.read())
            cache_default_attr(attrs)
        for syncinfo in desc['synclist']:
            rmtpath, local, partten = get_syncinfo(rmt, desc, syncinfo)
            if '-b' in optdict:
                filist.extend(sync.sync_back(rmt, rmtpath, local, partten))
            else:
                fl = sync.sync_to(rmt, rmtpath, local, partten)
                fl = list(merge_filist(fl, attrs, rmtpath, local))
                filist.extend(fl)
        if '-b' in optdict:
            doc = api.filist_dump(filist, desc.get('user'), desc.get('group'),
                                  desc.get('filemode'), desc.get('dirmode'))
            with open('%s.meta' % desc['hostname'], 'wb') as fo:
                fo.write(doc)
        else:
            rmt.apply(sync.apply_meta, filist)
示例#12
0
 def setUp(self):
     self.remote = remote.Remote(serial_class=MockSerial)
import badgekitapiclient
import glob
import os.path
import remote
import unittest

try:
    import json
except ImportError:
    import simplejson as json

client = badgekitapiclient.Client(remote.Remote())


def run(*tests, **kwargs):
    tests = unittest.TestSuite(tests)
    return unittest.TextTestRunner(**kwargs).run(tests)


class TestCase(unittest.TestCase):
    def __init__(self, *args, **kwargs):
        super(TestCase, self).__init__(*args, **kwargs)
        self.client = client

    @classmethod
    def get_suite(cls):
        return unittest.TestLoader().loadTestsFromTestCase(cls)

    @classmethod
    def run_tests(cls, **kwargs):
        suite = cls.get_suite()
示例#14
0
#!/usr/bin/env python3

import remote
import vehicle

print("Starting CWBuggy...")

# Instantiate vehicle
vehicle = vehicle.Vehicle()

# Instantiate remote controller
rc = remote.Remote(vehicle)
rc.start()

# Instantiate autopilot
#auto = autopilot.Autopilot(vehicle)
#auto.start()

print("Finishing CWBuggy...")
# Free resources
del vehicle
del rc
print("Finished CWBuggy")
示例#15
0
for file in l:
    if (file.endswith('.py')
            and (file[0] != '.' and file != '_')):  #Remove duplicates
        newfile = file.replace('_', ' ')
        valid.append(newfile[:-3])  #add file to valid list, remove extension

loop = asyncio.get_event_loop()

selectedIcon = "[*]"
unselectedIcon = "[ ]"

exit = False
nMenuItems = len(valid) + 3

r = remote.Remote()

try:
    f = open('apps/radio.conf', 'rb')
    (ch, uuid) = unpack('>II', f.read())
    print("ch=" + hex(ch) + " uuid=" + hex(uuid))
    f.close()
    r.set_channel(ch)
    r.set_uuid(uuid)
except OSError:
    print("no radio settings saved")

idx = 0

while (not exit):
    pairstat = 'N    '
示例#16
0
	def reply(self, args):
		try:
			conn, addr = args

			b = crypto_number.getRandomInteger(DIFFIE_HELLMEN_KEY_SIZE) % N
					
			A = network.read_from_socket_as_string(conn)
		
			if A:
				A = json.loads(A)
			
				if type(A) != dict:
					raise Exception
			
				sig = A.pop('sig')
				if not rsa.verify(sig, json.dumps(A, sort_keys = True), A['public key']):
					raise Exception
			
				ga_modn = A['key']
			
				pk, sk = self.getKeys()
			
				A = {
					'key': pow(G, b, N),
					'public key': pk
				}
			
				A['sig'] = rsa.sign(json.dumps(A, sort_keys = True), sk)
			
				network.send_to_socket_as_string(conn, json.dumps(A))
			
				gab_modn = pow(ga_modn, b, N)
			
				request = network.read_from_socket_as_bytes(conn)
			
				if request:		
							
					request = aesHmac.symmDecryption(request, gab_modn)
				
					command = request.split(' ')[0]
				
					request = request[len(command) + 1:]

					result = json.dumps("")
				
					if command == 'get_successor':
						successor = self.successor()
						result = json.dumps((successor.addr, successor.port))
					elif command == 'get_predecessor':
						if self._pred != None:
							predecessor = self.predecessor()
							result = json.dumps((predecessor.addr, predecessor.port))
					elif command == 'find_successor':
						successor = self.findSuccessor(int(request))
						result = json.dumps((successor.addr, successor.port))
					elif command == 'closest_preceding_finger':
						closest = self.closestPrecedingFinger(int(request))
						result = json.dumps((closest.addr, closest.port))
					elif command == 'notify':
						npredecessor = address.Address(request.split(' ')[0], int(request.split(' ')[1]))
						self.notify(remote.Remote(npredecessor, self))
					elif command == 'get_successors':
						result = json.dumps(self.getSuccessors())
					else:
						try:
							t = self._commands[command]
							def f(A):
								network.send_to_socket_as_bytes(conn, aesHmac.symmEncryption(A, gab_modn))
							t(request, f)
							conn.close()
							return
						except KeyError:
							pass
						
					network.send_to_socket_as_bytes(conn, aesHmac.symmEncryption(result, gab_modn))
		except:
			pass
		conn.close()
示例#17
0
    def annotate(self, args):
        self.iteration = args.iteration
        self.trajectory = args.trajectory
        self.time_step = 1
        self.video_rate = 5

        self.debug_queue.put({
            'MSG': 'Parrot AR 2 Flying Tool :: Annotation Mode',
            'PRIORITY': 1
        })
        if self.gui:
            self.debug_queue.put({'MSG': ':: GUI flag set.', 'PRIORITY': 1})
        self.debug_queue.put({
            'MSG': ':: Verbosity set to %d.' % self.verbosity,
            'PRIORITY': 1
        })

        # Initialize the remote module.
        self.debug_queue.put({
            'MSG': ':: Initializing remote control.',
            'PRIORITY': 1
        })
        self.remote_control = remote.Remote(self.debug_queue, self.error_queue)

        # Initialize the gui.
        self.debug_queue.put({'MSG': ':: Initializing GUI.', 'PRIORITY': 1})
        self.root = tk.Tk()
        if self.root:
            self.root.resizable(0, 0)  # change this later
            self.root.wm_title("AMOT :: Annotation Tool")
            self.image_frame = tk.Frame(self.root)
            self.create_annotate_gui()

        self.debug_queue.put({
            'MSG':
            ':: Starting annotation for iteration %s, trajectory %s.' %
            (self.iteration, self.trajectory),
            'PRIORITY':
            1
        })
        self.debug_queue.put({
            'MSG':
            ':: To annotate, get the optimal command using the left annolog stick and press button 5 to save.',
            'PRIORITY': 1
        })
        self.directory = './data/%s/%s/' % (args.iteration, args.trajectory)
        self.debug_queue.put({
            'MSG':
            ':: Looking in directory %s for images and commands.' %
            self.directory,
            'PRIORITY':
            1
        })

        # Load the commands associated with this iteration and trajectory.
        self.debug_queue.put({
            'MSG': ':: Loading drone commands.\n',
            'PRIORITY': 1
        })
        cmd_filename = self.directory + 'drone_cmds.data'
        f = open(cmd_filename)
        lines = f.readlines()
        self.cmd_drone_json = lines[self.time_step - 1]

        self.debug_flag = False
        self.debugger.debug()
        self.update_annotate_gui()
        self.root.mainloop()