Direct-BT  2.3.1
Direct-BT - Direct Bluetooth Programming.
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
direct_bt Namespace Reference

Namespaces

 BTDeviceRegistry
 Application toolkit providing BT device registration of processed and awaited devices.
 
 BTSecurityRegistry
 Application toolkit providing BT security setup and its device association on a pattern matching basis, i.e.
 
 impl
 

Classes

class  AdapterInfo
 
class  AdapterStatusListener
 BTAdapter status listener for BTDevice discovery events: Added, updated and removed; as well as for certain BTAdapter events. More...
 
class  AssociatedBTGattCharListener
 
class  AttElementList
 
class  AttErrorRsp
 ATT Protocol PDUs Vol 3, Part F 3.4.1.1. More...
 
class  AttException
 
class  AttExchangeMTU
 ATT Protocol PDUs Vol 3, Part F 3.4.2.2. More...
 
class  AttFindInfoReq
 ATT Protocol PDUs Vol 3, Part F 3.4.3.1. More...
 
class  AttFindInfoRsp
 ATT Protocol PDUs Vol 3, Part F 3.4.3.2. More...
 
class  AttHandleValueCfm
 ATT Protocol PDUs Vol 3, Part F 3.4.7.3. More...
 
class  AttHandleValueRcv
 ATT Protocol PDUs Vol 3, Part F 3.4.7.1 and 3.4.7.2. More...
 
class  AttOpcodeException
 
class  AttPDUMsg
 Handles the Attribute Protocol (ATT) using Protocol Data Unit (PDU) encoded messages over L2CAP channel. More...
 
class  AttPDUUndefined
 Our own pseudo opcode, indicating no ATT PDU message. More...
 
class  AttReadBlobReq
 ATT Protocol PDUs Vol 3, Part F 3.4.4.5. More...
 
class  AttReadBlobRsp
 ATT Protocol PDUs Vol 3, Part F 3.4.4.6. More...
 
class  AttReadByGroupTypeRsp
 ATT Protocol PDUs Vol 3, Part F 3.4.4.10. More...
 
class  AttReadByNTypeReq
 ATT Protocol PDUs Vol 3, Part F 3.4.4.1. More...
 
class  AttReadByTypeRsp
 ATT Protocol PDUs Vol 3, Part F 3.4.4.2. More...
 
class  AttReadReq
 ATT Protocol PDUs Vol 3, Part F 3.4.4.3. More...
 
class  AttReadRsp
 ATT Protocol PDUs Vol 3, Part F 3.4.4.4. More...
 
class  AttValueException
 
class  AttWriteCmd
 ATT Protocol PDUs Vol 3, Part F 3.4.5.3. More...
 
class  AttWriteReq
 ATT Protocol PDUs Vol 3, Part F 3.4.5.1. More...
 
class  AttWriteRsp
 ATT Protocol PDUs Vol 3, Part F 3.4.5.2. More...
 
class  BDAddressAndType
 Unique Bluetooth EUI48 address and BDAddressType tuple. More...
 
class  BTAdapter
 BTAdapter represents one Bluetooth Controller. More...
 
class  BTDevice
 
class  BTException
 
class  BTGattChar
 
class  BTGattCharListener
 BTGattChar event listener for notification and indication events. More...
 
class  BTGattDesc
 BT Core Spec v5.2: Vol 3, Part G GATT: 3.3.3 Characteristic Descriptor. More...
 
class  BTGattEnv
 GATT Singleton runtime environment properties. More...
 
class  BTGattHandler
 A thread safe GATT handler associated to one device via one L2CAP connection. More...
 
class  BTGattService
 Representing a complete [Primary] Service Declaration including its list of Characteristic Declarations, which also may include its client config if available. More...
 
class  BTManager
 A thread safe singleton handler of the Linux Kernel's BlueZ manager control channel. More...
 
class  BTObject
 
class  ConnectionInfo
 mgmt_addr_info { EUI48, uint8_t type }, int8_t rssi, int8_t tx_power, int8_t max_tx_power; More...
 
class  DirectBTJNISettings
 
class  EInfoReport
 Collection of 'Extended Advertising Data' (EAD), 'Advertising Data' (AD) or 'Extended Inquiry Response' (EIR) information. More...
 
struct  EUI48
 A packed 48 bit EUI-48 identifier, formerly known as MAC-48 or simply network device MAC address (Media Access Control address). More...
 
struct  EUI48Sub
 A 48 bit EUI-48 sub-identifier, see EUI48. More...
 
class  GattBatteryServiceSvc
 https://www.bluetooth.com/wp-content/uploads/Sitecore-Media-Library/Gatt/Xml/Services/org.bluetooth.service.battery_service.xml More...
 
struct  GattCharacteristicPropertySpec
 
struct  GattCharacteristicSpec
 
struct  GattClientCharacteristicConfigSpec
 
class  GattDeviceInformationSvc
 Device Information is a GATT service. More...
 
class  GattGenericAccessSvc
 Generic Access Service is a mandatory GATT service all peripherals are required to implement. More...
 
struct  GattPeriphalPreferredConnectionParameters
 Peripheral Preferred Connection Parameters is a GATT Characteristic. More...
 
struct  GattPnP_ID
 PnP ID is a GATT Characteristic. More...
 
struct  GattServiceCharacteristic
 
class  GattTemperatureMeasurement
 https://www.bluetooth.com/wp-content/uploads/Sitecore-Media-Library/Gatt/Xml/Characteristics/org.bluetooth.characteristic.temperature_measurement.xml More...
 
class  HCIACLData
 BT Core Spec v5.2: Vol 4, Part E HCI: 5.4.2 HCI ACL Data packets. More...
 
class  HCIComm
 Read/Write HCI communication channel. More...
 
class  HCICommand
 BT Core Spec v5.2: Vol 4, Part E HCI: 5.4.1 HCI Command packet. More...
 
class  HCICommandCompleteEvent
 BT Core Spec v5.2: Vol 4, Part E HCI: 7.7.14 Command Complete event. More...
 
class  HCICommandStatusEvent
 BT Core Spec v5.2: Vol 4, Part E HCI: 7.7.15 Command Status event. More...
 
class  HCIDisconnectCmd
 BT Core Spec v5.2: Vol 4, Part E HCI: 7.1.6 Disconnect command. More...
 
class  HCIDisconnectionCompleteEvent
 BT Core Spec v5.2: Vol 4, Part E HCI: 7.7.5 Disconnection Complete event. More...
 
class  HCIEnv
 HCI Singleton runtime environment properties. More...
 
class  HCIEvent
 BT Core Spec v5.2: Vol 4, Part E HCI: 5.4.4 HCI Event packet. More...
 
class  HCIException
 
class  HCIHandler
 A thread safe singleton handler of the HCI control channel to one controller (BT adapter) More...
 
struct  HCILocalVersion
 
class  HCIMetaEvent
 BT Core Spec v5.2: Vol 4, Part E HCI: 7.7.65 LE Meta event. More...
 
class  HCIOpcodeException
 
class  HCIPacket
 BT Core Spec v5.2: Vol 4, Part E HCI: 5.4 Exchange of HCI-specific information. More...
 
class  HCIPacketException
 
class  HCIStructCmdCompleteEvtWrap
 Generic HCIEvent wrapper for any HCI IOCTL 'command complete' alike event struct having a HCIStatusCode uint8_t status field. More...
 
class  HCIStructCmdCompleteMetaEvtWrap
 Generic HCIMetaEvent wrapper for any HCI IOCTL 'command complete' alike meta event struct having a HCIStatusCode uint8_t status field. More...
 
class  HCIStructCommand
 Generic HCICommand wrapper for any HCI IOCTL structure. More...
 
struct  l2cap_hdr
 
class  L2CAPComm
 Read/Write L2CAP communication channel. More...
 
class  L2CAPEnv
 L2CAP Singleton runtime environment properties. More...
 
class  ManufactureSpecificData
 
class  MgmtAdapterEventCallback
 
class  MgmtAddDeviceToWhitelistCmd
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t action More...
 
class  MgmtCancelPairDevice
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  MgmtCmdAdressInfoMeta
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  MgmtCommand
 
struct  MgmtConnParam
 Used in MgmtLoadConnParamCmd and MgmtEvtNewConnectionParam. More...
 
class  MgmtDisconnectCmd
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  MgmtEnv
 Managment Singleton runtime environment properties. More...
 
class  MgmtEvent
 uint16_t opcode, uint16_t dev-id, uint16_t param_size More...
 
class  MgmtEvtAdapterInfo
 
class  MgmtEvtAdressInfoMeta
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  MgmtEvtAuthFailed
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t status More...
 
class  MgmtEvtCmdComplete
 
class  MgmtEvtCmdStatus
 
class  MgmtEvtControllerError
 
class  MgmtEvtDeviceBlocked
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  MgmtEvtDeviceConnected
 mgmt_addr_info { EUI48, uint8_t type }, uint32_t flags, uint16_t eir_len; uint8_t *eir More...
 
class  MgmtEvtDeviceConnectFailed
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t status More...
 
class  MgmtEvtDeviceDisconnected
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t reason More...
 
class  MgmtEvtDeviceFound
 mgmt_addr_info { EUI48, uint8_t type }, int8_t rssi, uint32_t flags, uint16_t eir_len; uint8_t *eir More...
 
class  MgmtEvtDeviceUnblocked
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  MgmtEvtDeviceUnpaired
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  MgmtEvtDeviceWhitelistAdded
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t action More...
 
class  MgmtEvtDeviceWhitelistRemoved
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  MgmtEvtDiscovering
 
class  MgmtEvtHCIEncryptionChanged
 mgmt_addr_info { EUI48, uint8_t type }, HCIStatusCode status (1 Octet) uint8_t enc_enabled (1 Octet) More...
 
class  MgmtEvtHCIEncryptionKeyRefreshComplete
 mgmt_addr_info { EUI48, uint8_t type }, HCIStatusCode status (1 Octet) More...
 
class  MgmtEvtHCILERemoteUserFeatures
 mgmt_addr_info { EUI48, uint8_t type }, uint64_t features (8 Octets) More...
 
class  MgmtEvtLocalNameChanged
 uint8_t name[MGMT_MAX_NAME_LENGTH]; uint8_t short_name[MGMT_MAX_SHORT_NAME_LENGTH]; More...
 
class  MgmtEvtNewConnectionParam
 int8_t store_hint, MgmtConnParam connParam More...
 
class  MgmtEvtNewIdentityResolvingKey
 uint8_t store_hint, EUI48 random_address; MgmtIdentityResolvingKey key More...
 
class  MgmtEvtNewLinkKey
 uint8_t store_hint, MgmtLinkKey key More...
 
class  MgmtEvtNewLongTermKey
 uint8_t store_hint, MgmtLongTermKeyInfo key More...
 
class  MgmtEvtNewSettings
 uint32_t settings More...
 
class  MgmtEvtNewSignatureResolvingKey
 uint8_t store_hint, EUI48 random_address; MgmtSignatureResolvingKeyInfo key More...
 
class  MgmtEvtPairDeviceComplete
 mgmt_addr_info { EUI48, uint8_t type }, MgmtStatus (1 octet) More...
 
class  MgmtEvtPinCodeRequest
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t secure More...
 
class  MgmtEvtUserConfirmRequest
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t confirm_hint uint32_t value More...
 
class  MgmtEvtUserPasskeyRequest
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  MgmtException
 
class  MgmtGetConnectionInfoCmd
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
struct  MgmtIdentityResolvingKeyInfo
 Used for MgmtLoadIdentityResolvingKeyCmd and MgmtEvtNewIdentityResolvingKey. More...
 
struct  MgmtLinkKeyInfo
 Used for MgmtLoadLinkKeyCmd and MgmtEvtNewLinkKey. More...
 
class  MgmtLoadConnParamCmd
 uint16_t param_count 2 MgmtConnParam param[] 15 = 1x More...
 
class  MgmtLoadIdentityResolvingKeyCmd
 uint16_t key_count MgmtIdentityResolvingKey keys[key_count] More...
 
class  MgmtLoadLinkKeyCmd
 uint8_t debug_keys, uint16_t key_count, MgmtLinkKey keys[key_count] More...
 
class  MgmtLoadLongTermKeyCmd
 uint16_t key_count MgmtLongTermKey keys[key_count] More...
 
struct  MgmtLongTermKeyInfo
 Used for MgmtLoadLongTermKeyCmd and MgmtEvtNewLongTermKey. More...
 
class  MgmtMsg
 
class  MgmtOpcodeException
 
class  MgmtPairDeviceCmd
 mgmt_addr_info { EUI48, uint8_t type }, SMPIOCapability io_cap (1 octet) More...
 
class  MgmtPinCodeNegativeReplyCmd
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  MgmtPinCodeReplyCmd
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t pin_len, uint8_t pin_code[16] More...
 
class  MgmtRemoveDeviceFromWhitelistCmd
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  MgmtSetDiscoverableCmd
 uint8_t discoverable uint16_t timeout More...
 
class  MgmtSetLocalNameCmd
 uint8_t name[MGMT_MAX_NAME_LENGTH]; uint8_t short_name[MGMT_MAX_SHORT_NAME_LENGTH]; More...
 
struct  MgmtSignatureResolvingKeyInfo
 Used for MgmtEvtNewSignatureResolvingKey. More...
 
class  MgmtUint8Cmd
 
class  MgmtUnpairDeviceCmd
 mgmt_addr_info { EUI48, uint8_t type }, bool disconnect (1 octet) More...
 
class  MgmtUserConfirmNegativeReplyCmd
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  MgmtUserConfirmReplyCmd
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  MgmtUserPasskeyNegativeReplyCmd
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  MgmtUserPasskeyReplyCmd
 mgmt_addr_info { EUI48, uint8_t type }, uint32_t passkey More...
 
class  NameAndShortName
 
class  POctets
 Persistent octet data, i.e. More...
 
class  SMPEncInfoMsg
 Vol 3, Part H: 3.6.2 Encryption Information message. More...
 
class  SMPEncKeyByteStream
 Tag type to group all SMP messages covering encryption keys, treated as byte stream (all of them). More...
 
class  SMPEnv
 SMP Singleton runtime environment properties. More...
 
class  SMPException
 
class  SMPHandler
 A thread safe SMP handler associated to one device via one L2CAP connection. More...
 
class  SMPIdentAddrInfoMsg
 Vol 3, Part H: 3.6.5 Identity Address Information message. More...
 
class  SMPIdentInfoMsg
 Vol 3, Part H: 3.6.4 Identify Information message. More...
 
class  SMPKeyBin
 Storage for SMP keys including the required connection parameter. More...
 
struct  SMPLongTermKeyInfo
 SMP Long Term Key Info, used for platform agnostic persistence. More...
 
class  SMPMasterIdentMsg
 Vol 3, Part H: 3.6.3 Master Identification message. More...
 
class  SMPOpcodeException
 
class  SMPPacketException
 
class  SMPPairConfirmMsg
 Vol 3, Part H: 3.5.3 Pairing Confirm message. More...
 
class  SMPPairDHKeyCheckMsg
 Vol 3, Part H: 3.5.7 Pairing DHKey Check message. More...
 
class  SMPPairFailedMsg
 Vol 3, Part H: 3.5.5 Pairing Failed message. More...
 
class  SMPPairingMsg
 Vol 3, Part H: 3.5.1 Pairing Request message. More...
 
class  SMPPairPubKeyMsg
 Vol 3, Part H: 3.5.6 Pairing Public Key message. More...
 
class  SMPPairRandMsg
 Vol 3, Part H: 3.5.4 Pairing Random message. More...
 
class  SMPPasskeyNotification
 Vol 3, Part H: 3.5.8 Passkey Entry: Keypress notification messages. More...
 
class  SMPPDUMsg
 Handles the Security Manager Protocol (SMP) using Protocol Data Unit (PDU) encoded messages over L2CAP channel. More...
 
class  SMPSecurityReqMsg
 Vol 3, Part H: 3.6.7 Security Request message. More...
 
struct  SMPSignatureResolvingKeyInfo
 SMP Signature Resolving Key Info, used for platform agnostic persistence. More...
 
class  SMPSignInfoMsg
 Vol 3, Part H: 3.6.6 Signing Information message. More...
 
class  SMPValueException
 
class  TOctets
 Transient octet data, i.e. More...
 
class  TOctetSlice
 
class  TROOctets
 Transient read only octet data, i.e. More...
 
class  uuid128_t
 
class  uuid16_t
 
class  uuid32_t
 
class  uuid_t
 

Typedefs

typedef std::shared_ptr< BTGattServiceBTGattServiceRef
 
typedef std::shared_ptr< BTGattCharBTGattCharRef
 
typedef std::shared_ptr< BTGattDescBTGattDescRef
 
typedef bool(* ChangedAdapterSetFunc) (bool added, std::shared_ptr< BTAdapter > &adapter)
 Callback function to receive change events regarding the system's adapter set, e.g. More...
 
typedef jau::FunctionDef< bool, bool, std::shared_ptr< BTAdapter > & > ChangedAdapterSetCallback
 Callback jau::FunctionDef to receive change events regarding the system's adapter set, e.g. More...
 
typedef jau::cow_darray< ChangedAdapterSetCallbackChangedAdapterSetCallbackList
 
typedef jau::FunctionDef< bool, const BDAddressAndType &, const SMPPDUMsg &, const HCIACLData::l2cap_frame & > HCISMPMsgCallback
 
typedef jau::cow_darray< HCISMPMsgCallbackHCISMPMsgCallbackList
 
typedef jau::FunctionDef< bool, const MgmtEvent & > MgmtEventCallback
 
typedef jau::cow_darray< MgmtEventCallbackMgmtEventCallbackList
 
typedef jau::cow_darray< MgmtAdapterEventCallbackMgmtAdapterEventCallbackList
 
typedef jau::FunctionDef< bool, const SMPPDUMsg & > SMPSecurityReqCallback
 
typedef jau::cow_darray< SMPSecurityReqCallbackSMPSecurityReqCallbackList
 

Enumerations

enum  BDAddressType : uint8_t { BDAddressType::BDADDR_BREDR = 0x00, BDAddressType::BDADDR_LE_PUBLIC = 0x01, BDAddressType::BDADDR_LE_RANDOM = 0x02, BDAddressType::BDADDR_UNDEFINED = 0xff }
 BT Core Spec v5.2: Vol 3, Part C Generic Access Profile (GAP): 15.1.1.1 Public Bluetooth address. More...
 
enum  BLERandomAddressType : uint8_t {
  BLERandomAddressType::UNRESOLVABLE_PRIVAT = 0x00, BLERandomAddressType::RESOLVABLE_PRIVAT = 0x01, BLERandomAddressType::RESERVED = 0x02, BLERandomAddressType::STATIC_PUBLIC = 0x03,
  BLERandomAddressType::UNDEFINED = 0xff
}
 BT Core Spec v5.2: Vol 6 LE, Part B Link Layer Specification: 1.3 Device Address. More...
 
enum  HCILEPeerAddressType : uint8_t {
  HCILEPeerAddressType::PUBLIC = 0x00, HCILEPeerAddressType::RANDOM = 0x01, HCILEPeerAddressType::PUBLIC_IDENTITY = 0x02, HCILEPeerAddressType::RANDOM_STATIC_IDENTITY = 0x03,
  HCILEPeerAddressType::UNDEFINED = 0xff
}
 HCI LE Address-Type is PUBLIC: 0x00, RANDOM: 0x01. More...
 
enum  HCILEOwnAddressType : uint8_t {
  HCILEOwnAddressType::PUBLIC = 0x00, HCILEOwnAddressType::RANDOM = 0x01, HCILEOwnAddressType::RESOLVABLE_OR_PUBLIC = 0x02, HCILEOwnAddressType::RESOLVABLE_OR_RANDOM = 0x03,
  HCILEOwnAddressType::UNDEFINED = 0xff
}
 
enum  BTMode : uint8_t { BTMode::NONE = 0, BTMode::DUAL = 1, BTMode::BREDR = 2, BTMode::LE = 3 }
 Bluetooth adapter operating mode. More...
 
enum  LE_Features : uint64_t {
  LE_Features::NONE = 0, LE_Features::LE_Encryption = 0b0000000000000000000000000000000000000000000000000000000000000001, LE_Features::Conn_Param_Req_Proc = 0b0000000000000000000000000000000000000000000000000000000000000010, LE_Features::Ext_Rej_Ind = 0b0000000000000000000000000000000000000000000000000000000000000100,
  LE_Features::SlaveInit_Feat_Exchg = 0b0000000000000000000000000000000000000000000000000000000000001000, LE_Features::LE_Ping = 0b0000000000000000000000000000000000000000000000000000000000010000, LE_Features::LE_Data_Pkt_Len_Ext = 0b0000000000000000000000000000000000000000000000000000000000100000, LE_Features::LL_Privacy = 0b0000000000000000000000000000000000000000000000000000000001000000,
  LE_Features::Ext_Scan_Filter_Pol = 0b0000000000000000000000000000000000000000000000000000000010000000, LE_Features::LE_2M_PHY = 0b0000000000000000000000000000000000000000000000000000000100000000, LE_Features::Stable_Mod_Idx_Tx = 0b0000000000000000000000000000000000000000000000000000001000000000, LE_Features::Stable_Mod_Idx_Rx = 0b0000000000000000000000000000000000000000000000000000010000000000,
  LE_Features::LE_Coded_PHY = 0b0000000000000000000000000000000000000000000000000000100000000000, LE_Features::LE_Ext_Adv = 0b0000000000000000000000000000000000000000000000000001000000000000, LE_Features::LE_Per_Adv = 0b0000000000000000000000000000000000000000000000000010000000000000, LE_Features::Chan_Sel_Algo_2 = 0b0000000000000000000000000000000000000000000000000100000000000000,
  LE_Features::LE_Pwr_Cls_1 = 0b0000000000000000000000000000000000000000000000001000000000000000, LE_Features::Min_Num_Used_Chan_Proc = 0b0000000000000000000000000000000000000000000000010000000000000000, LE_Features::Conn_CTE_Req = 0b0000000000000000000000000000000000000000000000100000000000000000, LE_Features::Conn_CTE_Res = 0b0000000000000000000000000000000000000000000001000000000000000000,
  LE_Features::ConnLess_CTE_Tx = 0b0000000000000000000000000000000000000000000010000000000000000000, LE_Features::ConnLess_CTE_Rx = 0b0000000000000000000000000000000000000000000100000000000000000000, LE_Features::AoD = 0b0000000000000000000000000000000000000000001000000000000000000000, LE_Features::AoA = 0b0000000000000000000000000000000000000000010000000000000000000000,
  LE_Features::Rx_Const_Tone_Ext = 0b0000000000000000000000000000000000000000100000000000000000000000, LE_Features::Per_Adv_Sync_Tx_Sender = 0b0000000000000000000000000000000000000001000000000000000000000000, LE_Features::Per_Adv_Sync_Tx_Rec = 0b0000000000000000000000000000000000000010000000000000000000000000, LE_Features::Zzz_Clk_Acc_Upd = 0b0000000000000000000000000000000000000100000000000000000000000000,
  LE_Features::Rem_Pub_Key_Val = 0b0000000000000000000000000000000000001000000000000000000000000000, LE_Features::Conn_Iso_Stream_Master = 0b0000000000000000000000000000000000010000000000000000000000000000, LE_Features::Conn_Iso_Stream_Slave = 0b0000000000000000000000000000000000100000000000000000000000000000, LE_Features::Iso_Brdcst = 0b0000000000000000000000000000000001000000000000000000000000000000,
  LE_Features::Sync_Rx = 0b0000000000000000000000000000000010000000000000000000000000000000, LE_Features::Iso_Chan = 0b0000000000000000000000000000000100000000000000000000000000000000, LE_Features::LE_Pwr_Ctrl_Req = 0b0000000000000000000000000000001000000000000000000000000000000000, LE_Features::LE_Pwr_Chg_Ind = 0b0000000000000000000000000000010000000000000000000000000000000000,
  LE_Features::LE_Path_Loss_Mon = 0b0000000000000000000000000000100000000000000000000000000000000000
}
 HCI Supported Commands. More...
 
enum  LE_PHYs : uint8_t { LE_PHYs::NONE = 0, LE_PHYs::LE_1M = 0b00000001, LE_PHYs::LE_2M = 0b00000010, LE_PHYs::LE_CODED = 0b00000100 }
 LE Transport PHY bit values. More...
 
enum  BTSecurityLevel : uint8_t {
  BTSecurityLevel::UNSET = 0, BTSecurityLevel::NONE = 1, BTSecurityLevel::ENC_ONLY = 2, BTSecurityLevel::ENC_AUTH = 3,
  BTSecurityLevel::ENC_AUTH_FIPS = 4
}
 Bluetooth Security Level. More...
 
enum  PairingMode : uint8_t {
  PairingMode::NONE = 0, PairingMode::NEGOTIATING = 1, PairingMode::JUST_WORKS = 2, PairingMode::PASSKEY_ENTRY_ini = 3,
  PairingMode::PASSKEY_ENTRY_res = 4, PairingMode::NUMERIC_COMPARE_ini = 5, PairingMode::NUMERIC_COMPARE_res = 6, PairingMode::OUT_OF_BAND = 7,
  PairingMode::PRE_PAIRED = 8
}
 Bluetooth secure pairing mode. More...
 
enum  ScanType : uint8_t { ScanType::NONE = 0, ScanType::BREDR = 1 << number(BDAddressType::BDADDR_BREDR), ScanType::LE = ( 1 << number(BDAddressType::BDADDR_LE_PUBLIC) ) | ( 1 << number(BDAddressType::BDADDR_LE_RANDOM) ), ScanType::DUAL = BREDR | LE }
 Meta ScanType as derived from BTMode, with defined value mask consisting of BDAddressType bits. More...
 
enum  AD_PDU_Type : uint8_t {
  AD_PDU_Type::ADV_IND = 0x00, AD_PDU_Type::ADV_DIRECT_IND = 0x01, AD_PDU_Type::ADV_SCAN_IND = 0x02, AD_PDU_Type::ADV_NONCONN_IND = 0x03,
  AD_PDU_Type::SCAN_RSP = 0x04, AD_PDU_Type::ADV_IND2 = 0b0010011, AD_PDU_Type::DIRECT_IND2 = 0b0010101, AD_PDU_Type::SCAN_IND2 = 0b0010010,
  AD_PDU_Type::NONCONN_IND2 = 0b0010000, AD_PDU_Type::SCAN_RSP_to_ADV_IND = 0b0011011, AD_PDU_Type::SCAN_RSP_to_ADV_SCAN_IND = 0b0011010, AD_PDU_Type::UNDEFINED = 0xff
}
 LE Advertising (AD) Protocol Data Unit (PDU) Types. More...
 
enum  EAD_Event_Type : uint16_t {
  EAD_Event_Type::NONE = 0, EAD_Event_Type::CONN_ADV = 0b00000001, EAD_Event_Type::SCAN_ADV = 0b00000010, EAD_Event_Type::DIR_ADV = 0b00000100,
  EAD_Event_Type::SCAN_RSP = 0b00001000, EAD_Event_Type::LEGACY_PDU = 0b00010000, EAD_Event_Type::DATA_B0 = 0b00100000, EAD_Event_Type::DATA_B1 = 0b01000000
}
 LE Extended Advertising (EAD) Event Types. More...
 
enum  HCIWhitelistConnectType : uint8_t { HCIWhitelistConnectType::HCI_AUTO_CONN_REPORT = 0x00, HCIWhitelistConnectType::HCI_AUTO_CONN_DIRECT = 0x01, HCIWhitelistConnectType::HCI_AUTO_CONN_ALWAYS = 0x02 }
 HCI Whitelist connection type. More...
 
enum  AD_Type_Const : uint8_t { AD_Type_Const::AD_FLAGS_LIMITED_MODE_BIT = 0x01, AD_Type_Const::AD_FLAGS_GENERAL_MODE_BIT = 0x02 }
 
enum  L2CAP_CID : uint16_t {
  L2CAP_CID::UNDEFINED = 0x0000, L2CAP_CID::SIGNALING = 0x0001, L2CAP_CID::CONN_LESS = 0x0002, L2CAP_CID::A2MP = 0x0003,
  L2CAP_CID::ATT = 0x0004, L2CAP_CID::LE_SIGNALING = 0x0005, L2CAP_CID::SMP = 0x0006, L2CAP_CID::SMP_BREDR = 0x0007,
  L2CAP_CID::DYN_START = 0x0040, L2CAP_CID::DYN_END = 0xffff, L2CAP_CID::LE_DYN_END = 0x007f
}
 
enum  L2CAP_PSM : uint16_t {
  L2CAP_PSM::UNDEFINED = 0x0000, L2CAP_PSM::SDP = 0x0001, L2CAP_PSM::RFCOMM = 0x0003, L2CAP_PSM::TCSBIN = 0x0005,
  L2CAP_PSM::TCSBIN_CORDLESS = 0x0007, L2CAP_PSM::BNEP = 0x000F, L2CAP_PSM::HID_CONTROL = 0x0011, L2CAP_PSM::HID_INTERRUPT = 0x0013,
  L2CAP_PSM::UPNP = 0x0015, L2CAP_PSM::AVCTP = 0x0017, L2CAP_PSM::AVDTP = 0x0019, L2CAP_PSM::AVCTP_BROWSING = 0x001B,
  L2CAP_PSM::UDI_C_PLANE = 0x001D, L2CAP_PSM::ATT = 0x001F, L2CAP_PSM::LE_DYN_START = 0x0080, L2CAP_PSM::LE_DYN_END = 0x00FF,
  L2CAP_PSM::DYN_START = 0x1001, L2CAP_PSM::DYN_END = 0xffff, L2CAP_PSM::AUTO_END = 0x10ff
}
 Protocol Service Multiplexers (PSM) Assigned numbers https://www.bluetooth.com/specifications/assigned-numbers/logical-link-control/ More...
 
enum  L2CAP_States : uint8_t {
  L2CAP_States::CLOSED, L2CAP_States::WAIT_CONNECTED, L2CAP_States::WAIT_CONNECTED_RSP, L2CAP_States::CONFIG,
  L2CAP_States::OPEN, L2CAP_States::WAIT_DISCONNECTED, L2CAP_States::WAIT_CREATE, L2CAP_States::WAIT_CONNECT,
  L2CAP_States::WAIT_CREATE_RSP, L2CAP_States::WAIT_MOVE, L2CAP_States::WAIT_MOVE_RSP, L2CAP_States::WAIT_MOVE_CONFIRM,
  L2CAP_States::WAIT_CONFIRM_RSP
}
 BT Core Spec v5.2: Vol 3, Part A L2CAP Spec: 6 State Machine. More...
 
enum  GAP_T : uint8_t {
  GAP_T::FLAGS = 0x01, GAP_T::UUID16_INCOMPLETE = 0x02, GAP_T::UUID16_COMPLETE = 0x03, GAP_T::UUID32_INCOMPLETE = 0x04,
  GAP_T::UUID32_COMPLETE = 0x05, GAP_T::UUID128_INCOMPLETE = 0x06, GAP_T::UUID128_COMPLETE = 0x07, GAP_T::NAME_LOCAL_SHORT = 0x08,
  GAP_T::NAME_LOCAL_COMPLETE = 0x09, GAP_T::TX_POWER_LEVEL = 0x0A, GAP_T::SSP_CLASS_OF_DEVICE = 0x0D, GAP_T::SSP_HASH_C192 = 0x0E,
  GAP_T::SSP_RANDOMIZER_R192 = 0x0F, GAP_T::DEVICE_ID = 0x10, GAP_T::SEC_MGR_TK_VALUE = 0x10, GAP_T::SEC_MGR_OOB_FLAGS = 0x11,
  GAP_T::SLAVE_CONN_IVAL_RANGE = 0x12, GAP_T::SOLICIT_UUID16 = 0x14, GAP_T::SOLICIT_UUID128 = 0x15, GAP_T::SVC_DATA_UUID16 = 0x16,
  GAP_T::PUB_TRGT_ADDR = 0x17, GAP_T::RND_TRGT_ADDR = 0x18, GAP_T::GAP_APPEARANCE = 0x19, GAP_T::ADV_INTERVAL = 0x1A,
  GAP_T::LE_BT_DEV_ADDRESS = 0x1B, GAP_T::LE_ROLE = 0x1C, GAP_T::SSP_HASH_C256 = 0x1D, GAP_T::SSP_RANDOMIZER_R256 = 0x1E,
  GAP_T::SOLICIT_UUID32 = 0x1F, GAP_T::SVC_DATA_UUID32 = 0x20, GAP_T::SVC_DATA_UUID128 = 0x21, GAP_T::SSP_LE_SEC_CONN_ACK_VALUE = 0x22,
  GAP_T::SSP_LE_SEC_CONN_RND_VALUE = 0x23, GAP_T::URI = 0x24, GAP_T::INDOOR_POSITIONING = 0x25, GAP_T::TX_DISCOVERY_DATA = 0x26,
  GAP_T::LE_SUPP_FEATURES = 0x27, GAP_T::CH_MAP_UPDATE_IND = 0x28, GAP_T::PB_ADV = 0x29, GAP_T::MESH_MESSAGE = 0x2A,
  GAP_T::MESH_BEACON = 0x2B, GAP_T::BIG_INFO = 0x2C, GAP_T::BROADCAST_CODE = 0x2D, GAP_T::INFO_DATA_3D = 0x3D,
  GAP_T::MANUFACTURE_SPECIFIC = 0xFF
}
 â€‹â€‹Assigned numbers are used in Generic Access Profile (GAP) for inquiry response, EIR data type values, manufacturer-specific data, advertising data, low energy UUIDs and appearance characteristics, and class of device. More...
 
enum  AppearanceCat : uint16_t {
  AppearanceCat::UNKNOWN = 0, AppearanceCat::GENERIC_PHONE = 64, AppearanceCat::GENERIC_COMPUTER = 128, AppearanceCat::GENERIC_WATCH = 192,
  AppearanceCat::SPORTS_WATCH = 193, AppearanceCat::GENERIC_CLOCK = 256, AppearanceCat::GENERIC_DISPLAY = 320, AppearanceCat::GENERIC_REMOTE_CLOCK = 384,
  AppearanceCat::GENERIC_EYE_GLASSES = 448, AppearanceCat::GENERIC_TAG = 512, AppearanceCat::GENERIC_KEYRING = 576, AppearanceCat::GENERIC_MEDIA_PLAYER = 640,
  AppearanceCat::GENERIC_BARCODE_SCANNER = 704, AppearanceCat::GENERIC_THERMOMETER = 768, AppearanceCat::GENERIC_THERMOMETER_EAR = 769, AppearanceCat::GENERIC_HEART_RATE_SENSOR = 832,
  AppearanceCat::HEART_RATE_SENSOR_BELT = 833, AppearanceCat::GENERIC_BLOD_PRESSURE = 896, AppearanceCat::BLOD_PRESSURE_ARM = 897, AppearanceCat::BLOD_PRESSURE_WRIST = 898,
  AppearanceCat::HID = 960, AppearanceCat::HID_KEYBOARD = 961, AppearanceCat::HID_MOUSE = 962, AppearanceCat::HID_JOYSTICK = 963,
  AppearanceCat::HID_GAMEPAD = 964, AppearanceCat::HID_DIGITIZER_TABLET = 965, AppearanceCat::HID_CARD_READER = 966, AppearanceCat::HID_DIGITAL_PEN = 967,
  AppearanceCat::HID_BARCODE_SCANNER = 968, AppearanceCat::GENERIC_GLUCOSE_METER = 1024, AppearanceCat::GENERIC_RUNNING_WALKING_SENSOR = 1088, AppearanceCat::RUNNING_WALKING_SENSOR_IN_SHOE = 1089,
  AppearanceCat::RUNNING_WALKING_SENSOR_ON_SHOE = 1090, AppearanceCat::RUNNING_WALKING_SENSOR_HIP = 1091, AppearanceCat::GENERIC_CYCLING = 1152, AppearanceCat::CYCLING_COMPUTER = 1153,
  AppearanceCat::CYCLING_SPEED_SENSOR = 1154, AppearanceCat::CYCLING_CADENCE_SENSOR = 1155, AppearanceCat::CYCLING_POWER_SENSOR = 1156, AppearanceCat::CYCLING_SPEED_AND_CADENCE_SENSOR = 1157,
  AppearanceCat::GENERIC_PULSE_OXIMETER = 3136, AppearanceCat::PULSE_OXIMETER_FINGERTIP = 3137, AppearanceCat::PULSE_OXIMETER_WRIST = 3138, AppearanceCat::GENERIC_WEIGHT_SCALE = 3200,
  AppearanceCat::GENERIC_PERSONAL_MOBILITY_DEVICE = 3264, AppearanceCat::PERSONAL_MOBILITY_DEVICE_WHEELCHAIR = 3265, AppearanceCat::PERSONAL_MOBILITY_DEVICE_SCOOTER = 3266, AppearanceCat::GENERIC_CONTINUOUS_GLUCOSE_MONITOR = 3328,
  AppearanceCat::GENERIC_INSULIN_PUMP = 3392, AppearanceCat::INSULIN_PUMP_DURABLE = 3393, AppearanceCat::INSULIN_PUMP_PATCH = 3396, AppearanceCat::INSULIN_PUMP_PEN = 3400,
  AppearanceCat::GENERIC_MEDICATION_DELIVERY = 3456, AppearanceCat::GENERIC_OUTDOOR_SPORTS_ACTIVITY = 5184, AppearanceCat::OUTDOOR_SPORTS_ACTIVITY_LOCATION_DISPLAY_DEVICE = 5185, AppearanceCat::OUTDOOR_SPORTS_ACTIVITY_LOCATION_AND_NAVIGATION_DISPLAY_DEVICE = 5186,
  AppearanceCat::OUTDOOR_SPORTS_ACTIVITY_LOCATION_POD = 5187, AppearanceCat::OUTDOOR_SPORTS_ACTIVITY_LOCATION_AND_NAVIGATION_POD = 5188
}
 
enum  GAPFlags : uint8_t {
  GAPFlags::NONE = 0, GAPFlags::LE_Ltd_Discoverable = (1 << 0), GAPFlags::LE_Gen_Discoverable = (1 << 1), GAPFlags::BREDR_UNSUPPORTED = (1 << 2),
  GAPFlags::DUAL_LE_BREDR_SameCtrl = (1 << 3), GAPFlags::DUAL_LE_BREDR_SameHost = (1 << 4), GAPFlags::RESERVED1 = (1 << 5), GAPFlags::RESERVED2 = (1 << 6),
  GAPFlags::RESERVED3 = (1 << 7)
}
 GAP Flags values, see Bluetooth Core Specification Supplement V9, Part A: 1.3, p 12 pp. More...
 
enum  EIRDataType : uint32_t {
  EIRDataType::NONE = 0, EIRDataType::EVT_TYPE = (1 << 0), EIRDataType::EXT_EVT_TYPE = (1 << 1), EIRDataType::BDADDR_TYPE = (1 << 2),
  EIRDataType::BDADDR = (1 << 3), EIRDataType::FLAGS = (1 << 4), EIRDataType::NAME = (1 << 5), EIRDataType::NAME_SHORT = (1 << 6),
  EIRDataType::RSSI = (1 << 7), EIRDataType::TX_POWER = (1 << 8), EIRDataType::MANUF_DATA = (1 << 9), EIRDataType::DEVICE_CLASS = (1 << 10),
  APPEARANCE = (1 << 11), EIRDataType::HASH = (1 << 12), EIRDataType::RANDOMIZER = (1 << 13), EIRDataType::DEVICE_ID = (1 << 14),
  EIRDataType::SERVICE_UUID = (1 << 30)
}
 Bit mask of 'Extended Inquiry Response' (EIR) data fields, indicating a set of related data. More...
 
enum  AdapterSetting : uint32_t {
  AdapterSetting::NONE = 0, AdapterSetting::POWERED = 0x00000001, AdapterSetting::CONNECTABLE = 0x00000002, AdapterSetting::FAST_CONNECTABLE = 0x00000004,
  AdapterSetting::DISCOVERABLE = 0x00000008, AdapterSetting::BONDABLE = 0x00000010, AdapterSetting::LINK_SECURITY = 0x00000020, AdapterSetting::SSP = 0x00000040,
  AdapterSetting::BREDR = 0x00000080, AdapterSetting::HS = 0x00000100, AdapterSetting::LE = 0x00000200, AdapterSetting::ADVERTISING = 0x00000400,
  AdapterSetting::SECURE_CONN = 0x00000800, AdapterSetting::DEBUG_KEYS = 0x00001000, AdapterSetting::PRIVACY = 0x00002000, AdapterSetting::CONFIGURATION = 0x00004000,
  AdapterSetting::STATIC_ADDRESS = 0x00008000, AdapterSetting::PHY_CONFIGURATION = 0x00010000
}
 Adapter Setting Bits. More...
 
enum  GattServiceType : uint16_t {
  GENERIC_ACCESS = 0x1800, GENERIC_ATTRIBUTE = 0x1801, IMMEDIATE_ALERT = 0x1802, LINK_LOSS = 0x1803,
  HEALTH_THERMOMETER = 0x1809, DEVICE_INFORMATION = 0x180A, BATTERY_SERVICE = 0x180F
}
 GATT Service Type, each encapsulating a set of Characteristics. More...
 
enum  GattCharacteristicType : uint16_t {
  DEVICE_NAME = 0x2A00, APPEARANCE = 0x2A01, APPEARANCE = (1 << 11), PERIPHERAL_PRIVACY_FLAG = 0x2A02,
  RECONNECTION_ADDRESS = 0x2A03, PERIPHERAL_PREFERRED_CONNECTION_PARAMETERS = 0x2A04, TEMPERATURE = 0x2A6E, TEMPERATURE_CELSIUS = 0x2A1F,
  TEMPERATURE_FAHRENHEIT = 0x2A20, TEMPERATURE_MEASUREMENT = 0x2A1C, TEMPERATURE_TYPE = 0x2A1D, INTERMEDIATE_TEMPERATURE = 0x2A1E,
  MEASUREMENT_INTERVAL = 0x2A21, SYSTEM_ID = 0x2A23, MODEL_NUMBER_STRING = 0x2A24, SERIAL_NUMBER_STRING = 0x2A25,
  FIRMWARE_REVISION_STRING = 0x2A26, HARDWARE_REVISION_STRING = 0x2A27, SOFTWARE_REVISION_STRING = 0x2A28, MANUFACTURER_NAME_STRING = 0x2A29,
  REGULATORY_CERT_DATA_LIST = 0x2A2A, PNP_ID = 0x2A50
}
 GATT Assigned Characteristic Attribute Type for single logical value. More...
 
enum  GattCharacteristicProperty : uint8_t {
  Broadcast = 0x01, Read = 0x02, WriteNoAck = 0x04, WriteWithAck = 0x08,
  Notify = 0x10, Indicate = 0x20, AuthSignedWrite = 0x40, ExtProps = 0x80,
  ReliableWriteExt = 0x81, AuxWriteExt = 0x82
}
 
enum  GattRequirementSpec : uint8_t {
  Excluded = 0x00, Mandatory = 0x01, Optional = 0x02, Conditional = 0x03,
  if_characteristic_supported = 0x11, if_notify_or_indicate_supported = 0x12, C1 = 0x21
}
 
enum  GattAttributeType : uint16_t {
  PRIMARY_SERVICE = 0x2800, SECONDARY_SERVICE = 0x2801, INCLUDE_DECLARATION = 0x2802, CHARACTERISTIC = 0x2803,
  CHARACTERISTIC_APPEARANCE = 0x2A01, CHARACTERISTIC_PERIPHERAL_PRIV_FLAG = 0x2A02, CHARACTERISTIC_RECONNECTION_ADDRESS = 0x2A03, CHARACTERISTIC_PERIPHERAL_PREF_CONN = 0x2A04,
  CHARACTERISTIC_SERVICE_CHANGED = 0x2A05, CHARACTERISTIC_EXTENDED_PROPERTIES = 0x2900, CHARACTERISTIC_USER_DESCRIPTION = 0x2901, CLIENT_CHARACTERISTIC_CONFIGURATION = 0x2902,
  SERVER_CHARACTERISTIC_CONFIGURATION = 0x2903, CHARACTERISTIC_PRESENTATION_FORMAT = 0x2904, CHARACTERISTIC_AGGREGATE_FORMAT = 0x2905
}
 Following UUID16 GATT profile attribute types are listed under: BT Core Spec v5.2: Vol 3, Part G GATT: 3.4 Summary of GATT Profile Attribute Types. More...
 
enum  HCIConstInt : int32_t { HCIConstInt::LE_CONN_MIN_TIMEOUT_MS = 500 }
 
enum  HCIConstU16 : uint16_t { HCIConstU16::INDEX_NONE = 0xFFFF, HCIConstU16::MAX_NAME_LENGTH = 248, HCIConstU16::MAX_SHORT_NAME_LENGTH = 10, HCIConstU16::MAX_AD_LENGTH = 31 }
 
enum  HCIStatusCode : uint8_t {
  HCIStatusCode::SUCCESS = 0x00, HCIStatusCode::UNKNOWN_HCI_COMMAND = 0x01, HCIStatusCode::UNKNOWN_CONNECTION_IDENTIFIER = 0x02, HCIStatusCode::HARDWARE_FAILURE = 0x03,
  HCIStatusCode::PAGE_TIMEOUT = 0x04, HCIStatusCode::AUTHENTICATION_FAILURE = 0x05, HCIStatusCode::PIN_OR_KEY_MISSING = 0x06, HCIStatusCode::MEMORY_CAPACITY_EXCEEDED = 0x07,
  HCIStatusCode::CONNECTION_TIMEOUT = 0x08, HCIStatusCode::CONNECTION_LIMIT_EXCEEDED = 0x09, HCIStatusCode::SYNC_DEVICE_CONNECTION_LIMIT_EXCEEDED = 0x0a, HCIStatusCode::CONNECTION_ALREADY_EXISTS = 0x0b,
  HCIStatusCode::COMMAND_DISALLOWED = 0x0c, HCIStatusCode::CONNECTION_REJECTED_LIMITED_RESOURCES = 0x0d, HCIStatusCode::CONNECTION_REJECTED_SECURITY = 0x0e, HCIStatusCode::CONNECTION_REJECTED_UNACCEPTABLE_BD_ADDR = 0x0f,
  HCIStatusCode::CONNECTION_ACCEPT_TIMEOUT_EXCEEDED = 0x10, HCIStatusCode::UNSUPPORTED_FEATURE_OR_PARAM_VALUE = 0x11, HCIStatusCode::INVALID_HCI_COMMAND_PARAMETERS = 0x12, HCIStatusCode::REMOTE_USER_TERMINATED_CONNECTION = 0x13,
  HCIStatusCode::REMOTE_DEVICE_TERMINATED_CONNECTION_LOW_RESOURCES = 0x14, HCIStatusCode::REMOTE_DEVICE_TERMINATED_CONNECTION_POWER_OFF = 0x15, HCIStatusCode::CONNECTION_TERMINATED_BY_LOCAL_HOST = 0x16, HCIStatusCode::REPEATED_ATTEMPTS = 0x17,
  HCIStatusCode::PAIRING_NOT_ALLOWED = 0x18, HCIStatusCode::UNKNOWN_LMP_PDU = 0x19, HCIStatusCode::UNSUPPORTED_REMOTE_OR_LMP_FEATURE = 0x1a, HCIStatusCode::SCO_OFFSET_REJECTED = 0x1b,
  HCIStatusCode::SCO_INTERVAL_REJECTED = 0x1c, HCIStatusCode::SCO_AIR_MODE_REJECTED = 0x1d, HCIStatusCode::INVALID_LMP_OR_LL_PARAMETERS = 0x1e, HCIStatusCode::UNSPECIFIED_ERROR = 0x1f,
  HCIStatusCode::UNSUPPORTED_LMP_OR_LL_PARAMETER_VALUE = 0x20, HCIStatusCode::ROLE_CHANGE_NOT_ALLOWED = 0x21, HCIStatusCode::LMP_OR_LL_RESPONSE_TIMEOUT = 0x22, HCIStatusCode::LMP_OR_LL_COLLISION = 0x23,
  HCIStatusCode::LMP_PDU_NOT_ALLOWED = 0x24, HCIStatusCode::ENCRYPTION_MODE_NOT_ACCEPTED = 0x25, HCIStatusCode::LINK_KEY_CANNOT_BE_CHANGED = 0x26, HCIStatusCode::REQUESTED_QOS_NOT_SUPPORTED = 0x27,
  HCIStatusCode::INSTANT_PASSED = 0x28, HCIStatusCode::PAIRING_WITH_UNIT_KEY_NOT_SUPPORTED = 0x29, HCIStatusCode::DIFFERENT_TRANSACTION_COLLISION = 0x2a, HCIStatusCode::QOS_UNACCEPTABLE_PARAMETER = 0x2c,
  HCIStatusCode::QOS_REJECTED = 0x2d, HCIStatusCode::CHANNEL_ASSESSMENT_NOT_SUPPORTED = 0x2e, HCIStatusCode::INSUFFICIENT_SECURITY = 0x2f, HCIStatusCode::PARAMETER_OUT_OF_RANGE = 0x30,
  HCIStatusCode::ROLE_SWITCH_PENDING = 0x32, HCIStatusCode::RESERVED_SLOT_VIOLATION = 0x34, HCIStatusCode::ROLE_SWITCH_FAILED = 0x35, HCIStatusCode::EIR_TOO_LARGE = 0x36,
  HCIStatusCode::SIMPLE_PAIRING_NOT_SUPPORTED_BY_HOST = 0x37, HCIStatusCode::HOST_BUSY_PAIRING = 0x38, HCIStatusCode::CONNECTION_REJECTED_NO_SUITABLE_CHANNEL = 0x39, HCIStatusCode::CONTROLLER_BUSY = 0x3a,
  HCIStatusCode::UNACCEPTABLE_CONNECTION_PARAM = 0x3b, HCIStatusCode::ADVERTISING_TIMEOUT = 0x3c, HCIStatusCode::CONNECTION_TERMINATED_MIC_FAILURE = 0x3d, HCIStatusCode::CONNECTION_EST_FAILED_OR_SYNC_TIMEOUT = 0x3e,
  HCIStatusCode::MAX_CONNECTION_FAILED = 0x3f, HCIStatusCode::COARSE_CLOCK_ADJ_REJECTED = 0x40, HCIStatusCode::TYPE0_SUBMAP_NOT_DEFINED = 0x41, HCIStatusCode::UNKNOWN_ADVERTISING_IDENTIFIER = 0x42,
  HCIStatusCode::LIMIT_REACHED = 0x43, HCIStatusCode::OPERATION_CANCELLED_BY_HOST = 0x44, HCIStatusCode::PACKET_TOO_LONG = 0x45, HCIStatusCode::FAILED = 0xc3,
  HCIStatusCode::CONNECT_FAILED = 0xc4, HCIStatusCode::AUTH_FAILED = 0xc5, HCIStatusCode::NOT_PAIRED = 0xc6, HCIStatusCode::NO_RESOURCES = 0xc7,
  HCIStatusCode::TIMEOUT = 0xc8, HCIStatusCode::ALREADY_CONNECTED = 0xc9, HCIStatusCode::BUSY = 0xca, HCIStatusCode::REJECTED = 0xcb,
  HCIStatusCode::NOT_SUPPORTED = 0xcc, HCIStatusCode::INVALID_PARAMS = 0xcd, HCIStatusCode::DISCONNECTED = 0xce, HCIStatusCode::NOT_POWERED = 0xcf,
  HCIStatusCode::CANCELLED = 0xd0, HCIStatusCode::INVALID_INDEX = 0xd1, HCIStatusCode::RFKILLED = 0xd2, HCIStatusCode::ALREADY_PAIRED = 0xd3,
  HCIStatusCode::PERMISSION_DENIED = 0xd4, HCIStatusCode::INTERNAL_TIMEOUT = 0xfd, HCIStatusCode::INTERNAL_FAILURE = 0xfe, HCIStatusCode::UNKNOWN = 0xff
}
 BT Core Spec v5.2: Vol 1, Part F Controller Error Codes: 1.3 List of Error Codes. More...
 
