Direct-BT v3.2.3-1-g688f983
Direct-BT - Direct Bluetooth Programming.
Classes | Typedefs | Enumerations | Functions | Variables
Direct-BT System Level API

System level Direct-BT API types and functionality, see Direct-BT Overview. More...

Classes

class  direct_bt::AttElementList
 List of elements. More...
 
class  direct_bt::AttErrorRsp
 BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.1.1 ATT_ERROR_RSP. More...
 
class  direct_bt::AttException
 
class  direct_bt::AttExchangeMTU
 BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.2.1 ATT_EXCHANGE_MTU_REQ BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.2.2 ATT_EXCHANGE_MTU_RSP. More...
 
class  direct_bt::AttExeWriteReq
 BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.6.3 ATT_EXECUTE_WRITE_REQ. More...
 
class  direct_bt::AttExeWriteRsp
 BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.6.4 ATT_EXECUTE_WRITE_RSP. More...
 
class  direct_bt::AttFindByTypeValueReq
 BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.3.3 ATT_FIND_BY_TYPE_VALUE_REQ. More...
 
class  direct_bt::AttFindByTypeValueRsp
 BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.3.4 ATT_FIND_BY_TYPE_VALUE_RSP. More...
 
class  direct_bt::AttFindInfoReq
 BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.3.1 ATT_FIND_INFORMATION_REQ. More...
 
class  direct_bt::AttFindInfoRsp
 BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.3.2 ATT_FIND_INFORMATION_RSP. More...
 
class  direct_bt::AttHandleValueCfm
 ATT Protocol PDUs Vol 3, Part F 3.4.7.3. More...
 
class  direct_bt::AttHandleValueRcv
 ATT Protocol PDUs Vol 3, Part F 3.4.7.1 and 3.4.7.2. More...
 
class  direct_bt::AttOpcodeException
 
class  direct_bt::AttPDUMsg
 Handles the Attribute Protocol (ATT) using Protocol Data Unit (PDU) encoded messages over L2CAP channel. More...
 
class  direct_bt::AttPDUUndefined
 Our own pseudo opcode, indicating no ATT PDU message. More...
 
class  direct_bt::AttPrepWrite
 BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.6.1 ATT_PREPARE_WRITE_REQ BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.6.2 ATT_PREPARE_WRITE_RSP. More...
 
class  direct_bt::AttReadBlobReq
 BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.4.5 ATT_BLOB_READ_REQ. More...
 
class  direct_bt::AttReadByGroupTypeRsp
 BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.4.10 ATT_READ_BY_GROUP_TYPE_RSP. More...
 
class  direct_bt::AttReadByNTypeReq
 BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.4.1 ATT_READ_BY_TYPE_REQ. More...
 
class  direct_bt::AttReadByTypeRsp
 BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.4.2 ATT_READ_BY_TYPE_RSP. More...
 
class  direct_bt::AttReadNRsp
 BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.4.4 ATT_READ_RSP BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.4.6 ATT_READ_BLOB_RSP. More...
 
class  direct_bt::AttReadReq
 BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.4.3 ATT_READ_REQ. More...
 
class  direct_bt::AttValueException
 
class  direct_bt::AttWriteCmd
 BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.5.3 ATT_WRITE_CMD. More...
 
class  direct_bt::AttWriteReq
 BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.5.1 ATT_WRITE_REQ. More...
 
class  direct_bt::AttWriteRsp
 BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.5.2 ATT_WRITE_RSP. More...
 
class  direct_bt::BTGattEnv
 GATT Singleton runtime environment properties. More...
 
class  direct_bt::BTGattHandler
 A thread safe GATT handler associated to one device via one L2CAP connection. More...
 
class  direct_bt::HCIACLData
 BT Core Spec v5.2: Vol 4, Part E HCI: 5.4.2 HCI ACL Data packets. More...
 
class  direct_bt::HCIComm
 Read/Write HCI communication channel. More...
 
class  direct_bt::HCICommand
 BT Core Spec v5.2: Vol 4, Part E HCI: 5.4.1 HCI Command packet. More...
 
class  direct_bt::HCICommandCompleteEvent
 BT Core Spec v5.2: Vol 4, Part E HCI: 7.7.14 Command Complete event. More...
 
class  direct_bt::HCICommandStatusEvent
 BT Core Spec v5.2: Vol 4, Part E HCI: 7.7.15 Command Status event. More...
 
class  direct_bt::HCIDisconnectCmd
 BT Core Spec v5.2: Vol 4, Part E HCI: 7.1.6 Disconnect command. More...
 
class  direct_bt::HCIDisconnectionCompleteEvent
 BT Core Spec v5.2: Vol 4, Part E HCI: 7.7.5 Disconnection Complete event. More...
 
class  direct_bt::HCIEnv
 HCI Singleton runtime environment properties. More...
 
class  direct_bt::HCIEvent
 BT Core Spec v5.2: Vol 4, Part E HCI: 5.4.4 HCI Event packet. More...
 
class  direct_bt::HCIHandler
 A thread safe singleton handler of the HCI control channel to one controller (BT adapter) More...
 
class  direct_bt::HCILEEnableEncryptionCmd
 BT Core Spec v5.2: Vol 4, Part E HCI: 7.8.24 LE Enable Encryption command. More...
 
class  direct_bt::HCILELTKReplyAckCmd
 BT Core Spec v5.2: Vol 4, Part E HCI: 7.8.25 LE Long Term Key Request Reply command. More...
 
class  direct_bt::HCILELTKReplyRejCmd
 BT Core Spec v5.2: Vol 4, Part E HCI: 7.8.26 LE Long Term Key Request Negative Reply command. More...
 
class  direct_bt::HCILELTKReqEvent
 BT Core Spec v5.2: Vol 4, Part E HCI: 7.7.65.5 LE Long Term Key Request event. More...
 
struct  direct_bt::HCILocalVersion
 
class  direct_bt::HCIMetaEvent
 BT Core Spec v5.2: Vol 4, Part E HCI: 7.7.65 LE Meta event. More...
 
class  direct_bt::HCIPacket
 BT Core Spec v5.2: Vol 4, Part E HCI: 5.4 Exchange of HCI-specific information. More...
 
class  direct_bt::HCIStructCmdCompleteEvtWrap< hcistruct >
 Generic HCIEvent wrapper for any HCI IOCTL 'command complete' alike event struct having a HCIStatusCode uint8_t status field. More...
 
class  direct_bt::HCIStructCmdCompleteMetaEvtWrap< hcistruct >
 Generic HCIMetaEvent wrapper for any HCI IOCTL 'command complete' alike meta event struct having a HCIStatusCode uint8_t status field. More...
 
class  direct_bt::HCIStructCommand< hcistruct >
 Generic HCICommand wrapper for any HCI IOCTL structure. More...
 
class  direct_bt::L2CAPClient
 L2CAP read/write communication channel to remote device. More...
 
class  direct_bt::L2CAPComm
 L2CAP client/server socket abstract base class to listen for connecting remote devices. More...
 
class  direct_bt::L2CAPEnv
 L2CAP Singleton runtime environment properties. More...
 
class  direct_bt::L2CAPServer
 L2CAP server socket to listen for connecting remote devices. More...
 
class  direct_bt::MgmtAdapterEventCallback
 
class  direct_bt::MgmtAddDeviceToWhitelistCmd
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t action More...
 
class  direct_bt::MgmtCancelPairDevice
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtCmdAdressInfoMeta
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtCommand
 
struct  direct_bt::MgmtConnParam
 Used in MgmtLoadConnParamCmd and MgmtEvtNewConnectionParam. More...
 
struct  direct_bt::MgmtDefaultParam
 Used in MgmtReadDefaultSysParamCmd and MgmtSetDefaultConnParamCmd. More...
 
class  direct_bt::MgmtDisconnectCmd
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtEvent
 uint16_t opcode, uint16_t dev-id, uint16_t param_size More...
 
class  direct_bt::MgmtEvtAdapterInfo
 
class  direct_bt::MgmtEvtAdressInfoMeta
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtEvtAuthFailed
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t status More...
 
class  direct_bt::MgmtEvtCmdComplete
 
class  direct_bt::MgmtEvtCmdStatus
 
class  direct_bt::MgmtEvtControllerError
 
class  direct_bt::MgmtEvtDeviceBlocked
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtEvtDeviceConnected
 mgmt_addr_info { EUI48, uint8_t type }, uint32_t flags, uint16_t eir_len; uint8_t *eir More...
 
class  direct_bt::MgmtEvtDeviceConnectFailed
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t status More...
 
class  direct_bt::MgmtEvtDeviceDisconnected
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t reason More...
 
class  direct_bt::MgmtEvtDeviceFound
 mgmt_addr_info { EUI48, uint8_t type }, int8_t rssi, uint32_t flags, uint16_t eir_len; uint8_t *eir More...
 
class  direct_bt::MgmtEvtDeviceUnblocked
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtEvtDeviceUnpaired
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtEvtDeviceWhitelistAdded
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t action More...
 
class  direct_bt::MgmtEvtDeviceWhitelistRemoved
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtEvtDiscovering
 
class  direct_bt::MgmtEvtHCIEncryptionChanged
 mgmt_addr_info { EUI48, uint8_t type }, HCIStatusCode status (1 Octet) uint8_t enc_enabled (1 Octet) More...
 
class  direct_bt::MgmtEvtHCIEncryptionKeyRefreshComplete
 mgmt_addr_info { EUI48, uint8_t type }, HCIStatusCode status (1 Octet) More...
 
class  direct_bt::MgmtEvtHCILEEnableEncryptionCmd
 BT Core Spec v5.2: Vol 4, Part E HCI: 7.8.24 LE Enable Encryption command. More...
 
class  direct_bt::MgmtEvtHCILELTKReplyAckCmd
 BT Core Spec v5.2: Vol 4, Part E HCI: 7.8.25 LE Long Term Key Request Reply command. More...
 
class  direct_bt::MgmtEvtHCILELTKReplyRejCmd
 BT Core Spec v5.2: Vol 4, Part E HCI: 7.8.26 LE Long Term Key Request Negative Reply command. More...
 
class  direct_bt::MgmtEvtHCILELTKReq
 BT Core Spec v5.2: Vol 4, Part E HCI: 7.7.65.5 LE Long Term Key Request event. More...
 
class  direct_bt::MgmtEvtHCILEPhyUpdateComplete
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t Tx (8 Octets) uint8_t Rx (8 Octets) More...
 
class  direct_bt::MgmtEvtHCILERemoteFeatures
 mgmt_addr_info { EUI48, uint8_t type }, uint64_t features (8 Octets) More...
 
class  direct_bt::MgmtEvtLocalNameChanged
 uint8_t name[MGMT_MAX_NAME_LENGTH]; uint8_t short_name[MGMT_MAX_SHORT_NAME_LENGTH]; More...
 
class  direct_bt::MgmtEvtNewConnectionParam
 int8_t store_hint, MgmtConnParam connParam More...
 
class  direct_bt::MgmtEvtNewIdentityResolvingKey
 uint8_t store_hint, EUI48 random_address; MgmtIdentityResolvingKey key More...
 
class  direct_bt::MgmtEvtNewLinkKey
 uint8_t store_hint, MgmtLinkKey key More...
 
class  direct_bt::MgmtEvtNewLongTermKey
 uint8_t store_hint, MgmtLongTermKey key More...
 
class  direct_bt::MgmtEvtNewSettings
 uint32_t settings More...
 
class  direct_bt::MgmtEvtNewSignatureResolvingKey
 uint8_t store_hint, EUI48 random_address; MgmtSignatureResolvingKey key More...
 
class  direct_bt::MgmtEvtPairDeviceComplete
 mgmt_addr_info { EUI48, uint8_t type }, MgmtStatus (1 octet) More...
 
class  direct_bt::MgmtEvtPasskeyNotify
 mgmt_addr_info { EUI48, uint8_t type }, uint32_t passkey uint8_t entered More...
 
class  direct_bt::MgmtEvtPinCodeRequest
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t secure More...
 
class  direct_bt::MgmtEvtUserConfirmRequest
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t confirm_hint uint32_t value More...
 
class  direct_bt::MgmtEvtUserPasskeyRequest
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtException
 
class  direct_bt::MgmtGetConnectionInfoCmd
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtIdentityResolveKeyCmd
 uint16_t key_count MgmtLongTermKey keys[key_count] More...
 
struct  direct_bt::MgmtIdentityResolvingKey
 Used for MgmtLoadIdentityResolvingKeyCmd and MgmtEvtNewIdentityResolvingKey. More...
 
struct  direct_bt::MgmtLinkKeyInfo
 Used for MgmtLoadLinkKeyCmd and MgmtEvtNewLinkKey. More...
 
class  direct_bt::MgmtLoadConnParamCmd
 uint16_t param_count 2 MgmtConnParam param[] 15 = 1x More...
 
class  direct_bt::MgmtLoadIdentityResolvingKeyCmd
 uint16_t key_count MgmtIdentityResolvingKey keys[key_count] More...
 
class  direct_bt::MgmtLoadLinkKeyCmd
 uint8_t debug_keys, uint16_t key_count, MgmtLinkKey keys[key_count] More...
 
class  direct_bt::MgmtLoadLongTermKeyCmd
 uint16_t key_count MgmtLongTermKey keys[key_count] More...
 
struct  direct_bt::MgmtLongTermKey
 Used for MgmtLoadLongTermKeyCmd and MgmtEvtNewLongTermKey. More...
 
class  direct_bt::MgmtMsg
 
class  direct_bt::MgmtOpcodeException
 
class  direct_bt::MgmtPairDeviceCmd
 mgmt_addr_info { EUI48, uint8_t type }, SMPIOCapability io_cap (1 octet) More...
 
class  direct_bt::MgmtPinCodeNegativeReplyCmd
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtPinCodeReplyCmd
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t pin_len, uint8_t pin_code[16] More...
 
class  direct_bt::MgmtReadDefaultSysParamCmd
 
class  direct_bt::MgmtRemoveDeviceFromWhitelistCmd
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtSetDefaultConnParamCmd
 MgmtDefaultParamU16 param1, MgmtDefaultParamU16 param2,. More...
 
class  direct_bt::MgmtSetDiscoverableCmd
 uint8_t discoverable uint16_t timeout More...
 
class  direct_bt::MgmtSetLocalNameCmd
 uint8_t name[MGMT_MAX_NAME_LENGTH]; uint8_t short_name[MGMT_MAX_SHORT_NAME_LENGTH]; More...
 
class  direct_bt::MgmtSetPrivacyCmd
 uint8_t privacy 0x00 disabled, 0x01 always on (discoverable + pairing), 0x02 limited (not when discoverable, bondable) jau::uint128_t irk Identity Resolving Key More...
 
struct  direct_bt::MgmtSignatureResolvingKey
 Used for MgmtEvtNewSignatureResolvingKey. More...
 
class  direct_bt::MgmtUint8Cmd
 
class  direct_bt::MgmtUnpairDeviceCmd
 mgmt_addr_info { EUI48, uint8_t type }, bool disconnect (1 octet) More...
 
class  direct_bt::MgmtUserConfirmNegativeReplyCmd
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtUserConfirmReplyCmd
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtUserPasskeyNegativeReplyCmd
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtUserPasskeyReplyCmd
 mgmt_addr_info { EUI48, uint8_t type }, uint32_t passkey More...
 
class  direct_bt::SMPEncInfoMsg
 Vol 3, Part H: 3.6.2 Encryption Information message. More...
 
class  direct_bt::SMPEncKeyByteStream
 Tag type to group all SMP messages covering encryption keys, treated as byte stream (all of them). More...
 
class  direct_bt::SMPEnv
 SMP Singleton runtime environment properties. More...
 
class  direct_bt::SMPException
 
class  direct_bt::SMPHandler
 A thread safe SMP handler associated to one device via one L2CAP connection. More...
 
class  direct_bt::SMPIdentAddrInfoMsg
 Vol 3, Part H: 3.6.5 Identity Address Information message. More...
 
class  direct_bt::SMPIdentInfoMsg
 Vol 3, Part H: 3.6.4 Identify Information message. More...
 
struct  direct_bt::SMPIdentityResolvingKey
 SMP Identity Resolving Key, used for platform agnostic persistence. More...
 
struct  direct_bt::SMPLinkKey
 Local SMP Link Key, used for platform agnostic persistence, mapping to platform specific MgmtLoadLinkKeyCmd and MgmtEvtNewLinkKey. More...
 
struct  direct_bt::SMPLongTermKey
 SMP Long Term Key, used for platform agnostic persistence. More...
 
class  direct_bt::SMPMasterIdentMsg
 Vol 3, Part H: 3.6.3 Master Identification message. More...
 
class  direct_bt::SMPOpcodeException
 
class  direct_bt::SMPPacketException
 
class  direct_bt::SMPPairConfirmMsg
 Vol 3, Part H: 3.5.3 Pairing Confirm message. More...
 
class  direct_bt::SMPPairDHKeyCheckMsg
 Vol 3, Part H: 3.5.7 Pairing DHKey Check message. More...
 
class  direct_bt::SMPPairFailedMsg
 Vol 3, Part H: 3.5.5 Pairing Failed message. More...
 
class  direct_bt::SMPPairingMsg
 Vol 3, Part H: 3.5.1 Pairing Request message. More...
 
class  direct_bt::SMPPairPubKeyMsg
 Vol 3, Part H: 3.5.6 Pairing Public Key message. More...
 
class  direct_bt::SMPPairRandMsg
 Vol 3, Part H: 3.5.4 Pairing Random message. More...
 
class  direct_bt::SMPPasskeyNotification
 Vol 3, Part H: 3.5.8 Passkey Entry: Keypress notification messages. More...
 
class  direct_bt::SMPPDUMsg
 Handles the Security Manager Protocol (SMP) using Protocol Data Unit (PDU) encoded messages over L2CAP channel. More...
 
class  direct_bt::SMPSecurityReqMsg
 Vol 3, Part H: 3.6.7 Security Request message. More...
 
struct  direct_bt::SMPSignatureResolvingKey
 SMP Signature Resolving Key, used for platform agnostic persistence. More...
 
class  direct_bt::SMPSignInfoMsg
 Vol 3, Part H: 3.6.6 Signing Information message. More...
 
