def setup(): global mainloop global ad_manager_interface global ble_advertisement global ble_server_start global ble_register global monitor_thread ad_manager_interface = None ble_advertisement = None ble_register = False set_ble_adv_inetval() monitor_thread = threading.Thread(target=monitor, args=()) monitor_thread.setDaemon(True) monitor_thread.start() dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) bus = dbus.SystemBus() server_manager = get_server_manager(bus) if not server_manager: log.error_print('server manager interface not found') return add_manager = get_ad_manager(bus) if not add_manager: log.error_print('add manager interface not found') return service_manager_interface = dbus.Interface( bus.get_object(BLUEZ_SERVICE_NAME, server_manager), GATT_MANAGER_IFACE) ad_manager_interface = dbus.Interface( bus.get_object(BLUEZ_SERVICE_NAME, add_manager), LE_ADVERTISING_MANAGER_IFACE) ble_app = BLEApplication(bus) mainloop = GObject.MainLoop() log.info_print('Registering GATT application...') service_manager_interface.RegisterApplication( ble_app.get_path(), {}, reply_handler=register_app_cb, error_handler=register_app_error_cb) log.info_print("Start BLEAdvertisement") ble_advertisement = BLEAdvertisement(bus, 0) mainloop_thread = threading.Thread(target=loop, args=()) mainloop_thread.setDaemon(True) mainloop_thread.start() ble_server_start = True
def register_app_error_cb(error): log.error_print('Failed to register application: ' + str(error)) mainloop.quit()
def ReadValue(self, options): log.error_print('Default ReadValue called, returning error') raise NotSupportedException()
def WriteValue(self, value, options): log.error_print('Default WriteValue called, returning error') raise NotSupportedException()
def StopNotify(self): log.error_print('Default StopNotify called, returning error') raise NotSupportedException()