コード例 #1
0
	def messagehandler(self,message):
    		connection_manager = ConnectionManager(self.associated_devices) 
		print('Request received from eventbus')
		print(message)
		thread = None
		if message != None:
			body = message['body']
			action = body['action']
			payload = body['payload']
			if action == "CONNECT":
    				deviceName = payload['deviceName']
				connection_manager.connect_device(deviceName)
			elif action == "INQUIRY":
				print action
				self.devices = []
				thread = inquiryThread(eb, self.devices, body['id'], associated_devices)
			elif action == "READ" or action == "WRITE":
				deviceURI = body['device']
				if connection_manager.contains_name(deviceURI):
    					thread = PersistentConnectionThread(eb, connection_manager.get_btsocket_for_name(deviceURI), body)
				else:
					print action
					for device in self.associated_devices:
						if device['name'] == deviceURI:
							deviceMAC = device['address']
							thread = communicationThread(eb, deviceMAC, body)
			elif action == "disconnect":
				deviceURI = body['device']
				del devices[deviceURI]	
		else:
			print("no msg found")
		thread.start()
コード例 #2
0
class Client:
    def __init__(self, associated_devices):
        self.devices = []
        self.associated_devices = associated_devices
        self.connection_manager = ConnectionManager(self.associated_devices)

    #Handler for errors and msg
    def messagehandler(self, message):
        print('Request received from eventbus')
        print(message)
        thread = None
        if message != None:
            body = message['body']
            action = body['action']
            if action == "CONNECT" or action == "WRITE":
                payload = body['payload']
            if action == "CONNECT":
                deviceName = payload['deviceName']
                if self.connection_manager.connect_device(deviceName):
                    response = {'message': 'Connected ' + deviceName}
                else:
                    response = {
                        'message': {
                            'error': 'Could not connect ' + deviceName
                        }
                    }
                response['id'] = body['id']
                eb.send(PY2JA, response)
            elif action == "INQUIRY":
                print action
                self.devices = []
                thread = inquiryThread(eb, self.devices, body['id'],
                                       associated_devices)
            elif action == "READ" or action == "WRITE":
                deviceURI = body['device']
                if self.connection_manager.contains_name(deviceURI):
                    thread = PersistentConnectionThread(
                        eb,
                        self.connection_manager.get_btsocket_for_name(
                            deviceURI), body)
                else:
                    print action
                    for device in self.associated_devices:
                        if device['name'] == deviceURI:
                            deviceMAC = device['address']
                            thread = communicationThread(eb, deviceMAC, body)
            elif action == "DISCONNECT":
                deviceURI = body['device']
                if self.connection_manager.disconnect_device(deviceURI):
                    response = {'message': 'Disconnected ' + deviceURI}
                else:
                    response = {
                        'message': {
                            'error': 'Could not disconnect ' + deviceURI
                        }
                    }
                response['id'] = body['id']
                eb.send(PY2JA, response)
        else:
            print("no msg found")
        if thread != None:
            thread.start()