class  direct_bt::SMPValueException
 

Typedefs

typedef std::shared_ptr< BTGattHandlerdirect_bt::BTGattHandlerRef
 
typedef jau::function< void(const BDAddressAndType &, const SMPPDUMsg &, const HCIACLData::l2cap_frame &)> direct_bt::HCISMPMsgCallback
 
typedef jau::cow_darray< HCISMPMsgCallbackdirect_bt::HCISMPMsgCallbackList
 
typedef jau::cow_darray< MgmtAdapterEventCallbackdirect_bt::MgmtAdapterEventCallbackList
 
typedef jau::function< void(const MgmtEvent &)> direct_bt::MgmtEventCallback
 
typedef jau::cow_darray< MgmtEventCallbackdirect_bt::MgmtEventCallbackList
 

Enumerations

enum class  direct_bt::HCIConstSizeT : jau::nsize_t {
  direct_bt::HCIConstSizeT::COMMAND_HDR_SIZE = 1+3 , direct_bt::HCIConstSizeT::ACL_HDR_SIZE = 1+4 , direct_bt::HCIConstSizeT::SCO_HDR_SIZE = 1+3 , direct_bt::HCIConstSizeT::EVENT_HDR_SIZE = 1+2 ,
  direct_bt::HCIConstSizeT::PACKET_MAX_SIZE = 255
}
 
enum class  direct_bt::HCIEventType : uint8_t {
  direct_bt::HCIEventType::INVALID = 0x00 , direct_bt::HCIEventType::INQUIRY_COMPLETE = 0x01 , direct_bt::HCIEventType::INQUIRY_RESULT = 0x02 , direct_bt::HCIEventType::CONN_COMPLETE = 0x03 ,
  direct_bt::HCIEventType::CONN_REQUEST = 0x04 , direct_bt::HCIEventType::DISCONN_COMPLETE = 0x05 , direct_bt::HCIEventType::AUTH_COMPLETE = 0x06 , direct_bt::HCIEventType::REMOTE_NAME = 0x07 ,
  direct_bt::HCIEventType::ENCRYPT_CHANGE = 0x08 , direct_bt::HCIEventType::CHANGE_LINK_KEY_COMPLETE = 0x09 , direct_bt::HCIEventType::REMOTE_FEATURES = 0x0b , direct_bt::HCIEventType::REMOTE_VERSION = 0x0c ,
  direct_bt::HCIEventType::QOS_SETUP_COMPLETE = 0x0d , direct_bt::HCIEventType::CMD_COMPLETE = 0x0e , direct_bt::HCIEventType::CMD_STATUS = 0x0f , direct_bt::HCIEventType::HARDWARE_ERROR = 0x10 ,
  direct_bt::HCIEventType::ROLE_CHANGE = 0x12 , direct_bt::HCIEventType::NUM_COMP_PKTS = 0x13 , direct_bt::HCIEventType::MODE_CHANGE = 0x14 , direct_bt::HCIEventType::PIN_CODE_REQ = 0x16 ,
  direct_bt::HCIEventType::LINK_KEY_REQ = 0x17 , direct_bt::HCIEventType::LINK_KEY_NOTIFY = 0x18 , direct_bt::HCIEventType::CLOCK_OFFSET = 0x1c , direct_bt::HCIEventType::PKT_TYPE_CHANGE = 0x1d ,
  direct_bt::HCIEventType::ENCRYPT_KEY_REFRESH_COMPLETE = 0x30 , direct_bt::HCIEventType::IO_CAPABILITY_REQUEST = 0x31 , direct_bt::HCIEventType::IO_CAPABILITY_RESPONSE = 0x32 , direct_bt::HCIEventType::LE_META = 0x3e ,
  direct_bt::HCIEventType::DISCONN_PHY_LINK_COMPLETE = 0x42 , direct_bt::HCIEventType::DISCONN_LOGICAL_LINK_COMPLETE = 0x46 , direct_bt::HCIEventType::AMP_Receiver_Report = 0x4b
}
 BT Core Spec v5.2: Vol 4, Part E HCI: 7.7 Events. More...
 
enum class  direct_bt::HCIMetaEventType : uint8_t {
  direct_bt::HCIMetaEventType::INVALID = 0x00 , direct_bt::HCIMetaEventType::LE_CONN_COMPLETE = 0x01 , direct_bt::HCIMetaEventType::LE_ADVERTISING_REPORT = 0x02 , direct_bt::HCIMetaEventType::LE_CONN_UPDATE_COMPLETE = 0x03 ,
  direct_bt::HCIMetaEventType::LE_REMOTE_FEAT_COMPLETE = 0x04 , direct_bt::HCIMetaEventType::LE_LTK_REQUEST = 0x05 , direct_bt::HCIMetaEventType::LE_REMOTE_CONN_PARAM_REQ = 0x06 , direct_bt::HCIMetaEventType::LE_DATA_LENGTH_CHANGE = 0x07 ,
  direct_bt::HCIMetaEventType::LE_READ_LOCAL_P256_PUBKEY_COMPLETE = 0x08 , direct_bt::HCIMetaEventType::LE_GENERATE_DHKEY_COMPLETE = 0x09 , direct_bt::HCIMetaEventType::LE_EXT_CONN_COMPLETE = 0x0A , direct_bt::HCIMetaEventType::LE_DIRECT_ADV_REPORT = 0x0B ,
  direct_bt::HCIMetaEventType::LE_PHY_UPDATE_COMPLETE = 0x0C , direct_bt::HCIMetaEventType::LE_EXT_ADV_REPORT = 0x0D , direct_bt::HCIMetaEventType::LE_PERIODIC_ADV_SYNC_ESTABLISHED = 0x0E , direct_bt::HCIMetaEventType::LE_PERIODIC_ADV_REPORT = 0x0F ,
  direct_bt::HCIMetaEventType::LE_PERIODIC_ADV_SYNC_LOST = 0x10 , direct_bt::HCIMetaEventType::LE_SCAN_TIMEOUT = 0x11 , direct_bt::HCIMetaEventType::LE_ADV_SET_TERMINATED = 0x12 , direct_bt::HCIMetaEventType::LE_SCAN_REQ_RECEIVED = 0x13 ,
  direct_bt::HCIMetaEventType::LE_CHANNEL_SEL_ALGO = 0x14 , direct_bt::HCIMetaEventType::LE_CONNLESS_IQ_REPORT = 0x15 , direct_bt::HCIMetaEventType::LE_CONN_IQ_REPORT = 0x16 , direct_bt::HCIMetaEventType::LE_CTE_REQ_FAILED = 0x17 ,
  direct_bt::HCIMetaEventType::LE_PERIODIC_ADV_SYNC_TRANSFER_RECV = 0x18 , direct_bt::HCIMetaEventType::LE_CIS_ESTABLISHED = 0x19 , direct_bt::HCIMetaEventType::LE_CIS_REQUEST = 0x1A , direct_bt::HCIMetaEventType::LE_CREATE_BIG_COMPLETE = 0x1B ,
  direct_bt::HCIMetaEventType::LE_TERMINATE_BIG_COMPLETE = 0x1C , direct_bt::HCIMetaEventType::LE_BIG_SYNC_ESTABLISHED = 0x1D , direct_bt::HCIMetaEventType::LE_BIG_SYNC_LOST = 0x1E , direct_bt::HCIMetaEventType::LE_REQUEST_PEER_SCA_COMPLETE = 0x1F ,
  direct_bt::HCIMetaEventType::LE_PATH_LOSS_THRESHOLD = 0x20 , direct_bt::HCIMetaEventType::LE_TRANSMIT_POWER_REPORTING = 0x21 , direct_bt::HCIMetaEventType::LE_BIGINFO_ADV_REPORT = 0x22
}
 BT Core Spec v5.2: Vol 4, Part E HCI: 7.7.65 LE Meta event. More...
 
enum class  direct_bt::HCIOGF : uint8_t { direct_bt::HCIOGF::LINK_CTL = 0x01 , direct_bt::HCIOGF::LINK_POLICY = 0x02 , direct_bt::HCIOGF::BREDR_CTL = 0x03 , direct_bt::HCIOGF::LE_CTL = 0x08 }
 
enum class  direct_bt::HCIOpcode : uint16_t {
  direct_bt::HCIOpcode::SPECIAL = 0x0000 , direct_bt::HCIOpcode::CREATE_CONN = 0x0405 , direct_bt::HCIOpcode::DISCONNECT = 0x0406 , direct_bt::HCIOpcode::IO_CAPABILITY_REQ_REPLY = 0x042b ,
  direct_bt::HCIOpcode::IO_CAPABILITY_REQ_NEG_REPLY = 0x0434 , direct_bt::HCIOpcode::SET_EVENT_MASK = 0x0C01 , direct_bt::HCIOpcode::RESET = 0x0C03 , direct_bt::HCIOpcode::READ_LOCAL_VERSION = 0x1001 ,
  direct_bt::HCIOpcode::READ_LOCAL_COMMANDS = 0x1002 , direct_bt::HCIOpcode::LE_SET_EVENT_MASK = 0x2001 , direct_bt::HCIOpcode::LE_READ_BUFFER_SIZE = 0x2002 , direct_bt::HCIOpcode::LE_READ_LOCAL_FEATURES = 0x2003 ,
  direct_bt::HCIOpcode::LE_SET_RANDOM_ADDR = 0x2005 , direct_bt::HCIOpcode::LE_SET_ADV_PARAM = 0x2006 , direct_bt::HCIOpcode::LE_READ_ADV_TX_POWER = 0x2007 , direct_bt::HCIOpcode::LE_SET_ADV_DATA = 0x2008 ,
  direct_bt::HCIOpcode::LE_SET_SCAN_RSP_DATA = 0x2009 , direct_bt::HCIOpcode::LE_SET_ADV_ENABLE = 0x200a , direct_bt::HCIOpcode::LE_SET_SCAN_PARAM = 0x200b , direct_bt::HCIOpcode::LE_SET_SCAN_ENABLE = 0x200c ,
  direct_bt::HCIOpcode::LE_CREATE_CONN = 0x200d , direct_bt::HCIOpcode::LE_CREATE_CONN_CANCEL = 0x200e , direct_bt::HCIOpcode::LE_READ_WHITE_LIST_SIZE = 0x200f , direct_bt::HCIOpcode::LE_CLEAR_WHITE_LIST = 0x2010 ,
  direct_bt::HCIOpcode::LE_ADD_TO_WHITE_LIST = 0x2011 , direct_bt::HCIOpcode::LE_DEL_FROM_WHITE_LIST = 0x2012 , direct_bt::HCIOpcode::LE_CONN_UPDATE = 0x2013 , direct_bt::HCIOpcode::LE_READ_REMOTE_FEATURES = 0x2016 ,
  direct_bt::HCIOpcode::LE_ENABLE_ENC = 0x2019 , direct_bt::HCIOpcode::LE_LTK_REPLY_ACK = 0x201A , direct_bt::HCIOpcode::LE_LTK_REPLY_REJ = 0x201B , direct_bt::HCIOpcode::LE_ADD_TO_RESOLV_LIST = 0x2027 ,
  direct_bt::HCIOpcode::LE_DEL_FROM_RESOLV_LIST = 0x2028 , direct_bt::HCIOpcode::LE_CLEAR_RESOLV_LIST = 0x2029 , direct_bt::HCIOpcode::LE_READ_RESOLV_LIST_SIZE = 0x202A , direct_bt::HCIOpcode::LE_READ_PEER_RESOLV_ADDR = 0x202B ,
  direct_bt::HCIOpcode::LE_READ_LOCAL_RESOLV_ADDR = 0x202C , direct_bt::HCIOpcode::LE_SET_ADDR_RESOLV_ENABLE = 0x202D , direct_bt::HCIOpcode::LE_READ_PHY = 0x2030 , direct_bt::HCIOpcode::LE_SET_DEFAULT_PHY = 0x2031 ,
  direct_bt::HCIOpcode::LE_SET_PHY = 0x2032 , direct_bt::HCIOpcode::LE_SET_EXT_ADV_PARAMS = 0x2036 , direct_bt::HCIOpcode::LE_SET_EXT_ADV_DATA = 0x2037 , direct_bt::HCIOpcode::LE_SET_EXT_SCAN_RSP_DATA = 0x2038 ,
  direct_bt::HCIOpcode::LE_SET_EXT_ADV_ENABLE = 0x2039 , direct_bt::HCIOpcode::LE_SET_EXT_SCAN_PARAMS = 0x2041 , direct_bt::HCIOpcode::LE_SET_EXT_SCAN_ENABLE = 0x2042 , direct_bt::HCIOpcode::LE_EXT_CREATE_CONN = 0x2043
}
 BT Core Spec v5.2: Vol 4, Part E HCI: 7.1 Link Controller commands. More...
 
enum class  direct_bt::HCIOpcodeBit : uint8_t {
  direct_bt::HCIOpcodeBit::SPECIAL = 0 , direct_bt::HCIOpcodeBit::CREATE_CONN = 3 , direct_bt::HCIOpcodeBit::DISCONNECT = 4 , direct_bt::HCIOpcodeBit::IO_CAPABILITY_REQ_REPLY = 5 ,
  direct_bt::HCIOpcodeBit::IO_CAPABILITY_REQ_NEG_REPLY = 6 , direct_bt::HCIOpcodeBit::SET_EVENT_MASK = 7 , direct_bt::HCIOpcodeBit::RESET = 8 , direct_bt::HCIOpcodeBit::READ_LOCAL_VERSION = 10 ,
  direct_bt::HCIOpcodeBit::READ_LOCAL_COMMANDS = 11 , direct_bt::HCIOpcodeBit::LE_SET_EVENT_MASK = 20 , direct_bt::HCIOpcodeBit::LE_READ_BUFFER_SIZE = 21 , direct_bt::HCIOpcodeBit::LE_READ_LOCAL_FEATURES = 22 ,
  direct_bt::HCIOpcodeBit::LE_SET_RANDOM_ADDR = 23 , direct_bt::HCIOpcodeBit::LE_SET_ADV_PARAM = 24 , direct_bt::HCIOpcodeBit::LE_READ_ADV_TX_POWER = 25 , direct_bt::HCIOpcodeBit::LE_SET_ADV_DATA = 26 ,
  direct_bt::HCIOpcodeBit::LE_SET_SCAN_RSP_DATA = 27 , direct_bt::HCIOpcodeBit::LE_SET_ADV_ENABLE = 28 , direct_bt::HCIOpcodeBit::LE_SET_SCAN_PARAM = 29 , direct_bt::HCIOpcodeBit::LE_SET_SCAN_ENABLE = 30 ,
  direct_bt::HCIOpcodeBit::LE_CREATE_CONN = 31 , direct_bt::HCIOpcodeBit::LE_CREATE_CONN_CANCEL = 32 , direct_bt::HCIOpcodeBit::LE_READ_WHITE_LIST_SIZE = 33 , direct_bt::HCIOpcodeBit::LE_CLEAR_WHITE_LIST = 34 ,
  direct_bt::HCIOpcodeBit::LE_ADD_TO_WHITE_LIST = 35 , direct_bt::HCIOpcodeBit::LE_DEL_FROM_WHITE_LIST = 36 , direct_bt::HCIOpcodeBit::LE_CONN_UPDATE = 37 , direct_bt::HCIOpcodeBit::LE_READ_REMOTE_FEATURES = 38 ,
  direct_bt::HCIOpcodeBit::LE_ENABLE_ENC = 39 , direct_bt::HCIOpcodeBit::LE_LTK_REPLY_ACK = 40 , direct_bt::HCIOpcodeBit::LE_LTK_REPLY_REJ = 41 , direct_bt::HCIOpcodeBit::LE_ADD_TO_RESOLV_LIST = 42 ,
  direct_bt::HCIOpcodeBit::LE_DEL_FROM_RESOLV_LIST = 43 , direct_bt::HCIOpcodeBit::LE_CLEAR_RESOLV_LIST = 44 , direct_bt::HCIOpcodeBit::LE_READ_RESOLV_LIST_SIZE = 45 , direct_bt::HCIOpcodeBit::LE_READ_PEER_RESOLV_ADDR = 46 ,
  direct_bt::HCIOpcodeBit::LE_READ_LOCAL_RESOLV_ADDR = 47 , direct_bt::HCIOpcodeBit::LE_SET_ADDR_RESOLV_ENABLE = 48 , direct_bt::HCIOpcodeBit::LE_READ_PHY = 49 , direct_bt::HCIOpcodeBit::LE_SET_DEFAULT_PHY = 50 ,
  direct_bt::HCIOpcodeBit::LE_SET_PHY = 51 , direct_bt::HCIOpcodeBit::LE_SET_EXT_ADV_PARAMS = 52 , direct_bt::HCIOpcodeBit::LE_SET_EXT_ADV_DATA = 53 , direct_bt::HCIOpcodeBit::LE_SET_EXT_SCAN_RSP_DATA = 54 ,
  direct_bt::HCIOpcodeBit::LE_SET_EXT_ADV_ENABLE = 55 , direct_bt::HCIOpcodeBit::LE_SET_EXT_SCAN_PARAMS = 56 , direct_bt::HCIOpcodeBit::LE_SET_EXT_SCAN_ENABLE = 57 , direct_bt::HCIOpcodeBit::LE_EXT_CREATE_CONN = 58
}
 
enum class  direct_bt::HCIPacketType : uint8_t {
  direct_bt::HCIPacketType::COMMAND = 0x01 , direct_bt::HCIPacketType::ACLDATA = 0x02 , direct_bt::HCIPacketType::SCODATA = 0x03 , direct_bt::HCIPacketType::EVENT = 0x04 ,
  direct_bt::HCIPacketType::DIAG = 0xf0 , direct_bt::HCIPacketType::VENDOR = 0xff
}
 
enum  direct_bt::MgmtConstU16 : uint16_t { direct_bt::MGMT_INDEX_NONE = 0xFFFF }
 
enum class  direct_bt::MgmtCSRKType : uint8_t {
  direct_bt::MgmtCSRKType::UNAUTHENTICATED_LOCAL = 0x00 , direct_bt::MgmtCSRKType::UNAUTHENTICATED_REMOTE = 0x01 , direct_bt::MgmtCSRKType::AUTHENTICATED_LOCAL = 0x02 , direct_bt::MgmtCSRKType::AUTHENTICATED_REMOTE = 0x03 ,
  direct_bt::MgmtCSRKType::NONE = 0xff
}
 Signature Resolving Key Types compatible with Mgmt's MgmtSignatureResolvingKey. More...
 
enum class  direct_bt::MgmtLinkKeyType : uint8_t {
  direct_bt::MgmtLinkKeyType::COMBI = 0x00 , direct_bt::MgmtLinkKeyType::LOCAL_UNIT = 0x01 , direct_bt::MgmtLinkKeyType::REMOTE_UNIT = 0x02 , direct_bt::MgmtLinkKeyType::DBG_COMBI = 0x03 ,
  direct_bt::MgmtLinkKeyType::UNAUTH_COMBI_P192 = 0x04 , direct_bt::MgmtLinkKeyType::AUTH_COMBI_P192 = 0x05 , direct_bt::MgmtLinkKeyType::CHANGED_COMBI = 0x06 , direct_bt::MgmtLinkKeyType::UNAUTH_COMBI_P256 = 0x07 ,
  direct_bt::MgmtLinkKeyType::AUTH_COMBI_P256 = 0x08 , direct_bt::MgmtLinkKeyType::NONE = 0xff
}
 Link Key Types compatible with Mgmt's MgmtLinkKeyInfo. More...
 
enum class  direct_bt::MgmtLTKType : uint8_t {
  direct_bt::MgmtLTKType::UNAUTHENTICATED = 0x00 , direct_bt::MgmtLTKType::AUTHENTICATED = 0x01 , direct_bt::MgmtLTKType::UNAUTHENTICATED_P256 = 0x02 , direct_bt::MgmtLTKType::AUTHENTICATED_P256 = 0x03 ,
  direct_bt::MgmtLTKType::DEBUG_P256 = 0x04 , direct_bt::MgmtLTKType::NONE = 0xff
}
 Long Term Key Types compatible with Mgmt's MgmtLongTermKey. More...
 
enum  direct_bt::MgmtOption : uint32_t { direct_bt::EXTERNAL_CONFIG = 0x00000001 , direct_bt::PUBLIC_ADDRESS = 0x00000002 }
 
enum  direct_bt::MgmtSizeConst : jau::nsize_t { direct_bt::MGMT_HEADER_SIZE = 6 , direct_bt::MGMT_MAX_NAME_LENGTH = 248+1 , direct_bt::MGMT_MAX_SHORT_NAME_LENGTH = 10+1 }
 
enum class  direct_bt::MgmtStatus : uint8_t {
  direct_bt::MgmtStatus::SUCCESS = 0x00 , direct_bt::MgmtStatus::UNKNOWN_COMMAND = 0x01 , direct_bt::MgmtStatus::NOT_CONNECTED = 0x02 , direct_bt::MgmtStatus::FAILED = 0x03 ,
  direct_bt::MgmtStatus::CONNECT_FAILED = 0x04 , direct_bt::MgmtStatus::AUTH_FAILED = 0x05 , direct_bt::MgmtStatus::NOT_PAIRED = 0x06 , direct_bt::MgmtStatus::NO_RESOURCES = 0x07 ,
  direct_bt::MgmtStatus::TIMEOUT = 0x08 , direct_bt::MgmtStatus::ALREADY_CONNECTED = 0x09 , direct_bt::MgmtStatus::BUSY = 0x0a , direct_bt::MgmtStatus::REJECTED = 0x0b ,
  direct_bt::MgmtStatus::NOT_SUPPORTED = 0x0c , direct_bt::MgmtStatus::INVALID_PARAMS = 0x0d , direct_bt::MgmtStatus::DISCONNECTED = 0x0e , direct_bt::MgmtStatus::NOT_POWERED = 0x0f ,
  direct_bt::MgmtStatus::CANCELLED = 0x10 , direct_bt::MgmtStatus::INVALID_INDEX = 0x11 , direct_bt::MgmtStatus::RFKILLED = 0x12 , direct_bt::MgmtStatus::ALREADY_PAIRED = 0x13 ,
  direct_bt::MgmtStatus::PERMISSION_DENIED = 0x14
}
 
enum class  direct_bt::SMPAuthReqs : uint8_t {
  direct_bt::SMPAuthReqs::NONE = 0 , direct_bt::SMPAuthReqs::BONDING = 0b00000001 , direct_bt::SMPAuthReqs::BONDING_RFU = 0b00000010 , direct_bt::SMPAuthReqs::MITM = 0b00000100 ,
  direct_bt::SMPAuthReqs::SECURE_CONNECTIONS = 0b00001000 , direct_bt::SMPAuthReqs::KEYPRESS = 0b00010000 , direct_bt::SMPAuthReqs::CT2_H7_FUNC_SUPPORT = 0b00100000 , direct_bt::SMPAuthReqs::RFU_1 = 0b01000000 ,
  direct_bt::SMPAuthReqs::RFU_2 = 0b10000000
}
 SMP Authentication Requirements Bits, denotes specific bits or whole protocol uint8_t bit-mask. More...
 
enum class  direct_bt::SMPConstInt : int32_t
 
enum class  direct_bt::SMPConstU16 : uint16_t { direct_bt::SMPConstU16::SMP_TIMEOUT_MS = 30000 }
 
enum class  direct_bt::SMPIOCapability : uint8_t {
  direct_bt::SMPIOCapability::DISPLAY_ONLY = 0x00 , direct_bt::SMPIOCapability::DISPLAY_YES_NO = 0x01 , direct_bt::SMPIOCapability::KEYBOARD_ONLY = 0x02 , direct_bt::SMPIOCapability::NO_INPUT_NO_OUTPUT = 0x03 ,
  direct_bt::SMPIOCapability::KEYBOARD_DISPLAY = 0x04 , direct_bt::SMPIOCapability::UNSET = 0xFF
}
 Vol 3, Part H, 2.3.2 IO capabilities. More...
 
enum class  direct_bt::SMPKeyType : uint8_t {
  direct_bt::SMPKeyType::NONE = 0 , direct_bt::SMPKeyType::ENC_KEY = 0b00000001 , direct_bt::SMPKeyType::ID_KEY = 0b00000010 , direct_bt::SMPKeyType::SIGN_KEY = 0b00000100 ,
  direct_bt::SMPKeyType::LINK_KEY = 0b00001000 , direct_bt::SMPKeyType::RFU_1 = 0b00010000 , direct_bt::SMPKeyType::RFU_2 = 0b00100000 , direct_bt::SMPKeyType::RFU_3 = 0b01000000 ,
  direct_bt::SMPKeyType::RFU_4 = 0b10000000
}
 SMP Key Type for Distribution, indicates keys distributed in the Transport Specific Key Distribution phase. More...
 
enum class  direct_bt::SMPOOBDataFlag : uint8_t { direct_bt::SMPOOBDataFlag::OOB_AUTH_DATA_NOT_PRESENT = 0x00 , direct_bt::SMPOOBDataFlag::OOB_AUTH_DATA_REMOTE_PRESENT = 0x01 }
 Vol 3, Part H, 2.3.3 OOB authentication data. More...
 
enum class  direct_bt::SMPPairingState : uint8_t {
  direct_bt::SMPPairingState::NONE = 0 , direct_bt::SMPPairingState::FAILED = 1 , direct_bt::SMPPairingState::REQUESTED_BY_RESPONDER = 2 , direct_bt::SMPPairingState::FEATURE_EXCHANGE_STARTED = 3 ,
  direct_bt::SMPPairingState::FEATURE_EXCHANGE_COMPLETED = 4 , direct_bt::SMPPairingState::PASSKEY_EXPECTED = 5 , direct_bt::SMPPairingState::NUMERIC_COMPARE_EXPECTED = 6 , direct_bt::SMPPairingState::PASSKEY_NOTIFY = 7 ,
  direct_bt::SMPPairingState::OOB_EXPECTED = 8 , direct_bt::SMPPairingState::KEY_DISTRIBUTION = 9 , direct_bt::SMPPairingState::COMPLETED = 10
}
 SMP Pairing Process state definition. More...
 

Functions

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. More...
 
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. More...
 
constexpr bool direct_bt::hasSMPIOCapabilityAnyIO (const SMPIOCapability ioc) noexcept
 
constexpr bool direct_bt::hasSMPIOCapabilityBinaryInput (const SMPIOCapability ioc) noexcept
 
constexpr bool direct_bt::hasSMPIOCapabilityFullInput (const SMPIOCapability ioc) noexcept
 
constexpr bool direct_bt::hasSMPPairingFinished (const SMPPairingState state) noexcept
 Returns true if the given SMPPairingState indicates a finished pairing process, i.e. More...
 
constexpr bool direct_bt::is_set (const SMPAuthReqs mask, const SMPAuthReqs bit) noexcept
 
constexpr bool direct_bt::is_set (const SMPKeyType mask, const SMPKeyType bit) noexcept
 
constexpr bool direct_bt::isSMPPairingActive (const SMPPairingState state) noexcept
 Returns true if the given SMPPairingState indicates an active pairing process, i.e. More...
 
constexpr bool direct_bt::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 bool direct_bt::isSMPPairingUserInteraction (const SMPPairingState state) noexcept
 Returns true if the given SMPPairingState indicates expected user interaction, i.e. More...
 
constexpr jau::nsize_t direct_bt::number (const HCIConstSizeT rhs) noexcept
 
constexpr uint8_t direct_bt::number (const HCIEventType rhs) noexcept
 
constexpr uint8_t direct_bt::number (const HCIMetaEventType rhs) noexcept
 
constexpr uint8_t direct_bt::number (const HCIOGF rhs) noexcept
 
constexpr uint16_t direct_bt::number (const HCIOpcode rhs) noexcept
 
constexpr uint8_t direct_bt::number (const HCIOpcodeBit rhs) noexcept
 
constexpr uint8_t direct_bt::number (const HCIPacketType rhs) noexcept
 
constexpr uint8_t direct_bt::number (const SMPAuthReqs rhs) noexcept
 
constexpr int32_t direct_bt::number (const SMPConstInt rhs) noexcept
 
constexpr uint16_t direct_bt::number (const SMPConstU16 rhs) noexcept
 
constexpr uint8_t direct_bt::number (const SMPIOCapability rhs) noexcept
 
constexpr uint8_t direct_bt::number (const SMPKeyType rhs) noexcept
 
constexpr uint8_t direct_bt::number (const SMPOOBDataFlag rhs) noexcept
 
constexpr bool direct_bt::operator!= (const SMPAuthReqs lhs, const SMPAuthReqs rhs) noexcept
 
constexpr bool direct_bt::operator!= (const SMPIdentityResolvingKey::Property lhs, const SMPIdentityResolvingKey::Property rhs) noexcept
 
constexpr bool direct_bt::operator!= (const SMPKeyType lhs, const SMPKeyType rhs) noexcept
 
constexpr bool direct_bt::operator!= (const SMPLongTermKey::Property lhs, const SMPLongTermKey::Property rhs) noexcept
 
constexpr bool direct_bt::operator!= (const SMPSignatureResolvingKey::Property lhs, const SMPSignatureResolvingKey::Property rhs) noexcept
 
constexpr SMPAuthReqs direct_bt::operator& (const SMPAuthReqs lhs, const SMPAuthReqs rhs) noexcept
 
constexpr SMPIdentityResolvingKey::Property direct_bt::operator& (const SMPIdentityResolvingKey::Property lhs, const SMPIdentityResolvingKey::Property rhs) noexcept
 
constexpr SMPKeyType direct_bt::operator& (const SMPKeyType lhs, const SMPKeyType rhs) noexcept
 
constexpr SMPLongTermKey::Property direct_bt::operator& (const SMPLongTermKey::Property lhs, const SMPLongTermKey::Property rhs) noexcept
 
constexpr SMPSignatureResolvingKey::Property direct_bt::operator& (const SMPSignatureResolvingKey::Property lhs, const SMPSignatureResolvingKey::Property rhs) noexcept
 
constexpr SMPIdentityResolvingKey::Propertydirect_bt::operator&= (SMPIdentityResolvingKey::Property &store, const SMPIdentityResolvingKey::Property &rhs) noexcept
 
constexpr SMPKeyTypedirect_bt::operator&= (SMPKeyType &store, const SMPKeyType &rhs) noexcept
 
constexpr SMPLongTermKey::Propertydirect_bt::operator&= (SMPLongTermKey::Property &store, const SMPLongTermKey::Property &rhs) noexcept
 
constexpr SMPSignatureResolvingKey::Propertydirect_bt::operator&= (SMPSignatureResolvingKey::Property &store, const SMPSignatureResolvingKey::Property &rhs) noexcept
 
constexpr bool direct_bt::operator== (const SMPAuthReqs lhs, const SMPAuthReqs rhs) noexcept
 
constexpr bool direct_bt::operator== (const SMPIdentityResolvingKey::Property lhs, const SMPIdentityResolvingKey::Property rhs) noexcept
 
constexpr bool direct_bt::operator== (const SMPKeyType lhs, const SMPKeyType rhs) noexcept
 
constexpr bool direct_bt::operator== (const SMPLongTermKey::Property lhs, const SMPLongTermKey::Property rhs) noexcept
 
constexpr bool direct_bt::operator== (const SMPSignatureResolvingKey::Property lhs, const SMPSignatureResolvingKey::Property rhs) noexcept
 
constexpr SMPAuthReqs direct_bt::operator^ (const SMPAuthReqs lhs, const SMPAuthReqs rhs) noexcept
 
constexpr SMPIdentityResolvingKey::Property direct_bt::operator^ (const SMPIdentityResolvingKey::Property lhs, const SMPIdentityResolvingKey::Property rhs) noexcept
 
constexpr SMPKeyType direct_bt::operator^ (const SMPKeyType lhs, const SMPKeyType rhs) noexcept
 
constexpr SMPLongTermKey::Property direct_bt::operator^ (const SMPLongTermKey::Property lhs, const SMPLongTermKey::Property rhs) noexcept
 
constexpr SMPSignatureResolvingKey::Property direct_bt::operator^ (const SMPSignatureResolvingKey::Property lhs, const SMPSignatureResolvingKey::Property rhs) noexcept
 
constexpr SMPIdentityResolvingKey::Propertydirect_bt::operator^= (SMPIdentityResolvingKey::Property &store, const SMPIdentityResolvingKey::Property &rhs) noexcept
 
constexpr SMPKeyTypedirect_bt::operator^= (SMPKeyType &store, const SMPKeyType &rhs) noexcept
 
constexpr SMPLongTermKey::Propertydirect_bt::operator^= (SMPLongTermKey::Property &store, const SMPLongTermKey::Property &rhs) noexcept
 
constexpr SMPSignatureResolvingKey::Propertydirect_bt::operator^= (SMPSignatureResolvingKey::Property &store, const SMPSignatureResolvingKey::Property &rhs) noexcept
 
constexpr SMPAuthReqs direct_bt::operator| (const SMPAuthReqs lhs, const SMPAuthReqs rhs) noexcept
 
constexpr SMPIdentityResolvingKey::Property direct_bt::operator| (const SMPIdentityResolvingKey::Property lhs, const SMPIdentityResolvingKey::Property rhs) noexcept
 
constexpr SMPKeyType direct_bt::operator| (const SMPKeyType lhs, const SMPKeyType rhs) noexcept
 
constexpr SMPLongTermKey::Property direct_bt::operator| (const SMPLongTermKey::Property lhs, const SMPLongTermKey::Property rhs) noexcept
 
constexpr SMPSignatureResolvingKey::Property direct_bt::operator| (const SMPSignatureResolvingKey::Property lhs, const SMPSignatureResolvingKey::Property rhs) noexcept
 
constexpr SMPIdentityResolvingKey::Propertydirect_bt::operator|= (SMPIdentityResolvingKey::Property &store, const SMPIdentityResolvingKey::Property &rhs) noexcept
 
constexpr SMPKeyTypedirect_bt::operator|= (SMPKeyType &store, const SMPKeyType &rhs) noexcept
 
constexpr SMPLongTermKey::Propertydirect_bt::operator|= (SMPLongTermKey::Property &store, const SMPLongTermKey::Property &rhs) noexcept
 
constexpr SMPSignatureResolvingKey::Propertydirect_bt::operator|= (SMPSignatureResolvingKey::Property &store, const SMPSignatureResolvingKey::Property &rhs) noexcept
 
constexpr SMPLongTermKey::Property direct_bt::operator~ (const SMPLongTermKey::Property rhs) noexcept
 
HCIStatusCode direct_bt::to_HCIStatusCode (const MgmtStatus mstatus) noexcept
 
MgmtLTKType direct_bt::to_MgmtLTKType (const SMPLongTermKey::Property ltk_prop_mask) noexcept
 
constexpr SMPIOCapability direct_bt::to_SMPIOCapability (const uint8_t v) noexcept
 
std::string direct_bt::to_string (const HCIEventType op) noexcept
 
std::string direct_bt::to_string (const HCIMetaEventType op) noexcept
 
std::string direct_bt::to_string (const HCIOGF op) noexcept
 
std::string direct_bt::to_string (const HCIOpcode op) noexcept
 
std::string direct_bt::to_string (const HCIPacket &p) noexcept
 
std::string direct_bt::to_string (const HCIPacketType op) noexcept
 
std::string direct_bt::to_string (const MgmtCSRKType type) noexcept
 
std::string direct_bt::to_string (const MgmtLinkKeyType type) noexcept
 
std::string direct_bt::to_string (const MgmtLTKType type) noexcept
 
std::string direct_bt::to_string (const MgmtStatus opc) noexcept
 
std::string direct_bt::to_string (const SMPAuthReqs mask) noexcept
 
std::string direct_bt::to_String (const SMPIdentityResolvingKey &csrk) noexcept
 
std::string direct_bt::to_string (const SMPIOCapability ioc) noexcept
 
std::string direct_bt::to_string (const SMPKeyType mask) noexcept
 
std::string direct_bt::to_String (const SMPLongTermKey &ltk) noexcept
 
std::string direct_bt::to_string (const SMPOOBDataFlag v) noexcept
 
std::string direct_bt::to_string (const SMPPairingState state) noexcept
 
std::string direct_bt::to_String (const SMPPDUMsg &m) noexcept
 