enum  HCIConstSizeT : jau::nsize_t {
  HCIConstSizeT::COMMAND_HDR_SIZE = 1+3, HCIConstSizeT::ACL_HDR_SIZE = 1+4, HCIConstSizeT::SCO_HDR_SIZE = 1+3, HCIConstSizeT::EVENT_HDR_SIZE = 1+2,
  HCIConstSizeT::PACKET_MAX_SIZE = 255
}
 
enum  HCIPacketType : uint8_t {
  HCIPacketType::COMMAND = 0x01, HCIPacketType::ACLDATA = 0x02, HCIPacketType::SCODATA = 0x03, HCIPacketType::EVENT = 0x04,
  HCIPacketType::DIAG = 0xf0, HCIPacketType::VENDOR = 0xff
}
 
enum  HCIOGF : uint8_t { HCIOGF::LINK_CTL = 0x01, HCIOGF::LINK_POLICY = 0x02, HCIOGF::BREDR_CTL = 0x03, HCIOGF::LE_CTL = 0x08 }
 
enum  HCIEventType : uint8_t {
  HCIEventType::INVALID = 0x00, HCIEventType::INQUIRY_COMPLETE = 0x01, HCIEventType::INQUIRY_RESULT = 0x02, HCIEventType::CONN_COMPLETE = 0x03,
  HCIEventType::CONN_REQUEST = 0x04, HCIEventType::DISCONN_COMPLETE = 0x05, HCIEventType::AUTH_COMPLETE = 0x06, HCIEventType::REMOTE_NAME = 0x07,
  HCIEventType::ENCRYPT_CHANGE = 0x08, HCIEventType::CHANGE_LINK_KEY_COMPLETE = 0x09, HCIEventType::REMOTE_FEATURES = 0x0b, HCIEventType::REMOTE_VERSION = 0x0c,
  HCIEventType::QOS_SETUP_COMPLETE = 0x0d, HCIEventType::CMD_COMPLETE = 0x0e, HCIEventType::CMD_STATUS = 0x0f, HCIEventType::HARDWARE_ERROR = 0x10,
  HCIEventType::ROLE_CHANGE = 0x12, HCIEventType::NUM_COMP_PKTS = 0x13, HCIEventType::MODE_CHANGE = 0x14, HCIEventType::PIN_CODE_REQ = 0x16,
  HCIEventType::LINK_KEY_REQ = 0x17, HCIEventType::LINK_KEY_NOTIFY = 0x18, HCIEventType::CLOCK_OFFSET = 0x1c, HCIEventType::PKT_TYPE_CHANGE = 0x1d,
  HCIEventType::ENCRYPT_KEY_REFRESH_COMPLETE = 0x30, HCIEventType::IO_CAPABILITY_REQUEST = 0x31, HCIEventType::IO_CAPABILITY_RESPONSE = 0x32, HCIEventType::LE_META = 0x3e,
  HCIEventType::DISCONN_PHY_LINK_COMPLETE = 0x42, HCIEventType::DISCONN_LOGICAL_LINK_COMPLETE = 0x46, HCIEventType::AMP_Receiver_Report = 0x4b
}
 BT Core Spec v5.2: Vol 4, Part E HCI: 7.7 Events. More...
 
enum  HCIMetaEventType : uint8_t {
  HCIMetaEventType::INVALID = 0x00, HCIMetaEventType::LE_CONN_COMPLETE = 0x01, HCIMetaEventType::LE_ADVERTISING_REPORT = 0x02, HCIMetaEventType::LE_CONN_UPDATE_COMPLETE = 0x03,
  HCIMetaEventType::LE_REMOTE_FEAT_COMPLETE = 0x04, HCIMetaEventType::LE_LTKEY_REQUEST = 0x05, HCIMetaEventType::LE_REMOTE_CONN_PARAM_REQ = 0x06, HCIMetaEventType::LE_DATA_LENGTH_CHANGE = 0x07,
  HCIMetaEventType::LE_READ_LOCAL_P256_PUBKEY_COMPLETE = 0x08, HCIMetaEventType::LE_GENERATE_DHKEY_COMPLETE = 0x09, HCIMetaEventType::LE_EXT_CONN_COMPLETE = 0x0A, HCIMetaEventType::LE_DIRECT_ADV_REPORT = 0x0B,
  HCIMetaEventType::LE_PHY_UPDATE_COMPLETE = 0x0C, HCIMetaEventType::LE_EXT_ADV_REPORT = 0x0D, HCIMetaEventType::LE_PERIODIC_ADV_SYNC_ESTABLISHED = 0x0E, HCIMetaEventType::LE_PERIODIC_ADV_REPORT = 0x0F,
  HCIMetaEventType::LE_PERIODIC_ADV_SYNC_LOST = 0x10, HCIMetaEventType::LE_SCAN_TIMEOUT = 0x11, HCIMetaEventType::LE_ADV_SET_TERMINATED = 0x12, HCIMetaEventType::LE_SCAN_REQ_RECEIVED = 0x13,
  HCIMetaEventType::LE_CHANNEL_SEL_ALGO = 0x14, HCIMetaEventType::LE_CONNLESS_IQ_REPORT = 0x15, HCIMetaEventType::LE_CONN_IQ_REPORT = 0x16, HCIMetaEventType::LE_CTE_REQ_FAILED = 0x17,
  HCIMetaEventType::LE_PERIODIC_ADV_SYNC_TRANSFER_RECV = 0x18, HCIMetaEventType::LE_CIS_ESTABLISHED = 0x19, HCIMetaEventType::LE_CIS_REQUEST = 0x1A, HCIMetaEventType::LE_CREATE_BIG_COMPLETE = 0x1B,
  HCIMetaEventType::LE_TERMINATE_BIG_COMPLETE = 0x1C, HCIMetaEventType::LE_BIG_SYNC_ESTABLISHED = 0x1D, HCIMetaEventType::LE_BIG_SYNC_LOST = 0x1E, HCIMetaEventType::LE_REQUEST_PEER_SCA_COMPLETE = 0x1F,
  HCIMetaEventType::LE_PATH_LOSS_THRESHOLD = 0x20, HCIMetaEventType::LE_TRANSMIT_POWER_REPORTING = 0x21, HCIMetaEventType::LE_BIGINFO_ADV_REPORT = 0x22
}
 BT Core Spec v5.2: Vol 4, Part E HCI: 7.7.65 LE Meta event. More...
 
enum  HCIOpcode : uint16_t {
  HCIOpcode::SPECIAL = 0x0000, HCIOpcode::CREATE_CONN = 0x0405, HCIOpcode::DISCONNECT = 0x0406, HCIOpcode::IO_CAPABILITY_REQ_REPLY = 0x042b,
  HCIOpcode::IO_CAPABILITY_REQ_NEG_REPLY = 0x0434, HCIOpcode::SET_EVENT_MASK = 0x0C01, HCIOpcode::RESET = 0x0C03, HCIOpcode::READ_LOCAL_VERSION = 0x1001,
  HCIOpcode::READ_LOCAL_COMMANDS = 0x1002, HCIOpcode::LE_SET_EVENT_MASK = 0x2001, HCIOpcode::LE_READ_BUFFER_SIZE = 0x2002, HCIOpcode::LE_READ_LOCAL_FEATURES = 0x2003,
  HCIOpcode::LE_SET_RANDOM_ADDR = 0x2005, HCIOpcode::LE_SET_ADV_PARAM = 0x2006, HCIOpcode::LE_READ_ADV_TX_POWER = 0x2007, HCIOpcode::LE_SET_ADV_DATA = 0x2008,
  HCIOpcode::LE_SET_SCAN_RSP_DATA = 0x2009, HCIOpcode::LE_SET_ADV_ENABLE = 0x200a, HCIOpcode::LE_SET_SCAN_PARAM = 0x200b, HCIOpcode::LE_SET_SCAN_ENABLE = 0x200c,
  HCIOpcode::LE_CREATE_CONN = 0x200d, HCIOpcode::LE_CREATE_CONN_CANCEL = 0x200e, HCIOpcode::LE_READ_WHITE_LIST_SIZE = 0x200f, HCIOpcode::LE_CLEAR_WHITE_LIST = 0x2010,
  HCIOpcode::LE_ADD_TO_WHITE_LIST = 0x2011, HCIOpcode::LE_DEL_FROM_WHITE_LIST = 0x2012, HCIOpcode::LE_CONN_UPDATE = 0x2013, HCIOpcode::LE_READ_REMOTE_FEATURES = 0x2016,
  HCIOpcode::LE_ENABLE_ENC = 0x2019, HCIOpcode::LE_READ_PHY = 0x2030, HCIOpcode::LE_SET_DEFAULT_PHY = 0x2031, HCIOpcode::LE_SET_EXT_SCAN_PARAMS = 0x2041,
  HCIOpcode::LE_SET_EXT_SCAN_ENABLE = 0x2042, HCIOpcode::LE_EXT_CREATE_CONN = 0x2043
}
 BT Core Spec v5.2: Vol 4, Part E HCI: 7.1 Link Controller commands. More...
 
enum  HCIOpcodeBit : uint8_t {
  HCIOpcodeBit::SPECIAL = 0, HCIOpcodeBit::CREATE_CONN = 3, HCIOpcodeBit::DISCONNECT = 4, HCIOpcodeBit::IO_CAPABILITY_REQ_REPLY = 5,
  HCIOpcodeBit::IO_CAPABILITY_REQ_NEG_REPLY = 6, HCIOpcodeBit::SET_EVENT_MASK = 7, HCIOpcodeBit::RESET = 8, HCIOpcodeBit::READ_LOCAL_VERSION = 10,
  HCIOpcodeBit::READ_LOCAL_COMMANDS = 11, HCIOpcodeBit::LE_SET_EVENT_MASK = 20, HCIOpcodeBit::LE_READ_BUFFER_SIZE = 21, HCIOpcodeBit::LE_READ_LOCAL_FEATURES = 22,
  HCIOpcodeBit::LE_SET_RANDOM_ADDR = 23, HCIOpcodeBit::LE_SET_ADV_PARAM = 24, HCIOpcodeBit::LE_READ_ADV_TX_POWER = 25, HCIOpcodeBit::LE_SET_ADV_DATA = 26,
  HCIOpcodeBit::LE_SET_SCAN_RSP_DATA = 27, HCIOpcodeBit::LE_SET_ADV_ENABLE = 28, HCIOpcodeBit::LE_SET_SCAN_PARAM = 29, HCIOpcodeBit::LE_SET_SCAN_ENABLE = 30,
  HCIOpcodeBit::LE_CREATE_CONN = 31, HCIOpcodeBit::LE_CREATE_CONN_CANCEL = 32, HCIOpcodeBit::LE_READ_WHITE_LIST_SIZE = 33, HCIOpcodeBit::LE_CLEAR_WHITE_LIST = 34,
  HCIOpcodeBit::LE_ADD_TO_WHITE_LIST = 35, HCIOpcodeBit::LE_DEL_FROM_WHITE_LIST = 36, HCIOpcodeBit::LE_CONN_UPDATE = 37, HCIOpcodeBit::LE_READ_REMOTE_FEATURES = 38,
  HCIOpcodeBit::LE_ENABLE_ENC = 39, HCIOpcodeBit::LE_READ_PHY = 40, HCIOpcodeBit::LE_SET_DEFAULT_PHY = 41, HCIOpcodeBit::LE_SET_EXT_SCAN_PARAMS = 42,
  HCIOpcodeBit::LE_SET_EXT_SCAN_ENABLE = 43, HCIOpcodeBit::LE_EXT_CREATE_CONN = 44
}
 
enum  MgmtConstU16 : uint16_t { MGMT_INDEX_NONE = 0xFFFF, MGMT_MAX_NAME_LENGTH = 248+1, MGMT_MAX_SHORT_NAME_LENGTH = 10+1 }
 
enum  MgmtSizeConst : jau::nsize_t { MGMT_HEADER_SIZE = 6 }
 
enum  MgmtStatus : uint8_t {
  MgmtStatus::SUCCESS = 0x00, MgmtStatus::UNKNOWN_COMMAND = 0x01, MgmtStatus::NOT_CONNECTED = 0x02, MgmtStatus::FAILED = 0x03,
  MgmtStatus::CONNECT_FAILED = 0x04, MgmtStatus::AUTH_FAILED = 0x05, MgmtStatus::NOT_PAIRED = 0x06, MgmtStatus::NO_RESOURCES = 0x07,
  MgmtStatus::TIMEOUT = 0x08, MgmtStatus::ALREADY_CONNECTED = 0x09, MgmtStatus::BUSY = 0x0a, MgmtStatus::REJECTED = 0x0b,
  MgmtStatus::NOT_SUPPORTED = 0x0c, MgmtStatus::INVALID_PARAMS = 0x0d, MgmtStatus::DISCONNECTED = 0x0e, MgmtStatus::NOT_POWERED = 0x0f,
  MgmtStatus::CANCELLED = 0x10, MgmtStatus::INVALID_INDEX = 0x11, MgmtStatus::RFKILLED = 0x12, MgmtStatus::ALREADY_PAIRED = 0x13,
  MgmtStatus::PERMISSION_DENIED = 0x14
}
 
enum  MgmtOption : uint32_t { EXTERNAL_CONFIG = 0x00000001, PUBLIC_ADDRESS = 0x00000002 }
 
enum  MgmtLinkKeyType : uint8_t {
  MgmtLinkKeyType::COMBI = 0x00, MgmtLinkKeyType::LOCAL_UNIT = 0x01, MgmtLinkKeyType::REMOTE_UNIT = 0x02, MgmtLinkKeyType::DBG_COMBI = 0x03,
  MgmtLinkKeyType::UNAUTH_COMBI_P192 = 0x04, MgmtLinkKeyType::AUTH_COMBI_P192 = 0x05, MgmtLinkKeyType::CHANGED_COMBI = 0x06, MgmtLinkKeyType::UNAUTH_COMBI_P256 = 0x07,
  MgmtLinkKeyType::AUTH_COMBI_P256 = 0x08, MgmtLinkKeyType::NONE = 0xff
}
 Link Key Types compatible with Mgmt's MgmtLinkKeyInfo. More...
 
enum  MgmtLTKType : uint8_t {
  MgmtLTKType::UNAUTHENTICATED = 0x00, MgmtLTKType::AUTHENTICATED = 0x01, MgmtLTKType::UNAUTHENTICATED_P256 = 0x02, MgmtLTKType::AUTHENTICATED_P256 = 0x03,
  MgmtLTKType::DEBUG_P256 = 0x04, MgmtLTKType::NONE = 0xff
}
 Long Term Key Types compatible with Mgmt's MgmtLongTermKeyInfo. More...
 
enum  MgmtCSRKType : uint8_t {
  MgmtCSRKType::UNAUTHENTICATED_LOCAL = 0x00, MgmtCSRKType::UNAUTHENTICATED_REMOTE = 0x01, MgmtCSRKType::AUTHENTICATED_LOCAL = 0x02, MgmtCSRKType::AUTHENTICATED_REMOTE = 0x03,
  MgmtCSRKType::NONE = 0xff
}
 Signature Resolving Key Types compatible with Mgmt's MgmtSignatureResolvingKeyInfo. More...
 
enum  SMPConstInt : int32_t
 
enum  SMPConstU16 : uint16_t { SMPConstU16::SMP_TIMEOUT_MS = 30000 }
 
enum  SMPPairingState : uint8_t {
  SMPPairingState::NONE = 0, SMPPairingState::FAILED = 1, SMPPairingState::REQUESTED_BY_RESPONDER = 2, SMPPairingState::FEATURE_EXCHANGE_STARTED = 3,
  SMPPairingState::FEATURE_EXCHANGE_COMPLETED = 4, SMPPairingState::PASSKEY_EXPECTED = 5, SMPPairingState::NUMERIC_COMPARE_EXPECTED = 6, SMPPairingState::OOB_EXPECTED = 7,
  SMPPairingState::KEY_DISTRIBUTION = 8, SMPPairingState::COMPLETED = 9
}
 SMP Pairing Process state definition. More...
 
enum  SMPIOCapability : uint8_t {
  SMPIOCapability::DISPLAY_ONLY = 0x00, SMPIOCapability::DISPLAY_YES_NO = 0x01, SMPIOCapability::KEYBOARD_ONLY = 0x02, SMPIOCapability::NO_INPUT_NO_OUTPUT = 0x03,
  SMPIOCapability::KEYBOARD_DISPLAY = 0x04, SMPIOCapability::UNSET = 0xFF
}
 Vol 3, Part H, 2.3.2 IO capabilities. More...
 
enum  SMPOOBDataFlag : uint8_t { SMPOOBDataFlag::OOB_AUTH_DATA_NOT_PRESENT = 0x00, SMPOOBDataFlag::OOB_AUTH_DATA_REMOTE_PRESENT = 0x01 }
 Vol 3, Part H, 2.3.3 OOB authentication data. More...
 
enum  SMPAuthReqs : uint8_t {
  SMPAuthReqs::NONE = 0, SMPAuthReqs::BONDING = 0b00000001, SMPAuthReqs::BONDING_RFU = 0b00000010, SMPAuthReqs::MITM = 0b00000100,
  SMPAuthReqs::SECURE_CONNECTIONS = 0b00001000, SMPAuthReqs::KEYPRESS = 0b00010000, SMPAuthReqs::CT2_H7_FUNC_SUPPORT = 0b00100000, SMPAuthReqs::RFU_1 = 0b01000000,
  SMPAuthReqs::RFU_2 = 0b10000000
}
 SMP Authentication Requirements Bits, denotes specific bits or whole protocol uint8_t bit-mask. More...
 
enum  SMPKeyType : uint8_t {
  SMPKeyType::NONE = 0, SMPKeyType::ENC_KEY = 0b00000001, SMPKeyType::ID_KEY = 0b00000010, SMPKeyType::SIGN_KEY = 0b00000100,
  SMPKeyType::LINK_KEY = 0b00001000, SMPKeyType::RFU_1 = 0b00010000, SMPKeyType::RFU_2 = 0b00100000, SMPKeyType::RFU_3 = 0b01000000,
  SMPKeyType::RFU_4 = 0b10000000
}
 SMP Key Type for Distribution, indicates keys distributed in the Transport Specific Key Distribution phase. More...
 

Functions

constexpr BDAddressType to_BDAddressType (const uint8_t v) noexcept
 
constexpr uint8_t number (const BDAddressType rhs) noexcept
 
std::string to_string (const BDAddressType type) noexcept
 
constexpr uint8_t number (const BLERandomAddressType rhs) noexcept
 
std::string to_string (const BLERandomAddressType type) noexcept
 
constexpr uint8_t number (const HCILEPeerAddressType rhs) noexcept
 
BDAddressType to_BDAddressType (const HCILEPeerAddressType hciPeerAddrType) noexcept
 
std::string to_string (const HCILEPeerAddressType type) noexcept
 
constexpr uint8_t number (const HCILEOwnAddressType rhs) noexcept
 
BDAddressType to_BDAddressType (const HCILEOwnAddressType hciOwnAddrType) noexcept
 
HCILEOwnAddressType to_HCILEOwnAddressType (const BDAddressType addrType) noexcept
 
std::string to_string (const HCILEOwnAddressType type) noexcept
 
std::string to_string (const EUI48Sub &a) noexcept
 
bool operator== (const EUI48Sub &lhs, const EUI48Sub &rhs) noexcept
 
bool operator!= (const EUI48Sub &lhs, const EUI48Sub &rhs) noexcept
 
std::string to_string (const EUI48 &a) noexcept
 
bool operator== (const EUI48 &lhs, const EUI48 &rhs) noexcept
 
bool operator!= (const EUI48 &lhs, const EUI48 &rhs) noexcept
 
bool operator== (const BDAddressAndType &lhs, const BDAddressAndType &rhs) noexcept
 
bool operator!= (const BDAddressAndType &lhs, const BDAddressAndType &rhs) noexcept
 
std::string to_string (const BDAddressAndType &a) noexcept
 
bool operator== (const BTDevice &lhs, const BTDevice &rhs) noexcept
 
bool operator!= (const BTDevice &lhs, const BTDevice &rhs) noexcept
 
bool operator== (const BTGattChar &lhs, const BTGattChar &rhs) noexcept
 
bool operator!= (const BTGattChar &lhs, const BTGattChar &rhs) noexcept
 
bool operator== (const BTGattDesc &lhs, const BTGattDesc &rhs) noexcept
 
bool operator!= (const BTGattDesc &lhs, const BTGattDesc &rhs) noexcept
 
bool operator== (const BTGattService &lhs, const BTGattService &rhs) noexcept
 
bool operator!= (const BTGattService &lhs, const BTGattService &rhs) noexcept
 
constexpr uint8_t number (const BTMode rhs) noexcept
 
std::string to_string (const BTMode v) noexcept
 
BTMode to_BTMode (const std::string &value) noexcept
 Maps the specified name to a constant of BTMode. More...
 
constexpr uint64_t number (const LE_Features rhs) noexcept
 
constexpr LE_Features operator^ (const LE_Features lhs, const LE_Features rhs) noexcept
 
constexpr LE_Features operator| (const LE_Features lhs, const LE_Features rhs) noexcept
 
constexpr LE_Features operator& (const LE_Features lhs, const LE_Features rhs) noexcept
 
constexpr bool operator== (const LE_Features lhs, const LE_Features rhs) noexcept
 
constexpr bool operator!= (const LE_Features lhs, const LE_Features rhs) noexcept
 
constexpr bool isLEFeaturesBitSet (const LE_Features mask, const LE_Features bit) noexcept
 
std::string to_string (const LE_Features mask) noexcept
 
constexpr uint8_t number (const LE_PHYs rhs) noexcept
 
constexpr LE_PHYs operator^ (const LE_PHYs lhs, const LE_PHYs rhs) noexcept
 
constexpr LE_PHYs operator| (const LE_PHYs lhs, const LE_PHYs rhs) noexcept
 
constexpr LE_PHYs operator& (const LE_PHYs lhs, const LE_PHYs rhs) noexcept
 
constexpr bool operator== (const LE_PHYs lhs, const LE_PHYs rhs) noexcept
 
constexpr bool operator!= (const LE_PHYs lhs, const LE_PHYs rhs) noexcept
 
constexpr bool isLEPHYBitSet (const LE_PHYs mask, const LE_PHYs bit) noexcept
 
std::string to_string (const LE_PHYs mask) noexcept
 
constexpr uint8_t number (const BTSecurityLevel rhs) noexcept
 
constexpr bool operator== (const BTSecurityLevel lhs, const BTSecurityLevel rhs) noexcept
 
constexpr bool operator!= (const BTSecurityLevel lhs, const BTSecurityLevel rhs) noexcept
 
constexpr bool operator< (const BTSecurityLevel lhs, const BTSecurityLevel rhs) noexcept
 
constexpr bool operator<= (const BTSecurityLevel lhs, const BTSecurityLevel rhs) noexcept
 
constexpr bool operator> (const BTSecurityLevel lhs, const BTSecurityLevel rhs) noexcept
 
constexpr bool operator>= (const BTSecurityLevel lhs, const BTSecurityLevel rhs) noexcept
 
constexpr BTSecurityLevel to_BTSecurityLevel (const uint8_t v) noexcept
 
std::string to_string (const BTSecurityLevel v) noexcept
 
constexpr uint8_t number (const PairingMode rhs) noexcept
 
std::string to_string (const PairingMode v) noexcept
 
constexpr uint8_t number (const ScanType rhs) noexcept
 
constexpr ScanType operator~ (const ScanType val) noexcept
 
constexpr ScanType operator^ (const ScanType lhs, const ScanType rhs) noexcept
 
constexpr ScanType operator| (const ScanType lhs, const ScanType rhs) noexcept
 
constexpr ScanType operator& (const ScanType lhs, const ScanType rhs) noexcept
 
constexpr bool operator== (const ScanType lhs, const ScanType rhs) noexcept
 
constexpr bool operator!= (const ScanType lhs, const ScanType rhs) noexcept
 
constexpr ScanType changeScanType (const ScanType current, const ScanType changeType, const bool changeEnable) noexcept
 
constexpr bool hasScanType (const ScanType current, const ScanType testType) noexcept
 
std::string to_string (const ScanType v) noexcept
 
ScanType to_ScanType (BTMode btMode)
 
constexpr uint8_t number (const AD_PDU_Type rhs) noexcept
 
std::string to_string (const AD_PDU_Type v) noexcept
 
constexpr uint16_t number (const EAD_Event_Type rhs) noexcept
 
constexpr EAD_Event_Type operator| (const EAD_Event_Type lhs, const EAD_Event_Type rhs) noexcept
 
constexpr EAD_Event_Type operator& (const EAD_Event_Type lhs, const EAD_Event_Type rhs) noexcept
 
constexpr bool operator== (const EAD_Event_Type lhs, const EAD_Event_Type rhs) noexcept
 
constexpr bool operator!= (const EAD_Event_Type lhs, const EAD_Event_Type rhs) noexcept
 
constexpr bool isEAD_Event_TypeSet (const EAD_Event_Type mask, const EAD_Event_Type bit) noexcept
 
constexpr void setEAD_Event_TypeSet (EAD_Event_Type &mask, const EAD_Event_Type bit) noexcept
 
std::string to_string (const EAD_Event_Type v) noexcept
 
constexpr uint8_t number (const HCIWhitelistConnectType rhs) noexcept
 
constexpr uint16_t number (const L2CAP_CID rhs) noexcept
 
constexpr L2CAP_CID to_L2CAP_CID (const uint16_t v) noexcept
 
std::string to_string (const L2CAP_CID v) noexcept
 
