Bluetooth Framework Changelog

What's new in Bluetooth Framework 7.17.11.0

Apr 10, 2024
  • C++ Edition: WinAPI definitions updated;
  • Compatibility update.

New in Bluetooth Framework 7.17.10.0 (Mar 22, 2024)

  • Fixed dead-lock issue when skThread synchronization used;
  • .NET Edition: wclOsVersion resource leak fixed;
  • .NET Edition: WinAPI calls optimization;
  • C++ Edition: internal API definitions updated to prevent from conflicts with WinAPI headers;
  • Compatibility update.

New in Bluetooth Framework 7.17.9.0 (Feb 2, 2024)

  • New error code: WCL_E_BLUETOOTH_OPEN_RADIO_INVALID_DRIVER;
  • New error code: WCL_E_BLUETOOTH_OPEN_RADIO_INVALID_PATH;
  • New error code: WCL_E_BLUETOOTH_OPEN_RADIO_ACCESS_DENIED;
  • New error code: WCL_E_BLUETOOTH_OPEN_RADIO_DEVICE_NOT_FOUND;
  • New error code: WCL_E_BLUETOOTH_OPEN_RADIO_IN_USE;
  • New error code: WCL_E_BLUETOOTH_OPEN_RADIO_INVALID_PARAM;
  • New error code: WCL_E_BLUETOOTH_OPEN_RADIO_INVALID_NAME;
  • New error code: WCL_E_BLUETOOTH_OPEN_RADIO_COUNT_LIMIT;
  • Extended error decoding when setting Bluetooth LE scan parameters;
  • Fixed bug when on some machines changing Bluetooth LE scan parameters returns WCL_E_BLUETOOTH_OPEN_RADIO_FAILED.

New in Bluetooth Framework 7.17.8.0 (Jan 18, 2024)

  • Bluetooth LE appearance constants updated;
  • Bluetooth LE GAP appearance UUID definitions;
  • Bluetooth LE GATT services UUID definitions;
  • Bluetooth LE GATT characteristics UUID definitions;
  • Bluetooth LE GATT descriptors UUID definitions;
  • BeaconsWatcher: Parsing TX Power advertisement frame parsing;
  • BeaconsWatcher: Appearance advertisement frame parsing.

New in Bluetooth Framework 7.17.7.0 (Dec 7, 2023)

  • AudioSwitcher: Get default audio device for given Role and Data Flow;
  • New error code: WCL_E_AUDIO_SWITCHER_GET_DEFAULT_DEVICE_FAILED;
  • New error code: WCL_E_AUDIO_SWITCHER_GET_DEVICE_ID_FAILED;
  • New error code: WCL_E_AUDIO_SWITCHER_DEFAULT_DEVICE_NOT_FOUND;
  • New demo shows how to connect to more than one GATT enabled device in UI app with threads;
  • VCL Edition: new data type SByte;
  • VCL Edition: wclBluetoothLeBeaconWatcher events declarations have been changed; ShortInt (Delphi) or char/signed char (CBuilder) data type changed to the new SByte data type;
  • VCL Edition: fixed not able assign wclBluetoothLeBeaconWatcher event handler in design time when Bluetooth Framework used with CBuilder.

New in Bluetooth Framework 7.17.6.0 (Nov 16, 2023)

  • Fixed bug with crash during enumerating remote Classic Bluetooth device services;
  • Fixed incorrect Mixed device type detection.

New in Bluetooth Framework 7.17.5.0 (Nov 6, 2023)

  • GattServer: fixed issue with not restarning Server after client disconnectiong;
  • GattServer: fixed issue when server does not restart advertising after client disconnectiong;
  • GattServer: fixed issue when re-connecting to server rejected after client disconnected;
  • GattServer: fixed issue with incorrect event orders;
  • GattClient: workaround for data sequence broken issue if data sent too often using notifications;
  • C++ Edition: fixed bug when BLE devices can not be discovered.

New in Bluetooth Framework 7.17.4.0 (Oct 23, 2023)

  • GattClient demo application updated for better show Bluetooth Framework GATT features;
  • wclBluetoothRadio: EnumPairedDevice now can return only LE or only Classic devices (or all);
  • Audio Switcher error codes changed (refer to Errors List);
  • .NET Edition: Audio Switcher error codes moved to wclAudioErrors class (wclAudio namespace);
  • Delphi: Audio Switcher error codes moved to wclAudioErrors.pas file;
  • CBuilder: Audio Switcher error codes moved to wclAudioErrors.hpp file;
  • C++ Edition: Audio Switcher error codes moved to wclAudioErrors.h file (wclAudio namespace);
  • Delphi: TwclAudioSwitcher class moved to wclAudio.pas file;
  • CBuilder: TwclAudioSwitcher class moved to wclAudio.hpp file;
  • .NET Edition: wclAudioSwitcher class moved to wclAudio namespace;
  • C++ Edition: CwclAudioSwitcher class moved to wclAudio.h file (wclAudio namespace);
  • Audio Switcher error codes changed;
  • Common Audio Framework error codes changed;
  • New class wclAudioMeter allows to monitor audio volume level;
  • New class wclAudioVolume allows to control audio volume;
  • New AudioVolume demo;
  • New error code: WCL_E_AUDIO_METER_GET_PEAK_VALUE_FAILED;
  • New error code: WCL_E_AUDIO_METER_CREATE_FAILED;
  • New error code: WCL_E_AUDIO_VOLUME_CREATE_FAILED;
  • New error code: WCL_E_AUDIO_VOLUME_GET_VOLUME_FAILED;
  • New error code: WCL_E_AUDIO_VOLUME_SET_VOLUME_FAILED;
  • New error code: WCL_E_AUDIO_VOLUME_GET_MUTE_FAILED;
  • New error code: WCL_E_AUDIO_VOLUME_SET_MUTE_FAILED.

New in Bluetooth Framework 7.17.3.0 (Oct 13, 2023)

  • Fixed issue with incorrect error (WCL_E_BLUETOOTH_LE_GATT_SERVER_START_FAILED) returned when starting GATT server if Bluetooth hardware does not support peripheral mode. Now it returns correct error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_PERIPHERAL_MODE_NOT_SUPPORTED;
  • AudioSwitcher: connect to and disconnect from Bluetooth enabled audio device by device address.

New in Bluetooth Framework 7.17.2.0 (Sep 26, 2023)

  • wclGattClient: fixed long disconnecting from paired device;
  • Minor changes in wclGattClient;
  • Minor GattClient demo update.

New in Bluetooth Framework 7.17.1.0 (Sep 16, 2023)

  • Microsoft: fixed bug when all BLE devices detected as Mixed;
  • wclBluetoothManager: fixed application crash bug when the Close method called twice;
  • BluetoothManager demo updated to show how to disable pairing handling by Bluetooth Framework;
  • GattClient demo updated to use HandlePairing feature;
  • GattClient demo updated to use MITM protection pairing feature;
  • GattClient demo updated to use IO Capabilities pairing feature;
  • .NET Edition: fixed issue with GattClient freezing during wclBluetoothManager closing;
  • Do not forget about out GitHub repository, you can find lot of demo code.

New in Bluetooth Framework 7.17.0.0 (Sep 5, 2023)

  • Microsoft: Device type reading code update for better device type detection;
  • VCL Edition: Fixed build issue with CBuilder demos;
  • Common Microsoft API definitions updated;
  • New error code: WCL_E_AUDIO_SWITCHER_CLOSED;
  • New error code: WCL_E_AUDIO_SWITCHER_OPENED;
  • New error code: WCL_E_AUDIO_SWITCHER_NOT_OPENED;
  • New error code: WCL_E_AUDIO_SWITCHER_COM_INIT_FAILED;
  • New error code: WCL_E_AUDIO_SWITCHER_CREATE_ENUMERATOR_FAILED;
  • New error code: WCL_E_AUDIO_SWITCHER_REGISTER_EVENT_FAILED;
  • New error code: WCL_E_AUDIO_SWITCHER_ENUM_ENDPOINTS_FAILED;
  • New error code: WCL_E_AUDIO_SWITCHER_GET_ENDPOIN_COUNT_FAILED;
  • New error code: WCL_E_AUDIO_SWITCHER_CREATE_CONFIGURATOR_FAILED;
  • New error code: WCL_E_AUDIO_SWITCHER_SET_DEFAULT_DEVICE_FAILED;
  • New error code: WCL_E_AUDIO_SWITCHER_FEATURE_NOT_SUPPORTED;
  • New error code: WCL_E_AUDIO_SWITCHER_DEVICE_NOT_FOUND;
  • New error code: WCL_E_AUDIO_SWITCHER_INVALID_DEVICE;
  • New error code: WCL_E_AUDIO_SWITCHER_DEVICE_CONNECTED;
  • New error code: WCL_E_AUDIO_SWITCHER_DEVICE_DISCONNECTED;
  • New error code: WCL_E_AUDIO_SWITCHER_CREATE_TOPOLOGY_FAILED;
  • New error code: WCL_E_AUDIO_SWITCHER_GET_CONNECTORS_COUNT_FAILED;
  • New error code: WCL_E_AUDIO_SWITCHER_CONNECT_FAILED;
  • New error code: WCL_E_AUDIO_SWITCHER_DISCONNECT_FAILED;
  • New error code: WCL_E_AUDIO_SWITCHER_NO_CONNECTORS_FOUND;
  • New wclAudioSwitcher class;
  • Enumerate Audio Devices;
  • Monitor Audio Device states;
  • Changing system default Audio Device;
  • Connect to already paired Bluetooth Audio Device;
  • Disconnect from connect Bluetooth Audio Device;
  • New AudioSwitcher demo application.

New in Bluetooth Framework 7.16.23.0 (Aug 29, 2023)

  • wclGattClient: new method FindService - helps to find a GATT service with a specified UUID;
  • wclGattClient: new method FindCharacteristic - helps to find a GATT characteristic with a specified UUID;
  • wclGattClient: optimization (some methods moved from wclGattClientConnection to wclGattClient);
  • GattClient demo application updated.

New in Bluetooth Framework 7.16.22.0 (Jul 27, 2023)

  • .NET Edition: Fixed bug in VB.NET GattServer demo app;
  • BLED112: Set discoverable property to True when BLE advertising is running;
  • Fixed issue when power events was not received on some systems;
  • New PowerEvents demo.

New in Bluetooth Framework 7.16.21.0 (Jun 17, 2023)

  • Enumerating installed services for the specified remote device;
  • Compatibility update.

New in Bluetooth Framework 7.16.20.0 (Apr 29, 2023)

  • .NET Edition: Fixed issue when GetRemoteRssi() always returns 4 instead of correct RSSI value;
  • Minor bug fixes;
  • Compatibility update.

New in Bluetooth Framework 7.16.19.0 (Apr 10, 2023)

  • GATT Client: OnConnectionPhyChanged event (Windows 11);
  • GATT Server: reading connection PHY (Windows 11);
  • GATT Server: reading connection parameters (Windows 11);
  • GATT Server: changing connection parameters (Windows 11);
  • GATT Server: connection parameters changed event (Windows 11);
  • GATT Server: connection PHY changed event (Windows 11);
  • GATT Server demo updated to show how to read connection parameters;
  • GATT Server demo updated to show how to read connection PHY;
  • WCL_E_BLUETOOTH_LE_GATT_SERVER_RESPONSE_ALREADY_SEND changed to WCL_E_BLUETOOTH_LE_GATT_SERVER_RESPONSE_ALREADY_SENT;
  • New error code: WCL_E_BLUETOOTH_LE_CLIENT_NOT_CONNECTED;
  • New error code: WCL_E_BLUETOOTH_LE_SUBSCRIBE_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_UNSUBSCRIBE_FAILED;
  • C++ Edition: fixed bug when Write Client Configuration Descriptor (Subscribe) failed on Windows 11;
  • .NET Edition: fixed freezing issue when closing console application that uses Bluetooth Framework;
  • .NET Edition: fixed bug when BLE devices was not discovered on Windows 10 IoT Core platform;
  • .NET Edition: fixed bug when not all BLE advertisements were captured on Windows 10 IoT Core platform.

New in Bluetooth Framework 7.16.18.0 (Mar 30, 2023)

  • new class wclGattLocalCharacteristicReadRequest: the class provides information about GATT server characteristic value read request and allows to respond to the request with data or with error code;
  • new class wclGattLocalCharacteristicWriteRequest: the class provides information about GATT server characteristic value write request and allows to receive data provided by a GATT client and to respond to the request with processing result if Write With Response operation executed;
  • wclGattLocalCharacteristicValue class removed;
  • GATT server OnRead even changed: now it takes the wclGattLocalCharacteristicReadRequest object as a Request parameter that provides more information about read operation and allows to control request processing;
  • GATT server OnRead even changed: the Value parameter removed;
  • GATT server OnWrite even changed: now it takes the wclGattLocalCharacteristicWriteRequest object as a Request parameter that provides more information about write operation and allows to control request processing;
  • GATT server OnWrite even changed: the Data and Size parameters removed;
  • GattServer demo updated to show how to work with Long Characteristic read and write operations;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_SEND_RESPONSE_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_WRITE_WITHOUT_RESPONSE;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_RESPONSE_ALREADY_SEND.

New in Bluetooth Framework 7.16.17.0 (Mar 22, 2023)

  • WCL_E_BLUETOOTH_LE_GET_ADV_PARAMS_FAILED error code removed;
  • WCL_E_BLUETOOTH_LE_RESET_ADV_PARAMS_FAILED error code removed;
  • New error code: WCL_E_BLUETOOTH_LE_NOTHING_ADVERTISE;
  • New error code: WCL_E_BLUETOOTH_LE_TOO_MANY_ADVERTISEMENTS;
  • wclBluetoothLeAdvertiser: Number of concurrent advertisements limited to 3 but with Microsoft it is better to have 2;
  • wclBluetoothLeAdvertiser: OnAdvertisingBegin event removed;
  • wclBluetoothLeAdvertiser: OnAdvertisingEnd event removed;
  • wclBluetoothLeAdvertiser: OnAdvertisingError event removed;
  • BLED112: Bluetooth LE advertisement reworked to make it more stable;
  • Microsoft: Bluetooth LE advertisement reworked to make it more stable;
  • Microsoft: fixed issue when MAC changed for each advertisement;
  • C++ Edition: code refactoring, use properties instead Get_ and Set_ methods.

New in Bluetooth Framework 7.16.16.0 (Mar 18, 2023)

  • wclBluetoothRadio: SetLeScanParams method removed;
  • wclBluetoothRadio: GetLeScanParams method removed;
  • wclBluetoothRadio: ResetLeScanParams method removed;
  • wclBluetoothRadio: SetLeAdvParams method removed;
  • wclBluetoothRadio: GetLeAdvParams method removed;
  • wclBluetoothRadio: ResetLeAdvParams method removed;
  • wclBluetoothLeBeaconWatcher: Start() method updated to take ScanInterval and ScanWindow parameters;
  • wclBluetoothLeAdvertiser: Start() method updated to take Interval parameter;
  • Advertisement interval changing temporary does not work with Microsoft drivers (only with BLED112);
  • Now changing scan parameters does not require administrative rights;
  • Now changing advertisement interval does not require administrative rights;
  • WCL_E_BLUETOOTH_LE_GET_SCAN_PARAMS_FAILED error code removed;
  • WCL_E_BLUETOOTH_LE_RESET_SCAN_PARAMS_FAILED error code removed;
  • New error code: WCL_E_BLUETOOTH_LE_CREATE_SCAN_PARAMS_SET_EVENT_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GET_ADV_PARAMS_FAILED;
  • New error code: WCL_E_BLUETOOTH_RADIO_INSTANCE_NOT_FOUND;
  • New error code: WCL_E_BLUETOOTH_OPEN_RADIO_FAILED.

New in Bluetooth Framework 7.16.15.0 (Mar 13, 2023)

  • wclBluetoothRadio: new property LeSupported;
  • wclBluetoothRadio: new property ClassicSupported;
  • wclBluetoothManager: Fixed issue if the OnStatusChanged event called before the AfterOpen event the Radio object passed to the OnStatusChanged event is not in the radios list;
  • wclBluetoothManager: Fixed issue if the OnStatusChanged event called after then BeforeClose event the Radio object passed to the OnStatusChanged event can be destroyed before OnClosed event.

New in Bluetooth Framework 7.16.14.0 (Feb 15, 2023)

  • Now Data Processors allow manual data flow management;
  • Minor update in WinAPI declarations (com0com class GUID);
  • OBEX: now you can provide custom maximum OBEX ppacket size.

New in Bluetooth Framework 7.16.13.0 (Feb 4, 2023)

  • BLE error codes re-encoding;
  • RfCommServer demo application updated to show how to make local Bluetooth radio Discoverable and Connectable;
  • OppServer demo application updated to show how to make local Bluetooth radio Discoverable and Connectable;
  • Minor fixes in OBEX OPP Server.

New in Bluetooth Framework 7.16.12.0 (Jan 16, 2023)

  • New GATT error decoding;
  • New error code: WCL_E_BLUETOOTH_LE_WRITE_WITHOUT_RESPONSE_NOT_SUPPORTED;
  • WriteCharacteristicValue method: new parameter WriteKind. It allows to control write operation (with/without response or auto mode). Tnstead of changing a characteristic's property use this parameter;
  • WriteClientConfiguration method: new parameter SubscribeKind. It allows to control how to subscribe to a value change notification (use notification or indication). Tnstead of changing a characteristic's property use this parameter;
  • Subscribe method: new parameter SubscribeKind. It allows to control how to subscribe to a value change notification (use notification or indication). Tnstead of changing a characteristic's property use this parameter;
  • Unsubscribe: new parameter SubscribeKind. It allows to control how to subscribe to a value change notification (use notification or indication). Tnstead of changing a characteristic's property use this parameter;
  • SubscribeForNotifications: new parameter SubscribeKind. It allows to control how to subscribe to a value change notification (use notification or indication). Tnstead of changing a characteristic's property use this parameter;
  • UnsubscribeFromNotifications: new parameter SubscribeKind. It allows to control how to subscribe to a value change notification (use notification or indication). Tnstead of changing a characteristic's property use this parameter;
  • wclGattLocalDescriptor new field ReadProtectionLevel. It allows to provide different from characteristic read protection level;
  • wclGattLocalDescriptor new field WriteProtectionLevel. It allows to provide different from characteristic write protection level.

New in Bluetooth Framework 7.16.11.0 (Dec 23, 2022)

  • .NET Edition: minor fixes in WCL Messaging subsystem;
  • .NET Edition: fixed bug in wclThread when OnSignal event not called.

New in Bluetooth Framework 7.16.10.0 (Dec 17, 2022)

  • wclBluetoothRadio: ClassicDiscoveringCheckPaired property removed;
  • wclBluetoothRadio: new IncludePaired parameter added in Discover() method (use this instead of ClassicDiscoveringCheckPaired property);
  • BLED112: get connection PHY;
  • BLED112: returns paired devices during discovering if requested (IncludePaired = true);
  • BlueSoleil: get connection PHY;
  • BlueSoleil: returns paired devices during discovering if requested (IncludePaired = true);
  • Microsoft: fixed problem with incorrect reading User Description descriptor when client is connected with Legacy GATT API;
  • Microsoft: returns paired BLE devices during discovering if requested (IncludePaired = true);
  • Microsoft: classic discovering reworked to work faster;
  • Toshiba: returns paired devices during discovering if requested (IncludePaired = true);
  • Code refactoring;
  • Added protection and synchronization for WinRT event handlers.

New in Bluetooth Framework 7.16.9.0 (Dec 6, 2022)

  • New error code: WCL_E_BLUETOOTH_LE_GET_CONNECTION_PHY_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GET_CONNECTION_TX_PHY_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GET_CONNECTION_RX_PHY_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GET_CONNECTION_PHY_VALUE_FAILED;
  • wclGattClient: reading connection PHY (Windows 11 and above);
  • wclIsUserAdmin reworked for IoT support.

New in Bluetooth Framework 7.16.8.0 (Nov 16, 2022)

  • Fixed reading Characteristic Aggregate Format descriptor;
  • New structure: wclGattCharacteristicAggregateFormat;
  • wclGattDescriptorValue: new CharacteristicAggregateFormat field;
  • Parsing Characteristic Aggregate Format descriptor;
  • New error code: WCL_E_BLUETOOTH_LE_INVALID_DESCRIPTOR_UUID;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_CREATE_DESCRIPTOR_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_ADD_DESCRIPTOR_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_SET_DESCRIPTOR_VALUE_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_SET_DESCRIPTOR_READ_PROTECTION_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_SET_DESCRIPTOR_WRITE_PROTECTION_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_GET_CREATE_DESCRIPTOR_RESULT_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_GET_CREATE_DESCRIPTOR_ERROR_FAILED;
  • Gatt Server: custom descriptors;
  • Fixed problem with reading Characteristic Presentation Format descriptor in case there are more than one such descriptor;
  • Fixed problem with reading some descriptors when the descriptor's data length is 0.

New in Bluetooth Framework 7.16.7.0 (Nov 9, 2022)

  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_SET_DESCRIPTION_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_GET_FORMATS_LIST_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_CREATE_FORMAT_STATICS_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_CREATE_FORMAT_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_ADD_FORMAT_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GET_USER_DESCRIPTION_FAILED;
  • New data type: wclGattPresentationFormat;
  • New data type: wclGattCharactertisticUserDescription;
  • The wclGattCharacteristicFormat structure changed: the Format field data type changed from Byte to wclGattPresentationFormat;
  • The wclGattCharacteristicFormat structure changed: the AUnit field data type changed from wclGattUuuid to UInt16;
  • The wclGattCharacteristicFormat structure changed: the Description field data type changed from wclGattUuuid to UInt16;
  • The wclGattDescriptorValue structure: UserDescription field added;
  • GATT client: WriteDescriptorValue() checks the descriptor type;
  • GATT client: BLED112 implementation now can write custom descriptors;
  • GATT client: decoding user description descriptor's value;
  • GATT server: characteristic user description descriptor;
  • GATT server: characteristic presentation format descriptors;
  • New Unity demos (native support for .NET Edition);
  • Compatibility update.

