Added
- Better feedback of communication errors to user in .NET backend and implementing error details proposed in #174.
- Two devices example file to use for e.g. debugging.
- Detection/discovery callbacks in Core Bluetooth backend
Scannerimplemented. - Characteristic handle printout in
service_explorer.py. - Added scanning filters to .NET backend's
discovermethod.
Changed
- Replace
NSRunLoopwith dispatch queue in Core Bluetooth backend. This causes callbacks to be dispatched on a background thread instead of on the main dispatch queue on the main thread.call_soon_threadsafe()is used to synchronize the events with the event loop where the central manager was created. Fixes #111. - The Central Manager is no longer global in the Core Bluetooth backend. A new one is created for each
BleakClientandBleakScanner. Fixes #206 and #105. - Merged #167 and reworked characteristics handling in Bleak. Implemented in all backends; bleak now uses the characteristics' handle to identify and keep track of them. Fixes #139 and #159 and allows connection for devices with multiple instances of the same characteristic UUIDs.
- In
requirements.txtandPipfile, the requirement onpythonnetwas bumped to version 2.5.1, which seems to solve issues described in #217 and #225. - Renamed
HISTORY.rsttoCHANGELOG.rstand adopted the Keep a Changelog format. - Python 3.5 support from macOS is officially removed since pyobjc>6 requires 3.6+
- Pin
pyobjcdependencies to use at least version 6.2. (PR #194) - Pin development requirement on
bump2versionto version 1.0.0 - Added
.pyup.ymlfor Pyup - Using CBManagerState constants from pyobj instead of integers.
Removed
- Removed documentation note about not using new event loops in Linux. This was fixed by #143.
_central_manager_delegate_readywas removed in macOS backend.- Removed the
bleak.backends.bluez.utils.get_gatt_service_pathmethod. It is not used by
bleak and possibly generates errors.
Fixed
- Improved handling of the txdbus connection to avoid hanging of disconnection clients in BlueZ backend. Fixes #216, #219 & #221.
- #150 hints at the device path not being possible to create as is done in the
get_device_object_pathmethod. Now, we try to get it from BlueZ first. Otherwise, use the old fallback. - Minor documentation errors corrected.
CBManagerStatePoweredOnis now properly handled in Core Bluetooth.- Device enumeration in
discoverandScannercorrected. Fixes #211 - Updated documentation about scanning filters.
- Handle missing
isScanningboolean on macOS < 10.13. Fixes #234.