std::string direct_bt::to_String (const SMPSignatureResolvingKey &csrk) noexcept
 
std::string direct_bt::toPassKeyString (const std::uint32_t passKey) noexcept
 Returns given passKey ranging [0..999999] as a canonical string, e.g. More...
 

Variables

constexpr const bool direct_bt::CONSIDER_HCI_CMD_FOR_SMP_STATE = true
 
constexpr const jau::fraction_i64 direct_bt::L2CAP_CLIENT_CONNECT_TIMEOUT_MS = 1_s
 Maximum time in fractions of seconds to wait for L2CAP client connection when adapter is in server mode. More...
 
constexpr const jau::nsize_t direct_bt::MAX_BACKGROUND_DISCOVERY_RETRY = 3
 Maximum number of enabling discovery in background in case of failure. More...
 
constexpr const bool direct_bt::SCAN_DISABLED_POST_CONNECT = false
 
constexpr const jau::fraction_i64 direct_bt::SMP_NEXT_EVENT_TIMEOUT_MS = 2_s
 Maximum time in fractions of seconds to wait for the next SMP event. More...
 
constexpr const bool direct_bt::SMP_SUPPORTED_BY_OS = true
 
constexpr const jau::fraction_i64 direct_bt::THREAD_SHUTDOWN_TIMEOUT_MS = 8_s
 Maximum time in fractions of seconds to wait for a thread shutdown. More...
 
constexpr const bool direct_bt::USE_LINUX_BT_SECURITY = false
 

Detailed Description

System level Direct-BT API types and functionality, see Direct-BT Overview.

Typedef Documentation

◆ BTGattHandlerRef

typedef std::shared_ptr< BTGattHandler > direct_bt::BTGattHandlerRef

Definition at line 61 of file BTGattChar.hpp.

◆ HCISMPMsgCallback

Definition at line 167 of file HCIHandler.hpp.

◆ HCISMPMsgCallbackList

Definition at line 168 of file HCIHandler.hpp.

◆ MgmtEventCallback

Definition at line 2918 of file MgmtTypes.hpp.

◆ MgmtEventCallbackList

Definition at line 2919 of file MgmtTypes.hpp.

◆ MgmtAdapterEventCallbackList

Definition at line 2959 of file MgmtTypes.hpp.

Enumeration Type Documentation

◆ 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 261 of file HCITypes.hpp.

◆ HCIPacketType

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

Definition at line 277 of file HCITypes.hpp.

◆ HCIOGF

enum class 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 290 of file HCITypes.hpp.

◆ HCIEventType

enum class 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 308 of file HCITypes.hpp.

◆ HCIMetaEventType

enum class 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_LTK_REQUEST 

LE_LTK_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 350 of file HCITypes.hpp.

◆ HCIOpcode

enum class 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_LTK_REPLY_ACK 
LE_LTK_REPLY_REJ 
LE_ADD_TO_RESOLV_LIST 
LE_DEL_FROM_RESOLV_LIST 
LE_CLEAR_RESOLV_LIST 
LE_READ_RESOLV_LIST_SIZE 
LE_READ_PEER_RESOLV_ADDR 

FIXME: May not be supported by Linux/BlueZ.

LE_READ_LOCAL_RESOLV_ADDR 

FIXME: May not be supported by Linux/BlueZ.

LE_SET_ADDR_RESOLV_ENABLE 
LE_READ_PHY 
LE_SET_DEFAULT_PHY 
LE_SET_PHY 
LE_SET_EXT_ADV_PARAMS 
LE_SET_EXT_ADV_DATA 
LE_SET_EXT_SCAN_RSP_DATA 
LE_SET_EXT_ADV_ENABLE 
LE_SET_EXT_SCAN_PARAMS 
LE_SET_EXT_SCAN_ENABLE 
LE_EXT_CREATE_CONN 

Definition at line 404 of file HCITypes.hpp.

◆ HCIOpcodeBit

enum class 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_LTK_REPLY_ACK 
LE_LTK_REPLY_REJ 
LE_ADD_TO_RESOLV_LIST 
LE_DEL_FROM_RESOLV_LIST 
LE_CLEAR_RESOLV_LIST 
LE_READ_RESOLV_LIST_SIZE 
LE_READ_PEER_RESOLV_ADDR 

FIXME: May not be supported by Linux/BlueZ.

LE_READ_LOCAL_RESOLV_ADDR 

FIXME: May not be supported by Linux/BlueZ.

LE_SET_ADDR_RESOLV_ENABLE 
LE_READ_PHY 
LE_SET_DEFAULT_PHY 
LE_SET_PHY 
LE_SET_EXT_ADV_PARAMS 
LE_SET_EXT_ADV_DATA 
LE_SET_EXT_SCAN_RSP_DATA 
LE_SET_EXT_ADV_ENABLE 
LE_SET_EXT_SCAN_PARAMS 
LE_SET_EXT_SCAN_ENABLE 
LE_EXT_CREATE_CONN 

Definition at line 462 of file HCITypes.hpp.

◆ MgmtConstU16

enum direct_bt::MgmtConstU16 : uint16_t
Enumerator
MGMT_INDEX_NONE 

Definition at line 72 of file MgmtTypes.hpp.

◆ MgmtSizeConst

Enumerator
MGMT_HEADER_SIZE 
MGMT_MAX_NAME_LENGTH 
MGMT_MAX_SHORT_NAME_LENGTH 

Definition at line 77 of file MgmtTypes.hpp.

◆ MgmtStatus

enum class 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 84 of file MgmtTypes.hpp.

◆ MgmtOption

enum direct_bt::MgmtOption : uint32_t
Enumerator
EXTERNAL_CONFIG 
PUBLIC_ADDRESS 

Definition at line 110 of file MgmtTypes.hpp.

◆ MgmtLinkKeyType

enum class 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 118 of file MgmtTypes.hpp.

◆ MgmtLTKType

enum class direct_bt::MgmtLTKType : uint8_t
strong

Long Term Key Types compatible with Mgmt's MgmtLongTermKey.

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 145 of file MgmtTypes.hpp.

◆ MgmtCSRKType

enum class direct_bt::MgmtCSRKType : uint8_t
strong

Signature Resolving Key Types compatible with Mgmt's MgmtSignatureResolvingKey.

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 165 of file MgmtTypes.hpp.

◆ SMPConstInt

enum class direct_bt::SMPConstInt : int32_t
strong

Definition at line 85 of file SMPTypes.hpp.

◆ SMPConstU16

enum class direct_bt::SMPConstU16 : uint16_t
strong
Enumerator
SMP_TIMEOUT_MS 

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

Definition at line 91 of file SMPTypes.hpp.

◆ SMPPairingState

enum class 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.

PASSKEY_NOTIFY 

Phase 2: Authentication (MITM) PASSKEY (produced by this responder adapter, acting as peripheral GATT server) and shall be displayed for the initiating remote device, see PairingMode::PASSKEY_ENTRY_ini.


User application shall display BTDevice::getResponderSMPPassKeyString().

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 107 of file SMPTypes.hpp.

◆ SMPIOCapability

enum class 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 209 of file SMPTypes.hpp.

◆ SMPOOBDataFlag

enum class 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 253 of file SMPTypes.hpp.

◆ SMPAuthReqs

enum class 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 283 of file SMPTypes.hpp.

◆ SMPKeyType

enum class 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 415 of file SMPTypes.hpp.

Function Documentation

◆ number() [1/13]

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

Definition at line 273 of file HCITypes.hpp.

◆ number() [2/13]

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

Definition at line 285 of file HCITypes.hpp.

◆ to_string() [1/15]

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

Definition at line 153 of file HCITypes.cpp.

◆ number() [3/13]

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

Definition at line 300 of file HCITypes.hpp.

◆ to_string() [2/15]

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

Definition at line 165 of file HCITypes.cpp.

◆ number() [4/13]

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

Definition at line 342 of file HCITypes.hpp.

◆ to_string() [3/15]

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

Definition at line 266 of file HCITypes.cpp.

◆ number() [5/13]

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

Definition at line 387 of file HCITypes.hpp.

◆ to_string() [4/15]

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

Definition at line 313 of file HCITypes.cpp.

◆ number() [6/13]

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

Definition at line 457 of file HCITypes.hpp.

◆ to_string() [5/15]

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

Definition at line 223 of file HCITypes.cpp.

◆ number() [7/13]

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

Definition at line 515 of file HCITypes.hpp.

◆ to_string() [6/15]

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

Definition at line 601 of file HCITypes.hpp.

Here is the caller graph for this function:

◆ to_string() [7/15]

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

Definition at line 84 of file MgmtTypes.cpp.

◆ to_HCIStatusCode()

HCIStatusCode direct_bt::to_HCIStatusCode ( const MgmtStatus  mstatus)
noexcept

Definition at line 648 of file MgmtTypes.cpp.

Here is the caller graph for this function:

◆ to_string() [8/15]

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

Definition at line 106 of file MgmtTypes.cpp.

◆ to_string() [9/15]

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

Definition at line 124 of file MgmtTypes.cpp.

◆ to_MgmtLTKType()

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

Definition at line 132 of file MgmtTypes.cpp.

Here is the caller graph for this function:

◆ to_string() [10/15]

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:

◆ number() [8/13]

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