New in Bluetooth Framework 7.16.6.0 (Oct 23, 2022)

  • Fixed issue with incorrect discovering termination (dead-lock issue);
  • RemoteUnpair: new Method parameter added. It allows to force LE or Classic unpair (or leave it with default Auto value for automatic device type detection);
  • RemoteUnpair: new Force parameter added. It allows to disable device pairing state and force unpairing;
  • EnumRemoteServices returns WCL_E_BLUETOOTH_INVALID_DEVICE_TYPE if called for BLE device;
  • GetRemoteCod returns WCL_E_BLUETOOTH_INVALID_DEVICE_TYPE if called for BLE device;
  • .NET Edition Python demos.

New in Bluetooth Framework 7.16.5.0 (Oct 9, 2022)

  • New error code: WCL_E_BLUETOOTH_LE_GATT_CLIENT_SET_DISCONNECT_EVENT_HANDLER_FAILED;
  • GattServer: client disconnection;
  • Microsoft: disconnect any Bluetooth LE devices by its MAC;
  • Microsoft: AuthenticationCompleted event fires with WCL_E_BLUETOOTH_LE_ALREADY_PAIRED instead of WCL_E_SUCCESS if device was already paired;
  • Microsoft: turning radio off/on independent of OS bits;
  • wclGattClient: minor changes in legacy GATT connection pairing (in case of ForceNotifications used);
  • wclGattClient: no AuthenticationCompelted event fires in case if device is already paired and ForceNotifications used;
  • wclGattClient: disconnect detection when leagcy GATT API or ForceNotifications used;
  • .NET Edition: fixed problem with disconnecting from GATT device when using Microsotf Bluetooth drivers;
  • IoT demos: updated to show how to use RemoteDisconnect() method;
  • IoT demos: updated to show how to use EnumConnectedDevices() method.

New in Bluetooth Framework 7.16.4.0 (Oct 5, 2022)

  • Enumerating connected devices;
  • C++ Edition: fixed building issue;
  • .NET Edition: new WinAPI error codes definitions in wclCommon assembly;
  • wclCommon: fixed problem with blocking on loading and unloading Configuration Manager API.

New in Bluetooth Framework 7.16.3.0 (Sep 14, 2022)

  • New error code: WCL_E_BLUETOOTH_LE_AUTH_UNKNOWN;
  • New error code: WCL_E_BLUETOOTH_PAIRING_HANDLED_BY_SYSTEM;
  • LE pairing error decoding updated;
  • Refactoring LE pairing code;
  • WclBluetoothRadio: new "Manager" property. Returns the wclBluetoothManager object that owns the Radio;
  • WclBluetoothRadio: event handling by wclBluetoothManager has been reworked;
  • WclBluetoothRadio: virtual event management methods declaration changed (internal usage);
  • WclBluetoothManager: new "HandlePairing" property. If set to False the Bluetooth Framework pairing and pairing events handling will be disabled;
  • WclBluetoothManager: Open method takes new "HandlePairing" parameter that allows to control Bluetooth Framework pairing;
  • .NET Edition: fixed local radio name changing issue.

New in Bluetooth Framework 7.16.2.0 (Sep 6, 2022)

  • New error code: WCL_E_BLED112_PAIR_DURING_CONNECT;
  • wclBluetoothleProtectionLevel type renamed to wclBluetoothLeProtectionLevel;
  • BLED112 pairing procedure has been reworked;
  • Fixed Windows IoT Core detection issue.

New in Bluetooth Framework 7.16.1.0 (Aug 25, 2022)

  • Lazarus: minor fixes in data types;
  • .NET Edition: memory leak fixed;
  • BLE Sniffer: parsing advertisement PDUs.

New in Bluetooth Framework 7.16.0.0 (Aug 15, 2022)

  • New error code: WCL_E_WINUSB_DEVICE_OPENED;
  • New error code: WCL_E_WINUSB_DEVICE_CLOSED;
  • New error code: WCL_E_WINUSB_DEVICE_NOT_OPENED;
  • New error code: WCL_E_WINUSB_OPEN_DEVICE_FAILED;
  • New error code: WCL_E_WINUSB_INIT_DEVICE_FAILED;
  • New error code: WCL_E_WINUSB_CONTROL_TRANSFER_FAILED;
  • New error code: WCL_E_WINUSB_READ_PIPE_FAILED;
  • WclCommon: New wclWinUsbDevice class;
  • .NET Edition: wclCommon version changed (7.9.0.0);
  • New error code: WCL_E_BLE_SNIFFER_ACTIVE;
  • New error code: WCL_E_BLE_SNIFFER_NOT_ACTIVE;
  • New error code: WCL_E_BLE_SNIFFER_CREATE_INIT_EVENT_FAILED;
  • New error code: WCL_E_BLE_SNIFFER_CREATE_TERM_EVENT_FAILED;
  • New error code: WCL_E_BLE_SNIFFER_START_THREAD_FAILED;
  • New error code: WCL_E_BLE_SNIFFER_CC2540_DEVICE_NOT_FOUND;
  • New error code: WCL_E_BLE_SNIFFER_GET_IDENT_FAILED;
  • New error code: WCL_E_BLE_SNIFFER_SET_POWER_FAILED;
  • New error code: WCL_E_BLE_SNIFFER_GET_POWER_FAILED;
  • New error code: WCL_E_BLE_SNIFFER_SET_CHANNEL_FAILED;
  • New error code: WCL_E_BLE_SNIFFER_START_CAPTURE_FAILED;
  • Bluetooth LE Sniffer (using CC2540 USB dongle);
  • VCL Edition: Building CBuilder XE2 projects issue fixed;
  • New BleSniffer demo application.

New in Bluetooth Framework 7.15.1.0 (Jul 20, 2022)

  • wclCommon version changed;
  • wclCommon: new Win API added;
  • wclCommon: new helper classes;
  • wclCommunication version changed;
  • C++ Edition: fixed memory leak in CwclWrtGattSessionMaxPduSizeChanged class;
  • C++ Edition: fixed memory leak in CwclBluetoothLECustomPreferredConnectionParameters class;
  • C++ Edition: IUnknown helper templates;
  • C++ Edition: IInspectable helper templates.

New in Bluetooth Framework 7.15.0.0 (Jun 22, 2022)

  • GATT server: reading maximum PDU size;
  • GATT server: maximum PDU size change notification.

New in Bluetooth Framework 7.14.3.0 (Jun 5, 2022)

  • Low-level API functions updated;
  • Calls to Configuration Manager API reworked;
  • New error code: WCL_E_CFGMGR_LOAD_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_SET_DISCONNECT_EVENT_HANDLER_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_CLIENT_NOT_SUBSCRIBED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_CLIENT_GET_MAX_NOTIFICATION_SIZE_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GET_MAX_PDU_SIZE_FAILED;
  • wclGattClient: Maximum PDU size reading;
  • wclGattClient: Maximum PDU size changing event;
  • New class wclGattServerClient that represents a client connected to the GATT server;
  • wclGattLocalCharacteristic: GetSubscribedClients() method removed, use Clients property instead;
  • wclGattLocalCharacteristic: new property Count - returns subscribed clients count;
  • wclGattLocalCharacteristic: new property Clients - returns subscribed clients objects;
  • wclGattServer: WriteRequest response with error in case if error appeared during request processing;
  • wclGattServer: ReadRequest response with error in case if error appeared during request processing;
  • wclGattServer: DoRead method changed, now instead of Address it receives the wclGattServerClient object;
  • wclGattServer: DoWrite method changed, now instead of Address it receives the wclGattServerClient object;
  • wclGattServer: DoClientSubscribed method changed, now instead of Address it receives the wclGattServerClient object;
  • wclGattServer: DoClientUnsubscribed method changed, now instead of Address it receives the wclGattServerClient object;
  • wclGattServer: New method DoClientConnected();
  • wclGattServer: New method DoClientDisconnected();
  • wclGattServer: OnRead event changed, now instead of Address it receives the wclGattServerClient object;
  • wclGattServer: OnWrite event changed, now instead of Address it receives the wclGattServerClient object;
  • wclGattServer: OnClientSubscribed event changed, now instead of Address it receives the wclGattServerClient object;
  • wclGattServer: OnClientUnsubscribed event changed, now instead of Address it receives the wclGattServerClient object;
  • wclGattServer: New property Clients - the connected clients list;
  • wclGattServer: New property ClientsCount - the connected clients count;
  • wclGattServer: New OnClientConnected event;
  • wclGattServer: New OnClientDisconnected event;
  • wclGattServer: Client connection simulation. The event fires when client reads, writes or subscribes;
  • wclGattServer: Client disconnection detection;
  • wclGattServer: maximum notification size change event;
  • wclGattServer .NET Edition: this[] property has been removed. Use Services() method instead;
  • wclGattServerClient: reading maximum notification size for subscribed clients;
  • WCL compatibility update.

New in Bluetooth Framework 7.14.2.0 (Mar 30, 2022)

  • BLED112: Fixed WCL_E_BLED112_WRONG_STATE error appears during second connection attempt if the first one was timedout;
  • BLED112: Fixed freezing issue if GattClient::Disconnect() called when connection is pending;
  • Documentation has been update.

New in Bluetooth Framework 7.14.1.1 (Mar 20, 2022)

  • VCL Edition: HANDLE data type has been removed.;
  • VCL Edition: Free Pascal/Lazarus support More details.

New in Bluetooth Framework 7.14.1.0 (Feb 23, 2022)

  • wclWinAPI unit updated with HSTRING iterator class;
  • wclWinAPI unit updated with IShortReference interface implementation;
  • wclWinAPI unit updated with IUInt32Reference interface implementation;
  • wclCommon version changed (7.7.3.0). If you use few frameworks make sure wclCommon has the same version;
  • New error code: WCL_E_BLUETOOTH_LE_EXT_ADV_NOT_SUPPORTED;
  • New error code: WCL_E_BLUETOOTH_LE_SET_EXT_ADV_FAILED;
  • GATT Client: setting BLE connection parameters by values;
  • Bluetooth LE Advertiser: extended advertisement format;
  • Bluetooth LE Beacon watcher: fixed issue with not capturing extended advertisement format frames.

