⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 simple-agent

📁 这是Linux环境下的蓝牙源代码
💻
字号:
#!/usr/bin/pythonimport gobjectimport sysimport dbusimport dbus.serviceimport dbus.mainloop.glibclass Rejected(dbus.DBusException):	_dbus_error_name = "org.bluez.Error.Rejected"class Agent(dbus.service.Object):	exit_on_release = True	def set_exit_on_release(self, exit_on_release):		self.exit_on_release = exit_on_release	@dbus.service.method("org.bluez.Agent",					in_signature="", out_signature="")	def Release(self):		print "Release"		if self.exit_on_release:			mainloop.quit()	@dbus.service.method("org.bluez.Agent",					in_signature="os", out_signature="")	def Authorize(self, device, uuid):		print "Authorize (%s, %s)" % (device, uuid)	@dbus.service.method("org.bluez.Agent",					in_signature="o", out_signature="s")	def RequestPinCode(self, device):		print "RequestPinCode (%s)" % (device)		return raw_input("Enter PIN Code: ")	@dbus.service.method("org.bluez.Agent",					in_signature="o", out_signature="u")	def RequestPasskey(self, device):		print "RequestPasskey (%s)" % (device)		passkey = raw_input("Enter passkey: ")		return dbus.UInt32(passkey)	@dbus.service.method("org.bluez.Agent",					in_signature="ou", out_signature="")	def DisplayPasskey(self, device, passkey):		print "DisplayPasskey (%s, %d)" % (device, passkey)	@dbus.service.method("org.bluez.Agent",					in_signature="ou", out_signature="")	def RequestConfirmation(self, device, passkey):		print "RequestConfirmation (%s, %d)" % (device, passkey)		confirm = raw_input("Confirm passkey (yes/no): ")		if (confirm == "yes"):			return		raise Rejected("Passkey doesn't match")	@dbus.service.method("org.bluez.Agent",					in_signature="s", out_signature="")	def ConfirmModeChange(self, mode):		print "ConfirmModeChange (%s)" % (mode)	@dbus.service.method("org.bluez.Agent",					in_signature="", out_signature="")	def Cancel(self):		print "Cancel"def create_device_reply(device):	print "New device (%s)" % (device)	mainloop.quit()def create_device_error(error):	print "Creating device failed: %s" % (error)	mainloop.quit()if __name__ == '__main__':	dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)	bus = dbus.SystemBus()	manager = dbus.Interface(bus.get_object("org.bluez", "/"),							"org.bluez.Manager")	if len(sys.argv) > 1:		path = manager.FindAdapter(sys.argv[1])	else:		path = manager.DefaultAdapter()	adapter = dbus.Interface(bus.get_object("org.bluez", path),							"org.bluez.Adapter")	path = "/test/agent"	agent = Agent(bus, path)	mainloop = gobject.MainLoop()	if len(sys.argv) > 2:		if len(sys.argv) > 3:			device = adapter.FindDevice(sys.argv[2])			adapter.RemoveDevice(device)		agent.set_exit_on_release(False)		adapter.CreatePairedDevice(sys.argv[2], path, "DisplayYesNo",					reply_handler=create_device_reply,					error_handler=create_device_error)	else:		adapter.RegisterAgent(path, "DisplayYesNo")		print "Agent registered"	mainloop.run()	#adapter.UnregisterAgent(path)	#print "Agent unregistered"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -