Direct-BT
2.3.1
Direct-BT - Direct Bluetooth Programming.
|
Author: Sven Gothel sgoth Copyright (c) 2020 Gothel Software e.K. el@j ausof t.co mMore...
Classes | |
class | AdapterSettings |
Author: Sven Gothel sgoth Copyright (c) 2020 Gothel Software e.K. el@j ausof t.co mMore... | |
class | AdapterStatusListener |
BTAdapter status listener for BTDevice discovery events: Added, updated and removed; as well as for certain BTAdapter events. More... | |
class | BDAddressAndType |
Unique Bluetooth EUI48 address and BDAddressType tuple. More... | |
enum | BDAddressType |
Bluetooth address type constants. More... | |
enum | BLERandomAddressType |
Bluetooth LE random address type constants. More... | |
interface | BTAdapter |
Provides access to Bluetooth adapters. More... | |
interface | BTDevice |
Provides access to Bluetooth adapters. More... | |
class | BTDeviceRegistry |
Application toolkit providing BT device registration of processed and awaited devices. More... | |
class | BTException |
class | BTFactory |
One stop BTManager API entry point. More... | |
interface | BTGattChar |
Provides access to Bluetooth GATT characteristic. More... | |
class | BTGattCharListener |
BTGattChar event listener for notification and indication events. More... | |
interface | BTGattDesc |
Provides access to Bluetooth GATT descriptor. More... | |
interface | BTGattService |
Provides access to Bluetooth GATT characteristic. More... | |
interface | BTManager |
enum | BTMode |
Bluetooth adapter operating mode. More... | |
interface | BTObject |
enum | BTSecurityLevel |
Bluetooth Security Level. More... | |
class | BTSecurityRegistry |
Application toolkit providing BT security setup and its device association on a pattern matching basis, i.e. More... | |
enum | BTType |
class | BTUtils |
class | DirectBTVersion |
This. More... | |
class | EIRDataTypeSet |
Bit mask of 'Extended Inquiry Response' (EIR) data fields, indicating a set of related data. More... | |
class | EUI48 |
A packed 48 bit EUI-48 identifier, formerly known as MAC-48 or simply network device MAC address (Media Access Control address). More... | |
class | EUI48Sub |
A 48 bit EUI-48 sub-identifier, see EUI48. More... | |
class | GattCharPropertySet |
Bit mask of GATT Characteristic Properties. More... | |
enum | HCIStatusCode |
BT Core Spec v5.2: Vol 1, Part F Controller Error Codes: 1.3 List of Error Codes. More... | |
enum | HCIWhitelistConnectType |
HCI Whitelist connection type. More... | |
enum | PairingMode |
Bluetooth secure pairing mode. More... | |
class | PlatformToolkit |
Miscellaneous platform utilities, allowed to be used within same Java package. | |
enum | ScanType |
Meta ScanType as derived from BTMode with defined value mask consisting of BDAddressType bits. More... | |
enum | SMPIOCapability |
SMP IO Capability value. More... | |
class | SMPKeyBin |
Storage for SMP keys including the required connection parameter. More... | |
class | SMPKeyMask |
SMP Key Type for Distribution, indicates keys distributed in the Transport Specific Key Distribution phase. More... | |
class | SMPLongTermKeyInfo |
SMP Long Term Key Info, used for platform agnostic persistence. More... | |
enum | SMPPairingState |
SMP Pairing Process state definition. More... | |
class | SMPSignatureResolvingKeyInfo |
SMP Signature Resolving Key Info, used for platform agnostic persistence. More... | |
Author: Sven Gothel sgoth Copyright (c) 2020 Gothel Software e.K. el@j ausof t.co m
Author: Sven Gothel sgoth Copyright (c) 2021 Gothel Software e.K. el@j ausof t.co m
Direct-BT provides direct Bluetooth LE and BREDR programming, offering robust high-performance support for embedded & desktop with zero overhead via C++ and Java.
Direct-BT follows the official Bluetooth Specification and its C++ implementation contains detailed references.
Direct-BT supports a fully event driven workflow from adapter management via device discovery to GATT programming, using its platform agnostic HCI, GATT, SMP and L2CAP client-side protocol implementation.
Direct-BT implements the following layers
BTManager utilizes the BlueZ Kernel Manager Control Channel for adapter configuration and adapter add/removal notifications (ChangedAdapterSetFunc()).
To support other platforms than Linux/BlueZ, we will have to
From a user perspective the following hierarchy is provided
Object lifecycle with all instances and marked weak back-references to their owner
Mapped names from C++ implementation to Java implementation and to Java interface:
C++ direct_bt | Java Implementation jau.direct_bt | Java Interface org.direct_bt |
---|---|---|
BTManager | DBTManager | BTManager |
BTAdapter | DBTAdapter | BTAdapter |
BTDevice | DBTDevice | BTDevice |
BTGattService | DBTGattService | BTGattService |
BTGattChar | DBTGattChar | BTGattChar |
BTGattDesc | DBTGattDesc | BTGattDesc |
AdapterStatusListener | AdapterStatusListener | |
BTGattCharListener | BTGattCharListener | |
ChangedAdapterSetFunc() | BTManager::ChangedAdapterSetListener |
A fully event driven workflow from adapter management via device discovery to GATT programming is supported.
BTManager::ChangedAdapterSetListener allows listening to added and removed BTAdapter via BTManager.
AdapterStatusListener allows listening to BTAdapter changes and BTDevice discovery.
BTGattCharListener allows listening to GATT indications and notifications.
Main event listener can be attached to these objects which maintain a set of unique listener instances without duplicates.
Other API attachment method exists for BTGattCharListener, however, they only exists for convenience and end up to be attached to BTGattHandler.
Copyright (c) 2020 ZAFENA AB
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyright (c) 2020 ZAFENA AB
Author: Andrei Vasiliu andre Copyright (c) 2016 Intel Corporation. i.va siliu @int el.co m
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyright (c) 2020 ZAFENA AB
Author: Petre Eftime petre Copyright (c) 2016 Intel Corporation. .p.e ftime @int el.co m
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.