New in Bluetooth Framework 7.14.0.0 (Feb 17, 2022)

  • New error code: WCL_E_BLUETOOTH_CLASSIC_RADIO_UNAVAILABLE;
  • New error code: WCL_E_BLUETOOTH_LE_RADIO_UNAVAILABLE;
  • New error code: WCL_E_BLUETOOTH_LE_GET_CONNECTION_PARAMS_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_INVALID_CONNECTION_PARAMS;
  • New error code: WCL_E_BLUETOOTH_LE_SET_CONNECTION_PARAMS_FAILED;
  • Fixed problem with getting error 0x00051043 (WCL_E_BLUETOOTH_LE_MANUAL_PAIRING_REQUIRED) when connecting to GATT enabled device on Windows 11 with ForceNotifications flag;
  • GATT Client: reading current connection parameters (Link Timeout, Connection iIterval, Connection Latency). Supported with BLED112 on any Windows platform and with Microsoft Bluetooth driver on Windows 11 and above;
  • GATT Client: new OnConnectionParamsChanged event. The event fires when the current connection parameters were changed. Supported with BLED112 on any Windows platform and with Microsoft Bluetooth driver on Windows 11 and above;
  • GATT Client: changing connection parameters. Supported with BLED112 on any Windows platform and with Microsoft Bluetooth driver on Windows 11 and above.

New in Bluetooth Framework 7.13.7.0 (Feb 7, 2022)

  • wclBluetoothLeBeaconWatcher: new OnAdvertisementReceived event. The event allows to handle unparsed advertisement packets;
  • new wclBluetoothLeRawAdvertisement class that allows to build custom advertisement packets;
  • fixed problem with reading GATT characteristic value handle with Microsoft Bluetooth driver;
  • BLED112: fixed problem with writing descriptor value (value was not written) on some devices.

New in Bluetooth Framework 7.13.6.0 (Jan 18, 2022)

  • C++ Edition: fixed bug when Bluetooth Framework crashes on Radio.Open() call with Toshiba Bluetooth driver;
  • new wclBluetoothRadio.RemoteDisconnect() method. The method allows to force disconnection of any connected remote Bluetooth enabled device even if a device is connected by other application or by the system.

New in Bluetooth Framework 7.13.5.0 (Jan 1, 2022)

  • new error code: WCL_E_BLUETOOTH_LE_SUBSCRIPTION_ACTIVE;
  • WCL_E_BLUETOOTH_LE_RELIABLE_WRITE_ACTIVE error code removed;
  • WCL_E_BLUETOOTH_LE_RELIABLE_WRITE_NOT_ACTIVE error code removed;
  • Error code WCL_E_BLUETOOTH_LE_ACCESS_DENIED changed to 0x00051017;
  • Fixed invalid error code returned when long characteristic value is writing using Microsoft legacy GATT API;
  • AbortReliableWrite, BeginReliableWrite and EndReliableWrite methods were removed.

New in Bluetooth Framework 7.13.4.0 (Dec 6, 2021)

  • Fixed issue with OS build number reading on Win 10 19041 and above (including Win 11);
  • wclThread: fixed "The event can not be NULL." exception when calling Synchronize() method;
  • New error code: WCL_E_BLUETOOTH_LE_ACCESS_DENIED;
  • GATT operation returns WCL_E_BLUETOOTH_LE_ACCESS_DENIED instead of WCL_E_BLUETOOTH_LE_AUTH_ACCESS_DENIED to separate two different situations;
  • Minor errors decoding fixes in the WriteCharacteristicValue function;
  • Minor errors decoding fixes in the ReadCharacteristicValue function;
  • Fixed potential deadlock in OnDiscoveringCompleted() event handler when it called after Terminate() call.

New in Bluetooth Framework 7.13.3.0 (Nov 26, 2021)

  • New error code: WCL_E_THREAD_UNABLE_CREATE_THREAD_SYNC_EVENT;
  • wclThread: new Synchronize() method that allows to execute code in the main thread;
  • wclThread: new OnSynchronize() method that will always be executed in the main thread in response to the Synchronize() call;
  • C++ Edition: Visual Studio 2022 support;
  • C++ Edition: ARM64EC support with Visual Studio 2022;
  • C++ Edition: IoT demo for Visual Studio 2019;
  • C++ Edition: IoT demo for Visual Studio 2022.

New in Bluetooth Framework 7.13.2.0 (Nov 18, 2021)

  • Bluetooth Framework found 100% compatible with Windows 11;
  • Critical bug fixed in wclRfCommServer when the server freezes on Listen() call.
  • wclGattClient: new ForceNotifications property added. This property helps to resolve the characteristic value changes notification not fires issue appeared with some boards (Bluno, Bluno Mega, etc.) that do not have Client Configuration Descriptor for a notifiable/indicatable characteristic. Setting this property to true before connection helps to avoid this problem;
  • BLED112: Correct processing goReadFromCache flag;
  • BLED112: Characteristic value caching;
  • C++ Edition: ARM64 build added for Visual Studio 2017;
  • C++ Edition: ARM build added for Visual Studio 2019;
  • C++ Edition: ARM64 build added for Visual Studio 2019;
  • C++ Edition: Visual Studio 2019 Demos updated with ARM and ARM64 builds;
  • C++ Edition: Bluetooth Framework found 100% compatible with Windows 10 and Windows 11 for ARM (requires Visual Studio 2017 or 2019);
  • .NET Edition: Bluetooth Framework found 100% compatible with Windows 10 and Windows 11 for ARM.

New in Bluetooth Framework 7.13.1.0 (Nov 17, 2021)

  • Bluetooth Framework found 100% compatible with Windows 11;
  • WclGattClient: new ForceNotifications property added. This property helps to resolve the characteristic value changes notification not fires issue appeared with some boards (Bluno, Bluno Mega, etc.) that do not have Client Configuration Descriptor for a notifiable/indicatable characteristic. Setting this property to true before connection helps to avoid this problem;
  • BLED112: Correct processing goReadFromCache flag;
  • BLED112: Characteristic value caching;
  • C++ Edition: ARM64 build added for Visual Studio 2017;
  • C++ Edition: ARM build added for Visual Studio 2019;
  • C++ Edition: ARM64 build added for Visual Studio 2019;
  • C++ Edition: Visual Studio 2019 Demos updated with ARM and ARM64 builds;
  • C++ Edition: Bluetooth Framework found 100% compatible with Windows 10 and Windows 11 for ARM (requires Visual Studio 2017 or 2019);
  • .NET Edition: Bluetooth Framework found 100% compatible with Windows 10 and Windows 11 for ARM.

New in Bluetooth Framework 7.13.0.0 (Oct 22, 2021)

  • Bluetooth Framework is now completely thread-safe;
  • skThread synchronization method is now safe to use;
  • New wclUserDefinedCategoryMessage messages class;
  • The Signal() method back to the wclThread class;
  • The OnSignal() event back to the wclThread class;
  • new Wait() methods for multiple handles added to the wclMessageBroadcaster class;
  • OBEX server: fixed issue when reject reason description not send to a client;
  • OBEX C++ Edition: the wclObexAppParams data type removed;
  • OBEX C++ Edition: all methods and events that use wclObexAppParams data type changed to increase the data processing speed;
  • .NET Edition: .NET Core version now targets .NET Core 3.1;
  • .NET Edition: IoT demos moved to Visual Studio 2019;
  • .NET Edition: build configurations updated;
  • C++ Edition: the wclGattCharacteristicValue data type removed;
  • C++ Edition: all methods and events that use wclGattCharacteristicValue data type changed to increases the data processing speed;
  • C++ Edition: tstring now defined as type, not as macro;
  • C++ Edition: the methods and events declarations reworked to follow safe code writing requirements;
  • C++ Edition: Bluetooth Framework now passes the W4 warning level;
  • VCL Edition: RAD Studio 11 Alexandria support.

New in Bluetooth Framework 7.12.1.0 (Sep 10, 2021)

  • Beacons demo updated to show how to build different Bluetooth LE advertisements list;
  • wclBluetoothLeAdvertiser: allows to change an advertising data on-the-fly;
  • wclBluetoothLeAdvertiser: new Multiplier property. This property allows to control Bluetooth LE advertising time;
  • wclBluetoothLeAdvertiser: new OnAdvertisingBegin event;
  • wclBluetoothLeAdvertiser: new OnAdvertisingEnd event;
  • wclBluetoothLeAdvertiser: new OnAdvertisingError event;
  • New wclBluetoothLe16ServiceAdvertisement advertisement class (LE_GAP_AD_TYPE_SERVICES_16_ALL);
  • New wclBluetoothLe16ServiceDataAdvertisement advertisement class (LE_GAP_AD_TYPE_SERVICE_DATA_16);
  • New wclBluetoothLe32ServiceAdvertisement advertisement class (LE_GAP_AD_TYPE_SERVICES_32_ALL);
  • New wclBluetoothLe32ServiceDataAdvertisement advertisement class (LE_GAP_AD_TYPE_SERVICE_DATA_32);
  • New wclBluetoothLe128ServiceAdvertisement advertisement class (LE_GAP_AD_TYPE_SERVICES_128_ALL);
  • New wclBluetoothLe128ServiceDataAdvertisement advertisement class (LE_GAP_AD_TYPE_SERVICE_DATA_128);
  • BLED112: fixed advertisement frame building;
  • New error code: WCL_E_BLUETOOTH_LE_INIT_ADVERTISEMENT_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_UNSUPPORTED_ADVERTISEMENT_TYPE;
  • New error code: WCL_E_BLUETOOTH_LE_INVALID_ADVERTISEMENT_FORMAT;
  • Allowed Bluetooth LE Advertisement Types List has been updated.

New in Bluetooth Framework 7.12.0.0 (Aug 31, 2021)

  • Unused error codes were removed;
  • Bluetooth LE advertising has been redesigned:
  • Now instead of using few separate classes that represent just a single LE advertisement Bluetooth Framework now includes the single wclBluetoothLeAdvertiser class. This new class allows to advertise more than single advertisement. For example your application can advertise iBeacon and custom advertisement frames at the same time. For more details refer to Beacons demo application.

New in Bluetooth Framework 7.11.5.0 (Aug 24, 2021)

  • New error code: WCL_E_BLUETOOTH_LE_WRITE_VALUE_TOO_LONG;
  • BlueSoleil GATT: fixed issue when only part of long characteristic value was written;
  • WriteCharacteristicValue() reworked to return WCL_E_BLUETOOTH_LE_WRITE_VALUE_TOO_LONG when value is too long. For more details check WCL_E_BLUETOOTH_LE_WRITE_VALUE_TOO_LONG error description;
  • GattClient demo updated to show how to use SubscribeForNotifications() and UnsubscribeFromNotifications() method for fast characteristic changes notification subscribing and unsubscribing.

New in Bluetooth Framework 7.11.4.0 (Aug 19, 2021)

  • New error code: WCL_E_BLUETOOTH_LE_UNLIKELY;
  • Extended GATT errors decoding.