constexpr uint16_t number (const L2CAP_PSM rhs) noexcept
 
constexpr L2CAP_PSM to_L2CAP_PSM (const uint16_t v) noexcept
 
std::string to_string (const L2CAP_PSM v) noexcept
 
constexpr uint16_t number (const AppearanceCat rhs) noexcept
 
std::string to_string (const AppearanceCat v) noexcept
 
constexpr bool operator== (const ManufactureSpecificData &lhs, const ManufactureSpecificData &rhs) noexcept
 
constexpr bool operator!= (const ManufactureSpecificData &lhs, const ManufactureSpecificData &rhs) noexcept
 
constexpr uint8_t number (const GAPFlags rhs) noexcept
 
std::string to_string (const GAPFlags v) noexcept
 
constexpr uint32_t number (const EIRDataType rhs) noexcept
 
constexpr EIRDataType operator| (const EIRDataType lhs, const EIRDataType rhs) noexcept
 
constexpr EIRDataType operator& (const EIRDataType lhs, const EIRDataType rhs) noexcept
 
constexpr bool operator== (const EIRDataType lhs, const EIRDataType rhs) noexcept
 
constexpr bool operator!= (const EIRDataType lhs, const EIRDataType rhs) noexcept
 
constexpr bool isEIRDataTypeSet (const EIRDataType mask, const EIRDataType bit) noexcept
 
constexpr void setEIRDataTypeSet (EIRDataType &mask, const EIRDataType bit) noexcept
 
std::string to_string (const EIRDataType mask) noexcept
 
std::string to_string (EInfoReport::Source source) noexcept
 
std::string to_string (const EInfoReport &eir, const bool includeServices=true) noexcept
 
std::string to_string (const BTObject &o) noexcept
 
constexpr AdapterSetting operator~ (const AdapterSetting rhs) noexcept
 
constexpr AdapterSetting operator^ (const AdapterSetting lhs, const AdapterSetting rhs) noexcept
 
constexpr AdapterSetting operator| (const AdapterSetting lhs, const AdapterSetting rhs) noexcept
 
constexpr AdapterSetting operator& (const AdapterSetting lhs, const AdapterSetting rhs) noexcept
 
constexpr bool operator== (const AdapterSetting lhs, const AdapterSetting rhs) noexcept
 
constexpr bool operator!= (const AdapterSetting lhs, const AdapterSetting rhs) noexcept
 
constexpr AdapterSetting getAdapterSettingMaskDiff (const AdapterSetting setting_a, const AdapterSetting setting_b) noexcept
 
constexpr bool isAdapterSettingBitSet (const AdapterSetting mask, const AdapterSetting bit) noexcept
 
constexpr void setAdapterSettingMaskBit (AdapterSetting &mask, const AdapterSetting bit) noexcept
 
constexpr void clrAdapterSettingMaskBit (AdapterSetting &mask, const AdapterSetting bit) noexcept
 
std::string to_string (const AdapterSetting settingBitMask) noexcept
 
BTMode getAdapterSettingsBTMode (const AdapterSetting settingMask) noexcept
 Maps the given AdapterSetting to BTMode. More...
 
std::string to_string (const AdapterInfo &a) noexcept
 
std::string GattServiceTypeToString (const GattServiceType v) noexcept
 
std::string GattCharacteristicTypeToString (const GattCharacteristicType v) noexcept
 
std::string GattCharacteristicPropertyToString (const GattCharacteristicProperty v) noexcept
 
std::string GattRequirementSpecToString (const GattRequirementSpec v) noexcept
 
const GattServiceCharacteristicfindGattServiceChar (const uint16_t uuid16) noexcept
 Find the GattServiceCharacteristic entry by given uuid16, denominating either a GattServiceType or GattCharacteristicType. More...
 
const GattCharacteristicSpecfindGattCharSpec (const uint16_t uuid16) noexcept
 Find the GattCharacteristicSpec entry by given uuid16, denominating either a GattCharacteristicType. More...
 
std::string GattNameToString (const TROOctets &v) noexcept
 Converts a GATT Name (not null-terminated) UTF8 to a null-terminated C++ string. More...
 
constexpr int32_t number (const HCIConstInt rhs) noexcept
 
constexpr int32_t getHCIConnSupervisorTimeout (const uint16_t conn_latency, const uint16_t conn_interval_max_ms, const uint16_t min_result_ms=number(HCIConstInt::LE_CONN_MIN_TIMEOUT_MS), const uint16_t multiplier=10) noexcept
 Defining the supervising timeout for LE connections to be a multiple of the maximum connection interval as follows: More...
 
constexpr uint16_t number (const HCIConstU16 rhs) noexcept
 
constexpr uint8_t number (const HCIStatusCode rhs) noexcept
 
std::string to_string (const HCIStatusCode ec) noexcept
 
constexpr jau::nsize_t number (const HCIConstSizeT rhs) noexcept
 
constexpr uint8_t number (const HCIPacketType rhs) noexcept
 
std::string to_string (const HCIPacketType op) noexcept
 
constexpr uint8_t number (const HCIOGF rhs) noexcept
 
std::string to_string (const HCIOGF op) noexcept
 
constexpr uint8_t number (const HCIEventType rhs) noexcept
 
std::string to_string (const HCIEventType op) noexcept
 
constexpr uint8_t number (const HCIMetaEventType rhs) noexcept
 
std::string to_string (const HCIMetaEventType op) noexcept
 
constexpr uint16_t number (const HCIOpcode rhs) noexcept
 
std::string to_string (const HCIOpcode op) noexcept
 
constexpr uint8_t number (const HCIOpcodeBit rhs) noexcept
 
std::string to_string (const HCIPacket &p) noexcept
 
std::string to_string (const MgmtStatus opc) noexcept
 
HCIStatusCode to_HCIStatusCode (const MgmtStatus mstatus) noexcept
 
std::string to_string (const MgmtLinkKeyType type) noexcept
 
std::string to_string (const MgmtLTKType type) noexcept
 
MgmtLTKType to_MgmtLTKType (const SMPLongTermKeyInfo::Property ltk_prop_mask) noexcept
 
std::string to_string (const MgmtCSRKType type) noexcept
 
constexpr int32_t number (const SMPConstInt rhs) noexcept
 
constexpr uint16_t number (const SMPConstU16 rhs) noexcept
 
std::string to_string (const SMPPairingState state) noexcept
 
constexpr bool isSMPPairingActive (const SMPPairingState state) noexcept
 Returns true if the given SMPPairingState indicated an active pairing process, i.e. More...
 
constexpr bool hasSMPPairingFinished (const SMPPairingState state) noexcept
 Returns true if the given SMPPairingState indicates a finished pairing process, i.e. More...
 
constexpr bool isSMPPairingAllowingInput (const SMPPairingState state, const SMPPairingState inputSpec) noexcept
 Returns true if the given SMPPairingState indicates a pairing process waiting for user input, i.e. More...
 
constexpr SMPIOCapability to_SMPIOCapability (const uint8_t v) noexcept
 
constexpr uint8_t number (const SMPIOCapability rhs) noexcept
 
std::string to_string (const SMPIOCapability ioc) noexcept
 
constexpr bool hasSMPIOCapabilityBinaryInput (const SMPIOCapability ioc) noexcept
 
constexpr bool hasSMPIOCapabilityFullInput (const SMPIOCapability ioc) noexcept
 
constexpr uint8_t number (const SMPOOBDataFlag rhs) noexcept
 
std::string to_string (const SMPOOBDataFlag v) noexcept
 
constexpr SMPAuthReqs operator^ (const SMPAuthReqs lhs, const SMPAuthReqs rhs) noexcept
 
constexpr SMPAuthReqs operator| (const SMPAuthReqs lhs, const SMPAuthReqs rhs) noexcept
 
constexpr SMPAuthReqs operator& (const SMPAuthReqs lhs, const SMPAuthReqs rhs) noexcept
 
constexpr bool operator== (const SMPAuthReqs lhs, const SMPAuthReqs rhs) noexcept
 
constexpr bool operator!= (const SMPAuthReqs lhs, const SMPAuthReqs rhs) noexcept
 
constexpr uint8_t number (const SMPAuthReqs rhs) noexcept
 
constexpr bool isSMPAuthReqBitSet (const SMPAuthReqs mask, const SMPAuthReqs bit) noexcept
 
std::string to_string (const SMPAuthReqs mask) noexcept
 
PairingMode getPairingMode (const bool use_sc, const SMPAuthReqs authReqs_ini, const SMPIOCapability ioCap_ini, const SMPOOBDataFlag oobFlag_ini, const SMPAuthReqs authReqs_res, const SMPIOCapability ioCap_res, const SMPOOBDataFlag oobFlag_res) noexcept
 Returns the PairingMode derived from both devices' sets of SMPAuthReqs, SMPIOCapability and SMPOOBDataFlag. More...
 
PairingMode getPairingMode (const bool use_sc, const SMPIOCapability ioCap_ini, const SMPIOCapability ioCap_res) noexcept
 Returns the PairingMode derived from both devices' SMPIOCapability. More...
 
constexpr SMPKeyType operator^ (const SMPKeyType lhs, const SMPKeyType rhs) noexcept
 
constexpr SMPKeyTypeoperator^= (SMPKeyType &store, const SMPKeyType &rhs) noexcept
 
constexpr SMPKeyType operator| (const SMPKeyType lhs, const SMPKeyType rhs) noexcept
 
constexpr SMPKeyTypeoperator|= (SMPKeyType &store, const SMPKeyType &rhs) noexcept
 
constexpr SMPKeyType operator& (const SMPKeyType lhs, const SMPKeyType rhs) noexcept
 
constexpr SMPKeyTypeoperator&= (SMPKeyType &store, const SMPKeyType &rhs) noexcept
 
constexpr bool operator== (const SMPKeyType lhs, const SMPKeyType rhs) noexcept
 
constexpr bool operator!= (const SMPKeyType lhs, const SMPKeyType rhs) noexcept
 
constexpr uint8_t number (const SMPKeyType rhs) noexcept
 
constexpr bool isKeyDistBitSet (const SMPKeyType mask, const SMPKeyType bit) noexcept
 
std::string to_string (const SMPKeyType mask) noexcept
 
constexpr SMPLongTermKeyInfo::Property operator^ (const SMPLongTermKeyInfo::Property lhs, const SMPLongTermKeyInfo::Property rhs) noexcept
 
constexpr SMPLongTermKeyInfo::Propertyoperator^= (SMPLongTermKeyInfo::Property &store, const SMPLongTermKeyInfo::Property &rhs) noexcept
 
constexpr SMPLongTermKeyInfo::Property operator| (const SMPLongTermKeyInfo::Property lhs, const SMPLongTermKeyInfo::Property rhs) noexcept
 
constexpr SMPLongTermKeyInfo::Propertyoperator|= (SMPLongTermKeyInfo::Property &store, const SMPLongTermKeyInfo::Property &rhs) noexcept
 
constexpr SMPLongTermKeyInfo::Property operator& (const SMPLongTermKeyInfo::Property lhs, const SMPLongTermKeyInfo::Property rhs) noexcept
 
constexpr SMPLongTermKeyInfo::Propertyoperator&= (SMPLongTermKeyInfo::Property &store, const SMPLongTermKeyInfo::Property &rhs) noexcept
 
constexpr bool operator== (const SMPLongTermKeyInfo::Property lhs, const SMPLongTermKeyInfo::Property rhs) noexcept
 
constexpr bool operator!= (const SMPLongTermKeyInfo::Property lhs, const SMPLongTermKeyInfo::Property rhs) noexcept
 
std::string to_String (const SMPLongTermKeyInfo &ltk) noexcept
 
constexpr SMPSignatureResolvingKeyInfo::Property operator^ (const SMPSignatureResolvingKeyInfo::Property lhs, const SMPSignatureResolvingKeyInfo::Property rhs) noexcept
 
constexpr SMPSignatureResolvingKeyInfo::Propertyoperator^= (SMPSignatureResolvingKeyInfo::Property &store, const SMPSignatureResolvingKeyInfo::Property &rhs) noexcept
 
constexpr SMPSignatureResolvingKeyInfo::Property operator| (const SMPSignatureResolvingKeyInfo::Property lhs, const SMPSignatureResolvingKeyInfo::Property rhs) noexcept
 
constexpr SMPSignatureResolvingKeyInfo::Propertyoperator|= (SMPSignatureResolvingKeyInfo::Property &store, const SMPSignatureResolvingKeyInfo::Property &rhs) noexcept
 
constexpr SMPSignatureResolvingKeyInfo::Property operator& (const SMPSignatureResolvingKeyInfo::Property lhs, const SMPSignatureResolvingKeyInfo::Property rhs) noexcept
 
constexpr SMPSignatureResolvingKeyInfo::Propertyoperator&= (SMPSignatureResolvingKeyInfo::Property &store, const SMPSignatureResolvingKeyInfo::Property &rhs) noexcept
 
constexpr bool operator== (const SMPSignatureResolvingKeyInfo::Property lhs, const SMPSignatureResolvingKeyInfo::Property rhs) noexcept
 
constexpr bool operator!= (const SMPSignatureResolvingKeyInfo::Property lhs, const SMPSignatureResolvingKeyInfo::Property rhs) noexcept
 
std::string to_String (const SMPSignatureResolvingKeyInfo &csrk) noexcept
 
std::string to_String (const SMPPDUMsg &m) noexcept
 
void put_uuid (uint8_t *buffer, jau::nsize_t const byte_offset, const uuid_t &v) noexcept
 
void put_uuid (uint8_t *buffer, jau::nsize_t const byte_offset, const uuid_t &v, bool littleEndian) noexcept
 
uuid16_t get_uuid16 (uint8_t const *buffer, jau::nsize_t const byte_offset) noexcept
 
uuid16_t get_uuid16 (uint8_t const *buffer, jau::nsize_t const byte_offset, bool littleEndian) noexcept
 
uuid32_t get_uuid32 (uint8_t const *buffer, jau::nsize_t const byte_offset) noexcept
 
uuid32_t get_uuid32 (uint8_t const *buffer, jau::nsize_t const byte_offset, bool littleEndian) noexcept
 
uuid128_t get_uuid128 (uint8_t const *buffer, jau::nsize_t const byte_offset) noexcept
 
uuid128_t get_uuid128 (uint8_t const *buffer, jau::nsize_t const byte_offset, bool littleEndian) noexcept
 
BDAddressType fromJavaAdressTypeToBDAddressType (JNIEnv *env, jstring jAddressType)
 
jstring fromBDAddressTypeToJavaAddressType (JNIEnv *env, BDAddressType bdAddressType)
 

Variables

const GattServiceCharacteristic GATT_GENERIC_ACCESS_SRVC
 Intentionally ease compile and linker burden by using 'extern' instead of 'inline', as the latter would require compile to crunch the structure and linker to chose where to place the actual artifact. More...
 
const GattServiceCharacteristic GATT_HEALTH_THERMOMETER_SRVC
 https://www.bluetooth.com/wp-content/uploads/Sitecore-Media-Library/Gatt/Xml/Services/org.bluetooth.service.health_thermometer.xml More...
 
const GattServiceCharacteristic GATT_DEVICE_INFORMATION_SRVC
 
const jau::darray< const GattServiceCharacteristic * > GATT_SERVICES
 
uuid128_t BT_BASE_UUID
 Bluetooth UUID https://www.bluetooth.com/specifications/assigned-numbers/service-discovery/ More...
 
DirectBTJNISettings directBTJNISettings
 

Detailed Description


Direct-BT Overview

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 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


Direct-BT User Hierarchy

From a user perspective the following hierarchy is provided


Direct-BT Object Lifecycle

Object lifecycle with all instances and marked weak back-references to their owner


Direct-BT Mapped Names C++ vs Java

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

Direct-BT Event Driven Workflow

A fully event driven workflow from adapter management via device discovery to GATT programming is supported.

ChangedAdapterSetFunc() 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.


BT Core Spec v5.2: Vol 3, Part A L2CAP Spec: 7.9 PRIORITIZING DATA OVER HCI

In order for guaranteed channels to meet their guarantees, L2CAP should prioritize traffic over the HCI transport in devices that support HCI. Packets for Guaranteed channels should receive higher priority than packets for Best Effort channels.


ATTPDUTypes.hpp Module for ATTPDUMsg Types:


Module BTGattChar:


Module GATTDescriptor:


Module BTGattHandler:


Module GATTService:


GattNumbers.hpp Module for Higher level GATT value and service types like GattServiceType, GattCharacteristicType, GattCharacteristicProperty, GattRequirementSpec .. and finally GattServiceCharacteristic.


GATTTypes.hpp Module for GATT Types like GattAttributeType:


Module HCIComm:


Module HCIHandler:


HCITypes.hpp Module for HCIPacket Types, HCIStatusCode etc:


Module L2CAPComm:


SMPHandler.hpp Module for SMPHandler using SMPPDUMsg types

Overall bookmark regarding BT Security


SMPTypes.hpp Module for SMPPDUMsg Types, SMPAuthReqs etc:

Typedef Documentation

◆ BTGattCharRef

typedef std::shared_ptr< BTGattChar > direct_bt::BTGattCharRef

Definition at line 409 of file BTGattChar.hpp.

◆ BTGattDescRef

typedef std::shared_ptr<BTGattDesc> direct_bt::BTGattDescRef

Definition at line 177 of file BTGattDesc.hpp.

◆ BTGattServiceRef

typedef std::shared_ptr<BTGattService> direct_bt::BTGattServiceRef

Definition at line 61 of file BTGattChar.hpp.

◆ ChangedAdapterSetCallback

typedef jau::FunctionDef<bool, bool, std::shared_ptr<BTAdapter>&> direct_bt::ChangedAdapterSetCallback

Callback jau::FunctionDef to receive change events regarding the system's adapter set, e.g.

a removed or added adapter due to user interaction or 'cold reset'.

When a new callback is added, all available adapter's will be reported as added, this allows a fully event driven workflow.

The callback is performed on a dedicated thread, allowing the user to perform complex operations.

If an adapter is being removed from the system, DBTAdapter::close() is being called by BTManager after issuing all ChangedAdapterSetFunc calls.

Parameters
addedtrue if adapter was newly added, otherwise removed from system
adapterthe shared DBTAdapter reference
Returns
ignored
See also
ChangedAdapterSetFunc
BTManager::addChangedAdapterSetCallback()
BTManager::removeChangedAdapterSetCallback()

Definition at line 189 of file BTManager.hpp.

◆ ChangedAdapterSetCallbackList

Definition at line 190 of file BTManager.hpp.

◆ ChangedAdapterSetFunc

typedef bool(* direct_bt::ChangedAdapterSetFunc) (bool added, std::shared_ptr< BTAdapter > &adapter)

Callback function to receive change events regarding the system's adapter set, e.g.

a removed or added adapter due to user interaction or 'cold reset'.

When a new callback is added, all available adapter's will be reported as added, this allows a fully event driven workflow.

The callback is performed on a dedicated thread, allowing the user to perform complex operations.

If an adapter is being removed from the system, DBTAdapter::close() is being called by BTManager after issuing all ChangedAdapterSetFunc calls.

Parameters
addedtrue if adapter was newly added, otherwise removed from system
adapterthe shared DBTAdapter reference
Returns
ignored
See also
ChangedAdapterSetCallback
BTManager::addChangedAdapterSetCallback()
BTManager::removeChangedAdapterSetCallback()

Definition at line 163 of file BTManager.hpp.

◆ HCISMPMsgCallback

Definition at line 159 of file HCIHandler.hpp.

◆ HCISMPMsgCallbackList

Definition at line 160 of file HCIHandler.hpp.

◆ MgmtAdapterEventCallbackList

Definition at line 2273 of file MgmtTypes.hpp.

◆ MgmtEventCallback

Definition at line 2232 of file MgmtTypes.hpp.

◆ MgmtEventCallbackList

Definition at line 2233 of file MgmtTypes.hpp.

◆ SMPSecurityReqCallback

Definition at line 153 of file SMPHandler.hpp.

◆ SMPSecurityReqCallbackList

Definition at line 154 of file SMPHandler.hpp.

Enumeration Type Documentation

◆ AD_PDU_Type

enum direct_bt::AD_PDU_Type : uint8_t
strong

LE Advertising (AD) Protocol Data Unit (PDU) Types.

BT Core Spec v5.2: Vol 4 HCI, Part E HCI Functional: 7.7.65.2 LE Advertising Report event BT Core Spec v5.2: Vol 4 HCI, Part E HCI Functional: 7.7.65.13 LE Extended Advertising Report event BT Core Spec v5.2: Vol 6 LE Controller, Part B Link Layer: 2.3 Advertising physical channel PDU BT Core Spec v5.2: Vol 6 LE Controller, Part B Link Layer: 2.3.1 Advertising PDUs

Enumerator
ADV_IND 

Advertising Indications (ADV_IND), where a peripheral device requests connection to any central device (i.e., not directed at a particular central device).

ADV_DIRECT_IND 

Similar to ADV_IND, yet the connection request is directed at a specific central device.

ADV_SCAN_IND 

Similar to ADV_IND, w/o connection requests and with the option additional information via scan responses.

ADV_NONCONN_IND 

Non connectable devices, advertising information to any listening device.

SCAN_RSP 

Scan response PDU type.

ADV_IND2 

EAD_Event_Type with EAD_Event_Type::LEGACY_PDU: ADV_IND variant.

DIRECT_IND2 

EAD_Event_Type with EAD_Event_Type::LEGACY_PDU: ADV_DIRECT_IND variant.

SCAN_IND2 

EAD_Event_Type with EAD_Event_Type::LEGACY_PDU: ADV_SCAN_IND variant.

NONCONN_IND2 

EAD_Event_Type with EAD_Event_Type::LEGACY_PDU: ADV_NONCONN_IND variant.

SCAN_RSP_to_ADV_IND 

EAD_Event_Type with EAD_Event_Type::LEGACY_PDU: SCAN_RSP variant to an ADV_IND.

SCAN_RSP_to_ADV_SCAN_IND 

EAD_Event_Type with EAD_Event_Type::LEGACY_PDU: SCAN_RSP variant to an ADV_SCAN_IND.

UNDEFINED 

Definition at line 341 of file BTTypes0.hpp.

◆ AD_Type_Const

enum direct_bt::AD_Type_Const : uint8_t
strong
Enumerator
AD_FLAGS_LIMITED_MODE_BIT 
AD_FLAGS_GENERAL_MODE_BIT 

Definition at line 427 of file BTTypes0.hpp.

◆ AdapterSetting

enum direct_bt::AdapterSetting : uint32_t
strong

Adapter Setting Bits.

Used to denote specific bits or as a bit-mask.

Enumerator
NONE 
POWERED 
CONNECTABLE 
FAST_CONNECTABLE 
DISCOVERABLE 
BONDABLE 
LINK_SECURITY 
SSP 
BREDR 
HS 
LE 
ADVERTISING 
SECURE_CONN 
DEBUG_KEYS 
PRIVACY 
CONFIGURATION 
STATIC_ADDRESS 
PHY_CONFIGURATION 

Definition at line 136 of file BTTypes1.hpp.

◆ AppearanceCat

enum direct_bt::AppearanceCat : uint16_t
strong
Enumerator
UNKNOWN 
GENERIC_PHONE 
GENERIC_COMPUTER 
GENERIC_WATCH 
SPORTS_WATCH 
GENERIC_CLOCK 
GENERIC_DISPLAY 
GENERIC_REMOTE_CLOCK 
GENERIC_EYE_GLASSES 
GENERIC_TAG 
GENERIC_KEYRING 
GENERIC_MEDIA_PLAYER 
GENERIC_BARCODE_SCANNER 
GENERIC_THERMOMETER 
GENERIC_THERMOMETER_EAR 
GENERIC_HEART_RATE_SENSOR 
HEART_RATE_SENSOR_BELT 
GENERIC_BLOD_PRESSURE 
BLOD_PRESSURE_ARM 
BLOD_PRESSURE_WRIST 
HID 
HID_KEYBOARD 
HID_MOUSE 
HID_JOYSTICK 
HID_GAMEPAD 
HID_DIGITIZER_TABLET 
HID_CARD_READER 
HID_DIGITAL_PEN 
HID_BARCODE_SCANNER 
GENERIC_GLUCOSE_METER 
GENERIC_RUNNING_WALKING_SENSOR 
RUNNING_WALKING_SENSOR_IN_SHOE 
RUNNING_WALKING_SENSOR_ON_SHOE 
RUNNING_WALKING_SENSOR_HIP 
GENERIC_CYCLING 
CYCLING_COMPUTER 
CYCLING_SPEED_SENSOR 
CYCLING_CADENCE_SENSOR 
CYCLING_POWER_SENSOR 
CYCLING_SPEED_AND_CADENCE_SENSOR 
GENERIC_PULSE_OXIMETER 
PULSE_OXIMETER_FINGERTIP 
PULSE_OXIMETER_WRIST 
GENERIC_WEIGHT_SCALE 
GENERIC_PERSONAL_MOBILITY_DEVICE 
PERSONAL_MOBILITY_DEVICE_WHEELCHAIR 
PERSONAL_MOBILITY_DEVICE_SCOOTER 
GENERIC_CONTINUOUS_GLUCOSE_MONITOR 
GENERIC_INSULIN_PUMP 
INSULIN_PUMP_DURABLE 
INSULIN_PUMP_PATCH 
INSULIN_PUMP_PEN 
GENERIC_MEDICATION_DELIVERY 
GENERIC_OUTDOOR_SPORTS_ACTIVITY 
OUTDOOR_SPORTS_ACTIVITY_LOCATION_DISPLAY_DEVICE 
OUTDOOR_SPORTS_ACTIVITY_LOCATION_AND_NAVIGATION_DISPLAY_DEVICE 
OUTDOOR_SPORTS_ACTIVITY_LOCATION_POD 
OUTDOOR_SPORTS_ACTIVITY_LOCATION_AND_NAVIGATION_POD 

Definition at line 637 of file BTTypes0.hpp.

◆ BDAddressType

enum direct_bt::BDAddressType : uint8_t
strong

