示例#1
0
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
示例#2
0
def register_app_error_cb(error):
    log.error_print('Failed to register application: ' + str(error))
    mainloop.quit()
示例#3
0
 def ReadValue(self, options):
     log.error_print('Default ReadValue called, returning error')
     raise NotSupportedException()
示例#4
0
 def WriteValue(self, value, options):
     log.error_print('Default WriteValue called, returning error')
     raise NotSupportedException()
示例#5
0
 def StopNotify(self):
     log.error_print('Default StopNotify called, returning error')
     raise NotSupportedException()