Definition at line 87 of file SMPTypes.hpp.

◆ number() [9/13]

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

Definition at line 95 of file SMPTypes.hpp.

◆ to_string() [11/15]

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

Definition at line 64 of file SMPTypes.cpp.

◆ toPassKeyString()

std::string direct_bt::toPassKeyString ( const std::uint32_t  passKey)
noexcept

Returns given passKey ranging [0..999999] as a canonical string, e.g.

'012345'.

Definition at line 72 of file SMPTypes.cpp.

Here is the caller graph for this function:

◆ isSMPPairingActive()

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

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

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

Definition at line 168 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 178 of file SMPTypes.hpp.

Here is the caller graph for this function:

◆ isSMPPairingUserInteraction()

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

Returns true if the given SMPPairingState indicates expected user interaction, i.e.

one of the following states: SMPPairingState::PASSKEY_EXPECTED, SMPPairingState::NUMERIC_COMPARE_EXPECTED or SMPPairingState::OOB_EXPECTED

Definition at line 187 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 200 of file SMPTypes.hpp.

Here is the caller graph for this function:

◆ to_SMPIOCapability()

constexpr SMPIOCapability direct_bt::to_SMPIOCapability ( const uint8_t  v)
constexprnoexcept
Examples
dbt_peripheral00.cpp, dbt_repeater00.cpp, and dbt_scanner10.cpp.

Definition at line 223 of file SMPTypes.hpp.

Here is the caller graph for this function:

◆ number() [10/13]

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

Definition at line 229 of file SMPTypes.hpp.

◆ to_string() [12/15]

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

Definition at line 90 of file SMPTypes.cpp.

◆ hasSMPIOCapabilityAnyIO()

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

Definition at line 233 of file SMPTypes.hpp.

Here is the caller graph for this function:

◆ hasSMPIOCapabilityBinaryInput()

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

Definition at line 239 of file SMPTypes.hpp.

◆ hasSMPIOCapabilityFullInput()

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

Definition at line 244 of file SMPTypes.hpp.

◆ number() [11/13]

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

Definition at line 257 of file SMPTypes.hpp.

◆ to_string() [13/15]

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

Definition at line 98 of file SMPTypes.cpp.

◆ operator^() [1/5]

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

Definition at line 340 of file SMPTypes.hpp.

◆ operator|() [1/5]

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

Definition at line 343 of file SMPTypes.hpp.

◆ operator&() [1/5]

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

Definition at line 346 of file SMPTypes.hpp.

◆ operator==() [1/5]

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

Definition at line 349 of file SMPTypes.hpp.

◆ operator!=() [1/5]

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

Definition at line 352 of file SMPTypes.hpp.

◆ number() [12/13]

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

Definition at line 355 of file SMPTypes.hpp.

◆ is_set() [1/2]

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

Definition at line 358 of file SMPTypes.hpp.

◆ to_string() [14/15]

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

Definition at line 108 of file SMPTypes.cpp.

◆ 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 153 of file SMPTypes.cpp.

Here is the caller 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 243 of file SMPTypes.cpp.

◆ operator^() [2/5]

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

Definition at line 459 of file SMPTypes.hpp.

◆ operator^=() [1/4]

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

Definition at line 462 of file SMPTypes.hpp.

◆ operator|() [2/5]

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

Definition at line 466 of file SMPTypes.hpp.

◆ operator|=() [1/4]

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

Definition at line 469 of file SMPTypes.hpp.

◆ operator&() [2/5]

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

Definition at line 473 of file SMPTypes.hpp.

◆ operator&=() [1/4]

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

Definition at line 476 of file SMPTypes.hpp.

◆ operator==() [2/5]

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

Definition at line 480 of file SMPTypes.hpp.

◆ operator!=() [2/5]

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

Definition at line 483 of file SMPTypes.hpp.

◆ number() [13/13]

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

Definition at line 486 of file SMPTypes.hpp.

◆ is_set() [2/2]

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

Definition at line 489 of file SMPTypes.hpp.

◆ to_string() [15/15]

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

Definition at line 273 of file SMPTypes.cpp.

Here is the caller graph for this function:

◆ operator~()

constexpr SMPLongTermKey::Property direct_bt::operator~ ( const SMPLongTermKey::Property  rhs)
constexprnoexcept

Definition at line 553 of file SMPTypes.hpp.

◆ operator^() [3/5]

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

Definition at line 556 of file SMPTypes.hpp.

◆ operator^=() [2/4]

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

Definition at line 559 of file SMPTypes.hpp.

◆ operator|() [3/5]

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

Definition at line 563 of file SMPTypes.hpp.

◆ operator|=() [2/4]

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

Definition at line 566 of file SMPTypes.hpp.

◆ operator&() [3/5]

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

Definition at line 570 of file SMPTypes.hpp.

◆ operator&=() [2/4]

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

Definition at line 573 of file SMPTypes.hpp.

◆ operator==() [3/5]

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

Definition at line 577 of file SMPTypes.hpp.

◆ operator!=() [3/5]

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

Definition at line 580 of file SMPTypes.hpp.

◆ to_String() [1/4]

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

Definition at line 583 of file SMPTypes.hpp.

◆ operator^() [4/5]

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

Definition at line 637 of file SMPTypes.hpp.

◆ operator^=() [3/4]

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

Definition at line 640 of file SMPTypes.hpp.

◆ operator|() [4/5]

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

Definition at line 644 of file SMPTypes.hpp.

◆ operator|=() [3/4]

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

Definition at line 647 of file SMPTypes.hpp.

◆ operator&() [4/5]

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

Definition at line 651 of file SMPTypes.hpp.

◆ operator&=() [3/4]

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

Definition at line 654 of file SMPTypes.hpp.

◆ operator==() [4/5]

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

Definition at line 658 of file SMPTypes.hpp.

◆ operator!=() [4/5]

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

Definition at line 661 of file SMPTypes.hpp.

◆ to_String() [2/4]

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

Definition at line 664 of file SMPTypes.hpp.

◆ operator^() [5/5]

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

Definition at line 713 of file SMPTypes.hpp.

◆ operator^=() [4/4]

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

Definition at line 716 of file SMPTypes.hpp.

◆ operator|() [5/5]

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

Definition at line 720 of file SMPTypes.hpp.

◆ operator|=() [4/4]

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

Definition at line 723 of file SMPTypes.hpp.

◆ operator&() [5/5]

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

Definition at line 727 of file SMPTypes.hpp.

◆ operator&=() [4/4]

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

Definition at line 730 of file SMPTypes.hpp.

◆ operator==() [5/5]

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

Definition at line 734 of file SMPTypes.hpp.

◆ operator!=() [5/5]

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

Definition at line 737 of file SMPTypes.hpp.

◆ to_String() [3/4]

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

Definition at line 740 of file SMPTypes.hpp.

◆ to_String() [4/4]

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

Definition at line 1008 of file SMPTypes.hpp.

Variable Documentation

◆ SMP_SUPPORTED_BY_OS

constexpr const bool direct_bt::SMP_SUPPORTED_BY_OS = true
inlineconstexpr

Definition at line 58 of file DBTConst.hpp.

◆ USE_LINUX_BT_SECURITY

constexpr const bool direct_bt::USE_LINUX_BT_SECURITY = false
inlineconstexpr

Definition at line 60 of file DBTConst.hpp.

◆ CONSIDER_HCI_CMD_FOR_SMP_STATE

constexpr const bool direct_bt::CONSIDER_HCI_CMD_FOR_SMP_STATE = true
inlineconstexpr

Definition at line 62 of file DBTConst.hpp.

◆ SCAN_DISABLED_POST_CONNECT

constexpr const bool direct_bt::SCAN_DISABLED_POST_CONNECT = false
inlineconstexpr

Definition at line 64 of file DBTConst.hpp.

◆ THREAD_SHUTDOWN_TIMEOUT_MS

constexpr const jau::fraction_i64 direct_bt::THREAD_SHUTDOWN_TIMEOUT_MS = 8_s
inlineconstexpr

Maximum time in fractions of seconds to wait for a thread shutdown.

Usually used for socket reader threads, like used within HCIHandler.

Examples
dbt_peripheral00.cpp.

Definition at line 73 of file DBTConst.hpp.

◆ SMP_NEXT_EVENT_TIMEOUT_MS

constexpr const jau::fraction_i64 direct_bt::SMP_NEXT_EVENT_TIMEOUT_MS = 2_s
inlineconstexpr

Maximum time in fractions of seconds to wait for the next SMP event.

Definition at line 78 of file DBTConst.hpp.

◆ L2CAP_CLIENT_CONNECT_TIMEOUT_MS

constexpr const jau::fraction_i64 direct_bt::L2CAP_CLIENT_CONNECT_TIMEOUT_MS = 1_s
inlineconstexpr

Maximum time in fractions of seconds to wait for L2CAP client connection when adapter is in server mode.

Definition at line 83 of file DBTConst.hpp.

◆ MAX_BACKGROUND_DISCOVERY_RETRY

constexpr const jau::nsize_t direct_bt::MAX_BACKGROUND_DISCOVERY_RETRY = 3
inlineconstexpr

Maximum number of enabling discovery in background in case of failure.

Definition at line 88 of file DBTConst.hpp.