def main(): global mainloop dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) # get the system bus bus = dbus.SystemBus() # get the ble controller adapter = find_adapter(bus) if not adapter: logger.critical("GattManager1 interface not found") return adapter_obj = bus.get_object(BLUEZ_SERVICE_NAME, adapter) adapter_props = dbus.Interface(adapter_obj, "org.freedesktop.DBus.Properties") # powered property on the controller to on adapter_props.Set("org.bluez.Adapter1", "Powered", dbus.Boolean(1)) # Get manager objs service_manager = dbus.Interface(adapter_obj, GATT_MANAGER_IFACE) ad_manager = dbus.Interface(adapter_obj, LE_ADVERTISING_MANAGER_IFACE) advertisement = VivaldiAdvertisement(bus, 0) obj = bus.get_object(BLUEZ_SERVICE_NAME, "/org/bluez") agent = Agent(bus, AGENT_PATH) app = Application(bus) app.add_service(BluetoothService(bus, 2)) mainloop = MainLoop() agent_manager = dbus.Interface(obj, "org.bluez.AgentManager1") agent_manager.RegisterAgent(AGENT_PATH, "NoInputNoOutput") ad_manager.RegisterAdvertisement( advertisement.get_path(), {}, reply_handler=register_ad_cb, error_handler=register_ad_error_cb, ) logger.info("Registering GATT application...") service_manager.RegisterApplication( app.get_path(), {}, reply_handler=register_app_cb, error_handler=[register_app_error_cb], ) agent_manager.RequestDefaultAgent(AGENT_PATH) mainloop.run()
def main(): MPU_Init() # init MPU6050 global mainloop dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) # get the system bus bus = dbus.SystemBus() # get the ble controller adapter = find_adapter(bus) if not adapter: print("GattManager1 interface not found") return adapter_obj = bus.get_object(BLUEZ_SERVICE_NAME, adapter) adapter_props = dbus.Interface(adapter_obj, "org.freedesktop.DBus.Properties") # powered property on the controller to on adapter_props.Set("org.bluez.Adapter1", "Powered", dbus.Boolean(1)) # Get manager objs service_manager = dbus.Interface(adapter_obj, GATT_MANAGER_IFACE) ad_manager = dbus.Interface(adapter_obj, LE_ADVERTISING_MANAGER_IFACE) advertisement = BLEAdvertisement(bus, 0) obj = bus.get_object(BLUEZ_SERVICE_NAME, "/org/bluez") app = Application(bus) app.add_service(BLEService(bus, 2)) mainloop = MainLoop() ad_manager.RegisterAdvertisement( advertisement.get_path(), {}, reply_handler=register_ad_cb, error_handler=register_ad_error_cb, ) print("Registering GATT application...") service_manager.RegisterApplication( app.get_path(), {}, reply_handler=register_app_cb, error_handler=[register_app_error_cb], ) mainloop.run()