New in Bluetooth Framework 7.11.3.0 (Aug 12, 2021)

  • New error code: WCL_E_BLUETOOTH_ADMIN_RIGHTS_REQUIRED;
  • Microsoft Bluetooth driver on Windows XP: changing local radio name;
  • Microsoft Bluetooth driver on Windows XP: reading HCI and LMP versions;
  • Microsoft Bluetooth driver on Windows XP: reading local Radio Class Of Device (COD).

New in Bluetooth Framework 7.11.2.0 (Aug 7, 2021)

  • WinXP compatibility update.

New in Bluetooth Framework 7.11.1.0 (Jul 29, 2021)

  • New error code: WCL_E_BLED112_INVALID_RESPONSE_SIZE;
  • wclBluetoothManager Open() method updated to control used Bluetooth APIs;
  • BLED112: additional checking of the received data to prevent crashes when used with modified or custom BLED112 firmwares.

New in Bluetooth Framework 7.11.0.0 (Jul 14, 2021)

  • OBEX GET has been implemented for Object Push Server;
  • VCL Edition: fixed minor issues in the demo applications.

New in Bluetooth Framework 7.10.20.0 (Jul 7, 2021)

  • GattClient: new method SubscribeForNotifications. The method encapsulates calls to 2 methods: Subscribe() and WriteClientConfiguration();
  • GattClient: new method UnsubscribeFromNotifications. The method encapsulates calls to 2 methods: Unsubscribe() and WriteClientConfiguration();
  • New error code: WCL_E_BLUETOOTH_INVALID_PAIRING_METHOD;
  • RemotePair() method now allows to force LE or Classic pairing;
  • GattClient demo app updated to force LE pairing;
  • RfCommClient updated by adding manual pairing feature;
  • BluetoothManager demo app updated to show how to use different pairing methods (Auto, Classic, LE).

New in Bluetooth Framework 7.10.19.0 (Jun 11, 2021)

  • Fixed issue when BLE devices can be found during Classic discovering;
  • Fixed issue with duplicate devices found during Classic discovering;
  • GattClient demo application updated to show how to handle WCL exceptions;
  • wclBluetooth Radio new property ClassicDiscoveringCheckPaired.

New in Bluetooth Framework 7.10.18.0 (Jun 5, 2021)

  • BLED112: changing scanning mode (Active/Passive) for BeaconWatcher class;
  • ErrorToText demo application updated;
  • New function GetLeRadio() in wclBluetoothRadio class, the function helps to find available Radio object that supports BLE features;
  • New function GetClassicRadio() in wclBluetoothRadio class, the function helps to find available Radio object that supports Classic Bluetooth features;
  • Demo applications have been updated to use GetClassicRadio() and GetLeRadio() methods;
  • GattClient demo application updated to include Pairing capabilities (addressed the issue shown in this code).

New in Bluetooth Framework 7.10.17.0 (May 21, 2021)

  • wclGetErrorInfo() function now can work with local errors.xml file;
  • Fixed incorrect returning value in wclMessageBroadcaster.ProcessMessages() method;
  • .NET Edition: wclhelpers.SleepEx() function has been removed, use wclMessageProadcaser.ProcessMessages() method instead;
  • .NET Edition: wclhelpers.WaitEx() function has been removed, use wclMessageProadcaster.Wait() method instead;
  • New method wclMessageBroadcaster.Wait();
  • New error code: WCL_E_MB_INVALID_SYNC_METHOD;
  • New error code: WCL_E_MB_WAIT_TIMEOUT;
  • New error code: WCL_E_MB_WAIT_FAILED.

New in Bluetooth Framework 7.10.16.0 (May 10, 2021)

  • New error code: WCL_E_BLUETOOTH_LE_REMOTE_DEVICE_DISCONNECTS;
  • When a remote GATT enabled device disconnects the WCL_E_BLUETOOTH_LE_REMOTE_DEVICE_DISCONNECTS error passed to the OnDisconnect() event;
  • BlueSoleil: correct processing GATT peripheral disconnection.

New in Bluetooth Framework 7.10.15.0 (May 1, 2021)

  • BLED112: remote device pairing;
  • BLED112: fixed issue when the OnAuthenticationCompleted event fires twice during pairing with BLE device;
  • BlueSoleil: fixed issue when the OnAuthenticationCompleted event fires twice during pairing with BLE device;
  • GattClient demo updated to handle OnAuthenticationCompleted event;
  • New demo applications for GattClient that show how to pair with remote device during connection.

New in Bluetooth Framework 7.10.14.0 (Apr 24, 2021)

  • BLE GATT better connection error decoding;
  • C++ Edition: Enumerating paired BLE devices bug fixed;
  • VCL Edition: BLED112 bonded devices enumeration bug fixed.

New in Bluetooth Framework 7.10.13.0 (Apr 18, 2021)

  • New error code: WCL_E_BLED112_SET_QUEUE_SIZE_FAILED;
  • New error code: WCL_E_BLED112_SET_TIMEOUTS_FAILED;
  • New error code: WCL_E_BLED112_SET_BAUD_RATE_FAILED;
  • New error code: WCL_E_BLED112_SET_DTR_FAILED;
  • New error code: WCL_E_BLED112_SET_LINE_CONTROL_FAILED;
  • New error code: WCL_E_BLED112_SET_CHARS_FAILED;
  • New error code: WCL_E_BLED112_SET_HANDFLOW_FAILED;
  • Fixed issue when BLED112 dongle can not be used after its port was opened (used) by other application or by SerialClient (Serial Framework);
  • Compatibility update:
  • IrDA Framework 7.6.9.0;
  • Serial Framework 7.5.9.0;
  • Timeline Framework 7.0.18.0;
  • WiFI Framework 7.8.13.0.

New in Bluetooth Framework 7.10.12.0 (Apr 5, 2021)

  • BeaconWatcher: List of 16-bit Service Solicitation UUID parser;
  • BeaconWatcher: List of 32-bit Service Solicitation UUID parser;
  • BeaconWatcher: List of 128-bit Service Solicitation UUID parser;
  • New error code: WCL_E_BLUETOOTH_LE_ADVERTISING_UNBALE_CREATE_SHARED_EVENT;
  • Bluetooth LE advertisers code improved.

New in Bluetooth Framework 7.10.11.0 (Mar 16, 2021)

  • BeaconWatcher: service data advertisement parser;
  • BeaconWatcher: known beacons parser reworked;
  • C++ Edition: fixed A/V when closing Bluetooth Manager with BLED112 dongle.

New in Bluetooth Framework 7.10.10.0 (Mar 8, 2021)

  • BLED112: fixed communication problems in busy environment;
  • BLED112: fixed memory leak in C++ Edition;
  • BLED112: LE devices discovering speed improved;
  • BLED112: fixed WCL_E_BLUETOOTH_LE_DEVICE_NOT_DISCOVERED error when connecting to just found GATT device.

New in Bluetooth Framework 7.10.9.0 (Feb 28, 2021)

  • Fixed bug in Beacons Watcher when it returns Monitoring "false" inside OnStarted event handler;
  • Fixed issue with reading some properties of wclRfCommClient class;
  • Fixed issue with reading some properties of wclRfCommServer class;
  • Fixed issue with reading some properties of wclGattClient class;
  • Fixed issue with reading some properties of wclGattService class.

New in Bluetooth Framework 7.10.8.0 (Feb 16, 2021)

  • Synchronization method skDefault has been renamed to skMessages;
  • Synchronization method skNone has been removed;
  • New synchronization method has been added skThread: with this synchronization method all events fire in a separately running internal thread;
  • The wclThread class has been moved from wclMessaging to a separate (wclThread) source file;
  • The wclThread class now supports skThread and skApc synchronization;
  • The Signal() method has been removed from the wclThread class;
  • The OnSignal() method has been removed from the wclThread class;
  • The wclPowerEventsMonitor class has been moved from wclMessaging to a separate (wclPowerEvents) source file;
  • WCL_E_THREAD_SIGNAL_FAILED error code has been removed;
  • New error code: WCL_E_THREAD_INVALID_SYNCHRONIZATION;
  • New error code: WCL_E_THREAD_UNABLE_CREATE_THREAD_TERM_EVENT;
  • C++ Edition: demo applications build issue has been fixed.

New in Bluetooth Framework 7.10.7.0 (Jan 18, 2021)

  • Fixed memory leak in BLED112 enumeration procedure;
  • C++ Edition: Fixed VS 2005 compiling issue.

New in Bluetooth Framework 7.10.6.0 (Dec 20, 2020)

  • Fixed issue when on Windows 7 OnDiscoveringStarted event can be received after first OnDeviceFound;
  • Fixed issue when OnDiscoveringCompleted event can be received without OnDiscoveringStarted;
  • BLED112: fixed issue when module disconnection was not detected on Windows 7;
  • BLED112: fixed issue when discovering has not been terminated when module is unplugged.

New in Bluetooth Framework 7.10.5.0 (Dec 12, 2020)

  • New error codes;
  • Better detection and reporting about driver or hardware unsupported features;
  • Error decoding updated;
  • Fixed A/V (NullReferenceException) when stopping LE advertising in Iot or Console application with skApc synchronization;
  • ApcSync demo application was removed;
  • Console demo application was updated to use skApc (APC synchronization);
  • IoT demo applications have been reworked to use APC synchronization;
  • skNone synchronization type is now depricated and will be removed soon, use APC instead;
  • BLED112: additional maximum available connections control;
  • BLED112: fixed issue when unable to re-connect to a GATT device after timeout;
  • BLED112: fixed "no service found" issue when an application reads services right after connection established;
  • VCL Edition: minor fixes in CBuilder demo applications;
  • .NET Edition: fixed bug with RtlZeroMemory not found;
  • .NET Edition: fixed .NET Core bug when calling to CopyMemory;
  • .NET Edition: fixed WCL_E_BLUETOOTH_DISCOVERING_TERMINATED error reporting when discovering completed with success with BLED112 dongle;
  • .NET Edition: fixed NullReferenceException when starting CustomBeacon with empty Data property with BLED112 dongle.

New in Bluetooth Framework 7.10.4.0 (Dec 2, 2020)

  • New error codes;
  • Fixed bug when classic device pairing handled by Windows 10 Add Bluetooth Device UI;
  • Better processing of pairing errors.

New in Bluetooth Framework 7.10.3.0 (Nov 26, 2020)

  • New error codes;
  • LE Advertising now protected by Mutex that prevents from running more than single LE advertiser;
  • Checking LE advertisement data length;
  • Checking LE advertisement data type;
  • Microsoft classic pairing has been reworked for faster processing authentication fails;
  • Microsoft classic pairing updated for correct processing parallel pairing requests;
  • BLED112: fixed issue with not all UUID frames were parsered by the BeaconWatcher;
  • BLED112: Proximity Beacon advertising;
  • BLED112: Eddystone UID beacon advertising;
  • BLED112: Eddystone URL beacon advertising;
  • BLED112: AltBeacon advertising;
  • BLED112: custom beacon advertising.

