Direct-BT v3.3.0-1-gc2d430c
Direct-BT - Direct Bluetooth Programming.
|
Namespaces | |
namespace | BTDeviceRegistry |
Application toolkit providing BT device registration of processed and awaited devices. | |
namespace | BTSecurityRegistry |
Application toolkit providing BT security setup and its device association on a pattern matching basis, i.e. | |
namespace | jni |
Author: Sven Gothel sgoth.nosp@m.el@j.nosp@m.ausof.nosp@m.t.co.nosp@m.m Copyright (c) 2020 Gothel Software e.K. | |
Classes | |
class | AdapterInfo |
class | AdapterStatusListener |
BTAdapter status listener for remote BTDevice discovery events: Added, updated and removed; as well as for certain BTAdapter events. More... | |
class | AttElementList |
List of elements. More... | |
class | AttErrorRsp |
BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.1.1 ATT_ERROR_RSP. More... | |
class | AttException |
class | 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 | AttExeWriteReq |
BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.6.3 ATT_EXECUTE_WRITE_REQ. More... | |
class | AttExeWriteRsp |
BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.6.4 ATT_EXECUTE_WRITE_RSP. More... | |
class | AttFindByTypeValueReq |
BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.3.3 ATT_FIND_BY_TYPE_VALUE_REQ. More... | |
class | AttFindByTypeValueRsp |
BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.3.4 ATT_FIND_BY_TYPE_VALUE_RSP. More... | |
class | AttFindInfoReq |
BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.3.1 ATT_FIND_INFORMATION_REQ. More... | |
class | AttFindInfoRsp |
BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.3.2 ATT_FIND_INFORMATION_RSP. 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 | 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 | AttReadBlobReq |
BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.4.5 ATT_BLOB_READ_REQ. More... | |
class | AttReadByGroupTypeRsp |
BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.4.10 ATT_READ_BY_GROUP_TYPE_RSP. More... | |
class | AttReadByNTypeReq |
BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.4.1 ATT_READ_BY_TYPE_REQ. More... | |
class | AttReadByTypeRsp |
BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.4.2 ATT_READ_BY_TYPE_RSP. More... | |
class | 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 | AttReadReq |
BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.4.3 ATT_READ_REQ. More... | |
class | AttValueException |
class | AttWriteCmd |
BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.5.3 ATT_WRITE_CMD. More... | |
class | AttWriteReq |
BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.5.1 ATT_WRITE_REQ. More... | |
class | AttWriteRsp |
BT Core Spec v5.2: Vol 3, Part F ATT: 3.4.5.2 ATT_WRITE_RSP. More... | |
class | BDAddressAndType |
Unique Bluetooth EUI48 address and BDAddressType tuple. More... | |
class | BTAdapter |
BTAdapter represents one local Bluetooth Controller. More... | |
class | BTDevice |
BTDevice represents one remote Bluetooth device. More... | |
class | BTException |
class | BTGattChar |
Representing a Gatt Characteristic object from the GATTRole::Client perspective. More... | |
class | BTGattCharListener |
BTGattChar event listener for notification and indication events. More... | |
class | BTGattCmd |
Class maps a GATT command and optionally its asynchronous response to a synchronous atomic operation. More... | |
class | BTGattDesc |
Representing a Gatt Characteristic Descriptor object from the GATTRole::Client perspective. 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 Gatt Service object from the GATTRole::Client perspective. More... | |
class | BTManager |
A thread safe singleton handler of the BTAdapter manager, e.g. 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 | DBGattChar |
Representing a Gatt Characteristic object from the GATTRole::Server perspective. More... | |
class | DBGattDesc |
Representing a Gatt Characteristic Descriptor object from the GATTRole::Server perspective. More... | |
class | DBGattServer |
Representing a complete list of Gatt Service objects from the GATTRole::Server perspective, i.e. More... | |
class | DBGattService |
Representing a Gatt Service object from the GATTRole::Server perspective. More... | |
class | EInfoReport |
Collection of 'Extended Advertising Data' (EAD), 'Advertising Data' (AD) or 'Extended Inquiry Response' (EIR) information. 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... | |
class | HCILEEnableEncryptionCmd |
BT Core Spec v5.2: Vol 4, Part E HCI: 7.8.24 LE Enable Encryption command. More... | |
class | HCILELTKReplyAckCmd |
BT Core Spec v5.2: Vol 4, Part E HCI: 7.8.25 LE Long Term Key Request Reply command. More... | |
class | HCILELTKReplyRejCmd |
BT Core Spec v5.2: Vol 4, Part E HCI: 7.8.26 LE Long Term Key Request Negative Reply command. More... | |
class | HCILELTKReqEvent |
BT Core Spec v5.2: Vol 4, Part E HCI: 7.7.65.5 LE Long Term Key Request event. 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 | HCIStatusCodeCategory |
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 | L2CAPClient |
L2CAP read/write communication channel to remote device. More... | |
class | L2CAPComm |
L2CAP client/server socket abstract base class to listen for connecting remote devices. More... | |
class | L2CAPEnv |
L2CAP Singleton runtime environment properties. More... | |
class | L2CAPServer |
L2CAP server socket to listen for connecting remote devices. 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... | |
struct | MgmtDefaultParam |
Used in MgmtReadDefaultSysParamCmd and MgmtSetDefaultConnParamCmd. 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 | MgmtEvtHCILEEnableEncryptionCmd |
BT Core Spec v5.2: Vol 4, Part E HCI: 7.8.24 LE Enable Encryption command. More... | |
class | MgmtEvtHCILELTKReplyAckCmd |
BT Core Spec v5.2: Vol 4, Part E HCI: 7.8.25 LE Long Term Key Request Reply command. More... | |
class | MgmtEvtHCILELTKReplyRejCmd |
BT Core Spec v5.2: Vol 4, Part E HCI: 7.8.26 LE Long Term Key Request Negative Reply command. More... | |
class | MgmtEvtHCILELTKReq |
BT Core Spec v5.2: Vol 4, Part E HCI: 7.7.65.5 LE Long Term Key Request event. More... | |
class | MgmtEvtHCILEPhyUpdateComplete |
mgmt_addr_info { EUI48, uint8_t type }, uint8_t Tx (8 Octets) uint8_t Rx (8 Octets) More... | |
class | MgmtEvtHCILERemoteFeatures |
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, MgmtLongTermKey key More... | |
class | MgmtEvtNewSettings |
uint32_t settings More... | |
class | MgmtEvtNewSignatureResolvingKey |
uint8_t store_hint, EUI48 random_address; MgmtSignatureResolvingKey key More... | |
class | MgmtEvtPairDeviceComplete |
mgmt_addr_info { EUI48, uint8_t type }, MgmtStatus (1 octet) More... | |
class | MgmtEvtPasskeyNotify |
mgmt_addr_info { EUI48, uint8_t type }, uint32_t passkey uint8_t entered 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... | |
class | MgmtIdentityResolveKeyCmd |
uint16_t key_count MgmtLongTermKey keys[key_count] More... | |
struct | MgmtIdentityResolvingKey |
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 | MgmtLongTermKey |
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 | MgmtReadDefaultSysParamCmd |
class | MgmtRemoveDeviceFromWhitelistCmd |
mgmt_addr_info { EUI48, uint8_t type }, More... | |
class | MgmtSetDefaultConnParamCmd |
MgmtDefaultParamU16 param1, MgmtDefaultParamU16 param2,. 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... | |
class | 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 | MgmtSignatureResolvingKey |
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 | 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... | |
struct | SMPIdentityResolvingKey |
SMP Identity Resolving Key, used for platform agnostic persistence. More... | |
class | SMPKeyBin |
Storage for SMP keys including required connection parameter per local adapter and remote device. More... | |
struct | SMPLinkKey |
Local SMP Link Key, used for platform agnostic persistence, mapping to platform specific MgmtLoadLinkKeyCmd and MgmtEvtNewLinkKey. More... | |
struct | SMPLongTermKey |
SMP Long Term Key, 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 | SMPSignatureResolvingKey |
SMP Signature Resolving Key, used for platform agnostic persistence. More... | |
class | SMPSignInfoMsg |
Vol 3, Part H: 3.6.6 Signing Information message. More... | |
class | SMPValueException |
Functions | |
static int | bt_encrypt_le (const uint8_t key[16], const uint8_t plaintext[16], uint8_t enc_data[16]) |
constexpr ScanType | changeScanType (const ScanType current, const ScanType changeType, const bool changeEnable) noexcept |
constexpr void | clrAdapterSettingMaskBit (AdapterSetting &mask, const AdapterSetting bit) noexcept |
std::string | GattCharacteristicPropertyToString (const GattCharacteristicProperty v) noexcept |
std::string | GattCharacteristicTypeToString (const GattCharacteristicType v) noexcept |
std::string | GattNameToString (const jau::TROOctets &v) noexcept |
Converts a GATT Name (not null-terminated) UTF8 to a null-terminated C++ string. More... | |
std::string | GattRequirementSpecToString (const GattRequirementSpec v) noexcept |
std::string | GattServiceTypeToString (const GattServiceType v) noexcept |
constexpr AdapterSetting | getAdapterSettingMaskDiff (const AdapterSetting setting_a, const AdapterSetting setting_b) noexcept |
BTMode | getAdapterSettingsBTMode (const AdapterSetting settingMask) noexcept |
Maps the given AdapterSetting to BTMode . More... | |
constexpr uint16_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 int32_t | getHCIMaxConnLatency (const int16_t supervision_timeout_ms, const int16_t conn_interval_max_ms) |
Supervisor timeout shall be in the range [0 - ((supervision_timeout_ms / (conn_interval_max_ms*2)) - 1)] . More... | |
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 bool | hasSMPIOCapabilityAnyIO (const SMPIOCapability ioc) noexcept |
constexpr bool | hasSMPIOCapabilityBinaryInput (const SMPIOCapability ioc) noexcept |
constexpr bool | hasSMPIOCapabilityFullInput (const SMPIOCapability ioc) noexcept |
constexpr bool | hasSMPPairingFinished (const SMPPairingState state) noexcept |
Returns true if the given SMPPairingState indicates a finished pairing process, i.e. More... | |
constexpr bool | is_set (const EAD_Event_Type mask, const EAD_Event_Type bit) noexcept |
constexpr bool | is_set (const EIRDataType mask, const EIRDataType bit) noexcept |
constexpr bool | is_set (const LE_Features mask, const LE_Features bit) noexcept |
constexpr bool | is_set (const LE_PHYs mask, const LE_PHYs bit) noexcept |
constexpr bool | is_set (const ScanType current, const ScanType testType) noexcept |
constexpr bool | is_set (const SMPAuthReqs mask, const SMPAuthReqs bit) noexcept |
constexpr bool | is_set (const SMPKeyType mask, const SMPKeyType bit) noexcept |
constexpr bool | isAdapterSettingBitSet (const AdapterSetting mask, const AdapterSetting bit) noexcept |
constexpr bool | isSMPPairingActive (const SMPPairingState state) noexcept |
Returns true if the given SMPPairingState indicates an active 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 bool | isSMPPairingUserInteraction (const SMPPairingState state) noexcept |
Returns true if the given SMPPairingState indicates expected user interaction, i.e. More... | |
std::error_code | make_error_code (HCIStatusCode e) noexcept |
jau::POctets | make_gvalue (const char *name) |
Convenience jau::POctets ctor function to create DBGattChar or DBGattDesc values. More... | |
jau::POctets | make_gvalue (const char *name, const jau::nsize_t capacity) |
Convenience jau::POctets ctor function to create DBGattChar or DBGattDesc values. More... | |
jau::POctets | make_gvalue (const jau::nsize_t capacity, const jau::nsize_t size) |
Convenience jau::POctets ctor function to create DBGattChar or DBGattDesc values. More... | |
jau::POctets | make_gvalue (const jau::nsize_t capacity, const jau::nsize_t size, std::initializer_list< uint8_t > sourcelist) |
Convenience jau::POctets ctor function to create DBGattChar or DBGattDesc values. More... | |
jau::POctets | make_gvalue (const uint16_t v) |
Convenience jau::POctets ctor function to create DBGattChar or DBGattDesc values. More... | |
jau::POctets | make_gvalue (std::initializer_list< uint8_t > sourcelist) |
Convenience jau::POctets ctor function to create DBGattChar or DBGattDesc values. More... | |
constexpr uint8_t | number (const AD_PDU_Type rhs) noexcept |
constexpr uint16_t | number (const AppearanceCat rhs) noexcept |
constexpr uint8_t | number (const BDAddressType rhs) noexcept |
constexpr uint8_t | number (const BLERandomAddressType rhs) noexcept |
constexpr uint8_t | number (const BTGattChar::PropertyBitVal rhs) noexcept |
constexpr uint8_t | number (const BTMode rhs) noexcept |
constexpr uint8_t | number (const BTRole rhs) noexcept |
constexpr uint8_t | number (const BTSecurityLevel rhs) noexcept |
constexpr uint8_t | number (const DiscoveryPolicy rhs) noexcept |
constexpr uint16_t | number (const EAD_Event_Type rhs) noexcept |
constexpr uint32_t | number (const EIRDataType rhs) noexcept |
constexpr uint8_t | number (const GAP_T rhs) noexcept |
constexpr uint8_t | number (const GAPFlags rhs) noexcept |
constexpr uint8_t | number (const GATTRole rhs) noexcept |
constexpr int32_t | number (const HCIConstInt rhs) noexcept |
constexpr jau::nsize_t | number (const HCIConstSizeT rhs) noexcept |
constexpr uint16_t | number (const HCIConstU16 rhs) noexcept |
constexpr uint8_t | number (const HCIEventType rhs) noexcept |
constexpr uint8_t | number (const HCILEOwnAddressType rhs) noexcept |
constexpr uint8_t | number (const HCILEPeerAddressType rhs) noexcept |
constexpr uint8_t | number (const HCIMetaEventType rhs) noexcept |
constexpr uint8_t | number (const HCIOGF rhs) noexcept |
constexpr uint16_t | number (const HCIOpcode rhs) noexcept |
constexpr uint8_t | number (const HCIOpcodeBit rhs) noexcept |
constexpr uint8_t | number (const HCIPacketType rhs) noexcept |
constexpr uint8_t | number (const HCIStatusCode rhs) noexcept |
constexpr uint8_t | number (const HCIWhitelistConnectType rhs) noexcept |
constexpr uint16_t | number (const L2CAP_CID rhs) noexcept |
constexpr uint16_t | number (const L2CAP_PSM rhs) noexcept |
constexpr uint64_t | number (const LE_Features rhs) noexcept |
constexpr uint8_t | number (const LE_PHYs rhs) noexcept |
constexpr uint8_t | number (const PairingMode rhs) noexcept |
constexpr uint8_t | number (const ScanType rhs) noexcept |
constexpr uint8_t | number (const SMPAuthReqs rhs) noexcept |
constexpr int32_t | number (const SMPConstInt rhs) noexcept |
constexpr uint16_t | number (const SMPConstU16 rhs) noexcept |
constexpr uint8_t | number (const SMPIOCapability rhs) noexcept |
constexpr uint8_t | number (const SMPKeyType rhs) noexcept |
constexpr uint8_t | number (const SMPOOBDataFlag rhs) noexcept |
constexpr BTRole | operator! (const BTRole rhs) noexcept |
constexpr bool | operator!= (const AdapterSetting lhs, const AdapterSetting rhs) noexcept |
bool | operator!= (const BDAddressAndType &lhs, const BDAddressAndType &rhs) noexcept |
bool | operator!= (const BTAdapter &lhs, const BTAdapter &rhs) noexcept |
bool | operator!= (const BTDevice &lhs, const BTDevice &rhs) noexcept |
bool | operator!= (const BTGattChar &lhs, const BTGattChar &rhs) noexcept |
constexpr bool | operator!= (const BTGattChar::PropertyBitVal lhs, const BTGattChar::PropertyBitVal rhs) noexcept |
bool | operator!= (const BTGattDesc &lhs, const BTGattDesc &rhs) noexcept |
bool | operator!= (const BTGattService &lhs, const BTGattService &rhs) noexcept |
constexpr bool | operator!= (const BTSecurityLevel lhs, const BTSecurityLevel rhs) noexcept |
bool | operator!= (const DBGattChar &lhs, const DBGattChar &rhs) noexcept |
bool | operator!= (const DBGattDesc &lhs, const DBGattDesc &rhs) noexcept |
bool | operator!= (const DBGattService &lhs, const DBGattService &rhs) noexcept |
constexpr bool | operator!= (const EAD_Event_Type lhs, const EAD_Event_Type rhs) noexcept |
constexpr bool | operator!= (const EIRDataType lhs, const EIRDataType rhs) noexcept |
constexpr bool | operator!= (const GAPFlags lhs, const GAPFlags rhs) noexcept |
constexpr bool | operator!= (const LE_Features lhs, const LE_Features rhs) noexcept |
constexpr bool | operator!= (const LE_PHYs lhs, const LE_PHYs rhs) noexcept |
constexpr bool | operator!= (const ManufactureSpecificData &lhs, const ManufactureSpecificData &rhs) noexcept |
constexpr bool | operator!= (const ScanType lhs, const ScanType rhs) noexcept |
constexpr bool | operator!= (const SMPAuthReqs lhs, const SMPAuthReqs rhs) noexcept |
constexpr bool | operator!= (const SMPIdentityResolvingKey::Property lhs, const SMPIdentityResolvingKey::Property rhs) noexcept |
constexpr bool | operator!= (const SMPKeyType lhs, const SMPKeyType rhs) noexcept |
constexpr bool | operator!= (const SMPLongTermKey::Property lhs, const SMPLongTermKey::Property rhs) noexcept |
constexpr bool | operator!= (const SMPSignatureResolvingKey::Property lhs, const SMPSignatureResolvingKey::Property rhs) noexcept |
constexpr AdapterSetting | operator& (const AdapterSetting lhs, const AdapterSetting rhs) noexcept |
constexpr BTGattChar::PropertyBitVal | operator& (const BTGattChar::PropertyBitVal lhs, const BTGattChar::PropertyBitVal rhs) noexcept |
constexpr EAD_Event_Type | operator& (const EAD_Event_Type lhs, const EAD_Event_Type rhs) noexcept |
constexpr EIRDataType | operator& (const EIRDataType lhs, const EIRDataType rhs) noexcept |
constexpr GAPFlags | operator& (const GAPFlags lhs, const GAPFlags rhs) noexcept |
constexpr LE_Features | operator& (const LE_Features lhs, const LE_Features rhs) noexcept |
constexpr LE_PHYs | operator& (const LE_PHYs lhs, const LE_PHYs rhs) noexcept |
constexpr ScanType | operator& (const ScanType lhs, const ScanType rhs) noexcept |
constexpr SMPAuthReqs | operator& (const SMPAuthReqs lhs, const SMPAuthReqs rhs) noexcept |
constexpr SMPIdentityResolvingKey::Property | operator& (const SMPIdentityResolvingKey::Property lhs, const SMPIdentityResolvingKey::Property rhs) noexcept |
constexpr SMPKeyType | operator& (const SMPKeyType lhs, const SMPKeyType rhs) noexcept |
constexpr SMPLongTermKey::Property | operator& (const SMPLongTermKey::Property lhs, const SMPLongTermKey::Property rhs) noexcept |
constexpr SMPSignatureResolvingKey::Property | operator& (const SMPSignatureResolvingKey::Property lhs, const SMPSignatureResolvingKey::Property rhs) noexcept |
constexpr SMPIdentityResolvingKey::Property & | operator&= (SMPIdentityResolvingKey::Property &store, const SMPIdentityResolvingKey::Property &rhs) noexcept |
constexpr SMPKeyType & | operator&= (SMPKeyType &store, const SMPKeyType &rhs) noexcept |
constexpr SMPLongTermKey::Property & | operator&= (SMPLongTermKey::Property &store, const SMPLongTermKey::Property &rhs) noexcept |
constexpr SMPSignatureResolvingKey::Property & | operator&= (SMPSignatureResolvingKey::Property &store, const SMPSignatureResolvingKey::Property &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 AdapterSetting lhs, const AdapterSetting rhs) noexcept |
bool | operator== (const BDAddressAndType &lhs, const BDAddressAndType &rhs) noexcept |
bool | operator== (const BTAdapter &lhs, const BTAdapter &rhs) noexcept |
bool | operator== (const BTDevice &lhs, const BTDevice &rhs) noexcept |
bool | operator== (const BTGattChar &lhs, const BTGattChar &rhs) noexcept |
constexpr bool | operator== (const BTGattChar::PropertyBitVal lhs, const BTGattChar::PropertyBitVal rhs) noexcept |
bool | operator== (const BTGattDesc &lhs, const BTGattDesc &rhs) noexcept |
bool | operator== (const BTGattService &lhs, const BTGattService &rhs) noexcept |
constexpr bool | operator== (const BTSecurityLevel lhs, const BTSecurityLevel rhs) noexcept |
bool | operator== (const DBGattChar &lhs, const DBGattChar &rhs) noexcept |
bool | operator== (const DBGattDesc &lhs, const DBGattDesc &rhs) noexcept |
bool | operator== (const DBGattService &lhs, const DBGattService &rhs) noexcept |
constexpr bool | operator== (const EAD_Event_Type lhs, const EAD_Event_Type rhs) noexcept |
constexpr bool | operator== (const EIRDataType lhs, const EIRDataType rhs) noexcept |
constexpr bool | operator== (const GAPFlags lhs, const GAPFlags rhs) noexcept |
constexpr bool | operator== (const LE_Features lhs, const LE_Features rhs) noexcept |
constexpr bool | operator== (const LE_PHYs lhs, const LE_PHYs rhs) noexcept |
constexpr bool | operator== (const ManufactureSpecificData &lhs, const ManufactureSpecificData &rhs) noexcept |
constexpr bool | operator== (const ScanType lhs, const ScanType rhs) noexcept |
constexpr bool | operator== (const SMPAuthReqs lhs, const SMPAuthReqs rhs) noexcept |
constexpr bool | operator== (const SMPIdentityResolvingKey::Property lhs, const SMPIdentityResolvingKey::Property rhs) noexcept |
constexpr bool | operator== (const SMPKeyType lhs, const SMPKeyType rhs) noexcept |
constexpr bool | operator== (const SMPLongTermKey::Property lhs, const SMPLongTermKey::Property rhs) noexcept |
constexpr bool | operator== (const SMPSignatureResolvingKey::Property lhs, const SMPSignatureResolvingKey::Property rhs) noexcept |
constexpr bool | operator> (const BTSecurityLevel lhs, const BTSecurityLevel rhs) noexcept |
constexpr bool | operator>= (const BTSecurityLevel lhs, const BTSecurityLevel rhs) noexcept |
constexpr AdapterSetting | operator^ (const AdapterSetting lhs, const AdapterSetting rhs) noexcept |
constexpr LE_Features | operator^ (const LE_Features lhs, const LE_Features rhs) noexcept |
constexpr LE_PHYs | operator^ (const LE_PHYs lhs, const LE_PHYs rhs) noexcept |
constexpr ScanType | operator^ (const ScanType lhs, const ScanType rhs) noexcept |
constexpr SMPAuthReqs | operator^ (const SMPAuthReqs lhs, const SMPAuthReqs rhs) noexcept |
constexpr SMPIdentityResolvingKey::Property | operator^ (const SMPIdentityResolvingKey::Property lhs, const SMPIdentityResolvingKey::Property rhs) noexcept |
constexpr SMPKeyType | operator^ (const SMPKeyType lhs, const SMPKeyType rhs) noexcept |
constexpr SMPLongTermKey::Property | operator^ (const SMPLongTermKey::Property lhs, const SMPLongTermKey::Property rhs) noexcept |
constexpr SMPSignatureResolvingKey::Property | operator^ (const SMPSignatureResolvingKey::Property lhs, const SMPSignatureResolvingKey::Property rhs) noexcept |
constexpr SMPIdentityResolvingKey::Property & | operator^= (SMPIdentityResolvingKey::Property &store, const SMPIdentityResolvingKey::Property &rhs) noexcept |
constexpr SMPKeyType & | operator^= (SMPKeyType &store, const SMPKeyType &rhs) noexcept |
constexpr SMPLongTermKey::Property & | operator^= (SMPLongTermKey::Property &store, const SMPLongTermKey::Property &rhs) noexcept |
constexpr SMPSignatureResolvingKey::Property & | operator^= (SMPSignatureResolvingKey::Property &store, const SMPSignatureResolvingKey::Property &rhs) noexcept |
constexpr AdapterSetting | operator| (const AdapterSetting lhs, const AdapterSetting rhs) noexcept |
constexpr BTGattChar::PropertyBitVal | operator| (const BTGattChar::PropertyBitVal lhs, const BTGattChar::PropertyBitVal rhs) noexcept |
constexpr EAD_Event_Type | operator| (const EAD_Event_Type lhs, const EAD_Event_Type rhs) noexcept |
constexpr EIRDataType | operator| (const EIRDataType lhs, const EIRDataType rhs) noexcept |
constexpr GAPFlags | operator| (const GAPFlags lhs, const GAPFlags rhs) noexcept |
constexpr LE_Features | operator| (const LE_Features lhs, const LE_Features rhs) noexcept |
constexpr LE_PHYs | operator| (const LE_PHYs lhs, const LE_PHYs rhs) noexcept |
constexpr ScanType | operator| (const ScanType lhs, const ScanType rhs) noexcept |
constexpr SMPAuthReqs | operator| (const SMPAuthReqs lhs, const SMPAuthReqs rhs) noexcept |
constexpr SMPIdentityResolvingKey::Property | operator| (const SMPIdentityResolvingKey::Property lhs, const SMPIdentityResolvingKey::Property rhs) noexcept |
constexpr SMPKeyType | operator| (const SMPKeyType lhs, const SMPKeyType rhs) noexcept |
constexpr SMPLongTermKey::Property | operator| (const SMPLongTermKey::Property lhs, const SMPLongTermKey::Property rhs) noexcept |
constexpr SMPSignatureResolvingKey::Property | operator| (const SMPSignatureResolvingKey::Property lhs, const SMPSignatureResolvingKey::Property rhs) noexcept |
constexpr SMPIdentityResolvingKey::Property & | operator|= (SMPIdentityResolvingKey::Property &store, const SMPIdentityResolvingKey::Property &rhs) noexcept |
constexpr SMPKeyType & | operator|= (SMPKeyType &store, const SMPKeyType &rhs) noexcept |
constexpr SMPLongTermKey::Property & | operator|= (SMPLongTermKey::Property &store, const SMPLongTermKey::Property &rhs) noexcept |
constexpr SMPSignatureResolvingKey::Property & | operator|= (SMPSignatureResolvingKey::Property &store, const SMPSignatureResolvingKey::Property &rhs) noexcept |
constexpr AdapterSetting | operator~ (const AdapterSetting rhs) noexcept |
constexpr EIRDataType | operator~ (const EIRDataType rhs) noexcept |
constexpr ScanType | operator~ (const ScanType val) noexcept |
constexpr SMPLongTermKey::Property | operator~ (const SMPLongTermKey::Property rhs) noexcept |
constexpr void | set (EAD_Event_Type &mask, const EAD_Event_Type bit) noexcept |
constexpr void | set (EIRDataType &mask, const EIRDataType bit) noexcept |
constexpr void | setAdapterSettingMaskBit (AdapterSetting &mask, const AdapterSetting bit) noexcept |
static int | smp_crypto_ah (const uint8_t irk[16], const uint8_t r[3], uint8_t out[3]) |
bool | smp_crypto_f5 (const jau::uint256dp_t w, const jau::uint128dp_t n1, const jau::uint128dp_t n2, const BDAddressAndType &a1, const BDAddressAndType &a2, jau::uint128dp_t &mackey, jau::uint128dp_t <k) noexcept |
bool | smp_crypto_rpa_irk_matches (const jau::uint128dp_t irk, const EUI48 &rpa) noexcept |
Returns true if the given IRK matches the given random private address (RPA). More... | |
static void | sys_mem_swap (void *buf, size_t length) |
Swap buffer content. More... | |
static void | sys_memcpy_swap (void *dst, const void *src, size_t length) |
Swap one buffer content into another. More... | |
BDAddressType | to_BDAddressType (const HCILEOwnAddressType hciOwnAddrType) noexcept |
BDAddressType | to_BDAddressType (const HCILEPeerAddressType hciPeerAddrType) noexcept |
constexpr BDAddressType | to_BDAddressType (const uint8_t v) noexcept |
BTMode | to_BTMode (const std::string &value) noexcept |
Maps the specified name to a constant of BTMode. More... | |
constexpr BTSecurityLevel | to_BTSecurityLevel (const uint8_t v) noexcept |
constexpr DiscoveryPolicy | to_DiscoveryPolicy (const uint8_t v) noexcept |
HCILEOwnAddressType | to_HCILEOwnAddressType (const BDAddressType addrType, bool resolvable) noexcept |
HCIStatusCode | to_HCIStatusCode (const MgmtStatus mstatus) noexcept |
constexpr L2CAP_CID | to_L2CAP_CID (const uint16_t v) noexcept |
constexpr L2CAP_PSM | to_L2CAP_PSM (const uint16_t v) noexcept |
MgmtLTKType | to_MgmtLTKType (const SMPLongTermKey::Property ltk_prop_mask) noexcept |
ScanType | to_ScanType (BTMode btMode) |
constexpr SMPIOCapability | to_SMPIOCapability (const uint8_t v) noexcept |
std::string | to_string (const AD_PDU_Type v) noexcept |
std::string | to_string (const AdapterInfo &a) noexcept |
std::string | to_string (const AdapterSetting settingBitMask) noexcept |
std::string | to_string (const AppearanceCat v) noexcept |
std::string | to_string (const BDAddressAndType &a) noexcept |
std::string | to_string (const BDAddressType type) noexcept |
std::string | to_string (const BLERandomAddressType type) noexcept |
std::string | to_string (const BTGattChar::PropertyBitVal mask) noexcept |
std::string | to_string (const BTMode v) noexcept |
std::string | to_string (const BTObject &o) noexcept |
std::string | to_string (const BTRole v) noexcept |
std::string | to_string (const BTSecurityLevel v) noexcept |
std::string | to_string (const DBGattServer::Mode m) noexcept |
std::string | to_string (const DiscoveryPolicy v) noexcept |
std::string | to_string (const EAD_Event_Type v) noexcept |
std::string | to_string (const EInfoReport &eir, const bool includeServices=true) noexcept |
std::string | to_string (const EIRDataType mask) noexcept |
std::string | to_string (const GAPFlags v) noexcept |
std::string | to_string (const GATTRole v) noexcept |
std::string | to_string (const HCIEventType op) noexcept |
std::string | to_string (const HCILEOwnAddressType type) noexcept |
std::string | to_string (const HCILEPeerAddressType type) noexcept |
std::string | to_string (const HCIMetaEventType op) noexcept |
std::string | to_string (const HCIOGF op) noexcept |
std::string | to_string (const HCIOpcode op) noexcept |
std::string | to_string (const HCIPacket &p) noexcept |
std::string | to_string (const HCIPacketType op) noexcept |
std::string | to_string (const HCIStatusCode ec) noexcept |
std::string | to_string (const L2CAP_CID v) noexcept |
std::string | to_string (const L2CAP_PSM v) noexcept |
std::string | to_string (const LE_Features mask) noexcept |
std::string | to_string (const LE_PHYs mask) noexcept |
std::string | to_string (const MgmtCSRKType type) noexcept |
std::string | to_string (const MgmtLinkKeyType type) noexcept |
std::string | to_string (const MgmtLTKType type) noexcept |
std::string | to_string (const MgmtStatus opc) noexcept |
std::string | to_string (const PairingMode v) noexcept |
std::string | to_string (const ScanType v) noexcept |
std::string | to_string (const SMPAuthReqs mask) noexcept |
std::string | to_String (const SMPIdentityResolvingKey &csrk) noexcept |
std::string | to_string (const SMPIOCapability ioc) noexcept |
std::string | to_string (const SMPKeyType mask) noexcept |
std::string | to_String (const SMPLongTermKey <k) noexcept |
std::string | to_string (const SMPOOBDataFlag v) noexcept |
std::string | to_string (const SMPPairingState state) noexcept |
std::string | to_String (const SMPPDUMsg &m) noexcept |
std::string | to_String (const SMPSignatureResolvingKey &csrk) noexcept |
std::string | to_string (EInfoReport::Source source) noexcept |
std::string | toPassKeyString (const std::uint32_t passKey) noexcept |
Returns given passKey ranging [0..999999] as a canonical string, e.g. More... | |
Variables | |
constexpr const bool | CONSIDER_HCI_CMD_FOR_SMP_STATE = true |
constexpr const EIRDataType | EIR_DATA_TYPE_MASK |
Explicit mask to erase all implicit set EIRDataType fields: EVT_TYPE, EXT_EVT_TYPE, BDADDR_TYPE, BDADDR and RSSI. More... | |
constexpr const jau::fraction_i64 | 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 | MAX_BACKGROUND_DISCOVERY_RETRY = 3 |
Maximum number of enabling discovery in background in case of failure. More... | |
constexpr const bool | SCAN_DISABLED_POST_CONNECT = false |
constexpr const jau::fraction_i64 | SMP_NEXT_EVENT_TIMEOUT_MS = 2_s |
Maximum time in fractions of seconds to wait for the next SMP event. More... | |
constexpr const bool | SMP_SUPPORTED_BY_OS = true |
constexpr const jau::fraction_i64 | THREAD_SHUTDOWN_TIMEOUT_MS = 8_s |
Maximum time in fractions of seconds to wait for a thread shutdown. More... | |
constexpr const bool | USE_LINUX_BT_SECURITY = false |
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.
BTManager utilizes the BlueZ Kernel Manager Control Channel for adapter configuration and adapter add/removal notifications (ChangedAdapterSetFunc()).
To support other platforms than Linux/BlueZ, we will have to
From a user central-client perspective the following hierarchy is provided, i.e. GATTRole::Client or BTAdapter in BTRole::Master:
From a user peripheral-server perspective the following hierarchy is provided, i.e. GATTRole::Server or BTAdapter in BTRole::Slave:
Object lifecycle with all instances and marked weak back-references to their owner
User application instantiates for peripheral-server functionality:
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 |
DBGattService | DBGattService | |
DBGattChar | DBGattChar | |
DBGattDesc | DBGattDesc | |
AdapterStatusListener | AdapterStatusListener | |
BTGattCharListener | BTGattCharListener | |
ChangedAdapterSetFunc() | BTManager::ChangedAdapterSetListener |
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:
Module DBGattServer covering the GattServer elements:
GattNumbers.hpp Module for Higher level GATT value and service types like GattServiceType, GattCharacteristicType, GattCharacteristicProperty, GattRequirementSpec .. and finally GattServiceCharacteristic.
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:
|
noexcept |
Returns true if the given IRK matches the given random private address (RPA).
Definition at line 167 of file SMPCrypto.cpp.
|
noexcept |
|
inlinestatic |
Swap one buffer content into another.
Copy the content of src buffer into dst buffer in reversed order, i.e.: src[n] will be put in dst[end-n] Where n is an index and 'end' the last index in both arrays. The 2 memory pointers must be pointing to different areas, and have a minimum size of given length.
dst | A valid pointer on a memory area where to copy the data in |
src | A valid pointer on a memory area where to copy the data from |
length | Size of both dst and src memory areas |
Definition at line 72 of file SMPCrypto.cpp.
|
inlinestatic |
Swap buffer content.
In-place memory swap, where final content will be reversed. I.e.: buf[n] will be put in buf[end-n] Where n is an index and 'end' the last index of buf.
buf | A valid pointer on a memory area to swap |
length | Size of buf memory area |
Definition at line 99 of file SMPCrypto.cpp.
|
static |
|
static |