def unregister(self): bus = BleTools.get_bus() adapter = BleTools.find_adapter(bus) ad_manager = dbus.Interface( bus.get_object( BLUEZ_SERVICE_NAME, adapter), LE_ADVERTISING_MANAGER_IFACE) ad_manager.UnregisterAdvertisement(self.get_path()) print("GATT advertisement UNregistered")
def __init__(self): dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) self.mainloop = GObject.MainLoop() self.bus = BleTools.get_bus() self.path = "/" self.services = [] self.next_index = 0 dbus.service.Object.__init__(self, self.bus, self.path)
def __init__(self, index, uuid, primary): self.bus = BleTools.get_bus() self.path = self.PATH_BASE + str(index) self.uuid = uuid self.primary = primary self.characteristics = [] self.next_index = 0 dbus.service.Object.__init__(self, self.bus, self.path)
def run(self): logger.debug("Running BluetoothAdvertisementProcessor") while True: advertise_event = self.shared_state.should_advertise_bluetooth_condition_event.wait() if advertise_event: # Prepare to advertise by first scanning wifi and stopping any existing connections self.shared_state.should_scan_wifi = True try: BleTools.disconnect_connections() except TypeError: # Most Likely Already Disconnected pass # Start advertising self.start_advertisement() # clear the event self.shared_state.should_advertise_bluetooth_condition_event.clear()
def __init__(self, index, advertising_type): self.path = self.PATH_BASE + str(index) self.bus = BleTools.get_bus() self.ad_type = advertising_type self.local_name = None self.service_uuids = None self.solicit_uuids = None self.manufacturer_data = None self.service_data = None self.include_tx_power = None dbus.service.Object.__init__(self, self.bus, self.path)
def register(self): bus = BleTools.get_bus() adapter = BleTools.find_adapter(bus) if not adapter: logger.error( "Unable to start Advertisement: No Bluetooth adapter.") return ad_manager = dbus.Interface( bus.get_object( BLUEZ_SERVICE_NAME, adapter), LE_ADVERTISING_MANAGER_IFACE) if not ad_manager: logger.error("Unable to start Advertisement: " "No Bluetooth Advertising Manager.") return ad_manager.RegisterAdvertisement( self.get_path(), {}, reply_handler=self.register_ad_callback, error_handler=self.register_ad_error_callback )
def register(self): adapter = BleTools.find_adapter(self.bus) if not adapter: logger.error( "Unable to start Bluetooth application: No Bluetooth Adapter") return service_manager = dbus.Interface( self.bus.get_object(BLUEZ_SERVICE_NAME, adapter), GATT_MANAGER_IFACE) if not service_manager: logger.error("No Bluetooth Service Manager") return service_manager.RegisterApplication( self.get_path(), {}, reply_handler=self.register_app_callback, error_handler=self.register_app_error_callback)
def test_disconnect_connections(self, mock_get_bus, mock_dbus_interface): result = BleTools.disconnect_connections() mock_dbus_interface.assert_called() mock_get_bus.assert_called() self.assertEqual(result, None)
def test_find_connection(self, mock_dbus_interface): bus = MagicMock() result = BleTools.find_connection(bus) mock_dbus_interface.assert_called() bus.get_object.assert_called() self.assertEqual(result, None)
def test_get_bus(self): # Should return an instance of dbus SystemBus bus = BleTools.get_bus() self.assertIsInstance(bus, dbus._dbus.SystemBus)