New in Bluetooth Framework 7.10.2.0 (Nov 21, 2020)

  • Detecting new plugged BLED112 modules;
  • wclBluetoothManager: new OnClosed event;
  • New error codes;
  • Fixed issue with pairing (Microsoft Bluetooth drivers) blocks without any event firing;
  • .NET Edition: fixed IndexOutOfRange exception when enumerating paired devices.

New in Bluetooth Framework 7.10.1.0 (Nov 17, 2020)

  • BLED112: fixed issue with discovering terminated after connecting to device;
  • BLED112: fixed issue with device keeps discovering after disconnecting;
  • BLED112: fixed issue with writing empty characteristic values;
  • BLED112: fixed issue with blocking wclBluetoothManager.Open() method;
  • BLED112: unpair remote devices;
  • BLED112: passkey notification pairing handling;
  • BLED112: passkey request pairing handling;
  • BLED112: GattClient - connection encryption;
  • BLED112: VCL Edition - fixed issue with incorrect name reading in BeaconWatcher;
  • BLED112: .NET Edition - fixed NullReference exception when discovering terminated.

New in Bluetooth Framework 7.10.0.0 (Nov 16, 2020)

  • C++ Edition: fixed issue with not starting BLE discovering;
  • C++ Edition: fixed memory leak in reading descriptor value in GattClient;
  • New error codes;
  • GATT characteristic Write With/Without response (depending on the characteristic properties);
  • BewaconWatcher now does not report Flags and Name frames as Unknown Raw Frame;
  • BewaconWatcher now does not report report known frames as Unknown Raw Frames;
  • LE discoverign now returns only devices that have LE Limited Discoverable or LE General Discoverable flags set;
  • SiliconLabs (BlueGiga) BLED112 support.

New in Bluetooth Framework 7.9.6.0 (Oct 27, 2020)

  • Memory leak fixed;
  • Preparing for BLED112 dongle support;
  • VCL Edition: RAD Studio 10.3.3 compatibility issue has been fixed;
  • Compatibility update.

New in Bluetooth Framework 7.9.5.0 (Oct 11, 2020)

  • GattServer IoT demo: fixed A/V error when peripheral mode is not supported by the dongle;
  • CustomBeacon: New property CompanyData;
  • CustomBeacon now can advertise manufacturer (company) specific data and common data at the same time;
  • CustomBeacon the Data property now used to represents a common advertisement data;
  • BeaconsDemo has been updated to show how to advertise as an Apple ANCS.

New in Bluetooth Framework 7.9.4.0 (Sep 18, 2020)

  • Hardware changes detection improved when 2 or more dongles connected;
  • C++ Edition: fixed issue when hardware changes were not detected;
  • Local Radio Class Of Device reading and writing;
  • LE device name reading improved.

New in Bluetooth Framework 7.9.3.0 (Sep 9, 2020)

  • wclBluetoothManager: new method GetRadio() - returns first available Bluetooth Radio object;
  • Toshiba: enumerating pre-installed vCOMs has been re-worked. Now it correctly detects a device's MAC for vCOM;
  • BlueSoleil GATT: fixed A/V when subscribing for characteristic changes notification;
  • BlueSoleil GATT: fixed A/V when writing Client Configuration Descriptor;
  • BlueSoleil GATT: fixed issue when Connect-on-Read flag ignored;
  • GATT Server: fixed A/V in Microsoft implementation.

New in Bluetooth Framework 7.9.2.0 (Sep 7, 2020)

  • wclBluetoothRadio class: new "Plugged" property has been added. The property indicates (True) if a Bluetooth hardware is physically plugged in. Together with the "Available" property it helps to check a Bluetooth radio state. Refer to the updated BluetoothManager demo application to find out how you can check the real Bluetooth radio status;
  • Toshiba pairing has been reworked;
  • Toshiba A/V fixed;
  • Toshiba unexpected application termination has been fixed.

New in Bluetooth Framework 7.9.1.0 (Aug 22, 2020)

  • OnAltBeaconFrame: new parameter Data contains additional frame data;
  • OnEddystoneTlmFrame: new parameter Data contains additional frame data;
  • OnEddystoneUidFrame: new parameter Data contains additional frame data;
  • OnProximityBeaconFrame: new parameter Data contains additional frame data.

New in Bluetooth Framework 7.9.0.0 (Aug 9, 2020)

  • Wii Remote Support.

New in Bluetooth Framework 7.8.10.0 (Jul 7, 2020)

  • Code refactoring and optimization;
  • wclMessageBroadcaster: new method ProcessMessages() has been added, the method allows to force events processing;
  • New error codes;
  • .NET Edition: possible resource leak fixed;
  • GattClient demo application has been updated to show how to work with characteristics that have both IsNotifiable and IsIndicatable properties set to True;
  • We also updated the article to better explanation of the characteristic changes notifications;
  • Beacons demo has been updated.

New in Bluetooth Framework 7.8.9.0 (Jun 23, 2020)

  • Custom Beacon now allows to add not only Manufacturer Specific Data frames;
  • LE Beacon Watcher now can parse Bluetooth LE 5.0 extended adertisement frames (Windows 10 2004 and above);
  • LE Beacon Watcher: new event OnAdvertisementExtFrameInformation;
  • Disabling/Enabling Secure Simple Pairing (BlueSoleil, Toshiba);
  • Reading Secure Simple Pairing status (Microsoft, Toshiba).

New in Bluetooth Framework 7.8.8.0 (Jun 12, 2020)

  • GattLocalService class: new property "Connectable";
  • GattLocalService class: new property "Discoverable";
  • RfCommClient: Write() method code reworked to prevent from WCL_E_BLUETOOTH_UNEXPECTED error when an application writes big data;
  • RfCommServer: Write() method code reworked to prevent from WCL_E_BLUETOOTH_UNEXPECTED error when an application writes big data;
  • RfCommServer: Fixed possible A/V appeared on some platforms;
  • Demo applications updated;
  • C++ Edition: memory leaks during classic discovering fixed;
  • C++ Edition: resource leaks during classic discovering fixed;
  • C++ Edition: memory leaks in OBEX FTP Dir() operation fixed;
  • C++ Edition: Fixed "Not connected" error in FtpClient demo application.

New in Bluetooth Framework 7.8.7.0 (Jun 3, 2020)

  • New error codes;
  • Power state monitoring (suspend/resume);
  • Bluetooth Manager demo has been updated to show how to handle power state change events.

New in Bluetooth Framework 7.8.6.0 (May 21, 2020)

  • Toshiba pairing has been reworked to support Secure Simple Pairing;
  • Fixed synchronization issue when calling wclBluetoothRadio.terminate() method from different thread;
  • skNone synchronization marked as depricated and will be removed soon, use skApc instead.

New in Bluetooth Framework 7.8.5.0 (May 14, 2020)

  • Connection creation code has been refactored;
  • Minor fixes in LE advertisement parameters settings.

New in Bluetooth Framework 7.8.4.0 (Apr 29, 2020)

  • New error code: WCL_E_BLUETOOTH_CREATE_WATCHER_FACTORY_FAILED;
  • New error code: WCL_E_BLUETOOTH_CREATE_FILTER_FAILED;
  • New error code: WCL_E_BLUETOOTH_CREATE_WATCHER_FAILED;
  • New error code: WCL_E_BLUETOOTH_CREATE_COMPLETION_EVENT_FAILED;
  • New error code: WCL_E_BLUETOOTH_SET_ADDED_HANDLER_FAILED;
  • New error code: WCL_E_BLUETOOTH_SET_UPDATED_HANDLER_FAILED;
  • New error code: WCL_E_BLUETOOTH_SET_REMOVED_HANDLER_FAILED;
  • New error code: WCL_E_BLUETOOTH_SET_COMPLETED_HANDLER_FAILED;
  • New error code: WCL_E_BLUETOOTH_WATCHER_START_FAILED;
  • Classic devices discovering code for Microsoft Bluetooth stack has been reworked;
  • Fixed bug in setting Beacons advertisement params;
  • Fixed bug in setting Beacons scan params

New in Bluetooth Framework 7.8.3.0 (Apr 8, 2020)

  • GattClient.Subscribe() returns error if a characteristic has both Indicatable and Notifiable properties set;
  • GattClient.Unsubscribe() returns error if a characteristic has both Indicatable and Notifiable properties set;
  • GattClient.Unsubscribe() returns error if a characteristic does not have Indicatable or Notifiable properties set;
  • GattClient calls WriteClientConfiguration() method to unsubscribe when disconnects;
  • New function wclGetErrorInfo() (.NET: wclHelpers.GetErrorInfo) returns extended information about WCL error codes. You can also implement it in your own way using the sample code by this link: https://github.com/btframework/ErrorToText.

New in Bluetooth Framework 7.8.2.0 (Apr 3, 2020)

  • Fixed bug that prevents disconnecting from remote BLE GATT enabled device;
  • Minor updates.

New in Bluetooth Framework 7.8.1.0 (Mar 29, 2020)

  • New property in OBEX File Object: Permissions;
  • New property in OBEX File Object: Modified;
  • New property in OBEX File Object: Created;
  • New property in OBEX File Object: Accessed.

New in Bluetooth Framework 7.8.0.0 (Mar 21, 2020)

  • OBEX Object Push Client Pull method has been renamed to Get;
  • OBEX Object Push Client Push method has been renamed to Put;
  • OBEX File Transfer Client has been added;
  • New FtpClient demo application;
  • New error codeWCL_E_OBEX_INVALID_DIR_LIST;
  • New error codeWCL_E_OBEX_INVALID_DIR_FORMAT;
  • New error codeWCL_E_OBEX_COM_INIT_FAILED;
  • New error codeWCL_E_OBEX_XML_NOT_AVAILABLE;
  • C++ Editionnew CwclStreamAdapter class that converts CwclStream to IStream interface;
  • C++ EditionFixed minor bugs in WCL Stream implementation.

New in Bluetooth Framework 7.7.13.0 (Mar 5, 2020)

  • C++ Edition: fixed bug in Eddystone UID beacon when UUID advertised as NULL;
  • C++ Edition: fixed SEH Exception raises when no Bluetooth devices found during Classic Bluetooth discovering;
  • .NET Edition: fixed SEH Exception raises when no Bluetooth devices found during Classic Bluetooth discovering;
  • Code optimization;
  • RSSI reading has been reworked to make it working faster.

New in Bluetooth Framework 7.7.12.0 (Feb 25, 2020)

  • New error code: WCL_E_BLUETOOTH_START_WINRT_THREAD_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_INVALID_CHARACTERISTIC_CONFIGURATION;
  • Checking for correct Characteristic configuration when calling WriteClientConfiguration method;
  • Code refactoring;
  • .NET Edition: Target .NET Framework has been changed to 4.0. If you need to use it with early version you can rebuild it from sources;
  • .NET Edition: WinForms demo applications have been updated for Visual Studio 2010 and target .NET Framework 4;
  • VCL Edition: Fixed GattServer demo compilation error with CBuilder 10.3;
  • C++ Edition: some errors in Documentation have been fixed.