BT Core Spec v5.2: Vol 3, Part C Generic Access Profile (GAP): 15.1.1.1 Public Bluetooth address.

1) BT public address used as BD_ADDR for BR/EDR physical channel is defined in Vol 2, Part B 1.2
  • EUI-48 or MAC (6 octets)
2) BT public address used as BD_ADDR for the LE physical channel is defined in Vol 6, Part B 1.3
   BT Core Spec v5.2:  Vol 3, Part C Generic Access Profile (GAP): 15.1.1.2 Random Bluetooth address
3) BT random address used as BD_ADDR on the LE physical channel is defined in Vol 3, Part C 10.8
Enumerator
BDADDR_BREDR 

Bluetooth BREDR address.

BDADDR_LE_PUBLIC 

Bluetooth LE public address.

BDADDR_LE_RANDOM 

Bluetooth LE random address, see BLERandomAddressType.

BDADDR_UNDEFINED 

Undefined.

Definition at line 51 of file BTAddress.hpp.

◆ BLERandomAddressType

enum direct_bt::BLERandomAddressType : uint8_t
strong

BT Core Spec v5.2: Vol 6 LE, Part B Link Layer Specification: 1.3 Device Address.

BT Core Spec v5.2: Vol 6 LE, Part B Link Layer Specification: 1.3.2 Random device Address

Table 1.2, address bits [47:46]

If BDAddressType is BDAddressType::BDADDR_LE_RANDOM, its value shall be different than BLERandomAddressType::UNDEFINED.

If BDAddressType is not BDAddressType::BDADDR_LE_RANDOM, its value shall be BLERandomAddressType::UNDEFINED.

Enumerator
UNRESOLVABLE_PRIVAT 

Non-resolvable private random device address 0b00.

RESOLVABLE_PRIVAT 

Resolvable private random device address 0b01.

RESERVED 

Reserved for future use 0b10.

STATIC_PUBLIC 

Static public 'random' device address 0b11.

UNDEFINED 

Undefined, e.g.

address not of type BDAddressType::BDADDR_LE_RANDOM

Definition at line 89 of file BTAddress.hpp.

◆ BTMode

enum direct_bt::BTMode : uint8_t
strong

Bluetooth adapter operating mode.

Enumerator
NONE 

Zero mode, neither DUAL, BREDR nor LE.

Usually an error.

DUAL 

Dual Bluetooth mode, i.e.

BREDR + LE.

BREDR 

BREDR only Bluetooth mode.

LE 

LE only Bluetooth mode.

Definition at line 56 of file BTTypes0.hpp.

◆ BTSecurityLevel

enum direct_bt::BTSecurityLevel : uint8_t
strong

Bluetooth Security Level.

This BTSecurityLevel is natively compatible with Linux/BlueZ's BT_SECURITY values 1-4.

Enumerator
UNSET 

Security Level not set, value 0.

NONE 

No encryption and no authentication.

Also known as BT_SECURITY_LOW, value 1.

ENC_ONLY 

Encryption and no authentication (no MITM).

Also known as BT_SECURITY_MEDIUM, value 2.

ENC_AUTH 

Encryption and authentication (MITM).

Also known as BT_SECURITY_HIGH, value 3.

ENC_AUTH_FIPS 

Authenticated Secure Connections.

Also known as BT_SECURITY_FIPS, value 4.

Definition at line 211 of file BTTypes0.hpp.

◆ EAD_Event_Type

enum direct_bt::EAD_Event_Type : uint16_t
strong

LE Extended Advertising (EAD) Event Types.

BT Core Spec v5.2: Vol 4 HCI, Part E HCI Functional: 7.7.65.13 LE Extended Advertising Report event

Enumerator
NONE 
CONN_ADV 
SCAN_ADV 
DIR_ADV 
SCAN_RSP 
LEGACY_PDU 
DATA_B0 
DATA_B1 

Definition at line 383 of file BTTypes0.hpp.

◆ EIRDataType

enum direct_bt::EIRDataType : uint32_t
strong

Bit mask of 'Extended Inquiry Response' (EIR) data fields, indicating a set of related data.

Enumerator
NONE 
EVT_TYPE 
EXT_EVT_TYPE 
BDADDR_TYPE 
BDADDR 
FLAGS 
NAME 
NAME_SHORT 
RSSI 
TX_POWER 
MANUF_DATA 
DEVICE_CLASS 
APPEARANCE 
HASH 
RANDOMIZER 
DEVICE_ID 
SERVICE_UUID 

Definition at line 752 of file BTTypes0.hpp.

◆ GAP_T

enum direct_bt::GAP_T : uint8_t
strong

​​Assigned numbers are used in Generic Access Profile (GAP) for inquiry response, EIR data type values, manufacturer-specific data, advertising data, low energy UUIDs and appearance characteristics, and class of device.

Type identifier values as defined in "Assigned Numbers - Generic Access Profile" https://www.bluetooth.com/specifications/assigned-numbers/generic-access-profile/

Also see Bluetooth Core Specification Supplement V9, Part A: 1, p 9 pp for data format definitions.

For data segment layout see Bluetooth Core Specification V5.2 [Vol. 3, Part C, 11, p 1392]

https://www.bluetooth.com/specifications/archived-specifications/

Enumerator
FLAGS 

Flags.

UUID16_INCOMPLETE 

Incomplete List of 16-bit Service Class UUID.

(Supplement, Part A, section 1.1)

UUID16_COMPLETE 

Complete List of 16-bit Service Class UUID.

(Supplement, Part A, section 1.1)

UUID32_INCOMPLETE 

Incomplete List of 32-bit Service Class UUID.

(Supplement, Part A, section 1.1)

UUID32_COMPLETE 

Complete List of 32-bit Service Class UUID.

(Supplement, Part A, section 1.1)

UUID128_INCOMPLETE 

Incomplete List of 128-bit Service Class UUID.

(Supplement, Part A, section 1.1)

UUID128_COMPLETE 

Complete List of 128-bit Service Class UUID.

(Supplement, Part A, section 1.1)

NAME_LOCAL_SHORT 

Shortened local name (Supplement, Part A, section 1.2)

NAME_LOCAL_COMPLETE 

Complete local name (Supplement, Part A, section 1.2)

TX_POWER_LEVEL 

Transmit power level (Supplement, Part A, section 1.5)

SSP_CLASS_OF_DEVICE 

SSP: Secure Simple Pairing Out of Band: Supplement, Part A, section 1.6 Supplement, Part A, Section 1.6: SSP OOB Data Block w/ SSP_OOB_LEN ([Vol 3] Part C, Section 5.2.2.7.)

SSP Class of device (Supplement, Part A, section 1.6).

SSP_HASH_C192 

SSP: Simple Pairing Hash C and Simple Pairing Hash C-192 (Supplement, Part A 1.6)

SSP_RANDOMIZER_R192 

SSP: Simple Pairing Randomizer R-192 (Supplement, Part A, section 1.6)

DEVICE_ID 

Device ID Profile v 1.3 or later.

SEC_MGR_TK_VALUE 

Security Manager TK Value (Supplement, Part A, section 1.8)

SEC_MGR_OOB_FLAGS 

Security Manager Out of Band Flags (Supplement, Part A, section 1.7)

SLAVE_CONN_IVAL_RANGE 

Slave Connection Interval Range.

SOLICIT_UUID16 

List of 16-bit Service Solicitation UUIDs (Supplement, Part A, section 1.10)

SOLICIT_UUID128 

List of 128-bit Service Solicitation UUIDs (Supplement, Part A, section 1.10)

SVC_DATA_UUID16 

Service Data - 16-bit UUID (Supplement, Part A, section 1.11)

PUB_TRGT_ADDR 
RND_TRGT_ADDR 
GAP_APPEARANCE 

(GAP) Appearance (Supplement, Part A, section 1.12)

ADV_INTERVAL 

Advertising Interval (Supplement, Part A, section 1.15)

LE_BT_DEV_ADDRESS 

LE Bluetooth Device Address.

LE_ROLE 

LE ROLE.

SSP_HASH_C256 

SSP: Simple Pairing Hash C-256 (Supplement, Part A 1.6)

SSP_RANDOMIZER_R256 

SSP: Simple Pairing Randomizer R-256 (Supplement, Part A, section 1.6)

SOLICIT_UUID32 

List of 32-bit Service Solicitation UUID (Supplement, Part A, section 1.10)

SVC_DATA_UUID32 

Service data, 32-bit UUID (Supplement, Part A, section 1.11)

SVC_DATA_UUID128 

Service data, 128-bit UUID (Supplement, Part A, section 1.11)

SSP_LE_SEC_CONN_ACK_VALUE 

SSP: LE Secure Connections Confirmation Value (Supplement Part A, Section 1.6)

SSP_LE_SEC_CONN_RND_VALUE 

SSP: LE Secure Connections Random Value (Supplement Part A, Section 1.6)

URI 
INDOOR_POSITIONING 
TX_DISCOVERY_DATA 
LE_SUPP_FEATURES 

LE Supported Features (Supplement, Part A, Section 1.19)

CH_MAP_UPDATE_IND 
PB_ADV 
MESH_MESSAGE 
MESH_BEACON 
BIG_INFO 
BROADCAST_CODE 
INFO_DATA_3D 
MANUFACTURE_SPECIFIC 

Manufacturer id code and specific opaque data.

Definition at line 523 of file BTTypes0.hpp.

◆ GAPFlags

enum direct_bt::GAPFlags : uint8_t
strong

GAP Flags values, see Bluetooth Core Specification Supplement V9, Part A: 1.3, p 12 pp.

Enumerator
NONE 
LE_Ltd_Discoverable 
LE_Gen_Discoverable 
BREDR_UNSUPPORTED 
DUAL_LE_BREDR_SameCtrl 
DUAL_LE_BREDR_SameHost 
RESERVED1 
RESERVED2 
RESERVED3 

Definition at line 730 of file BTTypes0.hpp.

◆ GattAttributeType

Following UUID16 GATT profile attribute types are listed under: BT Core Spec v5.2: Vol 3, Part G GATT: 3.4 Summary of GATT Profile Attribute Types.

Enumerator
PRIMARY_SERVICE 
SECONDARY_SERVICE 
INCLUDE_DECLARATION 
CHARACTERISTIC 
CHARACTERISTIC_APPEARANCE 
CHARACTERISTIC_PERIPHERAL_PRIV_FLAG 
CHARACTERISTIC_RECONNECTION_ADDRESS 
CHARACTERISTIC_PERIPHERAL_PREF_CONN 
CHARACTERISTIC_SERVICE_CHANGED 
CHARACTERISTIC_EXTENDED_PROPERTIES 
CHARACTERISTIC_USER_DESCRIPTION 
CLIENT_CHARACTERISTIC_CONFIGURATION 
SERVER_CHARACTERISTIC_CONFIGURATION 
CHARACTERISTIC_PRESENTATION_FORMAT 
CHARACTERISTIC_AGGREGATE_FORMAT 

Definition at line 63 of file GattTypes.hpp.

◆ GattCharacteristicProperty

Enumerator
Broadcast 
Read 
WriteNoAck 
WriteWithAck 
Notify 
Indicate 
AuthSignedWrite 
ExtProps 
ReliableWriteExt 

FIXME: extension?

AuxWriteExt 

FIXME: extension?

Definition at line 130 of file GattNumbers.hpp.

◆ GattCharacteristicType

GATT Assigned Characteristic Attribute Type for single logical value.

https://www.bluetooth.com/specifications/gatt/characteristics/

Enumerator
DEVICE_NAME 
APPEARANCE 
APPEARANCE 
PERIPHERAL_PRIVACY_FLAG 
RECONNECTION_ADDRESS 
PERIPHERAL_PREFERRED_CONNECTION_PARAMETERS 
TEMPERATURE 

Mandatory: sint16 10^-2: Celsius.

TEMPERATURE_CELSIUS 

Mandatory: sint16 10^-1: Celsius.

TEMPERATURE_FAHRENHEIT 
TEMPERATURE_MEASUREMENT 
TEMPERATURE_TYPE 

Mandatory: 8bit: 1 armpit, 2 body (general), 3(ear), 4 (finger), ...

INTERMEDIATE_TEMPERATURE 
MEASUREMENT_INTERVAL 
SYSTEM_ID 

Mandatory: uint40.

MODEL_NUMBER_STRING 
SERIAL_NUMBER_STRING 
FIRMWARE_REVISION_STRING 
HARDWARE_REVISION_STRING 
SOFTWARE_REVISION_STRING 
MANUFACTURER_NAME_STRING 
REGULATORY_CERT_DATA_LIST 
PNP_ID 

Definition at line 88 of file GattNumbers.hpp.

◆ GattRequirementSpec

Enumerator
Excluded 
Mandatory 
Optional 
Conditional 
if_characteristic_supported 
if_notify_or_indicate_supported 
C1 

Definition at line 146 of file GattNumbers.hpp.

◆ GattServiceType

enum direct_bt::GattServiceType : uint16_t

GATT Service Type, each encapsulating a set of Characteristics.

https://www.bluetooth.com/specifications/gatt/services/
https://www.bluetooth.com/specifications/gatt/ - See GATT Specification Supplement (GSS) Version 2
Enumerator
GENERIC_ACCESS 

This service contains generic information about the device.

This is a mandatory service.

GENERIC_ATTRIBUTE 

The service allows receiving indications of changed services.

This is a mandatory service.

IMMEDIATE_ALERT 

This service exposes a control point to change the peripheral alert behavior.

LINK_LOSS 

The service defines behavior on the device when a link is lost between two devices.

HEALTH_THERMOMETER 

This service exposes temperature and other data from a thermometer intended for healthcare and fitness applications.

DEVICE_INFORMATION 

This service exposes manufacturer and/or vendor information about a device.

BATTERY_SERVICE 

This service exposes the state of a battery within a device.

Definition at line 64 of file GattNumbers.hpp.

◆ HCIConstInt

enum direct_bt::HCIConstInt : int32_t
strong
Enumerator
LE_CONN_MIN_TIMEOUT_MS 

le connection supervisor timeout minimum of 500ms, see getHCIConnSupervisorTimeout() and v5.2 Vol 4, Part E - 7.8.12.

Definition at line 76 of file HCITypes.hpp.

◆ HCIConstSizeT

Enumerator
COMMAND_HDR_SIZE 

HCIPacketType::COMMAND header size including HCIPacketType.

ACL_HDR_SIZE 

HCIPacketType::ACLDATA header size including HCIPacketType.

SCO_HDR_SIZE 

HCIPacketType::SCODATA header size including HCIPacketType.

EVENT_HDR_SIZE 

HCIPacketType::EVENT header size including HCIPacketType.

PACKET_MAX_SIZE 

Total packet size, guaranteed to be handled by adapter.

Definition at line 225 of file HCITypes.hpp.

◆ HCIConstU16

enum direct_bt::HCIConstU16 : uint16_t
strong
Enumerator
INDEX_NONE 
MAX_NAME_LENGTH 
MAX_SHORT_NAME_LENGTH 
MAX_AD_LENGTH 

Definition at line 107 of file HCITypes.hpp.

◆ HCIEventType

enum direct_bt::HCIEventType : uint8_t
strong

BT Core Spec v5.2: Vol 4, Part E HCI: 7.7 Events.

Enumerator
INVALID 
INQUIRY_COMPLETE 
INQUIRY_RESULT 
CONN_COMPLETE 
CONN_REQUEST 
DISCONN_COMPLETE 
AUTH_COMPLETE 
REMOTE_NAME 
ENCRYPT_CHANGE 
CHANGE_LINK_KEY_COMPLETE 
REMOTE_FEATURES 
REMOTE_VERSION 
QOS_SETUP_COMPLETE 
CMD_COMPLETE 
CMD_STATUS 
HARDWARE_ERROR 
ROLE_CHANGE 
NUM_COMP_PKTS 
MODE_CHANGE 
PIN_CODE_REQ 
LINK_KEY_REQ 
LINK_KEY_NOTIFY 
CLOCK_OFFSET 
PKT_TYPE_CHANGE 
ENCRYPT_KEY_REFRESH_COMPLETE 
IO_CAPABILITY_REQUEST 
IO_CAPABILITY_RESPONSE 
LE_META 
DISCONN_PHY_LINK_COMPLETE 
DISCONN_LOGICAL_LINK_COMPLETE 
AMP_Receiver_Report 

Definition at line 272 of file HCITypes.hpp.

◆ HCILEOwnAddressType

enum direct_bt::HCILEOwnAddressType : uint8_t
strong
Enumerator
PUBLIC 

Public Device Address.

RANDOM 

Random Device Address.

RESOLVABLE_OR_PUBLIC 

Controller Resolved Private Address or Public Address.

RESOLVABLE_OR_RANDOM 

Controller Resolved Private Address or Random Address.

UNDEFINED 

Definition at line 135 of file BTAddress.hpp.

◆ HCILEPeerAddressType

enum direct_bt::HCILEPeerAddressType : uint8_t
strong

HCI LE Address-Type is PUBLIC: 0x00, RANDOM: 0x01.

BT Core Spec v5.2: Vol 4, Part E Host Controller Interface (HCI) Functionality:

> 7.8.5: LE Set Advertising Parameters command
-- Own_Address_Type: public: 0x00 (default), random: 0x01, resolvable-1: 0x02, resolvable-2: 0x03
> 7.8.10: LE Set Scan Parameters command
-- Own_Address_Type: public: 0x00 (default), random: 0x01, resolvable-1: 0x02, resolvable-2: 0x03
> 7.8.12: LE Create Connection command
-- Own_Address_Type: public: 0x00 (default), random: 0x01,
   Public Identity Address (resolvable-1, any not supporting LE_Set_Privacy_Mode command): 0x02,
   Random (static) Identity Address (resolvable-2, any not supporting LE_Set_Privacy_Mode command): 0x03
Enumerator
PUBLIC 

Public Device Address.

RANDOM 

Random Device Address.

PUBLIC_IDENTITY 

Public Resolved Identity Address.

RANDOM_STATIC_IDENTITY 

Resolved Random (Static) Identity Address.

UNDEFINED 

HCIADDR_UNDEFINED.

Definition at line 120 of file BTAddress.hpp.

◆ HCIMetaEventType

enum direct_bt::HCIMetaEventType : uint8_t
strong

BT Core Spec v5.2: Vol 4, Part E HCI: 7.7.65 LE Meta event.

Enumerator
INVALID 
LE_CONN_COMPLETE 

LE_CONN_COMPLETE.

LE_ADVERTISING_REPORT 

LE_ADVERTISING_REPORT.

LE_CONN_UPDATE_COMPLETE 

LE_CONN_UPDATE_COMPLETE.

LE_REMOTE_FEAT_COMPLETE 

LE_REMOTE_FEAT_COMPLETE.

LE_LTKEY_REQUEST 

LE_LTKEY_REQUEST.

LE_REMOTE_CONN_PARAM_REQ 

LE_REMOTE_CONN_PARAM_REQ.

LE_DATA_LENGTH_CHANGE 

LE_DATA_LENGTH_CHANGE.

LE_READ_LOCAL_P256_PUBKEY_COMPLETE 

LE_READ_LOCAL_P256_PUBKEY_COMPLETE.

LE_GENERATE_DHKEY_COMPLETE 

LE_GENERATE_DHKEY_COMPLETE.

LE_EXT_CONN_COMPLETE 

LE_ENHANCED_CONN_COMPLETE.

LE_DIRECT_ADV_REPORT 

LE_DIRECT_ADV_REPORT.

LE_PHY_UPDATE_COMPLETE 

LE_PHY_UPDATE_COMPLETE.

LE_EXT_ADV_REPORT 

LE_EXT_ADV_REPORT.

LE_PERIODIC_ADV_SYNC_ESTABLISHED 

LE_PERIODIC_ADV_SYNC_ESTABLISHED.

LE_PERIODIC_ADV_REPORT 

LE_PERIODIC_ADV_REPORT.

LE_PERIODIC_ADV_SYNC_LOST 

LE_PERIODIC_ADV_SYNC_LOST.

LE_SCAN_TIMEOUT 

LE_SCAN_TIMEOUT.

LE_ADV_SET_TERMINATED 

LE_ADV_SET_TERMINATED.

LE_SCAN_REQ_RECEIVED 

LE_SCAN_REQ_RECEIVED.

LE_CHANNEL_SEL_ALGO 

LE_CHANNEL_SEL_ALGO.

LE_CONNLESS_IQ_REPORT 

LE_CONNLESS_IQ_REPORT.

LE_CONN_IQ_REPORT 

LE_CONN_IQ_REPORT.

LE_CTE_REQ_FAILED 

LE_CTE_REQ_FAILED.

LE_PERIODIC_ADV_SYNC_TRANSFER_RECV 

LE_PERIODIC_ADV_SYNC_TRANSFER_RECV.

LE_CIS_ESTABLISHED 

LE_CIS_ESTABLISHED.

LE_CIS_REQUEST 

LE_CIS_REQUEST.

LE_CREATE_BIG_COMPLETE 

LE_CREATE_BIG_COMPLETE.

LE_TERMINATE_BIG_COMPLETE 

LE_TERMINATE_BIG_COMPLETE.

LE_BIG_SYNC_ESTABLISHED 

LE_BIG_SYNC_ESTABLISHED.

LE_BIG_SYNC_LOST 

LE_BIG_SYNC_LOST.

LE_REQUEST_PEER_SCA_COMPLETE 

LE_REQUEST_PEER_SCA_COMPLETE.

LE_PATH_LOSS_THRESHOLD 

LE_PATH_LOSS_THRESHOLD.

LE_TRANSMIT_POWER_REPORTING 

LE_TRANSMIT_POWER_REPORTING.

LE_BIGINFO_ADV_REPORT 

LE_BIGINFO_ADV_REPORT.

Definition at line 314 of file HCITypes.hpp.

◆ HCIOGF

enum direct_bt::HCIOGF : uint8_t
strong
Enumerator
LINK_CTL 

link control commands

LINK_POLICY 

link policy commands

BREDR_CTL 

controller baseband commands

LE_CTL 

LE controller commands.

Definition at line 254 of file HCITypes.hpp.

◆ HCIOpcode

enum direct_bt::HCIOpcode : uint16_t
strong

BT Core Spec v5.2: Vol 4, Part E HCI: 7.1 Link Controller commands.

BT Core Spec v5.2: Vol 4, Part E HCI: 7.3 Controller & Baseband commands

BT Core Spec v5.2: Vol 4, Part E HCI: 7.4 Informational paramters

BT Core Spec v5.2: Vol 4, Part E HCI: 7.8 LE Controller commands

Enumerator
SPECIAL 

SPECIAL.

CREATE_CONN 
DISCONNECT 
IO_CAPABILITY_REQ_REPLY 
IO_CAPABILITY_REQ_NEG_REPLY 
SET_EVENT_MASK 

SET_EVENT_MASK.

RESET 
READ_LOCAL_VERSION 
READ_LOCAL_COMMANDS 
LE_SET_EVENT_MASK 

LE_SET_EVENT_MASK.

LE_READ_BUFFER_SIZE 
LE_READ_LOCAL_FEATURES 
LE_SET_RANDOM_ADDR 
LE_SET_ADV_PARAM 
LE_READ_ADV_TX_POWER 
LE_SET_ADV_DATA 
LE_SET_SCAN_RSP_DATA 
LE_SET_ADV_ENABLE 
LE_SET_SCAN_PARAM 
LE_SET_SCAN_ENABLE 
LE_CREATE_CONN 

LE_CREATE_CONN.

LE_CREATE_CONN_CANCEL 
LE_READ_WHITE_LIST_SIZE 
LE_CLEAR_WHITE_LIST 
LE_ADD_TO_WHITE_LIST 
LE_DEL_FROM_WHITE_LIST 
LE_CONN_UPDATE 
LE_READ_REMOTE_FEATURES 
LE_ENABLE_ENC 
LE_READ_PHY 
LE_SET_DEFAULT_PHY 
LE_SET_EXT_SCAN_PARAMS 
LE_SET_EXT_SCAN_ENABLE 
LE_EXT_CREATE_CONN 

Definition at line 368 of file HCITypes.hpp.

◆ HCIOpcodeBit

enum direct_bt::HCIOpcodeBit : uint8_t
strong
Enumerator
SPECIAL 
CREATE_CONN 
DISCONNECT 
IO_CAPABILITY_REQ_REPLY 
IO_CAPABILITY_REQ_NEG_REPLY 
SET_EVENT_MASK 
RESET 
READ_LOCAL_VERSION 
READ_LOCAL_COMMANDS 
LE_SET_EVENT_MASK 
LE_READ_BUFFER_SIZE 
LE_READ_LOCAL_FEATURES 
LE_SET_RANDOM_ADDR 
LE_SET_ADV_PARAM 
LE_READ_ADV_TX_POWER 
LE_SET_ADV_DATA 
LE_SET_SCAN_RSP_DATA 
LE_SET_ADV_ENABLE 
LE_SET_SCAN_PARAM 
LE_SET_SCAN_ENABLE 
LE_CREATE_CONN 
LE_CREATE_CONN_CANCEL 
LE_READ_WHITE_LIST_SIZE 
LE_CLEAR_WHITE_LIST 
LE_ADD_TO_WHITE_LIST 
LE_DEL_FROM_WHITE_LIST 
LE_CONN_UPDATE 
LE_READ_REMOTE_FEATURES 
LE_ENABLE_ENC 
LE_READ_PHY 
LE_SET_DEFAULT_PHY 
LE_SET_EXT_SCAN_PARAMS 
LE_SET_EXT_SCAN_ENABLE 
LE_EXT_CREATE_CONN 

Definition at line 410 of file HCITypes.hpp.

◆ HCIPacketType

enum direct_bt::HCIPacketType : uint8_t
strong
Enumerator
COMMAND 
ACLDATA 
SCODATA 
EVENT 
DIAG 
VENDOR 

Definition at line 241 of file HCITypes.hpp.

◆ HCIStatusCode

enum direct_bt::HCIStatusCode : uint8_t
strong

