def create_mqtt_proxy(client, newline): bus = dbus.SystemBus() app = localGATT.Application() srv = localGATT.Service(1, MQTT_SRVC, True) receive = Receive(srv, MQTT_RX_CHRC, client, newline) transmit = Transmit(srv, MQTT_TX_CHRC, client) app.add_managed_object(srv) app.add_managed_object(receive) app.add_managed_object(transmit) srv_mng = GATT.GattManager(adapter.list_adapters()[0]) srv_mng.register_application(app, {}) dongle = adapter.Adapter(adapter.list_adapters()[0]) if not dongle.powered: # bring hci0 up if down dongle.powered = True advert = advertisement.Advertisement(1, 'peripheral') advert.service_UUIDs = [MQTT_SRVC] ad_manager = advertisement.AdvertisingManager(dongle.address) ad_manager.register_advertisement(advert, {})
def __init__(self): self.bus = dbus.SystemBus() self.app = localGATT.Application() self.srv = localGATT.Service(1, SERVICE_UUID, True) self.light = localGATT.Characteristic(1, LIGHT_UUID, self.srv, [0xAA], True, ['read', 'notify']) self.switch = localGATT.Characteristic(2, SWITCH_UUID, self.srv, [0xBB], True, ['read', 'write', 'notify']) self.light.service = self.srv.path self.app.add_managed_object(self.srv) self.app.add_managed_object(self.light) self.app.add_managed_object(self.switch) self.srv_mng = GATT.GattManager(adapter.list_adapters()[0]) self.srv_mng.register_application(self.app, {}) self.dongle = adapter.Adapter(adapter.list_adapters()[0]) advert = advertisement.Advertisement(1, 'peripheral') advert.service_UUIDs = [SERVICE_UUID] if not self.dongle.powered: self.dongle.powered = True ad_manager = advertisement.AdvertisingManager(self.dongle.path) ad_manager.register_advertisement(advert, {})
def __init__(self): self.bus = dbus.SystemBus() self.app = localGATT.Application() self.srv = localGATT.Service(1, SERVICE_UUID, True) self.charc = localGATT.Characteristic(1, CHAR_UUID, self.srv, [0xBB], True, ['write']) self.charc.service = self.srv.path self.app.add_managed_object(self.srv) self.app.add_managed_object(self.charc) self.srv_mng = GATT.GattManager(adapter.list_adapters()[0]) self.srv_mng.register_application(self.app, {}) self.dongle = adapter.Adapter(adapter.list_adapters()[0]) advert = advertisement.Advertisement(1, 'peripheral') advert.service_UUIDs = [SERVICE_UUID] eddystone_data = tools.url_to_advert(WEB_BLINKT, 0x10, TX_POWER) advert.service_data = {EDDYSTONE: eddystone_data} if not self.dongle.powered: self.dongle.powered = True ad_manager = advertisement.AdvertisingManager(self.dongle.path) ad_manager.register_advertisement(advert, {})
def __init__(self): self.bus = dbus.SystemBus() self.app = localGATT.Application() self.srv = localGATT.Service(1, SVC_UUID, True) self.idsCharc = DeviceIDsChrc(self.srv) self.attrCharc = DeviceAttrChrc(self.srv) self.idsCharc.service = self.srv.path self.attrCharc.service = self.srv.path self.app.add_managed_object(self.srv) self.app.add_managed_object(self.idsCharc) self.app.add_managed_object(self.attrCharc) self.srv_mng = GATT.GattManager(adapter.list_adapters()[0]) self.srv_mng.register_application(self.app, {}) self.dongle = adapter.Adapter(adapter.list_adapters()[0]) advert = advertisement.Advertisement(1, 'peripheral') advert.service_UUIDs = [SVC_UUID] # eddystone_data = tools.url_to_advert(WEB_BLINKT, 0x10, TX_POWER) # advert.service_data = {EDDYSTONE: eddystone_data} if not self.dongle.powered: self.dongle.powered = True ad_manager = advertisement.AdvertisingManager(self.dongle.address) ad_manager.register_advertisement(advert, {})
def __init__(self): self.bus = dbus.SystemBus() self.app = localGATT.Application() self.srv = localGATT.Service( 1, HR_UUID, True) # HR_UUID = '0000180d-0000-1000-8000-00805f9b34fb' self.charc = HeartRateMeasurementChrc(self.srv) self.charc.service = self.srv.path self.app.add_managed_object(self.srv) self.app.add_managed_object(self.charc) self.srv_mng = GATT.GattManager(adapter.list_adapters()[0]) self.srv_mng.register_application(self.app, {}) self.dongle = adapter.Adapter(adapter.list_adapters()[0]) advert = advertisement.Advertisement(1, 'peripheral', 'HeartRate') # advert.appearance = [0x0341] # Actually will give Error: Failed to register advertisement: org.bluez.Error.Failed: Failed to register advertisement advert.service_UUIDs = [HR_UUID] if not self.dongle.powered: self.dongle.powered = True ad_manager = advertisement.AdvertisingManager(self.dongle.address) ad_manager.register_advertisement(advert, {})
def __init__(self): self.bus = dbus.SystemBus() self.app = localGATT.Application() ''' service_id: 1 uuid: VEERING_SRVC primary: True ''' self.srv = localGATT.Service(1, VEERING_SRVC, True) self.charc = VeeringChrc(self.srv) self.charc.service = self.srv.path self.app.add_managed_object(self.srv) self.app.add_managed_object(self.charc) self.srv_mng = GATT.GattManager(adapter.list_adapters()[0]) self.srv_mng.register_application(self.app, {}) self.dongle = adapter.Adapter(adapter.list_adapters()[0]) self.advert = advertisement.Advertisement(1, 'peripheral') self.advert.service_UUIDs = [VEERING_SRVC] if not self.dongle.powered: self.dongle.powered = True self.ad_manager = advertisement.AdvertisingManager(self.dongle.path) self.ad_manager.register_advertisement(self.advert, {})
def __init__(self, reading_callback): self.bus = dbus.SystemBus() self.app = localGATT.Application() self.srv = localGATT.Service(1, AQI_PM_SRVC, True) self.pm_2_5_charc = AQIChrc(1, PM_2_5_CHRC, self.srv, 0.0, 'PM 2.5', reading_callback) self.pm_2_5_charc.service = self.srv.path self.pm_10_charc = AQIChrc(2, PM_10_CHRC, self.srv, 0.0, 'PM 10', reading_callback) self.pm_10_charc.service = self.srv.path pm_2_5_format_value = dbus.Array([ dbus.Byte(0x0E), dbus.Byte(0xFE), dbus.Byte(0x2F), dbus.Byte(0x27), dbus.Byte(0x01), dbus.Byte(0x00), dbus.Byte(0x00) ]) pm_10_format_value = dbus.Array([ dbus.Byte(0x0E), dbus.Byte(0xFE), dbus.Byte(0x2F), dbus.Byte(0x27), dbus.Byte(0x01), dbus.Byte(0x00), dbus.Byte(0x00) ]) self.pm_2_5_format = localGATT.Descriptor(4, PM_2_5_FMT_DSCP, self.pm_2_5_charc, pm_2_5_format_value, ['read']) self.pm_10_format = localGATT.Descriptor(5, PM_10_FMT_DSCP, self.pm_10_charc, pm_10_format_value, ['read']) self.app.add_managed_object(self.srv) self.app.add_managed_object(self.pm_2_5_charc) self.app.add_managed_object(self.pm_2_5_format) self.app.add_managed_object(self.pm_10_charc) self.app.add_managed_object(self.pm_10_format) self.srv_mng = GATT.GattManager(adapter.list_adapters()[0]) self.srv_mng.register_application(self.app, {}) self.dongle = adapter.Adapter(adapter.list_adapters()[0]) advert = advertisement.Advertisement(1, 'peripheral') advert.service_UUIDs = [AQI_PM_SRVC] if not self.dongle.powered: self.dongle.powered = True ad_manager = advertisement.AdvertisingManager(self.dongle.address) ad_manager.register_advertisement(advert, {})
def __init__(self, adapter_address, local_name=None, appearance=None): self.app = localGATT.Application() self.srv_mng = GATT.GattManager(adapter_address) self.services = [] self.characteristics = [] self.descriptors = [] self.primary_services = [] self.dongle = adapter.Adapter(adapter_address) self.local_name = local_name self.appearance = appearance self.advert = advertisement.Advertisement(1, 'peripheral') self.ad_manager = advertisement.AdvertisingManager(adapter_address) self.mainloop = async_tools.EventLoop()
def __init__(self, adapter_obj=None): """Default initialiser. Creates the BLE beacon object If an adapter object exists then give it as an optional argument If an adapter object is not given then the first adapter found is used :param adapter_obj: Optional Python adapter object. """ self.dongle = None if adapter_obj is None: self.dongle = adapter.Adapter(adapter.list_adapters()[0]) else: self.dongle = adapter_obj self.broadcaster = advertisement.Advertisement(1, 'broadcast')
def advertise_beacon(): dongle = adapter.Adapter('/org/bluez/hci0') advertiser0 = advertisement.Advertisement(0, 'peripheral') advertiser0.service_UUIDs = ['FEAA'] advertiser0.service_data = { 'FEAA': [0x10, 0x08, 0x0E, 70, 97, 116, 79, 110, 101] } if not dongle.powered: dongle.powered = True ad_manager = advertisement.AdvertisingManager(dongle.path) ad_manager.register_advertisement(advertiser0, {}) return ad_manager, advertiser0
def __init__(self): self.mainloop = async_tools.EventLoop() self.app = localGATT.Application() self.srv = localGATT.Service(1, CPU_TMP_SRVC, True) self.charc = TemperatureChrc(self.srv) self.charc.service = self.srv.path cpu_format_value = dbus.Array([dbus.Byte(0x0E), dbus.Byte(0xFE), dbus.Byte(0x2F), dbus.Byte(0x27), dbus.Byte(0x01), dbus.Byte(0x00), dbus.Byte(0x00)]) self.cpu_format = localGATT.Descriptor(4, CPU_FMT_DSCP, self.charc, cpu_format_value, ['read']) self.app.add_managed_object(self.srv) self.app.add_managed_object(self.charc) self.app.add_managed_object(self.cpu_format) self.srv_mng = GATT.GattManager(adapter.list_adapters()[0]) self.srv_mng.register_application(self.app, {}) self.dongle = adapter.Adapter(adapter.list_adapters()[0]) advert = advertisement.Advertisement(1, 'peripheral') advert.service_UUIDs = [CPU_TMP_SRVC] advert.local_name = 'CPU Temp' advert.appearance = 1344 # eddystone_data = tools.url_to_advert(WEB_BLINKT, 0x10, TX_POWER) # advert.service_data = {EDDYSTONE: eddystone_data} if not self.dongle.powered: self.dongle.powered = True ad_manager = advertisement.AdvertisingManager(self.dongle.address) ad_manager.register_advertisement(advert, {})
def __init__(self): self.bus = dbus.SystemBus() self.app = localGATT.Application() self.srv = localGATT.Service(1, UART_SRVC, True) self.receive = UartRxChrc(self.srv) self.transmit = UartTxChrc(self.srv, self.receive) self.app.add_managed_object(self.srv) self.app.add_managed_object(self.receive) self.app.add_managed_object(self.transmit) self.srv_mng = GATT.GattManager(adapter.list_adapters()[0]) self.srv_mng.register_application(self.app, {}) self.dongle = adapter.Adapter(adapter.list_adapters()[0]) advert = advertisement.Advertisement(1, 'peripheral') advert.service_UUIDs = [UART_SRVC] if not self.dongle.powered: self.dongle.powered = True ad_manager = advertisement.AdvertisingManager(self.dongle.address) ad_manager.register_advertisement(advert, {})