New in Bluetooth Framework 7.7.10.0 (Dec 22, 2019)

  • IsRemoteDeviceInRange() returns error in case of using with BLE device;
  • Fixed issue with reseting pairing device address in OnAythenticationCompleted event;
  • Fixed issue that allows to call asynchronous methods (Pair, Discover) when Radio is closing;
  • Mix in error codes (WCL_E_BLUETOOTH_DEVICE_NOT_CONNECTED vs WCL_E_BLUETOOTH_DEVICE_NOT_INSTALLED) has been fixed;
  • Fixed issue with multiple AuthenticationCompleted() event calling for the same device.

New in Bluetooth Framework 7.7.9.0 (Dec 10, 2019)

  • Fixed issue with connecting to paired BLE devices (when real connection executed only after value reading);
  • Fixed issue when BluetoothManager.Close() may cause an application freezing;
  • Fixed issue when Message Receiver may cause an application freezing.

New in Bluetooth Framework 7.7.8.0 (Nov 5, 2019)

  • Classic pairing with Microsoft Bluetooth drivers has been reworked;
  • BLE pairing with Microsoft Bluetooth drivers has been reworked;
  • BLE Pairing protection level has been added for BLE pairing;
  • Bluetooth Manager demo has beenupdated to show how to use new BLE pairing features;
  • Reading OS version reworked for faster operation;
  • Code refactoring;
  • .NET Edition: some demo applications have been updated.

New in Bluetooth Framework 7.7.7.0 (Oct 25, 2019)

  • GATT Client: fixed cleanup after disconnect;
  • GATT Client: now it executes real connection to device;
  • GATT Client: extended error decoding during reading attributes (services, characteristics, descriptors);
  • C++ Edition: possible conflic with devpropdef.h has been resolved;
  • C++ Edition: possible conflict with cfgmgr32.h has been resolved.

New in Bluetooth Framework 7.7.6.0 (Oct 21, 2019)

  • GATT Client: write null (empty) value to characteristics;
  • GATT Client: read null (empty) values from characteristics;
  • GATT Client: characteristic change notification with null (empty) value.

New in Bluetooth Framework 7.7.5.0 (Oct 7, 2019)

  • Fixed bug with Bluetooth radio state switching in console applications.

New in Bluetooth Framework 7.7.4.0 (Sep 16, 2019)

  • C++ Edition: VS 2019 support;
  • It is possible to run few instances of the Bluetooth LE advertiser on Windows 10 platform with Microsoft Bluetooth drivers. However, when you stop one advertiser the system stops all advertising completely. This release adds new behavior for Bluetooth LE advertiser so when one of them is stopped all others are stopping also. This allows to fire OnStopped event of all Bluetooth LE advertisers to notify application about advertising has been stopped and to switch all the advertisers to consistent state.

New in Bluetooth Framework 7.7.3.0 (Aug 23, 2019)

  • Now you can change the scanning mode of Bluetooth LE Beacon Watcher;
  • New error code; WCL_E_BLUETOOTH_LE_GATT_SERVER_CREATE_MUTEX_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_OTHER_INSTANCE_RUNNING;
  • Protection against running few GATT server instances has been added;
  • Fixed issue with not changing local radio name (Microsoft drivers) on some Win 10 PCs.

New in Bluetooth Framework 7.7.2.0 (Aug 20, 2019)

  • New error code: WCL_E_BLUETOOTH_GET_REMOTE_ADDRESS_TYPE_FAILED;
  • New error code: WCL_E_BLUETOOTH_UNKNOWN_DEVICE_TYPE;
  • Read Bluetooth LE device address type;
  • BluetoothManager demo has been updated to show how to get device's address type.

New in Bluetooth Framework 7.7.1.0 (Jul 21, 2019)

  • C++ Edition: fixed bug with reading BLE devices pairing status;
  • C++ Edition: fixed bug with unpairing BLE devices;
  • Pairing with BLE devices.

New in Bluetooth Framework 7.7.0.0 (Jul 11, 2019)

  • Fixed Discover() method crashes when Timeout is 0 (now it returns error code when Timeout is 0);
  • GetRemoteDeviceType() method has been reworked to get it working better on latest Win 10 versions;
  • New exception: wclEGattServer;
  • Fixed issue that caused by Windows 10 bug that prevents from Working with paired BLE devices (we finally found a workaround);
  • Additional checks for classic discovering timeout have been added: the value can not be less than 2 seconds and greater than 61 seconds;
  • GATT server;
  • New error code: WCL_E_BLUETOOTH_GET_LOCAL_OOB_FAILED;
  • New error code: WCL_E_BLUETOOTH_DISCOVERING_TIMEOUT_TOO_HIGH;
  • New error code: WCL_E_BLUETOOTH_DISCOVERING_TIMEOUT_TOO_LOW;
  • New error code:WCL_E_BLUETOOTH_LE_GATT_SERVER_CHARACTERISTIC_ADDED;
  • WCL_E_BLUETOOTH_LE_GATT_SERVER_CHARACTERISTIC_REMOVED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_SERVICE_ADDED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_SERVICE_REMOVED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_RUNNING;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_NOT_RUNNING;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_CREATE_INIT_EVENT_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_CREATE_TERM_EVENT_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_CREATE_THREAD_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_GET_SERVICE_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_CREATE_PARAMS_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_SET_READ_PROTECTION_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_SET_WRITE_PROTECTION_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_SET_PROPERTIES_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_CREATE_CHARACTERISTIC_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_INVALID_CHARACTERISTIC;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_SET_ADV_PARAMS_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_PERIPHERAL_MODE_NOT_SUPPORTED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_START_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_CREATE_SERVICE_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_INVALID_SERVICE;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_NOT_INITIALIZED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_INITIALIZED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_SET_WRITE_EVENT_HANDLER_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_SET_READ_EVENT_HANDLER_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_SET_CLIENTS_CHANGED_EVENT_HANDLER_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_GET_CLIENTS_LIST_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_GET_CLIENTS_COUNT_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_CHARACTERISTIC_NOT_NOTIFIABLE;
  • New error code: WCL_E_BLUETOOTH_LE_GATT_SERVER_CHARACTERISTIC_SEND_NOTIFICATION_FAILED.

New in Bluetooth Framework 7.6.11.0 (May 17, 2019)

  • Refactoring and optimization in Microsoft Bluetooth LE WinRT code;
  • Bluetooth authentication (pairing) messages have been redesigned to support WinRT (or other synchronous) pairing;
  • Legacy GATT pairing code for Microsoft Bluetooth stack has been refactored;
  • Bluetooth LE discovering code for Microsoft Bluetooth stack has been refactored;
  • Bluetooth classic discovering code for Microsoft Bluetooth stack has been refactored;
  • Bluetooth classic pairing code for Microsoft Bluetooth stack has been refactored;
  • Fixed issue with reading device type on Windows versions before Windows 8 with Microsoft Bluetooth stack;
  • Fixed issue with reading Bluetooth LE device connected status;
  • Fixed issue with reading Bluetooth LE device paired status;
  • MITM Protection for Classic Pairing is now supported (Microsoft Bluetooth drivers only on Windows Vista SP2 and above);
  • BluetoothManager demo application has been updated to show how to discover BLE devices (refer to GattClient demo application to find a code sample that shows how to work with BLE GATT devices, read GATT services and characteristics and other GATT related code);
  • BluetoothManager demo application has been updated to show how to use MITM protection during pairing;
  • New error code: WCL_E_BLUETOOTH_LE_START_GET_DEV_CONNECTED_STATUS_THREAD_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GET_DEV_CONNECTED_STATUS_THREAD_GET_RESULT_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GET_CONNECTED_STATUS_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_START_GET_DEV_PAIRED_STATUS_THREAD_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GET_DEV_PAIRED_STATUS_THREAD_GET_RESULT_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_GET_DEVICE_PAIRED_FAILED;
  • New error code: WCL_E_BLUETOOTH_LE_PROTOCOL_ERROR;
  • .NET Edition: fixed bug in RfCommServer WPF demo application.

New in Bluetooth Framework 7.6.10.0 (Apr 4, 2019)

  • WCL Common Runtime: Code refactoring;
  • WCL Common Runtime: WinUSB error codes have been changed;
  • WCL Common Runtime .NET Edition: Removed some Win32 API dependencies;
  • If you need convert error code to readable text you can use

New in Bluetooth Framework 7.6.7.0 (Mar 10, 2019)

  • Minor updates in Bluetooth Pairing code;
  • RemotePair() function now checks that device is not paired. If device is paired the function returns error code;
  • RemoteUnpair() function now checks that device is paired. If device is not paired the function returns error code.

New in Bluetooth Framework 7.6.5.0 (Feb 26, 2019)

  • New error code WCL_E_BLUETOOTH_DEVICE_ALREADY_INSTALLED;
  • New error code WCL_E_BLUETOOTH_DEVICE_NOT_INSTALLED;
  • New error code WCL_E_BLUETOOTH_DEVICE_NOT_CONNECTED;
  • New error code WCL_E_BLUETOOTH_ENUM_CONNECTION_FAILED;
  • Installing and uninstalling Bluetooth device. This feature is available for BlueSoleil and Microsoft Bluetooth drivers only and can be used to connect (install) and to disconnect (uninstall) Bluetooth devices scuh as Bluetooth Speakers, mouse, keyboard and some others non RFCOMM based devices;
  • .NET Edition: Microsoft: some errors decoding has been fixed;
  • .NET Edition: exception classes have been updated to raise exceptions with messages;
  • .NET Edition: fixed marshaling bug when Bluetooth Framework runs with BlueSoleil;
  • C++ Edition: Bluetooth Framework exceptions now inherits from std::exception to provide access to the What() method;
  • C++ Edition: exception classes have been updated to raise exceptions with messages;
  • VCL Edition: Microsoft: some errors decoding has been fixed.

New in Bluetooth Framework 7.6.4.0 (Feb 21, 2019)

  • Timeline Framework compatibility update.

New in Bluetooth Framework 7.6.3.0 (Feb 8, 2019)

  • BLE device disconnect improved;
  • Reset data stream position to zero before calling OnPutCompleted event in OPP Server Data Processor.

New in Bluetooth Framework 7.6.2.0 (Jan 18, 2019)

  • Fixed issue that prevents from re-discovering Bluetooth devices if Discover() method called from OnDiscoveringCompleted() event handler;
  • C++ Edition: Fixed "Unresolved external" for CwclRfCommClient::GetTimeout() method.

New in Bluetooth Framework 7.6.1.0 (Jan 9, 2019)

  • OppServer demo has been updated to show how to save received file;
  • C++ Edition: fixed crititcal bug in CwclMemoryStream class that causes Access Violation error;
  • .NET Edition: fixed bug in OBEX object name and description reading.