BT Core Spec v5.2: Vol 1, Part F Controller Error Codes: 1.3 List of Error Codes.

BT Core Spec v5.2: Vol 1, Part F Controller Error Codes: 2 Error code descriptions

Enumerator
SUCCESS 
UNKNOWN_HCI_COMMAND 
UNKNOWN_CONNECTION_IDENTIFIER 
HARDWARE_FAILURE 
PAGE_TIMEOUT 
AUTHENTICATION_FAILURE 
PIN_OR_KEY_MISSING 
MEMORY_CAPACITY_EXCEEDED 
CONNECTION_TIMEOUT 
CONNECTION_LIMIT_EXCEEDED 
SYNC_DEVICE_CONNECTION_LIMIT_EXCEEDED 
CONNECTION_ALREADY_EXISTS 
COMMAND_DISALLOWED 
CONNECTION_REJECTED_LIMITED_RESOURCES 
CONNECTION_REJECTED_SECURITY 
CONNECTION_REJECTED_UNACCEPTABLE_BD_ADDR 
CONNECTION_ACCEPT_TIMEOUT_EXCEEDED 
UNSUPPORTED_FEATURE_OR_PARAM_VALUE 
INVALID_HCI_COMMAND_PARAMETERS 
REMOTE_USER_TERMINATED_CONNECTION 
REMOTE_DEVICE_TERMINATED_CONNECTION_LOW_RESOURCES 
REMOTE_DEVICE_TERMINATED_CONNECTION_POWER_OFF 
CONNECTION_TERMINATED_BY_LOCAL_HOST 
REPEATED_ATTEMPTS 
PAIRING_NOT_ALLOWED 
UNKNOWN_LMP_PDU 
UNSUPPORTED_REMOTE_OR_LMP_FEATURE 
SCO_OFFSET_REJECTED 
SCO_INTERVAL_REJECTED 
SCO_AIR_MODE_REJECTED 
INVALID_LMP_OR_LL_PARAMETERS 
UNSPECIFIED_ERROR 
UNSUPPORTED_LMP_OR_LL_PARAMETER_VALUE 
ROLE_CHANGE_NOT_ALLOWED 
LMP_OR_LL_RESPONSE_TIMEOUT 
LMP_OR_LL_COLLISION 
LMP_PDU_NOT_ALLOWED 
ENCRYPTION_MODE_NOT_ACCEPTED 
LINK_KEY_CANNOT_BE_CHANGED 
REQUESTED_QOS_NOT_SUPPORTED 
INSTANT_PASSED 
PAIRING_WITH_UNIT_KEY_NOT_SUPPORTED 
DIFFERENT_TRANSACTION_COLLISION 
QOS_UNACCEPTABLE_PARAMETER 
QOS_REJECTED 
CHANNEL_ASSESSMENT_NOT_SUPPORTED 
INSUFFICIENT_SECURITY 
PARAMETER_OUT_OF_RANGE 
ROLE_SWITCH_PENDING 
RESERVED_SLOT_VIOLATION 
ROLE_SWITCH_FAILED 
EIR_TOO_LARGE 
SIMPLE_PAIRING_NOT_SUPPORTED_BY_HOST 
HOST_BUSY_PAIRING 
CONNECTION_REJECTED_NO_SUITABLE_CHANNEL 
CONTROLLER_BUSY 
UNACCEPTABLE_CONNECTION_PARAM 
ADVERTISING_TIMEOUT 
CONNECTION_TERMINATED_MIC_FAILURE 
CONNECTION_EST_FAILED_OR_SYNC_TIMEOUT 
MAX_CONNECTION_FAILED 
COARSE_CLOCK_ADJ_REJECTED 
TYPE0_SUBMAP_NOT_DEFINED 
UNKNOWN_ADVERTISING_IDENTIFIER 
LIMIT_REACHED 
OPERATION_CANCELLED_BY_HOST 
PACKET_TOO_LONG 
FAILED 
CONNECT_FAILED 
AUTH_FAILED 
NOT_PAIRED 
NO_RESOURCES 
TIMEOUT 
ALREADY_CONNECTED 
BUSY 
REJECTED 
NOT_SUPPORTED 
INVALID_PARAMS 
DISCONNECTED 
NOT_POWERED 
CANCELLED 
INVALID_INDEX 
RFKILLED 
ALREADY_PAIRED 
PERMISSION_DENIED 
INTERNAL_TIMEOUT 
INTERNAL_FAILURE 
UNKNOWN 

Definition at line 124 of file HCITypes.hpp.

◆ HCIWhitelistConnectType

enum direct_bt::HCIWhitelistConnectType : uint8_t
strong

HCI Whitelist connection type.

Enumerator
HCI_AUTO_CONN_REPORT 

Report Connection: Only supported for LE on Linux .

HCI_AUTO_CONN_DIRECT 

Incoming Connections: Only supported type for BDADDR_BREDR (!LE) on Linux .

HCI_AUTO_CONN_ALWAYS 

Auto Connect: Only supported for LE on Linux .

Definition at line 415 of file BTTypes0.hpp.

◆ L2CAP_CID

enum direct_bt::L2CAP_CID : uint16_t
strong
Enumerator
UNDEFINED 
SIGNALING 
CONN_LESS 
A2MP 
ATT 
LE_SIGNALING 
SMP 
SMP_BREDR 
DYN_START 
DYN_END 
LE_DYN_END 

Definition at line 432 of file BTTypes0.hpp.

◆ L2CAP_PSM

enum direct_bt::L2CAP_PSM : uint16_t
strong

Protocol Service Multiplexers (PSM) Assigned numbers https://www.bluetooth.com/specifications/assigned-numbers/logical-link-control/

Enumerator
UNDEFINED 
SDP 
RFCOMM 
TCSBIN 
TCSBIN_CORDLESS 
BNEP 
HID_CONTROL 
HID_INTERRUPT 
UPNP 
AVCTP 
AVDTP 
AVCTP_BROWSING 
UDI_C_PLANE 
ATT 
LE_DYN_START 
LE_DYN_END 
DYN_START 
DYN_END 
AUTO_END 

Definition at line 458 of file BTTypes0.hpp.

◆ L2CAP_States

enum direct_bt::L2CAP_States : uint8_t
strong

BT Core Spec v5.2: Vol 3, Part A L2CAP Spec: 6 State Machine.

Enumerator
CLOSED 
WAIT_CONNECTED 
WAIT_CONNECTED_RSP 
CONFIG 
OPEN 
WAIT_DISCONNECTED 
WAIT_CREATE 
WAIT_CONNECT 
WAIT_CREATE_RSP 
WAIT_MOVE 
WAIT_MOVE_RSP 
WAIT_MOVE_CONFIRM 
WAIT_CONFIRM_RSP 

Definition at line 488 of file BTTypes0.hpp.

◆ LE_Features

enum direct_bt::LE_Features : uint64_t
strong

HCI Supported Commands.

   BT Core Spec v5.2: Vol 4, Part E, 6.27 (HCI) Supported Commands
   BT Core Spec v5.2: Vol 4, Part E, 7.4.2 Read Local Supported Commands command
   

Unable to encode via enum and build-in integer: 64 octets = 512 bit wide!

enum class HCISupportedCommands : jau::uint512_t { NONE = 0, HCI_Create_Connection = ... }; LE Link Layer Feature Set

BT Core Spec v5.2: Vol 6, Part B, 4.6 (LE LL) Feature Support
BT Core Spec v5.2: Vol 4, Part E, 7.8.3 LE Read Local Supported Features command
BT Core Spec v5.2: Vol 4, Part E, 7.8.21 LE Read Remote Features command
BT Core Spec v5.2: Vol 4, Part E, 7.7.65.4 LE Read Remote Features Complete event
BT Core Spec v5.2: Vol 6, Part B, 7.8.115 LE Set Host Feature Command
Enumerator
NONE 

NONE.

LE_Encryption 

LE_Encryption.

Conn_Param_Req_Proc 

Conn_Param_Request_Proc.

Ext_Rej_Ind 
SlaveInit_Feat_Exchg 
LE_Ping 
LE_Data_Pkt_Len_Ext 
LL_Privacy 
Ext_Scan_Filter_Pol 
LE_2M_PHY 
Stable_Mod_Idx_Tx 
Stable_Mod_Idx_Rx 
LE_Coded_PHY 
LE_Ext_Adv 
LE_Per_Adv 
Chan_Sel_Algo_2 
LE_Pwr_Cls_1 
Min_Num_Used_Chan_Proc 
Conn_CTE_Req 
Conn_CTE_Res 
ConnLess_CTE_Tx 
ConnLess_CTE_Rx 
AoD 
AoA 
Rx_Const_Tone_Ext 
Per_Adv_Sync_Tx_Sender 
Per_Adv_Sync_Tx_Rec 
Zzz_Clk_Acc_Upd 
Rem_Pub_Key_Val 
Conn_Iso_Stream_Master 
Conn_Iso_Stream_Slave 
Iso_Brdcst 
Sync_Rx 
Iso_Chan 
LE_Pwr_Ctrl_Req 
LE_Pwr_Chg_Ind 
LE_Path_Loss_Mon 

Definition at line 106 of file BTTypes0.hpp.

◆ LE_PHYs

enum direct_bt::LE_PHYs : uint8_t
strong

LE Transport PHY bit values.

BT Core Spec v5.2: Vol 4, Part E, 7.8.47 LE Read PHY command (we transfer the sequential value to this bitmask for unification)
BT Core Spec v5.2: Vol 4, Part E, 7.8.48 LE Set Default PHY command
Enumerator
NONE 
LE_1M 
LE_2M 
LE_CODED 

Definition at line 175 of file BTTypes0.hpp.

◆ MgmtConstU16

enum direct_bt::MgmtConstU16 : uint16_t
Enumerator
MGMT_INDEX_NONE 
MGMT_MAX_NAME_LENGTH 
MGMT_MAX_SHORT_NAME_LENGTH 

Definition at line 65 of file MgmtTypes.hpp.

◆ MgmtCSRKType

enum direct_bt::MgmtCSRKType : uint8_t
strong

Signature Resolving Key Types compatible with Mgmt's MgmtSignatureResolvingKeyInfo.

Enumerator
UNAUTHENTICATED_LOCAL 

Unauthenticated local key.

UNAUTHENTICATED_REMOTE 

Unauthenticated remote key.

AUTHENTICATED_LOCAL 

Authenticated local key, implying BTSecurityLevel::ENC_AUTH or BTSecurityLevel::ENC_AUTH_FIPS.

AUTHENTICATED_REMOTE 

Authenticated remote key, implying BTSecurityLevel::ENC_AUTH or BTSecurityLevel::ENC_AUTH_FIPS.

NONE 

Denoting no or invalid signature resolving key type.

Definition at line 158 of file MgmtTypes.hpp.

◆ MgmtLinkKeyType

enum direct_bt::MgmtLinkKeyType : uint8_t
strong

Link Key Types compatible with Mgmt's MgmtLinkKeyInfo.

Enumerator
COMBI 

Combination key.

LOCAL_UNIT 

Local Unit key.

REMOTE_UNIT 

Remote Unit key.

DBG_COMBI 

Debug Combination key.

UNAUTH_COMBI_P192 

Unauthenticated Combination key from P-192.

AUTH_COMBI_P192 

Authenticated Combination key from P-192.

CHANGED_COMBI 

Changed Combination key.

UNAUTH_COMBI_P256 

Unauthenticated Combination key from P-256.

AUTH_COMBI_P256 

Authenticated Combination key from P-256.

NONE 

Denoting no or invalid link key type.

Definition at line 111 of file MgmtTypes.hpp.

◆ MgmtLTKType

enum direct_bt::MgmtLTKType : uint8_t
strong

Long Term Key Types compatible with Mgmt's MgmtLongTermKeyInfo.

Enumerator
UNAUTHENTICATED 

Unauthenticated long term key, implying legacy.

AUTHENTICATED 

Authenticated long term key, implying legacy and BTSecurityLevel::ENC_AUTH.

UNAUTHENTICATED_P256 

Unauthenticated long term key from P-256, implying Secure Connection (SC).

AUTHENTICATED_P256 

Authenticated long term key from P-256, implying Secure Connection (SC) and BTSecurityLevel::ENC_AUTH_FIPS.

DEBUG_P256 

Debug long term key from P-256.

NONE 

Denoting no or invalid long term key type.

Definition at line 138 of file MgmtTypes.hpp.

◆ MgmtOption

enum direct_bt::MgmtOption : uint32_t
Enumerator
EXTERNAL_CONFIG 
PUBLIC_ADDRESS 

Definition at line 103 of file MgmtTypes.hpp.

◆ MgmtSizeConst

Enumerator
MGMT_HEADER_SIZE 

Definition at line 73 of file MgmtTypes.hpp.

◆ MgmtStatus

enum direct_bt::MgmtStatus : uint8_t
strong
Enumerator
SUCCESS 
UNKNOWN_COMMAND 
NOT_CONNECTED 
FAILED 
CONNECT_FAILED 
AUTH_FAILED 
NOT_PAIRED 
NO_RESOURCES 
TIMEOUT 
ALREADY_CONNECTED 
BUSY 
REJECTED 
NOT_SUPPORTED 
INVALID_PARAMS 
DISCONNECTED 
NOT_POWERED 
CANCELLED 
INVALID_INDEX 
RFKILLED 
ALREADY_PAIRED 
PERMISSION_DENIED 

Definition at line 77 of file MgmtTypes.hpp.

◆ PairingMode

enum direct_bt::PairingMode : uint8_t
strong

Bluetooth secure pairing mode.

BT Core Spec v5.2: Vol 1, Part A, 5 Security Overview
BT Core Spec v5.2: Vol 1, Part A, 5.4 LE SECURITY
BT Core Spec v5.2: Vol 3, Part H (SM): 2.3.5.1 Selecting key generation method Table 2.8
See also
SMPPairingState
Enumerator
NONE 

No pairing mode, implying no secure connections, no encryption and no MITM protection.

NEGOTIATING 

Pairing mode in negotiating, i.e.

Pairing Feature Exchange in progress.

JUST_WORKS 

Just Works.

Random key exchange with encryption but no MITM protection.

PASSKEY_ENTRY_ini 

Passkey Entry input by initiator.

Responder produces and display artifact. A known digit sequence (PIN) must be given as a secret to be validated on the device. Random key exchange with additional secret (PIN) and encryption and MITM protection.

PASSKEY_ENTRY_res 

Passkey Entry input by responder.

Initiator produces and display artifact. A known digit sequence (PIN) must be given as a secret to be validated on the device. Random key exchange with additional secret (PIN) and encryption and MITM protection.

NUMERIC_COMPARE_ini 

Visual comparison of digit sequence (PIN) input by initiator, shown on both devices.

Responder produces and display artifact. Random key exchange with additional secret (PIN) and encryption and MITM protection.

NUMERIC_COMPARE_res 

Visual comparison of digit sequence (PIN) input by responder, shown on both devices.

Initiator produces and displays artifact. Random key exchange with additional secret (PIN) and encryption and MITM protection.

OUT_OF_BAND 

Utilizing a second factor secret to be used as a secret, e.g.

NFC field. Random key exchange with additional secret (2FA) and encryption and potential MITM protection.

PRE_PAIRED 

Reusing encryption keys from previous pairing.

Definition at line 261 of file BTTypes0.hpp.

◆ ScanType

enum direct_bt::ScanType : uint8_t
strong

Meta ScanType as derived from BTMode, with defined value mask consisting of BDAddressType bits.

This ScanType is natively compatible with DBTManager's implementation for start and stop discovery.

Enumerator
NONE 
BREDR 
LE 
DUAL 

Definition at line 294 of file BTTypes0.hpp.

◆ SMPAuthReqs

enum direct_bt::SMPAuthReqs : uint8_t
strong

SMP Authentication Requirements Bits, denotes specific bits or whole protocol uint8_t bit-mask.

BT Core Spec v5.2: Vol 3, Part H (SM): 3.5.1 SMP Pairing Request
BT Core Spec v5.2: Vol 3, Part H (SM): 3.5.2 SMP Pairing Response
BT Core Spec v5.2: Vol 3, Part H (SM): 3.6.7 SMP Security Request
BT Core Spec v5.2: Vol 1, Part A, 5.4 LE SECURITY
BT Core Spec v5.2: Vol 3, Part H (SM): 2.3.1 Security Properties
BT Core Spec v5.2: Vol 3, Part H (SM): 2.3.5.1 Selecting key generation method
BT Core Spec v5.2: Vol 3, Part H (SM): 2.3.5.6.2 Authentication stage 1 – Just Works or Numeric Comparison
BT Core Spec v5.2: Vol 3, Part H (SM): 2.3.5.6.3 Authentication stage 1 – Passkey Entry
BT Core Spec v5.2: Vol 3, Part H (SM): 2.3.5.6.4 Authentication stage 1 – Out of Band

Layout LSB -> MSB

uint8_t bonding_flags : 2, mitm : 1, sc : 1, keypress : 1, ct2 : 1, rfu : 2;
Enumerator
NONE 
BONDING 

Indicate bonding being requested by the initiating device.

BONDING_RFU 

Reserved for future use.

MITM 

A device sets the MITM flag to one to request an Authenticated security property for the STK when using LE legacy pairing and the LTK when using LE Secure Connections.

MITM protection can be secured by the following authenticated PairingMode

  • PairingMode::PASSKEY_ENTRY best
  • PairingMode::NUMERIC_COMPARISON good
  • PairingMode::OUT_OF_BAND good, depending on the OOB data
Unauthenticated PairingMode::JUST_WORKS gives no MITM protection.
BT Core Spec v5.2: Vol 3, Part H (SM): 2.3.1 Security Properties
SECURE_CONNECTIONS 

If LE Secure Connections pairing is supported by the device, then the SC field shall be set to 1, otherwise it shall be set to 0.

If both devices support LE Secure Connections pairing, then LE Secure Connections pairing shall be used, otherwise LE Legacy pairing shall be used.

KEYPRESS 

The keypress field is used only in the Passkey Entry protocol and shall be ignored in other protocols.

When both sides set that field to one, Keypress notifications shall be generated and sent using SMP Pairing Keypress Notification PDUs.

CT2_H7_FUNC_SUPPORT 

The CT2 field shall be set to 1 upon transmission to indicate support for the h7 function.

See sections:
  • 2.4.2.4 Derivation of BR/EDR link key from LE LTK
  • 2.4.2.5 Derivation of LE LTK from BR/EDR link key
RFU_1 

Reserved for future use.

RFU_2 

Reserved for future use.

Definition at line 253 of file SMPTypes.hpp.

◆ SMPConstInt

enum direct_bt::SMPConstInt : int32_t
strong

Definition at line 79 of file SMPTypes.hpp.

◆ SMPConstU16

enum direct_bt::SMPConstU16 : uint16_t
strong
Enumerator
SMP_TIMEOUT_MS 

SMP Timeout Vol 3, Part H (SM): 3.4.

Definition at line 85 of file SMPTypes.hpp.

◆ SMPIOCapability

enum direct_bt::SMPIOCapability : uint8_t
strong

Vol 3, Part H, 2.3.2 IO capabilities.

Enumerator
DISPLAY_ONLY 

Display output only, value 0.

DISPLAY_YES_NO 

Display output and boolean confirmation input keys only, value 1.

KEYBOARD_ONLY 

Keyboard input only, value 2.

NO_INPUT_NO_OUTPUT 

No input not output, value 3.

KEYBOARD_DISPLAY 

Display output and keyboard input, value 4.

UNSET 

Denoting unset value, i.e.

not defined.

Definition at line 185 of file SMPTypes.hpp.

◆ SMPKeyType

enum direct_bt::SMPKeyType : uint8_t
strong

SMP Key Type for Distribution, indicates keys distributed in the Transport Specific Key Distribution phase.

Field format and usage: Vol 3, Part H, 3.6.1 SMP - LE Security - Key distribution and generation.
See also Vol 3, Part H, 2.4.3 SM - LE Security - Distribution of keys.

Layout LSB -> MSB

uint8_t EncKey : 1, IdKey : 1, SignKey : 1, LinkKey : 1, RFU : 4;
Enumerator
NONE 
ENC_KEY 

LE legacy pairing: Indicates device shall distribute LTK using the Encryption Information command, followed by EDIV and Rand using the Master Identification command.

LE Secure Connections pairing (SMP on LE transport): Ignored, EDIV and Rand shall be zero and shall not be distributed.

SMP on BR/EDR transport: Indicates device likes to derive LTK from BR/EDR Link Key.
When EncKey is set to 1 by both devices in the initiator and responder Key Distribution / Generation fields, the procedures for calculating the LTK from the BR/EDR Link Key shall be used.

ID_KEY 

Indicates that the device shall distribute IRK using the Identity Information command followed by its public device or status random address using Identity Address Information.

SIGN_KEY 

Indicates that the device shall distribute CSRK using the Signing Information command.

LINK_KEY 

SMP on the LE transport: Indicate that the device would like to derive the Link Key from the LTK.


When LinkKey is set to 1 by both devices in the initiator and responder Key Distribution / Generation fields, the procedures for calculating the BR/EDR link key from the LTK shall be used.
Devices not supporting LE Secure Connections shall set this bit to zero and ignore it on reception.

SMP on BR/EDR transport: Reserved for future use.

RFU_1 

Reserved for future use.

RFU_2 

Reserved for future use.

RFU_3 

Reserved for future use.

RFU_4 

Reserved for future use.

Definition at line 385 of file SMPTypes.hpp.

◆ SMPOOBDataFlag

enum direct_bt::SMPOOBDataFlag : uint8_t
strong

Vol 3, Part H, 2.3.3 OOB authentication data.

Enumerator
OOB_AUTH_DATA_NOT_PRESENT 

OOB_AUTH_DATA_NOT_PRESENT.

OOB_AUTH_DATA_REMOTE_PRESENT 

OOB_AUTH_DATA_REMOTE_PRESENT.

Definition at line 223 of file SMPTypes.hpp.

◆ SMPPairingState

enum direct_bt::SMPPairingState : uint8_t
strong

SMP Pairing Process state definition.

Vol 3, Part H (SM): APPENDIX C MESSAGE SEQUENCE CHARTS
See also
PairingMode
Enumerator
NONE 

No pairing in process.

Current PairingMode shall be PairingMode::NONE.

FAILED 

Pairing failed.

Current PairingMode shall be PairingMode::NONE.

REQUESTED_BY_RESPONDER 

Phase 0: Pairing requested by responding (slave) device via SMPSecurityReqMsg.


Signals initiating (host) device to start the Pairing Feature Exchange.
Current PairingMode shall be PairingMode::NEGOTIATING.

FEATURE_EXCHANGE_STARTED 

Phase 1: Pairing requested by initiating (master) device via SMPPairingMsg.


Starts the Pairing Feature Exchange.
Current PairingMode shall be PairingMode::NEGOTIATING.

FEATURE_EXCHANGE_COMPLETED 

Phase 1: Pairing responded by responding (slave) device via SMPPairingMsg.


Completes the Pairing Feature Exchange. Optional user input shall be given for Phase 2.
Current PairingMode shall be set to a definitive value.

PASSKEY_EXPECTED 

Phase 2: Authentication (MITM) PASSKEY expected now, see PairingMode::PASSKEY_ENTRY_ini.

NUMERIC_COMPARE_EXPECTED 

Phase 2: Authentication (MITM) Numeric Comparison Reply expected now, see PairingMode::NUMERIC_COMPARE_ini.

OOB_EXPECTED 

Phase 2: Authentication (MITM) OOB data expected now, see PairingMode::OUT_OF_BAND.

KEY_DISTRIBUTION 

Phase 3: Key & value distribution started after SMPPairConfirmMsg or SMPPairPubKeyMsg (LE Secure Connection) exchange between initiating (master) and responding (slave) device.

COMPLETED 

