mirror of https://github.com/tuhiproject/tuhi.git
ble: prefix all device logs with address
Use a logger child in BlueZDevice prefixing all log messages with the device address. Signed-off-by: Daniel Martin <consume.noise@gmail.com>pull/136/head
parent
c719ecf2e2
commit
b52891f8fd
23
tuhi/ble.py
23
tuhi/ble.py
|
@ -115,10 +115,11 @@ class BlueZDevice(GObject.Object):
|
||||||
GObject.Object.__init__(self)
|
GObject.Object.__init__(self)
|
||||||
self.obj = obj
|
self.obj = obj
|
||||||
self.om = om
|
self.om = om
|
||||||
|
self.logger = logger.getChild(self.address)
|
||||||
|
|
||||||
assert(self.interface is not None)
|
assert(self.interface is not None)
|
||||||
|
|
||||||
logger.debug(f'Device {self.objpath} - {self.address} - {self.name}')
|
self.logger.debug(f'Device {self.objpath} - {self.name}')
|
||||||
|
|
||||||
self.characteristics = {}
|
self.characteristics = {}
|
||||||
self._resolve_gatt_characteristics()
|
self._resolve_gatt_characteristics()
|
||||||
|
@ -196,7 +197,7 @@ class BlueZDevice(GObject.Object):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
self.characteristics[uuid] = BlueZCharacteristic(obj)
|
self.characteristics[uuid] = BlueZCharacteristic(obj)
|
||||||
logger.debug(f'GattCharacteristic: {uuid}')
|
self.logger.debug(f'GattCharacteristic: {uuid}')
|
||||||
|
|
||||||
def connect_device(self):
|
def connect_device(self):
|
||||||
'''
|
'''
|
||||||
|
@ -205,11 +206,11 @@ class BlueZDevice(GObject.Object):
|
||||||
'''
|
'''
|
||||||
i = self.obj.get_interface(ORG_BLUEZ_DEVICE1)
|
i = self.obj.get_interface(ORG_BLUEZ_DEVICE1)
|
||||||
if self.connected:
|
if self.connected:
|
||||||
logger.info(f'{self.address}: Device is already connected')
|
self.logger.info(f'Device is already connected')
|
||||||
self.emit('connected')
|
self.emit('connected')
|
||||||
return
|
return
|
||||||
|
|
||||||
logger.info(f'{self.address}: Connecting')
|
self.logger.info(f'Connecting')
|
||||||
i.Connect(result_handler=self._on_connect_result)
|
i.Connect(result_handler=self._on_connect_result)
|
||||||
|
|
||||||
def _on_connect_result(self, obj, result, user_data):
|
def _on_connect_result(self, obj, result, user_data):
|
||||||
|
@ -218,9 +219,9 @@ class BlueZDevice(GObject.Object):
|
||||||
result.code == Gio.IOErrorEnum.DBUS_ERROR and
|
result.code == Gio.IOErrorEnum.DBUS_ERROR and
|
||||||
Gio.dbus_error_get_remote_error(result) == 'org.bluez.Error.Failed' and
|
Gio.dbus_error_get_remote_error(result) == 'org.bluez.Error.Failed' and
|
||||||
'Operation already in progress' in result.message):
|
'Operation already in progress' in result.message):
|
||||||
logger.debug(f'{self.address}: Already connecting')
|
self.logger.debug(f'Already connecting')
|
||||||
elif isinstance(result, Exception):
|
elif isinstance(result, Exception):
|
||||||
logger.error(f'Connection failed: {result}')
|
self.logger.error(f'Connection failed: {result}')
|
||||||
|
|
||||||
def disconnect_device(self):
|
def disconnect_device(self):
|
||||||
'''
|
'''
|
||||||
|
@ -229,25 +230,25 @@ class BlueZDevice(GObject.Object):
|
||||||
'''
|
'''
|
||||||
i = self.obj.get_interface(ORG_BLUEZ_DEVICE1)
|
i = self.obj.get_interface(ORG_BLUEZ_DEVICE1)
|
||||||
if not i.get_cached_property('Connected').get_boolean():
|
if not i.get_cached_property('Connected').get_boolean():
|
||||||
logger.info(f'{self.address}: Device is already disconnected')
|
self.logger.info(f'Device is already disconnected')
|
||||||
self.emit('disconnected')
|
self.emit('disconnected')
|
||||||
return
|
return
|
||||||
|
|
||||||
logger.info(f'{self.address}: Disconnecting')
|
self.logger.info(f'Disconnecting')
|
||||||
i.Disconnect(result_handler=self._on_disconnect_result)
|
i.Disconnect(result_handler=self._on_disconnect_result)
|
||||||
|
|
||||||
def _on_disconnect_result(self, obj, result, user_data):
|
def _on_disconnect_result(self, obj, result, user_data):
|
||||||
if isinstance(result, Exception):
|
if isinstance(result, Exception):
|
||||||
logger.error(f'Disconnection failed: {result}')
|
self.logger.error(f'Disconnection failed: {result}')
|
||||||
|
|
||||||
def _on_properties_changed(self, obj, properties, invalidated_properties):
|
def _on_properties_changed(self, obj, properties, invalidated_properties):
|
||||||
properties = properties.unpack()
|
properties = properties.unpack()
|
||||||
|
|
||||||
if 'Connected' in properties:
|
if 'Connected' in properties:
|
||||||
if properties['Connected']:
|
if properties['Connected']:
|
||||||
logger.info('Connection established')
|
self.logger.info('Connection established')
|
||||||
else:
|
else:
|
||||||
logger.info('Disconnected')
|
self.logger.info('Disconnected')
|
||||||
self.emit('disconnected')
|
self.emit('disconnected')
|
||||||
if 'ServicesResolved' in properties:
|
if 'ServicesResolved' in properties:
|
||||||
if properties['ServicesResolved']:
|
if properties['ServicesResolved']:
|
||||||
|
|
Loading…
Reference in New Issue