New in Bluetooth Framework 7.6.0.0 (Dec 29, 2018)

  • wclCustomServerClientDataProcessor - the new class that allows to implemen server data processors;
  • Fixed issue with processing ABORT command in OBEX client implementation;
  • wclRfCommServer new event: GetSdpAttributes. The event allows you to change default SDP record and add new attributes (referto OppServer demo to see how to use it for OBEX ObjectPush Profile);
  • OBEX Object Push Server;
  • 16 bit UUIDs (Bluetooth Protocols and Services) definitions;
  • WCL_E_BLUETOOTH_LINK_UNEXPECTED error description has been updated;v
  • New error code WCL_E_BLUETOOTH_PAIRED_BY_OTHER;
  • New error code: WCL_E_OBEX_CREATE_CONNECTION_ID_MUTEX_FAILED;
  • New error code: WCL_E_OBEX_MAX_CONNECTION_ID;
  • New error code: WCL_E_OBEX_INVALID_STATE.

New in Bluetooth Framework 7.5.9.0 (Dec 7, 2018)

  • wclBluetoothLeBeaconAdvertiserConnection class has been renamed to wclBluetoothLeAdvertiserConnection;
  • New classes: wclBluetoothLeAdvertiserConnection, wclBluetoothLeRssiAdvertiserConnection, wclBluetoothLeUuidAdvertiserConnection, wclBluetoothLeAdvertiser, wclBluetoothLeRssiAdvertiser and wclBluetoothLeUuidAdvertiser;
  • Bluetooth LE Advertising code has been refactored;
  • Set advertiser name feature has been implemented;
  • New error code: WCL_E_BLUETOOTH_LE_ADVERTISING_SET_NAME_FAILED;
  • Beacons demo applicationhas been updated to show how to set beacons advertising parameters;
  • Windows IoT Beacons demo application has been updated to show how to use new Alt Beacon advertiser;
  • GattClient demo applicationhas been updated to show how to fix issue that appears on Windows 10 1607 and above if Bluetooth LE GATT device has been paired;
  • Messaging subsystem has been reworked to prevents memory defragmentation, work faster and uses less memory;
  • Disabling Microsoft Bluetooth Authentication Agent has been improved. Now it can monitor if other application changes this seetings back;
  • Restoring Microsoft Bluetooth Authentication agen settings when work with Bluetooth has been completed;
  • New error code WCL_E_BLUETOOTH_CREATE_REG_CHANGE_TERMINATION_EVENT_FAILED;
  • New error code WCL_E_BLUETOOTH_CREATE_REG_CHANGE_RESULT_EVENT_FAILED;
  • New error code WCL_E_BLUETOOTH_START_REG_CHANGE_THREAD_FAILED;
  • New error code WCL_E_BLUETOOTH_REGISTER_AUTHENTICATION_CALLBACK_FAILED;
  • New error code WCL_E_BLUETOOTH_FAILED_TO_OPEN_AUTH_AGENT_REG_KEY;
  • New error code WCL_E_BLUETOOTH_CREATE_REG_CHANGES_NOTIFICATION_EVENT_FAILED;
  • New error code WCL_E_BLUETOOTH_UNABLE_SET_REGISTRY_CHANGES_NOTIFICATIONS;
  • New error code WCL_E_BLUETOOTH_UNABLE_TO_DISABLE_AUTHENTICATION_AGENT;

New in Bluetooth Framework 7.5.8.0 (Nov 25, 2018)

  • Advertising as Alt Beacon;
  • New OnAdvertisementFrameInformation for the wclBluetoothLeBeaconWatcher has been added. The event Provides additional information about Bluetooth LE advertisement frame: name, type, flags;
  • Receiving and parsering UUID frames (advertisement packets).

New in Bluetooth Framework 7.5.7.0 (Nov 20, 2018)

  • Minor fixes in Bluetooth LE advertisement frames parsering;
  • Fixed issue with starting discovering BLE devices;
  • Fixed issue with receiving GATT notifications on Windows 10 15063;
  • Parsering Alt Beacon frames;
  • Fixed issue with reading RSSI value from Bluetooth LE devices;
  • New error code WCL_E_BLUETOOTH_LE_DEVICE_NOT_FOUND;
  • New error code WCL_E_BLUETOOTH_LE_GET_DEVICE_ID_FAILED;
  • New error code WCL_E_BLUETOOTH_LE_GET_DEVICE_PROPERTIES_FAILED;
  • New error code WCL_E_BLUETOOTH_LE_FEATURE_NOT_SUPPORTED;
  • New error code WCL_E_BLUETOOTH_LE_UNABLE_READ_RSSI;
  • New error code WCL_E_BLUETOOTH_LE_START_RSSI_THREAD_FAILED;
  • New error code WCL_E_BLUETOOTH_LE_GET_RSSI_READING_RESULT_FAILED;
  • .NET Framework: low level code has been reworked and updated.

New in Bluetooth Framework 7.5.6.0 (Oct 24, 2018)

  • New error code WCL_E_BLUETOOTH_LE_UNABLE_START_UNPAIRING;
  • Fixed issue with unpair BLE (GATT) devices.

New in Bluetooth Framework 7.6.2.0 (Oct 24, 2018)

  • New error code WCL_E_WIFI_RES_ONEX_UI_CANCELLED;
  • New error code WCL_E_WIFI_RES_ONEX_PROFILE_INVALID_EXPLICIT_CREDENTIALS;
  • New error code WCL_E_WIFI_RES_ONEX_PROFILE_EXPIRED_EXPLICIT_CREDENTIALS;
  • New error code WCL_E_WIFI_RES_ONEX_UI_NOT_PERMITTED;
  • Error WCL_E_WIFI_RES_UNDEFINED value has been changed;
  • Allows to add Information Elements in Scan probe requests (refer to Scan() method documentation.

New in Bluetooth Framework 7.5.5.0 (Oct 16, 2018)

  • New error code WCL_E_BLUETOOTH_LE_UNSUPPORTED_BY_HARDWARE;
  • New error code WCL_E_BLUETOOTH_GET_BLUETOOTH_RADIO_ASYNC_FAILED;
  • New error code WCL_E_BLUETOOTH_BLUETOOTH_RADIO_INSTANCE_NOT_READY;
  • Checking hardware features before calling to any Bluetooth LE functions;
  • Enumerating precreated vCOMs on Toshiba Bluetooth drivers;
  • Enumerating precreated vCOMs on BlueSoleil Bluetooth drivers;
  • BlueSoleil PIN pairing A/V has been fixed.

New in Bluetooth Framework 7.5.4.0 (Oct 8, 2018)

  • Fixed bug in monitoring Eddystone UID beacon;
  • Fixed bug in Advertising as Eddystone UID beacon;
  • Enumerating pre-created Bluetooth vCOMs (Microsoft Bluetooth Drivers);
  • Fixed Bluetooth LE advertisement packets parsering issue;
  • vCOM number data type has been changed from Byte (unsigned char) to Word (UInt16, unsigned short);
  • Custom Bluetooth LE Beacon component that allows to advertise custom data packets;
  • Beacons demo has been updated to show how to advertise custom data using Bluetooth LE Beacon;
  • Fixed issues with reading remote devices name. The fix works on Windows 10. On other platforms if GetRemoteName() returns WCL_E_SUCCESS but Name is empty you have wait for about 2 seconds and try to read name again.

New in Bluetooth Framework 7.5.3.0 (Sep 10, 2018)

  • Fixed bug with slow discovering Bluetooth devices appeared in 7.5.2.0 version.

New in Bluetooth Framework 7.5.2.0 (Sep 10, 2018)

  • Discovering only available Bluetooth devices when using Microsoft driver (Paired devices do not appear as found if they are not available).

New in Bluetooth Framework 7.4.6.0 (Jul 30, 2018)

  • New error code: WCL_E_BLUETOOTH_NO_SYSTEM_RESOURCES;
  • New error code: WCL_E_BLUETOOTH_LE_CHARACTERISTIC_NOT_WRITABLE;
  • New error code: WCL_E_BLUETOOTH_LE_DEVICE_NOT_DISCOVERED;
  • Fixed issue when characteristic value is empty during reading (reading error accurs);
  • Fixed Access violation appeared on Windows 10 with Microsoft Bluetooth drivers when connecting to GATT device without discovering;
  • Fixed bug in classic pairing on Microsoft Bluetooth drivers after Bluetooth hardware reconnected;
  • Minor updates in messages subsystem;
  • .NET Edition: removed dependece on Win32 assemblies;
  • .NET Edition: includes paclages for .NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2;
  • .NET Edition: .NET Standard 2.0 support;
  • .NET Edition: Unity 2018 support (requires .NET 4.x equivalent);
  • .NET Edition: WPF demo applications (c#);
  • .NET Edition: fixed issue in OppClient c# demo application (missing main.resx file).

New in Bluetooth Framework 7.4.5.0 (Jul 20, 2018)

  • GATT secure reading and writing;
  • Fixed issue with correctdecoding GATT long UUID with BlueSoleil drivers;
  • Small changes in Bluetooth demos (code has been updated to show how to find available (working) Radio).

New in Bluetooth Framework 7.4.4.0 (Jul 13, 2018)

  • Fixed Access violation bug when closing Bluetooth Manager with existing vCOMs.

New in Bluetooth Framework 7.4.3.0 (Jun 25, 2018)

  • New error code WCL_E_WINRT_DETACH_BUFFER_FAILED;
  • New error code WCL_E_BLUETOOTH_START_GET_DEV_TYPE_THREAD_FAILED;
  • New error code WCL_E_BLUETOOTH_GET_DEV_TYPE_THREAD_GET_RESULT_FAILED;
  • New error code WCL_E_BLUETOOTH_START_GET_DEV_NAME_THREAD_FAILED;
  • New error code WCL_E_BLUETOOTH_GET_DEV_NAME_THREAD_GET_RESULT_FAILED;
  • Messaging subsystem has been modified for Asynchronous Messaging support;
  • Asynchronous Messaging has been implemented;
  • Console demo application has been reworked to use new Asynchronous Messaging.

New in Bluetooth Framework 7.4.0.0 (May 21, 2018)

  • .NET Edition: forces GC Collect to prevent from memory overrun when monitoring BLE beacons;
  • C++ Edition: fixed some demo building errors;
  • Custom Data Processors support for Data Client connections;
  • Common OBEX support;
  • OBEX Object Push Profile support (see OppClient demo application).

New in Bluetooth Framework 7.3.12.0 (May 3, 2018)

  • Fixed bug in VB.NET GattClient demo application;
  • Bluetooth LE Descriptor Write Value issue fixed;
  • Fixed bug with not disconnecting from Bluetooth LE GATT Devices;
  • Code optimization;
  • Documentation update;
  • Minor memory leak fixed.

New in Bluetooth Framework 7.3.11.0 (Apr 13, 2018)

  • Fixed issue with discovering BLE devices using BlueSoleil 10.0.497.0 version;
  • Fixed bug in WinRT GATT writing characteristic value code;
  • Minor fixes in the Bluetooth LE Beacons advertising code.