Phase 3: Key & value distribution completed by responding (slave) device sending SMPIdentInfoMsg (#1) , SMPIdentAddrInfoMsg (#2) or SMPSignInfoMsg (#3),
depending on the key distribution field SMPKeyDistFormat SMPPairingMsg::getInitKeyDist() and SMPPairingMsg::getRespKeyDist().


The link is assumed to be encrypted from here on and AdapterStatusListener::deviceReady() gets called on all listener.

Definition at line 101 of file SMPTypes.hpp.

Function Documentation

◆ changeScanType()

constexpr ScanType direct_bt::changeScanType ( const ScanType  current,
const ScanType  changeType,
const bool  changeEnable 
)
constexprnoexcept

Definition at line 321 of file BTTypes0.hpp.

Here is the caller graph for this function:

◆ clrAdapterSettingMaskBit()

constexpr void direct_bt::clrAdapterSettingMaskBit ( AdapterSetting mask,
const AdapterSetting  bit 
)
constexprnoexcept

Definition at line 180 of file BTTypes1.hpp.

◆ findGattCharSpec()

const GattCharacteristicSpec * direct_bt::findGattCharSpec ( const uint16_t  uuid16)
noexcept

Find the GattCharacteristicSpec entry by given uuid16, denominating either a GattCharacteristicType.

Definition at line 332 of file GATTNumbers.cpp.

Here is the call graph for this function:

◆ findGattServiceChar()

const GattServiceCharacteristic * direct_bt::findGattServiceChar ( const uint16_t  uuid16)
noexcept

Find the GattServiceCharacteristic entry by given uuid16, denominating either a GattServiceType or GattCharacteristicType.

Definition at line 316 of file GATTNumbers.cpp.

Here is the call graph for this function:

◆ fromBDAddressTypeToJavaAddressType()

jstring direct_bt::fromBDAddressTypeToJavaAddressType ( JNIEnv *  env,
BDAddressType  bdAddressType 
)

Definition at line 53 of file helper_dbt.cxx.

Here is the call graph for this function:

◆ fromJavaAdressTypeToBDAddressType()

BDAddressType direct_bt::fromJavaAdressTypeToBDAddressType ( JNIEnv *  env,
jstring  jAddressType 
)

Definition at line 41 of file helper_dbt.cxx.

Here is the call graph for this function:

◆ GattCharacteristicPropertyToString()

std::string direct_bt::GattCharacteristicPropertyToString ( const GattCharacteristicProperty  v)
noexcept

Definition at line 259 of file GATTNumbers.cpp.

Here is the caller graph for this function:

◆ GattCharacteristicTypeToString()

std::string direct_bt::GattCharacteristicTypeToString ( const GattCharacteristicType  v)
noexcept

Definition at line 239 of file GATTNumbers.cpp.

Here is the caller graph for this function:

◆ GattNameToString()

std::string direct_bt::GattNameToString ( const TROOctets v)
noexcept

Converts a GATT Name (not null-terminated) UTF8 to a null-terminated C++ string.

Definition at line 349 of file GATTNumbers.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GattRequirementSpecToString()

std::string direct_bt::GattRequirementSpecToString ( const GattRequirementSpec  v)
noexcept

Definition at line 276 of file GATTNumbers.cpp.

Here is the caller graph for this function:

◆ GattServiceTypeToString()

std::string direct_bt::GattServiceTypeToString ( const GattServiceType  v)
noexcept

Definition at line 207 of file GATTNumbers.cpp.

Here is the caller graph for this function:

◆ get_uuid128() [1/2]

uuid128_t direct_bt::get_uuid128 ( uint8_t const *  buffer,
jau::nsize_t const  byte_offset 
)
inlinenoexcept

Definition at line 236 of file UUID.hpp.

Here is the call graph for this function:

◆ get_uuid128() [2/2]

uuid128_t direct_bt::get_uuid128 ( uint8_t const *  buffer,
jau::nsize_t const  byte_offset,
bool  littleEndian 
)
inlinenoexcept

Definition at line 240 of file UUID.hpp.

Here is the call graph for this function:

◆ get_uuid16() [1/2]

uuid16_t direct_bt::get_uuid16 ( uint8_t const *  buffer,
jau::nsize_t const  byte_offset 
)
inlinenoexcept

Definition at line 220 of file UUID.hpp.

Here is the call graph for this function:

◆ get_uuid16() [2/2]

uuid16_t direct_bt::get_uuid16 ( uint8_t const *  buffer,
jau::nsize_t const  byte_offset,
bool  littleEndian 
)
inlinenoexcept

Definition at line 224 of file UUID.hpp.

Here is the call graph for this function:

◆ get_uuid32() [1/2]

uuid32_t direct_bt::get_uuid32 ( uint8_t const *  buffer,
jau::nsize_t const  byte_offset 
)
inlinenoexcept

Definition at line 228 of file UUID.hpp.

Here is the call graph for this function:

◆ get_uuid32() [2/2]

uuid32_t direct_bt::get_uuid32 ( uint8_t const *  buffer,
jau::nsize_t const  byte_offset,
bool  littleEndian 
)
inlinenoexcept

Definition at line 232 of file UUID.hpp.

Here is the call graph for this function:

◆ getAdapterSettingMaskDiff()

constexpr AdapterSetting direct_bt::getAdapterSettingMaskDiff ( const AdapterSetting  setting_a,
const AdapterSetting  setting_b 
)
constexprnoexcept

Definition at line 175 of file BTTypes1.hpp.

◆ getAdapterSettingsBTMode()

BTMode direct_bt::getAdapterSettingsBTMode ( const AdapterSetting  settingMask)
noexcept

Maps the given AdapterSetting to BTMode.

Definition at line 99 of file BTTypes1.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getHCIConnSupervisorTimeout()

constexpr int32_t direct_bt::getHCIConnSupervisorTimeout ( const uint16_t  conn_latency,
const uint16_t  conn_interval_max_ms,
const uint16_t  min_result_ms = number(HCIConstInt::LE_CONN_MIN_TIMEOUT_MS),
const uint16_t  multiplier = 10 
)
constexprnoexcept

Defining the supervising timeout for LE connections to be a multiple of the maximum connection interval as follows:

 ( 1 + conn_latency ) * conn_interval_max_ms * max(2, multiplier) [ms]

If above result is smaller than the given min_result_ms, min_result_ms/10 will be returned.

Parameters
conn_latencythe connection latency
conn_interval_max_msthe maximum connection interval in [ms]
min_result_msthe minimum resulting supervisor timeout, defaults to HCIConstInt::LE_CONN_MIN_TIMEOUT_MS. If above formula results in a smaller value, min_result_ms/10 will be returned.
multiplierrecommendation is 6, we use 10 as default for safety.
Returns
the resulting supervising timeout in 1/10 [ms], suitable for the HCIHandler::le_create_conn() command.

Definition at line 97 of file HCITypes.hpp.

◆ getPairingMode() [1/2]

PairingMode direct_bt::getPairingMode ( const bool  use_sc,
const SMPAuthReqs  authReqs_ini,
const SMPIOCapability  ioCap_ini,
const SMPOOBDataFlag  oobFlag_ini,
const SMPAuthReqs  authReqs_res,
const SMPIOCapability  ioCap_res,
const SMPOOBDataFlag  oobFlag_res 
)
noexcept

Returns the PairingMode derived from both devices' sets of SMPAuthReqs, SMPIOCapability and SMPOOBDataFlag.

BT Core Spec v5.2: Vol 3, Part H (SM): 2.3.5.1 Selecting key generation method Table 2.6 (STK, le_sc_all_supported==false)
BT Core Spec v5.2: Vol 3, Part H (SM): 2.3.5.1 Selecting key generation method Table 2.7 (LTK, le_sc_all_supported==true)
BT Core Spec v5.2: Vol 3, Part H (SM): 2.3.1 Security Properties
BT Core Spec v5.2: Vol 3, Part H (SM): 2.3.5.1 Selecting key generation method
BT Core Spec v5.2: Vol 3, Part H (SM): 2.3.5.6.2 Authentication stage 1 – Just Works or Numeric Comparison
BT Core Spec v5.2: Vol 3, Part H (SM): 2.3.5.6.3 Authentication stage 1 – Passkey Entry
BT Core Spec v5.2: Vol 3, Part H (SM): 2.3.5.6.4 Authentication stage 1 – Out of Band
Parameters
use_sctrue if both devices support Secure Connections pairing, otherwise false for legacy pairing.
authReqs_iniSMPAuthReqs of initiator
ioCap_iniSMPIOCapability of initiator
oobFlag_iniSMPOOBDataFlag of initiator
authReqs_resSMPAuthReqs of responder
ioCap_resSMPIOCapability of responder
oobFlag_resSMPOOBDataFlag of responder
Returns
resulting PairingMode

Definition at line 134 of file SMPTypes.cpp.

Here is the call graph for this function:

◆ getPairingMode() [2/2]

PairingMode direct_bt::getPairingMode ( const bool  use_sc,
const SMPIOCapability  ioCap_ini,
const SMPIOCapability  ioCap_res 
)
noexcept

Returns the PairingMode derived from both devices' SMPIOCapability.

BT Core Spec v5.2: Vol 3, Part H (SM): 2.3.5.1 Selecting key generation method Table 2.8
Parameters
use_sctrue if both devices support Secure Connections pairing, otherwise false for legacy pairing.
ioCap_iniSMPIOCapability of initiator
ioCap_resSMPIOCapability of responder
Returns
resulting PairingMode

Definition at line 224 of file SMPTypes.cpp.

Here is the call graph for this function:

◆ hasScanType()

constexpr bool direct_bt::hasScanType ( const ScanType  current,
const ScanType  testType 
)
constexprnoexcept

Definition at line 324 of file BTTypes0.hpp.

Here is the caller graph for this function:

◆ hasSMPIOCapabilityBinaryInput()

constexpr bool direct_bt::hasSMPIOCapabilityBinaryInput ( const SMPIOCapability  ioc)
constexprnoexcept

Definition at line 209 of file SMPTypes.hpp.

◆ hasSMPIOCapabilityFullInput()

constexpr bool direct_bt::hasSMPIOCapabilityFullInput ( const SMPIOCapability  ioc)
constexprnoexcept

Definition at line 214 of file SMPTypes.hpp.

◆ hasSMPPairingFinished()

constexpr bool direct_bt::hasSMPPairingFinished ( const SMPPairingState  state)
constexprnoexcept

Returns true if the given SMPPairingState indicates a finished pairing process, i.e.

one of the following terminal states: SMPPairingState::COMPLETED or SMPPairingState::FAILED

Definition at line 164 of file SMPTypes.hpp.

Here is the caller graph for this function:

◆ isAdapterSettingBitSet()

constexpr bool direct_bt::isAdapterSettingBitSet ( const AdapterSetting  mask,
const AdapterSetting  bit 
)
constexprnoexcept
Examples
dbt_scanner10.cpp.

Definition at line 177 of file BTTypes1.hpp.

Here is the caller graph for this function:

◆ isEAD_Event_TypeSet()

constexpr bool direct_bt::isEAD_Event_TypeSet ( const EAD_Event_Type  mask,
const EAD_Event_Type  bit 
)
constexprnoexcept

Definition at line 408 of file BTTypes0.hpp.

Here is the caller graph for this function:

◆ isEIRDataTypeSet()

constexpr bool direct_bt::isEIRDataTypeSet ( const EIRDataType  mask,
const EIRDataType  bit 
)
constexprnoexcept

Definition at line 784 of file BTTypes0.hpp.

◆ isKeyDistBitSet()

constexpr bool direct_bt::isKeyDistBitSet ( const SMPKeyType  mask,
const SMPKeyType  bit 
)
constexprnoexcept

Definition at line 459 of file SMPTypes.hpp.

◆ isLEFeaturesBitSet()

constexpr bool direct_bt::isLEFeaturesBitSet ( const LE_Features  mask,
const LE_Features  bit 
)
constexprnoexcept

Definition at line 163 of file BTTypes0.hpp.

◆ isLEPHYBitSet()

constexpr bool direct_bt::isLEPHYBitSet ( const LE_PHYs  mask,
const LE_PHYs  bit 
)
constexprnoexcept

Definition at line 199 of file BTTypes0.hpp.

◆ isSMPAuthReqBitSet()

constexpr bool direct_bt::isSMPAuthReqBitSet ( const SMPAuthReqs  mask,
const SMPAuthReqs  bit 
)
constexprnoexcept

Definition at line 328 of file SMPTypes.hpp.

Here is the caller graph for this function:

◆ isSMPPairingActive()

constexpr bool direct_bt::isSMPPairingActive ( const SMPPairingState  state)
constexprnoexcept

Returns true if the given SMPPairingState indicated an active pairing process, i.e.

none of the following terminal states: SMPPairingState::COMPLETED, SMPPairingState::FAILED or SMPPairingState::NONE

Definition at line 154 of file SMPTypes.hpp.

◆ isSMPPairingAllowingInput()

constexpr bool direct_bt::isSMPPairingAllowingInput ( const SMPPairingState  state,
const SMPPairingState  inputSpec 
)
constexprnoexcept

Returns true if the given SMPPairingState indicates a pairing process waiting for user input, i.e.

one of the following terminal states: SMPPairingState::FEATURE_EXCHANGE_STARTED, SMPPairingState::FEATURE_EXCHANGE_COMPLETED or the given inputSpec.

Parameters
inputSpecshould be one of SMPPairingState::PASSKEY_EXPECTED, SMPPairingState::NUMERIC_COMPARE_EXPECTED or SMPPairingState::OOB_EXPECTED.

Definition at line 176 of file SMPTypes.hpp.

Here is the caller graph for this function:

◆ number() [1/34]

constexpr uint8_t direct_bt::number ( const AD_PDU_Type  rhs)
constexprnoexcept

Definition at line 371 of file BTTypes0.hpp.

◆ number() [2/34]

constexpr uint16_t direct_bt::number ( const AppearanceCat  rhs)
constexprnoexcept

Definition at line 697 of file BTTypes0.hpp.

◆ number() [3/34]

constexpr uint8_t direct_bt::number ( const BDAddressType  rhs)
constexprnoexcept

Definition at line 67 of file BTAddress.hpp.

◆ number() [4/34]

constexpr uint8_t direct_bt::number ( const BLERandomAddressType  rhs)
constexprnoexcept

Definition at line 101 of file BTAddress.hpp.

◆ number() [5/34]

constexpr uint8_t direct_bt::number ( const BTMode  rhs)
constexprnoexcept

Definition at line 66 of file BTTypes0.hpp.

◆ number() [6/34]

constexpr uint8_t direct_bt::number ( const BTSecurityLevel  rhs)
constexprnoexcept

Definition at line 223 of file BTTypes0.hpp.

◆ number() [7/34]

constexpr uint16_t direct_bt::number ( const EAD_Event_Type  rhs)
constexprnoexcept

Definition at line 393 of file BTTypes0.hpp.

◆ number() [8/34]

constexpr uint32_t direct_bt::number ( const EIRDataType  rhs)
constexprnoexcept

Definition at line 771 of file BTTypes0.hpp.

◆ number() [9/34]

constexpr uint8_t direct_bt::number ( const GAPFlags  rhs)
constexprnoexcept

Definition at line 741 of file BTTypes0.hpp.

◆ number() [10/34]

constexpr int32_t direct_bt::number ( const HCIConstInt  rhs)
constexprnoexcept

Definition at line 80 of file HCITypes.hpp.

◆ number() [11/34]

constexpr jau::nsize_t direct_bt::number ( const HCIConstSizeT  rhs)
constexprnoexcept

Definition at line 237 of file HCITypes.hpp.

◆ number() [12/34]

constexpr uint16_t direct_bt::number ( const HCIConstU16  rhs)
constexprnoexcept

Definition at line 114 of file HCITypes.hpp.

◆ number() [13/34]

constexpr uint8_t direct_bt::number ( const HCIEventType  rhs)
constexprnoexcept

Definition at line 306 of file HCITypes.hpp.

◆ number() [14/34]

constexpr uint8_t direct_bt::number ( const HCILEOwnAddressType  rhs)
constexprnoexcept

Definition at line 146 of file BTAddress.hpp.

◆ number() [15/34]

constexpr uint8_t direct_bt::number ( const HCILEPeerAddressType  rhs)
constexprnoexcept

Definition at line 131 of file BTAddress.hpp.

◆ number() [16/34]

constexpr uint8_t direct_bt::number ( const HCIMetaEventType  rhs)
constexprnoexcept

Definition at line 351 of file HCITypes.hpp.

◆ number() [17/34]

constexpr uint8_t direct_bt::number ( const HCIOGF  rhs)
constexprnoexcept

Definition at line 264 of file HCITypes.hpp.

◆ number() [18/34]

constexpr uint16_t direct_bt::number ( const HCIOpcode  rhs)
constexprnoexcept

Definition at line 405 of file HCITypes.hpp.

◆ number() [19/34]

constexpr uint8_t direct_bt::number ( const HCIOpcodeBit  rhs)
constexprnoexcept

Definition at line 447 of file HCITypes.hpp.

◆ number() [20/34]

constexpr uint8_t direct_bt::number ( const HCIPacketType  rhs)
constexprnoexcept

Definition at line 249 of file HCITypes.hpp.

◆ number() [21/34]

constexpr uint8_t direct_bt::number ( const HCIStatusCode  rhs)
constexprnoexcept

Definition at line 220 of file HCITypes.hpp.

◆ number() [22/34]

constexpr uint8_t direct_bt::number ( const HCIWhitelistConnectType  rhs)
constexprnoexcept

Definition at line 423 of file BTTypes0.hpp.

◆ number() [23/34]

constexpr uint16_t direct_bt::number ( const L2CAP_CID  rhs)
constexprnoexcept

Definition at line 448 of file BTTypes0.hpp.

◆ number() [24/34]

constexpr uint16_t direct_bt::number ( const L2CAP_PSM  rhs)
constexprnoexcept

Definition at line 479 of file BTTypes0.hpp.

◆ number() [25/34]

constexpr uint64_t direct_bt::number ( const LE_Features  rhs)
constexprnoexcept

Definition at line 145 of file BTTypes0.hpp.

◆ number() [26/34]

constexpr uint8_t direct_bt::number ( const LE_PHYs  rhs)
constexprnoexcept

Definition at line 181 of file BTTypes0.hpp.

◆ number() [27/34]

constexpr uint8_t direct_bt::number ( const PairingMode  rhs)
constexprnoexcept

Definition at line 281 of file BTTypes0.hpp.

◆ number() [28/34]

constexpr uint8_t direct_bt::number ( const ScanType  rhs)
constexprnoexcept

Definition at line 300 of file BTTypes0.hpp.

◆ number() [29/34]

constexpr uint8_t direct_bt::number ( const SMPAuthReqs  rhs)
constexprnoexcept

Definition at line 325 of file SMPTypes.hpp.

◆ number() [30/34]

constexpr int32_t direct_bt::number ( const SMPConstInt  rhs)
constexprnoexcept

Definition at line 81 of file SMPTypes.hpp.

◆ number() [31/34]

constexpr uint16_t direct_bt::number ( const SMPConstU16  rhs)
constexprnoexcept

Definition at line 89 of file SMPTypes.hpp.

◆ number() [32/34]

constexpr uint8_t direct_bt::number ( const SMPIOCapability  rhs)
constexprnoexcept

Definition at line 205 of file SMPTypes.hpp.

◆ number() [33/34]

constexpr uint8_t direct_bt::number ( const SMPKeyType  rhs)
constexprnoexcept

Definition at line 456 of file SMPTypes.hpp.

◆ number() [34/34]

constexpr uint8_t direct_bt::number ( const SMPOOBDataFlag  rhs)
constexprnoexcept

Definition at line 227 of file SMPTypes.hpp.

◆ operator!=() [1/19]

constexpr bool direct_bt::operator!= ( const AdapterSetting  lhs,
const AdapterSetting  rhs 
)
constexprnoexcept

Definition at line 171 of file BTTypes1.hpp.

◆ operator!=() [2/19]

bool direct_bt::operator!= ( const BDAddressAndType lhs,
const BDAddressAndType rhs 
)
inlinenoexcept

Definition at line 536 of file BTAddress.hpp.

◆ operator!=() [3/19]

bool direct_bt::operator!= ( const BTDevice lhs,
const BTDevice rhs 
)
inlinenoexcept

Definition at line 945 of file BTDevice.hpp.

◆ operator!=() [4/19]

bool direct_bt::operator!= ( const BTGattChar lhs,
const BTGattChar rhs 
)
inlinenoexcept

Definition at line 414 of file BTGattChar.hpp.

◆ operator!=() [5/19]

bool direct_bt::operator!= ( const BTGattDesc lhs,
const BTGattDesc rhs 
)
inlinenoexcept

Definition at line 182 of file BTGattDesc.hpp.

◆ operator!=() [6/19]

bool direct_bt::operator!= ( const BTGattService lhs,
const BTGattService rhs 
)
inlinenoexcept

Definition at line 124 of file BTGattService.hpp.

◆ operator!=() [7/19]

constexpr bool direct_bt::operator!= ( const BTSecurityLevel  lhs,
const BTSecurityLevel  rhs 
)
constexprnoexcept

Definition at line 229 of file BTTypes0.hpp.

◆ operator!=() [8/19]

constexpr bool direct_bt::operator!= ( const EAD_Event_Type  lhs,
const EAD_Event_Type  rhs 
)
constexprnoexcept

Definition at line 405 of file BTTypes0.hpp.

◆ operator!=() [9/19]

constexpr bool direct_bt::operator!= ( const EIRDataType  lhs,
const EIRDataType  rhs 
)
constexprnoexcept

Definition at line 781 of file BTTypes0.hpp.

◆ operator!=() [10/19]

bool direct_bt::operator!= ( const EUI48 lhs,
const EUI48 rhs 
)
inlinenoexcept

Definition at line 406 of file BTAddress.hpp.

◆ operator!=() [11/19]

bool direct_bt::operator!= ( const EUI48Sub lhs,
const EUI48Sub rhs 
)
inlinenoexcept

Definition at line 275 of file BTAddress.hpp.

◆ operator!=() [12/19]

constexpr bool direct_bt::operator!= ( const LE_Features  lhs,
const LE_Features  rhs 
)
constexprnoexcept

Definition at line 160 of file BTTypes0.hpp.

◆ operator!=() [13/19]

constexpr bool direct_bt::operator!= ( const LE_PHYs  lhs,
const LE_PHYs  rhs 
)
constexprnoexcept

Definition at line 196 of file BTTypes0.hpp.

◆ operator!=() [14/19]

constexpr bool direct_bt::operator!= ( const ManufactureSpecificData lhs,
const ManufactureSpecificData rhs 
)
constexprnoexcept

Definition at line 720 of file BTTypes0.hpp.

◆ operator!=() [15/19]

constexpr bool direct_bt::operator!= ( const ScanType  lhs,
const ScanType  rhs 
)
constexprnoexcept

Definition at line 318 of file BTTypes0.hpp.

◆ operator!=() [16/19]

constexpr bool direct_bt::operator!= ( const SMPAuthReqs  lhs,
const SMPAuthReqs  rhs 
)
constexprnoexcept

Definition at line 322 of file SMPTypes.hpp.

◆ operator!=() [17/19]

constexpr bool direct_bt::operator!= ( const SMPKeyType  lhs,
const SMPKeyType  rhs 
)
constexprnoexcept

Definition at line 453 of file SMPTypes.hpp.

◆ operator!=() [18/19]

constexpr bool direct_bt::operator!= ( const SMPLongTermKeyInfo::Property  lhs,
const SMPLongTermKeyInfo::Property  rhs 
)
constexprnoexcept

Definition at line 547 of file SMPTypes.hpp.

◆ operator!=() [19/19]

constexpr bool direct_bt::operator!= ( const SMPSignatureResolvingKeyInfo::Property  lhs,
const SMPSignatureResolvingKeyInfo::Property  rhs 
)
constexprnoexcept

Definition at line 623 of file SMPTypes.hpp.

◆ operator&() [1/10]

constexpr AdapterSetting direct_bt::operator& ( const AdapterSetting  lhs,
const AdapterSetting  rhs 
)
constexprnoexcept

Definition at line 165 of file BTTypes1.hpp.

◆ operator&() [2/10]

constexpr EAD_Event_Type direct_bt::operator& ( const EAD_Event_Type  lhs,
const EAD_Event_Type  rhs 
)
constexprnoexcept

Definition at line 399 of file BTTypes0.hpp.

Here is the call graph for this function:

◆ operator&() [3/10]

constexpr EIRDataType direct_bt::operator& ( const EIRDataType  lhs,
const EIRDataType  rhs 
)
constexprnoexcept

Definition at line 775 of file BTTypes0.hpp.

Here is the call graph for this function:

◆ operator&() [4/10]

constexpr LE_Features direct_bt::operator& ( const LE_Features  lhs,
const LE_Features  rhs 
)
constexprnoexcept

Definition at line 154 of file BTTypes0.hpp.

Here is the call graph for this function:

◆ operator&() [5/10]

constexpr LE_PHYs direct_bt::operator& ( const LE_PHYs  lhs,
const LE_PHYs  rhs 
)
constexprnoexcept

Definition at line 190 of file BTTypes0.hpp.

Here is the call graph for this function:

◆ operator&() [6/10]

constexpr ScanType direct_bt::operator& ( const ScanType  lhs,
const ScanType  rhs 
)
constexprnoexcept

Definition at line 312 of file BTTypes0.hpp.

Here is the call graph for this function:

◆ operator&() [7/10]

constexpr SMPAuthReqs direct_bt::operator& ( const SMPAuthReqs  lhs,
const SMPAuthReqs  rhs 
)
constexprnoexcept

Definition at line 316 of file SMPTypes.hpp.

◆ operator&() [8/10]

constexpr SMPKeyType direct_bt::operator& ( const SMPKeyType  lhs,
const SMPKeyType  rhs 
)
constexprnoexcept

Definition at line 443 of file SMPTypes.hpp.

◆ operator&() [9/10]

constexpr SMPLongTermKeyInfo::Property direct_bt::operator& ( const SMPLongTermKeyInfo::Property  lhs,
const SMPLongTermKeyInfo::Property  rhs 
)
constexprnoexcept

Definition at line 537 of file SMPTypes.hpp.

◆ operator&() [10/10]

constexpr SMPSignatureResolvingKeyInfo::Property direct_bt::operator& ( const SMPSignatureResolvingKeyInfo::Property  lhs,
const SMPSignatureResolvingKeyInfo::Property  rhs 
)
constexprnoexcept

Definition at line 613 of file SMPTypes.hpp.

◆ operator&=() [1/3]

constexpr SMPKeyType& direct_bt::operator&= ( SMPKeyType store,
const SMPKeyType rhs 
)
constexprnoexcept

Definition at line 446 of file SMPTypes.hpp.

◆ operator&=() [2/3]

constexpr SMPLongTermKeyInfo::Property& direct_bt::operator&= ( SMPLongTermKeyInfo::Property store,
const SMPLongTermKeyInfo::Property rhs 
)
constexprnoexcept

Definition at line 540 of file SMPTypes.hpp.

◆ operator&=() [3/3]

constexpr SMPSignatureResolvingKeyInfo::Property& direct_bt::operator&= ( SMPSignatureResolvingKeyInfo::Property store,
const SMPSignatureResolvingKeyInfo::Property rhs 
)
constexprnoexcept

Definition at line 616 of file SMPTypes.hpp.

◆ operator<()

constexpr bool direct_bt::operator< ( const BTSecurityLevel  lhs,
const BTSecurityLevel  rhs 
)
constexprnoexcept

Definition at line 232 of file BTTypes0.hpp.

Here is the call graph for this function:

◆ operator<=()

constexpr bool direct_bt::operator<= ( const BTSecurityLevel  lhs,
const BTSecurityLevel  rhs 
)
constexprnoexcept

Definition at line 235 of file BTTypes0.hpp.

Here is the call graph for this function:

◆ operator==() [1/19]

constexpr bool direct_bt::operator== ( const AdapterSetting  lhs,
const AdapterSetting  rhs 
)
constexprnoexcept

Definition at line 168 of file BTTypes1.hpp.

◆ operator==() [2/19]

bool direct_bt::operator== ( const BDAddressAndType lhs,
const BDAddressAndType rhs 
)
inlinenoexcept

Definition at line 529 of file BTAddress.hpp.

◆ operator==() [3/19]

bool direct_bt::operator== ( const BTDevice lhs,
const BTDevice rhs 
)
inlinenoexcept

Definition at line 942 of file BTDevice.hpp.

◆ operator==() [4/19]

bool direct_bt::operator== ( const BTGattChar lhs,
const BTGattChar rhs 
)
inlinenoexcept

Definition at line 411 of file BTGattChar.hpp.

◆ operator==() [5/19]

bool direct_bt::operator== ( const BTGattDesc lhs,
const BTGattDesc rhs 
)
inlinenoexcept

Definition at line 179 of file BTGattDesc.hpp.

◆ operator==() [6/19]

bool direct_bt::operator== ( const BTGattService lhs,
const BTGattService rhs 
)
inlinenoexcept

Definition at line 121 of file BTGattService.hpp.

◆ operator==() [7/19]

constexpr bool direct_bt::operator== ( const BTSecurityLevel  lhs,
const BTSecurityLevel  rhs 
)
constexprnoexcept

Definition at line 226 of file BTTypes0.hpp.

Here is the call graph for this function:

◆ operator==() [8/19]

constexpr bool direct_bt::operator== ( const EAD_Event_Type  lhs,
const EAD_Event_Type  rhs 
)
constexprnoexcept

Definition at line 402 of file BTTypes0.hpp.

Here is the call graph for this function:

◆ operator==() [9/19]

constexpr bool direct_bt::operator== ( const EIRDataType  lhs,
const EIRDataType  rhs 
)
constexprnoexcept

Definition at line 778 of file BTTypes0.hpp.

Here is the call graph for this function:

◆ operator==() [10/19]

bool direct_bt::operator== ( const EUI48 lhs,
const EUI48 rhs 
)
inlinenoexcept

Definition at line 391 of file BTAddress.hpp.

◆ operator==() [11/19]

bool direct_bt::operator== ( const EUI48Sub lhs,
const EUI48Sub rhs 
)
inlinenoexcept

Definition at line 265 of file BTAddress.hpp.

◆ operator==() [12/19]

constexpr bool direct_bt::operator== ( const LE_Features  lhs,
const LE_Features  rhs 
)
constexprnoexcept

Definition at line 157 of file BTTypes0.hpp.

Here is the call graph for this function:

◆ operator==() [13/19]

constexpr bool direct_bt::operator== ( const LE_PHYs  lhs,
const LE_PHYs  rhs 
)
constexprnoexcept

Definition at line 193 of file BTTypes0.hpp.

Here is the call graph for this function:

◆ operator==() [14/19]

constexpr bool direct_bt::operator== ( const ManufactureSpecificData lhs,
const ManufactureSpecificData rhs 
)
constexprnoexcept

Definition at line 717 of file BTTypes0.hpp.

◆ operator==() [15/19]

constexpr bool direct_bt::operator== ( const ScanType  lhs,
const ScanType  rhs 
)
constexprnoexcept

Definition at line 315 of file BTTypes0.hpp.

Here is the call graph for this function:

◆ operator==() [16/19]

constexpr bool direct_bt::operator== ( const SMPAuthReqs  lhs,
const SMPAuthReqs  rhs 
)
constexprnoexcept

Definition at line 319 of file SMPTypes.hpp.

◆ operator==() [17/19]

constexpr bool direct_bt::operator== ( const SMPKeyType  lhs,
const SMPKeyType  rhs 
)
constexprnoexcept

Definition at line 450 of file SMPTypes.hpp.

◆ operator==() [18/19]

constexpr bool direct_bt::operator== ( const SMPLongTermKeyInfo::Property  lhs,
const SMPLongTermKeyInfo::Property  rhs 
)
constexprnoexcept

Definition at line 544 of file SMPTypes.hpp.

◆ operator==() [19/19]

constexpr bool direct_bt::operator== ( const SMPSignatureResolvingKeyInfo::Property  lhs,
const SMPSignatureResolvingKeyInfo::Property  rhs 
)
constexprnoexcept

Definition at line 620 of file SMPTypes.hpp.

◆ operator>()

constexpr bool direct_bt::operator> ( const BTSecurityLevel  lhs,
const BTSecurityLevel  rhs 
)
constexprnoexcept

Definition at line 238 of file BTTypes0.hpp.

Here is the call graph for this function:

◆ operator>=()

constexpr bool direct_bt::operator>= ( const BTSecurityLevel  lhs,
const BTSecurityLevel  rhs 
)
constexprnoexcept

Definition at line 241 of file BTTypes0.hpp.

Here is the call graph for this function:

◆ operator^() [1/8]

constexpr AdapterSetting direct_bt::operator^ ( const AdapterSetting  lhs,
const AdapterSetting  rhs 
)
constexprnoexcept

Definition at line 159 of file BTTypes1.hpp.

◆ operator^() [2/8]

constexpr LE_Features direct_bt::operator^ ( const LE_Features  lhs,
const LE_Features  rhs 
)
constexprnoexcept

Definition at line 148 of file BTTypes0.hpp.

Here is the call graph for this function:

◆ operator^() [3/8]

constexpr LE_PHYs direct_bt::operator^ ( const LE_PHYs  lhs,
const LE_PHYs  rhs 
)
constexprnoexcept

Definition at line 184 of file BTTypes0.hpp.

Here is the call graph for this function:

◆ operator^() [4/8]

constexpr ScanType direct_bt::operator^ ( const ScanType  lhs,
const ScanType  rhs 
)
constexprnoexcept

Definition at line 306 of file BTTypes0.hpp.

Here is the call graph for this function:

◆ operator^() [5/8]

constexpr SMPAuthReqs direct_bt::operator^ ( const SMPAuthReqs  lhs,
const SMPAuthReqs  rhs 
)
constexprnoexcept

Definition at line 310 of file SMPTypes.hpp.

◆ operator^() [6/8]

constexpr SMPKeyType direct_bt::operator^ ( const SMPKeyType  lhs,
const SMPKeyType  rhs 
)
constexprnoexcept

Definition at line 429 of file SMPTypes.hpp.

◆ operator^() [7/8]

constexpr SMPLongTermKeyInfo::Property direct_bt::operator^ ( const SMPLongTermKeyInfo::Property  lhs,
const SMPLongTermKeyInfo::Property  rhs 
)
constexprnoexcept

Definition at line 523 of file SMPTypes.hpp.

◆ operator^() [8/8]

constexpr SMPSignatureResolvingKeyInfo::Property direct_bt::operator^ ( const SMPSignatureResolvingKeyInfo::Property  lhs,
const SMPSignatureResolvingKeyInfo::Property  rhs 
)
constexprnoexcept

Definition at line 599 of file SMPTypes.hpp.

◆ operator^=() [1/3]

constexpr SMPKeyType& direct_bt::operator^= ( SMPKeyType store,
const SMPKeyType rhs 
)
constexprnoexcept

Definition at line 432 of file SMPTypes.hpp.

◆ operator^=() [2/3]

constexpr SMPLongTermKeyInfo::Property& direct_bt::operator^= ( SMPLongTermKeyInfo::Property store,
const SMPLongTermKeyInfo::Property rhs 
)
constexprnoexcept

Definition at line 526 of file SMPTypes.hpp.

◆ operator^=() [3/3]

constexpr SMPSignatureResolvingKeyInfo::Property& direct_bt::operator^= ( SMPSignatureResolvingKeyInfo::Property store,
const SMPSignatureResolvingKeyInfo::Property rhs 
)
constexprnoexcept

Definition at line 602 of file SMPTypes.hpp.

◆ operator|() [1/10]

constexpr AdapterSetting direct_bt::operator| ( const AdapterSetting  lhs,
const AdapterSetting  rhs 
)
constexprnoexcept

Definition at line 162 of file BTTypes1.hpp.

◆ operator|() [2/10]

constexpr EAD_Event_Type direct_bt::operator| ( const EAD_Event_Type  lhs,
const EAD_Event_Type  rhs 
)
constexprnoexcept

Definition at line 396 of file BTTypes0.hpp.

Here is the call graph for this function:

◆ operator|() [3/10]

constexpr EIRDataType direct_bt::operator| ( const EIRDataType  lhs,
const EIRDataType  rhs 
)
constexprnoexcept

Definition at line 772 of file BTTypes0.hpp.

Here is the call graph for this function:

◆ operator|() [4/10]

constexpr LE_Features direct_bt::operator| ( const LE_Features  lhs,
const LE_Features  rhs 
)
constexprnoexcept

Definition at line 151 of file BTTypes0.hpp.

Here is the call graph for this function:

◆ operator|() [5/10]

constexpr LE_PHYs direct_bt::operator| ( const LE_PHYs  lhs,
const LE_PHYs  rhs 
)
constexprnoexcept

Definition at line 187 of file BTTypes0.hpp.

Here is the call graph for this function:

◆ operator|() [6/10]

constexpr ScanType direct_bt::operator| ( const ScanType  lhs,
const ScanType  rhs 
)
constexprnoexcept

Definition at line 309 of file BTTypes0.hpp.

Here is the call graph for this function:

◆ operator|() [7/10]

constexpr SMPAuthReqs direct_bt::operator| ( const SMPAuthReqs  lhs,
const SMPAuthReqs  rhs 
)
constexprnoexcept

Definition at line 313 of file SMPTypes.hpp.

◆ operator|() [8/10]

constexpr SMPKeyType direct_bt::operator| ( const SMPKeyType  lhs,
const SMPKeyType  rhs 
)
constexprnoexcept

Definition at line 436 of file SMPTypes.hpp.

◆ operator|() [9/10]

constexpr SMPLongTermKeyInfo::Property direct_bt::operator| ( const SMPLongTermKeyInfo::Property  lhs,
const SMPLongTermKeyInfo::Property  rhs 
)
constexprnoexcept

Definition at line 530 of file SMPTypes.hpp.

◆ operator|() [10/10]

constexpr SMPSignatureResolvingKeyInfo::Property direct_bt::operator| ( const SMPSignatureResolvingKeyInfo::Property  lhs,
const SMPSignatureResolvingKeyInfo::Property  rhs 
)
constexprnoexcept

Definition at line 606 of file SMPTypes.hpp.

◆ operator|=() [1/3]

constexpr SMPKeyType& direct_bt::operator|= ( SMPKeyType store,
const SMPKeyType rhs 
)
constexprnoexcept

Definition at line 439 of file SMPTypes.hpp.

◆ operator|=() [2/3]

constexpr SMPLongTermKeyInfo::Property& direct_bt::operator|= ( SMPLongTermKeyInfo::Property store,
const SMPLongTermKeyInfo::Property rhs 
)
constexprnoexcept

Definition at line 533 of file SMPTypes.hpp.

◆ operator|=() [3/3]

constexpr SMPSignatureResolvingKeyInfo::Property& direct_bt::operator|= ( SMPSignatureResolvingKeyInfo::Property store,
const SMPSignatureResolvingKeyInfo::Property rhs 
)
constexprnoexcept

Definition at line 609 of file SMPTypes.hpp.

◆ operator~() [1/2]

constexpr AdapterSetting direct_bt::operator~ ( const AdapterSetting  rhs)
constexprnoexcept

Definition at line 156 of file BTTypes1.hpp.

◆ operator~() [2/2]

constexpr ScanType direct_bt::operator~ ( const ScanType  val)
constexprnoexcept

Definition at line 303 of file BTTypes0.hpp.

Here is the call graph for this function:

◆ put_uuid() [1/2]

void direct_bt::put_uuid ( uint8_t *  buffer,
jau::nsize_t const  byte_offset,
const uuid_t v 
)
inlinenoexcept

Definition at line 191 of file UUID.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ put_uuid() [2/2]

void direct_bt::put_uuid ( uint8_t *  buffer,
jau::nsize_t const  byte_offset,
const uuid_t v,
bool  littleEndian 
)
inlinenoexcept

Definition at line 205 of file UUID.hpp.

Here is the call graph for this function:

◆ setAdapterSettingMaskBit()

constexpr void direct_bt::setAdapterSettingMaskBit ( AdapterSetting mask,
const AdapterSetting  bit 
)
constexprnoexcept

Definition at line 179 of file BTTypes1.hpp.

◆ setEAD_Event_TypeSet()

constexpr void direct_bt::setEAD_Event_TypeSet ( EAD_Event_Type mask,
const EAD_Event_Type  bit 
)
constexprnoexcept

Definition at line 409 of file BTTypes0.hpp.

◆ setEIRDataTypeSet()

constexpr void direct_bt::setEIRDataTypeSet ( EIRDataType mask,
const EIRDataType  bit 
)
constexprnoexcept

Definition at line 785 of file BTTypes0.hpp.

Here is the caller graph for this function:

◆ to_BDAddressType() [1/3]

BDAddressType direct_bt::to_BDAddressType ( const HCILEOwnAddressType  hciOwnAddrType)
noexcept

Definition at line 74 of file BTTypes0.cpp.

◆ to_BDAddressType() [2/3]

BDAddressType direct_bt::to_BDAddressType ( const HCILEPeerAddressType  hciPeerAddrType)
noexcept

Definition at line 44 of file BTTypes0.cpp.

◆ to_BDAddressType() [3/3]

constexpr BDAddressType direct_bt::to_BDAddressType ( const uint8_t  v)
constexprnoexcept

Definition at line 61 of file BTAddress.hpp.

Here is the caller graph for this function:

◆ to_BTMode()

BTMode direct_bt::to_BTMode ( const std::string &  value)
noexcept

Maps the specified name to a constant of BTMode.

Parameters
namethe string name to be mapped to a constant of this enum type.
Returns
the corresponding constant of this enum type, using BTMode#NONE if not supported.
Examples
dbt_scanner10.cpp.

Definition at line 360 of file BTTypes0.cpp.

Here is the caller graph for this function:

◆ to_BTSecurityLevel()

constexpr BTSecurityLevel direct_bt::to_BTSecurityLevel ( const uint8_t  v)
constexprnoexcept
Examples
dbt_scanner10.cpp.

Definition at line 244 of file BTTypes0.hpp.

Here is the caller graph for this function:

◆ to_HCILEOwnAddressType()

HCILEOwnAddressType direct_bt::to_HCILEOwnAddressType ( const BDAddressType  addrType)
noexcept

Definition at line 89 of file BTTypes0.cpp.

Here is the caller graph for this function:

◆ to_HCIStatusCode()

HCIStatusCode direct_bt::to_HCIStatusCode ( const MgmtStatus  mstatus)
noexcept

Definition at line 543 of file MgmtTypes.cpp.

Here is the caller graph for this function:

◆ to_L2CAP_CID()

constexpr L2CAP_CID direct_bt::to_L2CAP_CID ( const uint16_t  v)
constexprnoexcept

Definition at line 451 of file BTTypes0.hpp.

◆ to_L2CAP_PSM()

constexpr L2CAP_PSM direct_bt::to_L2CAP_PSM ( const uint16_t  v)
constexprnoexcept

Definition at line 482 of file BTTypes0.hpp.

◆ to_MgmtLTKType()

MgmtLTKType direct_bt::to_MgmtLTKType ( const SMPLongTermKeyInfo::Property  ltk_prop_mask)
noexcept

Definition at line 132 of file MgmtTypes.cpp.

Here is the caller graph for this function:

◆ to_ScanType()

ScanType direct_bt::to_ScanType ( BTMode  btMode)

Definition at line 504 of file BTTypes0.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ to_SMPIOCapability()

constexpr SMPIOCapability direct_bt::to_SMPIOCapability ( const uint8_t  v)
constexprnoexcept
Examples
dbt_scanner10.cpp.

Definition at line 199 of file SMPTypes.hpp.

Here is the caller graph for this function:

◆ to_string() [1/41]

std::string direct_bt::to_string ( const AD_PDU_Type  v)
noexcept

Definition at line 549 of file BTTypes0.cpp.

Here is the call graph for this function:

◆ to_string() [2/41]

std::string direct_bt::to_string ( const AdapterInfo a)
inlinenoexcept

Definition at line 289 of file BTTypes1.hpp.

Here is the caller graph for this function:

◆ to_string() [3/41]

std::string direct_bt::to_string ( const AdapterSetting  settingBitMask)
noexcept

Definition at line 83 of file BTTypes1.cpp.

Here is the call graph for this function:

◆ to_string() [4/41]

std::string direct_bt::to_string ( const AppearanceCat  v)
noexcept

Definition at line 715 of file BTTypes0.cpp.

Here is the call graph for this function:

◆ to_string() [5/41]

std::string direct_bt::to_string ( const BDAddressAndType a)
inlinenoexcept

Definition at line 539 of file BTAddress.hpp.

◆ to_string() [6/41]

std::string direct_bt::to_string ( const BDAddressType  type)
noexcept
Examples
dbt_scanner00.cpp, dbt_scanner01.cpp, and dbt_scanner10.cpp.

Definition at line 129 of file BTTypes0.cpp.

Here is the call graph for this function:

◆ to_string() [7/41]

std::string direct_bt::to_string ( const BLERandomAddressType  type)
noexcept

Definition at line 144 of file BTTypes0.cpp.

Here is the call graph for this function:

◆ to_string() [8/41]

std::string direct_bt::to_string ( const BTMode  v)
noexcept

Definition at line 350 of file BTTypes0.cpp.

Here is the call graph for this function:

◆ to_string() [9/41]

std::string direct_bt::to_string ( const BTObject o)
inlinenoexcept

Definition at line 66 of file BTTypes1.hpp.

◆ to_string() [10/41]

std::string direct_bt::to_string ( const BTSecurityLevel  v)
noexcept

Definition at line 478 of file BTTypes0.cpp.

Here is the call graph for this function:

◆ to_string() [11/41]

std::string direct_bt::to_string ( const EAD_Event_Type  v)
noexcept

Definition at line 579 of file BTTypes0.cpp.

Here is the call graph for this function:

◆ to_string() [12/41]

std::string direct_bt::to_string ( const EInfoReport eir,
const bool  includeServices = true 
)
inlinenoexcept

Definition at line 963 of file BTTypes0.hpp.

◆ to_string() [13/41]

std::string direct_bt::to_string ( const EIRDataType  mask)
noexcept

Definition at line 816 of file BTTypes0.cpp.

Here is the call graph for this function:

◆ to_string() [14/41]

std::string direct_bt::to_string ( const EUI48 a)
inlinenoexcept

Definition at line 389 of file BTAddress.hpp.

◆ to_string() [15/41]

std::string direct_bt::to_string ( const EUI48Sub a)
inlinenoexcept

Definition at line 263 of file BTAddress.hpp.

◆ to_string() [16/41]

std::string direct_bt::to_string ( const GAPFlags  v)
noexcept

Definition at line 769 of file BTTypes0.cpp.

Here is the call graph for this function:

◆ to_string() [17/41]

std::string direct_bt::to_string ( const HCIEventType  op)
noexcept

Definition at line 251 of file HCITypes.cpp.

◆ to_string() [18/41]

std::string direct_bt::to_string ( const HCILEOwnAddressType  type)
noexcept

Definition at line 114 of file BTTypes0.cpp.

Here is the call graph for this function:

◆ to_string() [19/41]

std::string direct_bt::to_string ( const HCILEPeerAddressType  type)
noexcept

Definition at line 66 of file BTTypes0.cpp.

Here is the call graph for this function:

◆ to_string() [20/41]

std::string direct_bt::to_string ( const HCIMetaEventType  op)
noexcept

Definition at line 298 of file HCITypes.cpp.

◆ to_string() [21/41]

std::string direct_bt::to_string ( const HCIOGF  op)
noexcept

Definition at line 164 of file HCITypes.cpp.

◆ to_string() [22/41]

std::string direct_bt::to_string ( const HCIOpcode  op)
noexcept

Definition at line 208 of file HCITypes.cpp.

◆ to_string() [23/41]

std::string direct_bt::to_string ( const HCIPacket p)
inlinenoexcept

Definition at line 533 of file HCITypes.hpp.

Here is the caller graph for this function:

◆ to_string() [24/41]

std::string direct_bt::to_string ( const HCIPacketType  op)
noexcept

Definition at line 152 of file HCITypes.cpp.

◆ to_string() [25/41]

std::string direct_bt::to_string ( const HCIStatusCode  ec)
noexcept

Definition at line 144 of file HCITypes.cpp.

◆ to_string() [26/41]

std::string direct_bt::to_string ( const L2CAP_CID  v)
noexcept

Definition at line 614 of file BTTypes0.cpp.

Here is the call graph for this function:

◆ to_string() [27/41]

std::string direct_bt::to_string ( const L2CAP_PSM  v)
noexcept

Definition at line 645 of file BTTypes0.cpp.

Here is the call graph for this function:

◆ to_string() [28/41]

std::string direct_bt::to_string ( const LE_Features  mask)
noexcept

Definition at line 424 of file BTTypes0.cpp.

Here is the call graph for this function:

◆ to_string() [29/41]

std::string direct_bt::to_string ( const LE_PHYs  mask)
noexcept

Definition at line 458 of file BTTypes0.cpp.

Here is the call graph for this function:

◆ to_string() [30/41]

std::string direct_bt::to_string ( const MgmtCSRKType  type)
noexcept

Definition at line 151 of file MgmtTypes.cpp.

Here is the caller graph for this function:

◆ to_string() [31/41]

std::string direct_bt::to_string ( const MgmtLinkKeyType  type)
noexcept

Definition at line 106 of file MgmtTypes.cpp.

◆ to_string() [32/41]

std::string direct_bt::to_string ( const MgmtLTKType  type)
noexcept

Definition at line 124 of file MgmtTypes.cpp.

◆ to_string() [33/41]

std::string direct_bt::to_string ( const MgmtStatus  opc)
noexcept

Definition at line 84 of file MgmtTypes.cpp.

◆ to_string() [34/41]

std::string direct_bt::to_string ( const PairingMode  v)
noexcept

Definition at line 489 of file BTTypes0.cpp.

Here is the call graph for this function:

◆ to_string() [35/41]

std::string direct_bt::to_string ( const ScanType  v)
noexcept

Definition at line 525 of file BTTypes0.cpp.

Here is the call graph for this function:

◆ to_string() [36/41]

std::string direct_bt::to_string ( const SMPAuthReqs  mask)
noexcept

Definition at line 89 of file SMPTypes.cpp.

Here is the call graph for this function:

◆ to_string() [37/41]

std::string direct_bt::to_string ( const SMPIOCapability  ioc)
noexcept

Definition at line 71 of file SMPTypes.cpp.

◆ to_string() [38/41]

std::string direct_bt::to_string ( const SMPKeyType  mask)
noexcept

Definition at line 265 of file SMPTypes.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ to_String() [1/3]

std::string direct_bt::to_String ( const SMPLongTermKeyInfo ltk)
inlinenoexcept

Definition at line 550 of file SMPTypes.hpp.

◆ to_string() [39/41]

std::string direct_bt::to_string ( const SMPOOBDataFlag  v)
noexcept

Definition at line 79 of file SMPTypes.cpp.

◆ to_string() [40/41]

std::string direct_bt::to_string ( const SMPPairingState  state)
noexcept

Definition at line 53 of file SMPTypes.cpp.

◆ to_String() [2/3]

std::string direct_bt::to_String ( const SMPPDUMsg m)
inlinenoexcept

Definition at line 799 of file SMPTypes.hpp.

◆ to_String() [3/3]

std::string direct_bt::to_String ( const SMPSignatureResolvingKeyInfo csrk)
inlinenoexcept

Definition at line 626 of file SMPTypes.hpp.

◆ to_string() [41/41]

std::string direct_bt::to_string ( EInfoReport::Source  source)
noexcept

Definition at line 836 of file BTTypes0.cpp.

Variable Documentation

◆ BT_BASE_UUID

uuid128_t direct_bt::BT_BASE_UUID

Bluetooth UUID https://www.bluetooth.com/specifications/assigned-numbers/service-discovery/

Bluetooth is LSB or Little-Endian!

BASE_UUID '00000000-0000-1000-8000-00805F9B34FB'

◆ directBTJNISettings

DirectBTJNISettings direct_bt::directBTJNISettings

Definition at line 35 of file helper_dbt.cxx.

◆ GATT_DEVICE_INFORMATION_SRVC

const GattServiceCharacteristic direct_bt::GATT_DEVICE_INFORMATION_SRVC

Definition at line 121 of file GATTNumbers.cpp.

◆ GATT_GENERIC_ACCESS_SRVC

const GattServiceCharacteristic direct_bt::GATT_GENERIC_ACCESS_SRVC

Intentionally ease compile and linker burden by using 'extern' instead of 'inline', as the latter would require compile to crunch the structure and linker to chose where to place the actual artifact.

https://www.bluetooth.com/wp-content/uploads/Sitecore-Media-Library/Gatt/Xml/Services/org.bluetooth.service.generic_access.xml

Definition at line 42 of file GATTNumbers.cpp.

◆ GATT_HEALTH_THERMOMETER_SRVC

const GattServiceCharacteristic direct_bt::GATT_HEALTH_THERMOMETER_SRVC

◆ GATT_SERVICES

const jau::darray< const GattServiceCharacteristic * > direct_bt::GATT_SERVICES
direct_bt::GATT_HEALTH_THERMOMETER_SRVC
const GattServiceCharacteristic GATT_HEALTH_THERMOMETER_SRVC
https://www.bluetooth.com/wp-content/uploads/Sitecore-Media-Library/Gatt/Xml/Services/org....
Definition: GATTNumbers.cpp:86
direct_bt::GATT_DEVICE_INFORMATION_SRVC
const GattServiceCharacteristic GATT_DEVICE_INFORMATION_SRVC
Definition: GATTNumbers.cpp:121
direct_bt::GATT_GENERIC_ACCESS_SRVC
const GattServiceCharacteristic GATT_GENERIC_ACCESS_SRVC
Intentionally ease compile and linker burden by using 'extern' instead of 'inline',...
Definition: GATTNumbers.cpp:42