|
class | AdapterInfo |
|
class | AdapterStatusListener |
| BTAdapter status listener for BTDevice discovery events: Added, updated and removed; as well as for certain BTAdapter events. More...
|
|
class | AssociatedBTGattCharListener |
|
class | AttElementList |
|
class | AttErrorRsp |
| ATT Protocol PDUs Vol 3, Part F 3.4.1.1. More...
|
|
class | AttException |
|
class | AttExchangeMTU |
| ATT Protocol PDUs Vol 3, Part F 3.4.2.2. More...
|
|
class | AttFindInfoReq |
| ATT Protocol PDUs Vol 3, Part F 3.4.3.1. More...
|
|
class | AttFindInfoRsp |
| ATT Protocol PDUs Vol 3, Part F 3.4.3.2. More...
|
|
class | AttHandleValueCfm |
| ATT Protocol PDUs Vol 3, Part F 3.4.7.3. More...
|
|
class | AttHandleValueRcv |
| ATT Protocol PDUs Vol 3, Part F 3.4.7.1 and 3.4.7.2. More...
|
|
class | AttOpcodeException |
|
class | AttPDUMsg |
| Handles the Attribute Protocol (ATT) using Protocol Data Unit (PDU) encoded messages over L2CAP channel. More...
|
|
class | AttPDUUndefined |
| Our own pseudo opcode, indicating no ATT PDU message. More...
|
|
class | AttReadBlobReq |
| ATT Protocol PDUs Vol 3, Part F 3.4.4.5. More...
|
|
class | AttReadBlobRsp |
| ATT Protocol PDUs Vol 3, Part F 3.4.4.6. More...
|
|
class | AttReadByGroupTypeRsp |
| ATT Protocol PDUs Vol 3, Part F 3.4.4.10. More...
|
|
class | AttReadByNTypeReq |
| ATT Protocol PDUs Vol 3, Part F 3.4.4.1. More...
|
|
class | AttReadByTypeRsp |
| ATT Protocol PDUs Vol 3, Part F 3.4.4.2. More...
|
|
class | AttReadReq |
| ATT Protocol PDUs Vol 3, Part F 3.4.4.3. More...
|
|
class | AttReadRsp |
| ATT Protocol PDUs Vol 3, Part F 3.4.4.4. More...
|
|
class | AttValueException |
|
class | AttWriteCmd |
| ATT Protocol PDUs Vol 3, Part F 3.4.5.3. More...
|
|
class | AttWriteReq |
| ATT Protocol PDUs Vol 3, Part F 3.4.5.1. More...
|
|
class | AttWriteRsp |
| ATT Protocol PDUs Vol 3, Part F 3.4.5.2. More...
|
|
class | BDAddressAndType |
| Unique Bluetooth EUI48 address and BDAddressType tuple. More...
|
|
class | BTAdapter |
| BTAdapter represents one Bluetooth Controller. More...
|
|
class | BTDevice |
|
class | BTException |
|
class | BTGattChar |
|
class | BTGattCharListener |
| BTGattChar event listener for notification and indication events. More...
|
|
class | BTGattDesc |
| BT Core Spec v5.2: Vol 3, Part G GATT: 3.3.3 Characteristic Descriptor. More...
|
|
class | BTGattEnv |
| GATT Singleton runtime environment properties. More...
|
|
class | BTGattHandler |
| A thread safe GATT handler associated to one device via one L2CAP connection. More...
|
|
class | BTGattService |
| Representing a complete [Primary] Service Declaration including its list of Characteristic Declarations, which also may include its client config if available. More...
|
|
class | BTManager |
| A thread safe singleton handler of the Linux Kernel's BlueZ manager control channel. More...
|
|
class | BTObject |
|
class | ConnectionInfo |
| mgmt_addr_info { EUI48, uint8_t type }, int8_t rssi, int8_t tx_power, int8_t max_tx_power; More...
|
|
class | DirectBTJNISettings |
|
class | EInfoReport |
| Collection of 'Extended Advertising Data' (EAD), 'Advertising Data' (AD) or 'Extended Inquiry Response' (EIR) information. More...
|
|
struct | EUI48 |
| A packed 48 bit EUI-48 identifier, formerly known as MAC-48 or simply network device MAC address (Media Access Control address). More...
|
|
struct | EUI48Sub |
| A 48 bit EUI-48 sub-identifier, see EUI48. More...
|
|
class | GattBatteryServiceSvc |
| https://www.bluetooth.com/wp-content/uploads/Sitecore-Media-Library/Gatt/Xml/Services/org.bluetooth.service.battery_service.xml More...
|
|
struct | GattCharacteristicPropertySpec |
|
struct | GattCharacteristicSpec |
|
struct | GattClientCharacteristicConfigSpec |
|
class | GattDeviceInformationSvc |
| Device Information is a GATT service. More...
|
|
class | GattGenericAccessSvc |
| Generic Access Service is a mandatory GATT service all peripherals are required to implement. More...
|
|
struct | GattPeriphalPreferredConnectionParameters |
| Peripheral Preferred Connection Parameters is a GATT Characteristic. More...
|
|
struct | GattPnP_ID |
| PnP ID is a GATT Characteristic. More...
|
|
struct | GattServiceCharacteristic |
|
class | GattTemperatureMeasurement |
| https://www.bluetooth.com/wp-content/uploads/Sitecore-Media-Library/Gatt/Xml/Characteristics/org.bluetooth.characteristic.temperature_measurement.xml More...
|
|
class | HCIACLData |
| BT Core Spec v5.2: Vol 4, Part E HCI: 5.4.2 HCI ACL Data packets. More...
|
|
class | HCIComm |
| Read/Write HCI communication channel. More...
|
|
class | HCICommand |
| BT Core Spec v5.2: Vol 4, Part E HCI: 5.4.1 HCI Command packet. More...
|
|
class | HCICommandCompleteEvent |
| BT Core Spec v5.2: Vol 4, Part E HCI: 7.7.14 Command Complete event. More...
|
|
class | HCICommandStatusEvent |
| BT Core Spec v5.2: Vol 4, Part E HCI: 7.7.15 Command Status event. More...
|
|
class | HCIDisconnectCmd |
| BT Core Spec v5.2: Vol 4, Part E HCI: 7.1.6 Disconnect command. More...
|
|
class | HCIDisconnectionCompleteEvent |
| BT Core Spec v5.2: Vol 4, Part E HCI: 7.7.5 Disconnection Complete event. More...
|
|
class | HCIEnv |
| HCI Singleton runtime environment properties. More...
|
|
class | HCIEvent |
| BT Core Spec v5.2: Vol 4, Part E HCI: 5.4.4 HCI Event packet. More...
|
|
class | HCIException |
|
class | HCIHandler |
| A thread safe singleton handler of the HCI control channel to one controller (BT adapter) More...
|
|
struct | HCILocalVersion |
|
class | HCIMetaEvent |
| BT Core Spec v5.2: Vol 4, Part E HCI: 7.7.65 LE Meta event. More...
|
|
class | HCIOpcodeException |
|
class | HCIPacket |
| BT Core Spec v5.2: Vol 4, Part E HCI: 5.4 Exchange of HCI-specific information. More...
|
|
class | HCIPacketException |
|
class | HCIStructCmdCompleteEvtWrap |
| Generic HCIEvent wrapper for any HCI IOCTL 'command complete' alike event struct having a HCIStatusCode uint8_t status field. More...
|
|
class | HCIStructCmdCompleteMetaEvtWrap |
| Generic HCIMetaEvent wrapper for any HCI IOCTL 'command complete' alike meta event struct having a HCIStatusCode uint8_t status field. More...
|
|
class | HCIStructCommand |
| Generic HCICommand wrapper for any HCI IOCTL structure. More...
|
|
struct | l2cap_hdr |
|
class | L2CAPComm |
| Read/Write L2CAP communication channel. More...
|
|
class | L2CAPEnv |
| L2CAP Singleton runtime environment properties. More...
|
|
class | ManufactureSpecificData |
|
class | MgmtAdapterEventCallback |
|
class | MgmtAddDeviceToWhitelistCmd |
| mgmt_addr_info { EUI48, uint8_t type }, uint8_t action More...
|
|
class | MgmtCancelPairDevice |
| mgmt_addr_info { EUI48, uint8_t type }, More...
|
|
class | MgmtCmdAdressInfoMeta |
| mgmt_addr_info { EUI48, uint8_t type }, More...
|
|
class | MgmtCommand |
|
struct | MgmtConnParam |
| Used in MgmtLoadConnParamCmd and MgmtEvtNewConnectionParam. More...
|
|
class | MgmtDisconnectCmd |
| mgmt_addr_info { EUI48, uint8_t type }, More...
|
|
class | MgmtEnv |
| Managment Singleton runtime environment properties. More...
|
|
class | MgmtEvent |
| uint16_t opcode, uint16_t dev-id, uint16_t param_size More...
|
|
class | MgmtEvtAdapterInfo |
|
class | MgmtEvtAdressInfoMeta |
| mgmt_addr_info { EUI48, uint8_t type }, More...
|
|
class | MgmtEvtAuthFailed |
| mgmt_addr_info { EUI48, uint8_t type }, uint8_t status More...
|
|
class | MgmtEvtCmdComplete |
|
class | MgmtEvtCmdStatus |
|
class | MgmtEvtControllerError |
|
class | MgmtEvtDeviceBlocked |
| mgmt_addr_info { EUI48, uint8_t type }, More...
|
|
class | MgmtEvtDeviceConnected |
| mgmt_addr_info { EUI48, uint8_t type }, uint32_t flags, uint16_t eir_len; uint8_t *eir More...
|
|
class | MgmtEvtDeviceConnectFailed |
| mgmt_addr_info { EUI48, uint8_t type }, uint8_t status More...
|
|
class | MgmtEvtDeviceDisconnected |
| mgmt_addr_info { EUI48, uint8_t type }, uint8_t reason More...
|
|
class | MgmtEvtDeviceFound |
| mgmt_addr_info { EUI48, uint8_t type }, int8_t rssi, uint32_t flags, uint16_t eir_len; uint8_t *eir More...
|
|
class | MgmtEvtDeviceUnblocked |
| mgmt_addr_info { EUI48, uint8_t type }, More...
|
|
class | MgmtEvtDeviceUnpaired |
| mgmt_addr_info { EUI48, uint8_t type }, More...
|
|
class | MgmtEvtDeviceWhitelistAdded |
| mgmt_addr_info { EUI48, uint8_t type }, uint8_t action More...
|
|
class | MgmtEvtDeviceWhitelistRemoved |
| mgmt_addr_info { EUI48, uint8_t type }, More...
|
|
class | MgmtEvtDiscovering |
|
class | MgmtEvtHCIEncryptionChanged |
| mgmt_addr_info { EUI48, uint8_t type }, HCIStatusCode status (1 Octet) uint8_t enc_enabled (1 Octet) More...
|
|
class | MgmtEvtHCIEncryptionKeyRefreshComplete |
| mgmt_addr_info { EUI48, uint8_t type }, HCIStatusCode status (1 Octet) More...
|
|
class | MgmtEvtHCILERemoteUserFeatures |
| mgmt_addr_info { EUI48, uint8_t type }, uint64_t features (8 Octets) More...
|
|
class | MgmtEvtLocalNameChanged |
| uint8_t name[MGMT_MAX_NAME_LENGTH]; uint8_t short_name[MGMT_MAX_SHORT_NAME_LENGTH]; More...
|
|
class | MgmtEvtNewConnectionParam |
| int8_t store_hint, MgmtConnParam connParam More...
|
|
class | MgmtEvtNewIdentityResolvingKey |
| uint8_t store_hint, EUI48 random_address; MgmtIdentityResolvingKey key More...
|
|
class | MgmtEvtNewLinkKey |
| uint8_t store_hint, MgmtLinkKey key More...
|
|
class | MgmtEvtNewLongTermKey |
| uint8_t store_hint, MgmtLongTermKeyInfo key More...
|
|
class | MgmtEvtNewSettings |
| uint32_t settings More...
|
|
class | MgmtEvtNewSignatureResolvingKey |
| uint8_t store_hint, EUI48 random_address; MgmtSignatureResolvingKeyInfo key More...
|
|
class | MgmtEvtPairDeviceComplete |
| mgmt_addr_info { EUI48, uint8_t type }, MgmtStatus (1 octet) More...
|
|
class | MgmtEvtPinCodeRequest |
| mgmt_addr_info { EUI48, uint8_t type }, uint8_t secure More...
|
|
class | MgmtEvtUserConfirmRequest |
| mgmt_addr_info { EUI48, uint8_t type }, uint8_t confirm_hint uint32_t value More...
|
|
class | MgmtEvtUserPasskeyRequest |
| mgmt_addr_info { EUI48, uint8_t type }, More...
|
|
class | MgmtException |
|
class | MgmtGetConnectionInfoCmd |
| mgmt_addr_info { EUI48, uint8_t type }, More...
|
|
struct | MgmtIdentityResolvingKeyInfo |
| Used for MgmtLoadIdentityResolvingKeyCmd and MgmtEvtNewIdentityResolvingKey. More...
|
|
struct | MgmtLinkKeyInfo |
| Used for MgmtLoadLinkKeyCmd and MgmtEvtNewLinkKey. More...
|
|
class | MgmtLoadConnParamCmd |
| uint16_t param_count 2 MgmtConnParam param[] 15 = 1x More...
|
|
class | MgmtLoadIdentityResolvingKeyCmd |
| uint16_t key_count MgmtIdentityResolvingKey keys[key_count] More...
|
|
class | MgmtLoadLinkKeyCmd |
| uint8_t debug_keys, uint16_t key_count, MgmtLinkKey keys[key_count] More...
|
|
class | MgmtLoadLongTermKeyCmd |
| uint16_t key_count MgmtLongTermKey keys[key_count] More...
|
|
struct | MgmtLongTermKeyInfo |
| Used for MgmtLoadLongTermKeyCmd and MgmtEvtNewLongTermKey. More...
|
|
class | MgmtMsg |
|
class | MgmtOpcodeException |
|
class | MgmtPairDeviceCmd |
| mgmt_addr_info { EUI48, uint8_t type }, SMPIOCapability io_cap (1 octet) More...
|
|
class | MgmtPinCodeNegativeReplyCmd |
| mgmt_addr_info { EUI48, uint8_t type }, More...
|
|
class | MgmtPinCodeReplyCmd |
| mgmt_addr_info { EUI48, uint8_t type }, uint8_t pin_len, uint8_t pin_code[16] More...
|
|
class | MgmtRemoveDeviceFromWhitelistCmd |
| mgmt_addr_info { EUI48, uint8_t type }, More...
|
|
class | MgmtSetDiscoverableCmd |
| uint8_t discoverable uint16_t timeout More...
|
|
class | MgmtSetLocalNameCmd |
| uint8_t name[MGMT_MAX_NAME_LENGTH]; uint8_t short_name[MGMT_MAX_SHORT_NAME_LENGTH]; More...
|
|
struct | MgmtSignatureResolvingKeyInfo |
| Used for MgmtEvtNewSignatureResolvingKey. More...
|
|
class | MgmtUint8Cmd |
|
class | MgmtUnpairDeviceCmd |
| mgmt_addr_info { EUI48, uint8_t type }, bool disconnect (1 octet) More...
|
|
class | MgmtUserConfirmNegativeReplyCmd |
| mgmt_addr_info { EUI48, uint8_t type }, More...
|
|
class | MgmtUserConfirmReplyCmd |
| mgmt_addr_info { EUI48, uint8_t type }, More...
|
|
class | MgmtUserPasskeyNegativeReplyCmd |
| mgmt_addr_info { EUI48, uint8_t type }, More...
|
|
class | MgmtUserPasskeyReplyCmd |
| mgmt_addr_info { EUI48, uint8_t type }, uint32_t passkey More...
|
|
class | NameAndShortName |
|
class | POctets |
| Persistent octet data, i.e. More...
|
|
class | SMPEncInfoMsg |
| Vol 3, Part H: 3.6.2 Encryption Information message. More...
|
|
class | SMPEncKeyByteStream |
| Tag type to group all SMP messages covering encryption keys, treated as byte stream (all of them). More...
|
|
class | SMPEnv |
| SMP Singleton runtime environment properties. More...
|
|
class | SMPException |
|
class | SMPHandler |
| A thread safe SMP handler associated to one device via one L2CAP connection. More...
|
|
class | SMPIdentAddrInfoMsg |
| Vol 3, Part H: 3.6.5 Identity Address Information message. More...
|
|
class | SMPIdentInfoMsg |
| Vol 3, Part H: 3.6.4 Identify Information message. More...
|
|
class | SMPKeyBin |
| Storage for SMP keys including the required connection parameter. More...
|
|
struct | SMPLongTermKeyInfo |
| SMP Long Term Key Info, used for platform agnostic persistence. More...
|
|
class | SMPMasterIdentMsg |
| Vol 3, Part H: 3.6.3 Master Identification message. More...
|
|
class | SMPOpcodeException |
|
class | SMPPacketException |
|
class | SMPPairConfirmMsg |
| Vol 3, Part H: 3.5.3 Pairing Confirm message. More...
|
|
class | SMPPairDHKeyCheckMsg |
| Vol 3, Part H: 3.5.7 Pairing DHKey Check message. More...
|
|
class | SMPPairFailedMsg |
| Vol 3, Part H: 3.5.5 Pairing Failed message. More...
|
|
class | SMPPairingMsg |
| Vol 3, Part H: 3.5.1 Pairing Request message. More...
|
|
class | SMPPairPubKeyMsg |
| Vol 3, Part H: 3.5.6 Pairing Public Key message. More...
|
|
class | SMPPairRandMsg |
| Vol 3, Part H: 3.5.4 Pairing Random message. More...
|
|
class | SMPPasskeyNotification |
| Vol 3, Part H: 3.5.8 Passkey Entry: Keypress notification messages. More...
|
|
class | SMPPDUMsg |
| Handles the Security Manager Protocol (SMP) using Protocol Data Unit (PDU) encoded messages over L2CAP channel. More...
|
|
class | SMPSecurityReqMsg |
| Vol 3, Part H: 3.6.7 Security Request message. More...
|
|
struct | SMPSignatureResolvingKeyInfo |
| SMP Signature Resolving Key Info, used for platform agnostic persistence. More...
|
|
class | SMPSignInfoMsg |
| Vol 3, Part H: 3.6.6 Signing Information message. More...
|
|
class | SMPValueException |
|
class | TOctets |
| Transient octet data, i.e. More...
|
|
class | TOctetSlice |
|
class | TROOctets |
| Transient read only octet data, i.e. More...
|
|
class | uuid128_t |
|
class | uuid16_t |
|
class | uuid32_t |
|
class | uuid_t |
|
|
enum | BDAddressType : uint8_t { BDAddressType::BDADDR_BREDR = 0x00,
BDAddressType::BDADDR_LE_PUBLIC = 0x01,
BDAddressType::BDADDR_LE_RANDOM = 0x02,
BDAddressType::BDADDR_UNDEFINED = 0xff
} |
| BT Core Spec v5.2: Vol 3, Part C Generic Access Profile (GAP): 15.1.1.1 Public Bluetooth address. More...
|
|
enum | BLERandomAddressType : uint8_t {
BLERandomAddressType::UNRESOLVABLE_PRIVAT = 0x00,
BLERandomAddressType::RESOLVABLE_PRIVAT = 0x01,
BLERandomAddressType::RESERVED = 0x02,
BLERandomAddressType::STATIC_PUBLIC = 0x03,
BLERandomAddressType::UNDEFINED = 0xff
} |
| BT Core Spec v5.2: Vol 6 LE, Part B Link Layer Specification: 1.3 Device Address. More...
|
|
enum | HCILEPeerAddressType : uint8_t {
HCILEPeerAddressType::PUBLIC = 0x00,
HCILEPeerAddressType::RANDOM = 0x01,
HCILEPeerAddressType::PUBLIC_IDENTITY = 0x02,
HCILEPeerAddressType::RANDOM_STATIC_IDENTITY = 0x03,
HCILEPeerAddressType::UNDEFINED = 0xff
} |
| HCI LE Address-Type is PUBLIC: 0x00, RANDOM: 0x01. More...
|
|
enum | HCILEOwnAddressType : uint8_t {
HCILEOwnAddressType::PUBLIC = 0x00,
HCILEOwnAddressType::RANDOM = 0x01,
HCILEOwnAddressType::RESOLVABLE_OR_PUBLIC = 0x02,
HCILEOwnAddressType::RESOLVABLE_OR_RANDOM = 0x03,
HCILEOwnAddressType::UNDEFINED = 0xff
} |
|
enum | BTMode : uint8_t { BTMode::NONE = 0,
BTMode::DUAL = 1,
BTMode::BREDR = 2,
BTMode::LE = 3
} |
| Bluetooth adapter operating mode. More...
|
|
enum | LE_Features : uint64_t {
LE_Features::NONE = 0,
LE_Features::LE_Encryption = 0b0000000000000000000000000000000000000000000000000000000000000001,
LE_Features::Conn_Param_Req_Proc = 0b0000000000000000000000000000000000000000000000000000000000000010,
LE_Features::Ext_Rej_Ind = 0b0000000000000000000000000000000000000000000000000000000000000100,
LE_Features::SlaveInit_Feat_Exchg = 0b0000000000000000000000000000000000000000000000000000000000001000,
LE_Features::LE_Ping = 0b0000000000000000000000000000000000000000000000000000000000010000,
LE_Features::LE_Data_Pkt_Len_Ext = 0b0000000000000000000000000000000000000000000000000000000000100000,
LE_Features::LL_Privacy = 0b0000000000000000000000000000000000000000000000000000000001000000,
LE_Features::Ext_Scan_Filter_Pol = 0b0000000000000000000000000000000000000000000000000000000010000000,
LE_Features::LE_2M_PHY = 0b0000000000000000000000000000000000000000000000000000000100000000,
LE_Features::Stable_Mod_Idx_Tx = 0b0000000000000000000000000000000000000000000000000000001000000000,
LE_Features::Stable_Mod_Idx_Rx = 0b0000000000000000000000000000000000000000000000000000010000000000,
LE_Features::LE_Coded_PHY = 0b0000000000000000000000000000000000000000000000000000100000000000,
LE_Features::LE_Ext_Adv = 0b0000000000000000000000000000000000000000000000000001000000000000,
LE_Features::LE_Per_Adv = 0b0000000000000000000000000000000000000000000000000010000000000000,
LE_Features::Chan_Sel_Algo_2 = 0b0000000000000000000000000000000000000000000000000100000000000000,
LE_Features::LE_Pwr_Cls_1 = 0b0000000000000000000000000000000000000000000000001000000000000000,
LE_Features::Min_Num_Used_Chan_Proc = 0b0000000000000000000000000000000000000000000000010000000000000000,
LE_Features::Conn_CTE_Req = 0b0000000000000000000000000000000000000000000000100000000000000000,
LE_Features::Conn_CTE_Res = 0b0000000000000000000000000000000000000000000001000000000000000000,
LE_Features::ConnLess_CTE_Tx = 0b0000000000000000000000000000000000000000000010000000000000000000,
LE_Features::ConnLess_CTE_Rx = 0b0000000000000000000000000000000000000000000100000000000000000000,
LE_Features::AoD = 0b0000000000000000000000000000000000000000001000000000000000000000,
LE_Features::AoA = 0b0000000000000000000000000000000000000000010000000000000000000000,
LE_Features::Rx_Const_Tone_Ext = 0b0000000000000000000000000000000000000000100000000000000000000000,
LE_Features::Per_Adv_Sync_Tx_Sender = 0b0000000000000000000000000000000000000001000000000000000000000000,
LE_Features::Per_Adv_Sync_Tx_Rec = 0b0000000000000000000000000000000000000010000000000000000000000000,
LE_Features::Zzz_Clk_Acc_Upd = 0b0000000000000000000000000000000000000100000000000000000000000000,
LE_Features::Rem_Pub_Key_Val = 0b0000000000000000000000000000000000001000000000000000000000000000,
LE_Features::Conn_Iso_Stream_Master = 0b0000000000000000000000000000000000010000000000000000000000000000,
LE_Features::Conn_Iso_Stream_Slave = 0b0000000000000000000000000000000000100000000000000000000000000000,
LE_Features::Iso_Brdcst = 0b0000000000000000000000000000000001000000000000000000000000000000,
LE_Features::Sync_Rx = 0b0000000000000000000000000000000010000000000000000000000000000000,
LE_Features::Iso_Chan = 0b0000000000000000000000000000000100000000000000000000000000000000,
LE_Features::LE_Pwr_Ctrl_Req = 0b0000000000000000000000000000001000000000000000000000000000000000,
LE_Features::LE_Pwr_Chg_Ind = 0b0000000000000000000000000000010000000000000000000000000000000000,
LE_Features::LE_Path_Loss_Mon = 0b0000000000000000000000000000100000000000000000000000000000000000
} |
| HCI Supported Commands. More...
|
|
enum | LE_PHYs : uint8_t { LE_PHYs::NONE = 0,
LE_PHYs::LE_1M = 0b00000001,
LE_PHYs::LE_2M = 0b00000010,
LE_PHYs::LE_CODED = 0b00000100
} |
| LE Transport PHY bit values. More...
|
|
enum | BTSecurityLevel : uint8_t {
BTSecurityLevel::UNSET = 0,
BTSecurityLevel::NONE = 1,
BTSecurityLevel::ENC_ONLY = 2,
BTSecurityLevel::ENC_AUTH = 3,
BTSecurityLevel::ENC_AUTH_FIPS = 4
} |
| Bluetooth Security Level. More...
|
|
enum | PairingMode : uint8_t {
PairingMode::NONE = 0,
PairingMode::NEGOTIATING = 1,
PairingMode::JUST_WORKS = 2,
PairingMode::PASSKEY_ENTRY_ini = 3,
PairingMode::PASSKEY_ENTRY_res = 4,
PairingMode::NUMERIC_COMPARE_ini = 5,
PairingMode::NUMERIC_COMPARE_res = 6,
PairingMode::OUT_OF_BAND = 7,
PairingMode::PRE_PAIRED = 8
} |
| Bluetooth secure pairing mode. More...
|
|
enum | ScanType : uint8_t { ScanType::NONE = 0,
ScanType::BREDR = 1 << number(BDAddressType::BDADDR_BREDR),
ScanType::LE = ( 1 << number(BDAddressType::BDADDR_LE_PUBLIC) ) | ( 1 << number(BDAddressType::BDADDR_LE_RANDOM) ),
ScanType::DUAL = BREDR | LE
} |
| Meta ScanType as derived from BTMode, with defined value mask consisting of BDAddressType bits. More...
|
|
enum | AD_PDU_Type : uint8_t {
AD_PDU_Type::ADV_IND = 0x00,
AD_PDU_Type::ADV_DIRECT_IND = 0x01,
AD_PDU_Type::ADV_SCAN_IND = 0x02,
AD_PDU_Type::ADV_NONCONN_IND = 0x03,
AD_PDU_Type::SCAN_RSP = 0x04,
AD_PDU_Type::ADV_IND2 = 0b0010011,
AD_PDU_Type::DIRECT_IND2 = 0b0010101,
AD_PDU_Type::SCAN_IND2 = 0b0010010,
AD_PDU_Type::NONCONN_IND2 = 0b0010000,
AD_PDU_Type::SCAN_RSP_to_ADV_IND = 0b0011011,
AD_PDU_Type::SCAN_RSP_to_ADV_SCAN_IND = 0b0011010,
AD_PDU_Type::UNDEFINED = 0xff
} |
| LE Advertising (AD) Protocol Data Unit (PDU) Types. More...
|
|
enum | EAD_Event_Type : uint16_t {
EAD_Event_Type::NONE = 0,
EAD_Event_Type::CONN_ADV = 0b00000001,
EAD_Event_Type::SCAN_ADV = 0b00000010,
EAD_Event_Type::DIR_ADV = 0b00000100,
EAD_Event_Type::SCAN_RSP = 0b00001000,
EAD_Event_Type::LEGACY_PDU = 0b00010000,
EAD_Event_Type::DATA_B0 = 0b00100000,
EAD_Event_Type::DATA_B1 = 0b01000000
} |
| LE Extended Advertising (EAD) Event Types. More...
|
|
enum | HCIWhitelistConnectType : uint8_t { HCIWhitelistConnectType::HCI_AUTO_CONN_REPORT = 0x00,
HCIWhitelistConnectType::HCI_AUTO_CONN_DIRECT = 0x01,
HCIWhitelistConnectType::HCI_AUTO_CONN_ALWAYS = 0x02
} |
| HCI Whitelist connection type. More...
|
|
enum | AD_Type_Const : uint8_t { AD_Type_Const::AD_FLAGS_LIMITED_MODE_BIT = 0x01,
AD_Type_Const::AD_FLAGS_GENERAL_MODE_BIT = 0x02
} |
|
enum | L2CAP_CID : uint16_t {
L2CAP_CID::UNDEFINED = 0x0000,
L2CAP_CID::SIGNALING = 0x0001,
L2CAP_CID::CONN_LESS = 0x0002,
L2CAP_CID::A2MP = 0x0003,
L2CAP_CID::ATT = 0x0004,
L2CAP_CID::LE_SIGNALING = 0x0005,
L2CAP_CID::SMP = 0x0006,
L2CAP_CID::SMP_BREDR = 0x0007,
L2CAP_CID::DYN_START = 0x0040,
L2CAP_CID::DYN_END = 0xffff,
L2CAP_CID::LE_DYN_END = 0x007f
} |
|
enum | L2CAP_PSM : uint16_t {
L2CAP_PSM::UNDEFINED = 0x0000,
L2CAP_PSM::SDP = 0x0001,
L2CAP_PSM::RFCOMM = 0x0003,
L2CAP_PSM::TCSBIN = 0x0005,
L2CAP_PSM::TCSBIN_CORDLESS = 0x0007,
L2CAP_PSM::BNEP = 0x000F,
L2CAP_PSM::HID_CONTROL = 0x0011,
L2CAP_PSM::HID_INTERRUPT = 0x0013,
L2CAP_PSM::UPNP = 0x0015,
L2CAP_PSM::AVCTP = 0x0017,
L2CAP_PSM::AVDTP = 0x0019,
L2CAP_PSM::AVCTP_BROWSING = 0x001B,
L2CAP_PSM::UDI_C_PLANE = 0x001D,
L2CAP_PSM::ATT = 0x001F,
L2CAP_PSM::LE_DYN_START = 0x0080,
L2CAP_PSM::LE_DYN_END = 0x00FF,
L2CAP_PSM::DYN_START = 0x1001,
L2CAP_PSM::DYN_END = 0xffff,
L2CAP_PSM::AUTO_END = 0x10ff
} |
| Protocol Service Multiplexers (PSM) Assigned numbers https://www.bluetooth.com/specifications/assigned-numbers/logical-link-control/ More...
|
|
enum | L2CAP_States : uint8_t {
L2CAP_States::CLOSED,
L2CAP_States::WAIT_CONNECTED,
L2CAP_States::WAIT_CONNECTED_RSP,
L2CAP_States::CONFIG,
L2CAP_States::OPEN,
L2CAP_States::WAIT_DISCONNECTED,
L2CAP_States::WAIT_CREATE,
L2CAP_States::WAIT_CONNECT,
L2CAP_States::WAIT_CREATE_RSP,
L2CAP_States::WAIT_MOVE,
L2CAP_States::WAIT_MOVE_RSP,
L2CAP_States::WAIT_MOVE_CONFIRM,
L2CAP_States::WAIT_CONFIRM_RSP
} |
| BT Core Spec v5.2: Vol 3, Part A L2CAP Spec: 6 State Machine. More...
|
|
enum | GAP_T : uint8_t {
GAP_T::FLAGS = 0x01,
GAP_T::UUID16_INCOMPLETE = 0x02,
GAP_T::UUID16_COMPLETE = 0x03,
GAP_T::UUID32_INCOMPLETE = 0x04,
GAP_T::UUID32_COMPLETE = 0x05,
GAP_T::UUID128_INCOMPLETE = 0x06,
GAP_T::UUID128_COMPLETE = 0x07,
GAP_T::NAME_LOCAL_SHORT = 0x08,
GAP_T::NAME_LOCAL_COMPLETE = 0x09,
GAP_T::TX_POWER_LEVEL = 0x0A,
GAP_T::SSP_CLASS_OF_DEVICE = 0x0D,
GAP_T::SSP_HASH_C192 = 0x0E,
GAP_T::SSP_RANDOMIZER_R192 = 0x0F,
GAP_T::DEVICE_ID = 0x10,
GAP_T::SEC_MGR_TK_VALUE = 0x10,
GAP_T::SEC_MGR_OOB_FLAGS = 0x11,
GAP_T::SLAVE_CONN_IVAL_RANGE = 0x12,
GAP_T::SOLICIT_UUID16 = 0x14,
GAP_T::SOLICIT_UUID128 = 0x15,
GAP_T::SVC_DATA_UUID16 = 0x16,
GAP_T::PUB_TRGT_ADDR = 0x17,
GAP_T::RND_TRGT_ADDR = 0x18,
GAP_T::GAP_APPEARANCE = 0x19,
GAP_T::ADV_INTERVAL = 0x1A,
GAP_T::LE_BT_DEV_ADDRESS = 0x1B,
GAP_T::LE_ROLE = 0x1C,
GAP_T::SSP_HASH_C256 = 0x1D,
GAP_T::SSP_RANDOMIZER_R256 = 0x1E,
GAP_T::SOLICIT_UUID32 = 0x1F,
GAP_T::SVC_DATA_UUID32 = 0x20,
GAP_T::SVC_DATA_UUID128 = 0x21,
GAP_T::SSP_LE_SEC_CONN_ACK_VALUE = 0x22,
GAP_T::SSP_LE_SEC_CONN_RND_VALUE = 0x23,
GAP_T::URI = 0x24,
GAP_T::INDOOR_POSITIONING = 0x25,
GAP_T::TX_DISCOVERY_DATA = 0x26,
GAP_T::LE_SUPP_FEATURES = 0x27,
GAP_T::CH_MAP_UPDATE_IND = 0x28,
GAP_T::PB_ADV = 0x29,
GAP_T::MESH_MESSAGE = 0x2A,
GAP_T::MESH_BEACON = 0x2B,
GAP_T::BIG_INFO = 0x2C,
GAP_T::BROADCAST_CODE = 0x2D,
GAP_T::INFO_DATA_3D = 0x3D,
GAP_T::MANUFACTURE_SPECIFIC = 0xFF
} |
| ​​Assigned numbers are used in Generic Access Profile (GAP) for inquiry response, EIR data type values, manufacturer-specific data, advertising data, low energy UUIDs and appearance characteristics, and class of device. More...
|
|
enum | AppearanceCat : uint16_t {
AppearanceCat::UNKNOWN = 0,
AppearanceCat::GENERIC_PHONE = 64,
AppearanceCat::GENERIC_COMPUTER = 128,
AppearanceCat::GENERIC_WATCH = 192,
AppearanceCat::SPORTS_WATCH = 193,
AppearanceCat::GENERIC_CLOCK = 256,
AppearanceCat::GENERIC_DISPLAY = 320,
AppearanceCat::GENERIC_REMOTE_CLOCK = 384,
AppearanceCat::GENERIC_EYE_GLASSES = 448,
AppearanceCat::GENERIC_TAG = 512,
AppearanceCat::GENERIC_KEYRING = 576,
AppearanceCat::GENERIC_MEDIA_PLAYER = 640,
AppearanceCat::GENERIC_BARCODE_SCANNER = 704,
AppearanceCat::GENERIC_THERMOMETER = 768,
AppearanceCat::GENERIC_THERMOMETER_EAR = 769,
AppearanceCat::GENERIC_HEART_RATE_SENSOR = 832,
AppearanceCat::HEART_RATE_SENSOR_BELT = 833,
AppearanceCat::GENERIC_BLOD_PRESSURE = 896,
AppearanceCat::BLOD_PRESSURE_ARM = 897,
AppearanceCat::BLOD_PRESSURE_WRIST = 898,
AppearanceCat::HID = 960,
AppearanceCat::HID_KEYBOARD = 961,
AppearanceCat::HID_MOUSE = 962,
AppearanceCat::HID_JOYSTICK = 963,
AppearanceCat::HID_GAMEPAD = 964,
AppearanceCat::HID_DIGITIZER_TABLET = 965,
AppearanceCat::HID_CARD_READER = 966,
AppearanceCat::HID_DIGITAL_PEN = 967,
AppearanceCat::HID_BARCODE_SCANNER = 968,
AppearanceCat::GENERIC_GLUCOSE_METER = 1024,
AppearanceCat::GENERIC_RUNNING_WALKING_SENSOR = 1088,
AppearanceCat::RUNNING_WALKING_SENSOR_IN_SHOE = 1089,
AppearanceCat::RUNNING_WALKING_SENSOR_ON_SHOE = 1090,
AppearanceCat::RUNNING_WALKING_SENSOR_HIP = 1091,
AppearanceCat::GENERIC_CYCLING = 1152,
AppearanceCat::CYCLING_COMPUTER = 1153,
AppearanceCat::CYCLING_SPEED_SENSOR = 1154,
AppearanceCat::CYCLING_CADENCE_SENSOR = 1155,
AppearanceCat::CYCLING_POWER_SENSOR = 1156,
AppearanceCat::CYCLING_SPEED_AND_CADENCE_SENSOR = 1157,
AppearanceCat::GENERIC_PULSE_OXIMETER = 3136,
AppearanceCat::PULSE_OXIMETER_FINGERTIP = 3137,
AppearanceCat::PULSE_OXIMETER_WRIST = 3138,
AppearanceCat::GENERIC_WEIGHT_SCALE = 3200,
AppearanceCat::GENERIC_PERSONAL_MOBILITY_DEVICE = 3264,
AppearanceCat::PERSONAL_MOBILITY_DEVICE_WHEELCHAIR = 3265,
AppearanceCat::PERSONAL_MOBILITY_DEVICE_SCOOTER = 3266,
AppearanceCat::GENERIC_CONTINUOUS_GLUCOSE_MONITOR = 3328,
AppearanceCat::GENERIC_INSULIN_PUMP = 3392,
AppearanceCat::INSULIN_PUMP_DURABLE = 3393,
AppearanceCat::INSULIN_PUMP_PATCH = 3396,
AppearanceCat::INSULIN_PUMP_PEN = 3400,
AppearanceCat::GENERIC_MEDICATION_DELIVERY = 3456,
AppearanceCat::GENERIC_OUTDOOR_SPORTS_ACTIVITY = 5184,
AppearanceCat::OUTDOOR_SPORTS_ACTIVITY_LOCATION_DISPLAY_DEVICE = 5185,
AppearanceCat::OUTDOOR_SPORTS_ACTIVITY_LOCATION_AND_NAVIGATION_DISPLAY_DEVICE = 5186,
AppearanceCat::OUTDOOR_SPORTS_ACTIVITY_LOCATION_POD = 5187,
AppearanceCat::OUTDOOR_SPORTS_ACTIVITY_LOCATION_AND_NAVIGATION_POD = 5188
} |
|
enum | GAPFlags : uint8_t {
GAPFlags::NONE = 0,
GAPFlags::LE_Ltd_Discoverable = (1 << 0),
GAPFlags::LE_Gen_Discoverable = (1 << 1),
GAPFlags::BREDR_UNSUPPORTED = (1 << 2),
GAPFlags::DUAL_LE_BREDR_SameCtrl = (1 << 3),
GAPFlags::DUAL_LE_BREDR_SameHost = (1 << 4),
GAPFlags::RESERVED1 = (1 << 5),
GAPFlags::RESERVED2 = (1 << 6),
GAPFlags::RESERVED3 = (1 << 7)
} |
| GAP Flags values, see Bluetooth Core Specification Supplement V9, Part A: 1.3, p 12 pp. More...
|
|
enum | EIRDataType : uint32_t {
EIRDataType::NONE = 0,
EIRDataType::EVT_TYPE = (1 << 0),
EIRDataType::EXT_EVT_TYPE = (1 << 1),
EIRDataType::BDADDR_TYPE = (1 << 2),
EIRDataType::BDADDR = (1 << 3),
EIRDataType::FLAGS = (1 << 4),
EIRDataType::NAME = (1 << 5),
EIRDataType::NAME_SHORT = (1 << 6),
EIRDataType::RSSI = (1 << 7),
EIRDataType::TX_POWER = (1 << 8),
EIRDataType::MANUF_DATA = (1 << 9),
EIRDataType::DEVICE_CLASS = (1 << 10),
APPEARANCE = (1 << 11),
EIRDataType::HASH = (1 << 12),
EIRDataType::RANDOMIZER = (1 << 13),
EIRDataType::DEVICE_ID = (1 << 14),
EIRDataType::SERVICE_UUID = (1 << 30)
} |
| Bit mask of 'Extended Inquiry Response' (EIR) data fields, indicating a set of related data. More...
|
|
enum | AdapterSetting : uint32_t {
AdapterSetting::NONE = 0,
AdapterSetting::POWERED = 0x00000001,
AdapterSetting::CONNECTABLE = 0x00000002,
AdapterSetting::FAST_CONNECTABLE = 0x00000004,
AdapterSetting::DISCOVERABLE = 0x00000008,
AdapterSetting::BONDABLE = 0x00000010,
AdapterSetting::LINK_SECURITY = 0x00000020,
AdapterSetting::SSP = 0x00000040,
AdapterSetting::BREDR = 0x00000080,
AdapterSetting::HS = 0x00000100,
AdapterSetting::LE = 0x00000200,
AdapterSetting::ADVERTISING = 0x00000400,
AdapterSetting::SECURE_CONN = 0x00000800,
AdapterSetting::DEBUG_KEYS = 0x00001000,
AdapterSetting::PRIVACY = 0x00002000,
AdapterSetting::CONFIGURATION = 0x00004000,
AdapterSetting::STATIC_ADDRESS = 0x00008000,
AdapterSetting::PHY_CONFIGURATION = 0x00010000
} |
| Adapter Setting Bits. More...
|
|
enum | GattServiceType : uint16_t {
GENERIC_ACCESS = 0x1800,
GENERIC_ATTRIBUTE = 0x1801,
IMMEDIATE_ALERT = 0x1802,
LINK_LOSS = 0x1803,
HEALTH_THERMOMETER = 0x1809,
DEVICE_INFORMATION = 0x180A,
BATTERY_SERVICE = 0x180F
} |
| GATT Service Type, each encapsulating a set of Characteristics. More...
|
|
enum | GattCharacteristicType : uint16_t {
DEVICE_NAME = 0x2A00,
APPEARANCE = 0x2A01,
APPEARANCE = (1 << 11),
PERIPHERAL_PRIVACY_FLAG = 0x2A02,
RECONNECTION_ADDRESS = 0x2A03,
PERIPHERAL_PREFERRED_CONNECTION_PARAMETERS = 0x2A04,
TEMPERATURE = 0x2A6E,
TEMPERATURE_CELSIUS = 0x2A1F,
TEMPERATURE_FAHRENHEIT = 0x2A20,
TEMPERATURE_MEASUREMENT = 0x2A1C,
TEMPERATURE_TYPE = 0x2A1D,
INTERMEDIATE_TEMPERATURE = 0x2A1E,
MEASUREMENT_INTERVAL = 0x2A21,
SYSTEM_ID = 0x2A23,
MODEL_NUMBER_STRING = 0x2A24,
SERIAL_NUMBER_STRING = 0x2A25,
FIRMWARE_REVISION_STRING = 0x2A26,
HARDWARE_REVISION_STRING = 0x2A27,
SOFTWARE_REVISION_STRING = 0x2A28,
MANUFACTURER_NAME_STRING = 0x2A29,
REGULATORY_CERT_DATA_LIST = 0x2A2A,
PNP_ID = 0x2A50
} |
| GATT Assigned Characteristic Attribute Type for single logical value. More...
|
|
enum | GattCharacteristicProperty : uint8_t {
Broadcast = 0x01,
Read = 0x02,
WriteNoAck = 0x04,
WriteWithAck = 0x08,
Notify = 0x10,
Indicate = 0x20,
AuthSignedWrite = 0x40,
ExtProps = 0x80,
ReliableWriteExt = 0x81,
AuxWriteExt = 0x82
} |
|
enum | GattRequirementSpec : uint8_t {
Excluded = 0x00,
Mandatory = 0x01,
Optional = 0x02,
Conditional = 0x03,
if_characteristic_supported = 0x11,
if_notify_or_indicate_supported = 0x12,
C1 = 0x21
} |
|
enum | GattAttributeType : uint16_t {
PRIMARY_SERVICE = 0x2800,
SECONDARY_SERVICE = 0x2801,
INCLUDE_DECLARATION = 0x2802,
CHARACTERISTIC = 0x2803,
CHARACTERISTIC_APPEARANCE = 0x2A01,
CHARACTERISTIC_PERIPHERAL_PRIV_FLAG = 0x2A02,
CHARACTERISTIC_RECONNECTION_ADDRESS = 0x2A03,
CHARACTERISTIC_PERIPHERAL_PREF_CONN = 0x2A04,
CHARACTERISTIC_SERVICE_CHANGED = 0x2A05,
CHARACTERISTIC_EXTENDED_PROPERTIES = 0x2900,
CHARACTERISTIC_USER_DESCRIPTION = 0x2901,
CLIENT_CHARACTERISTIC_CONFIGURATION = 0x2902,
SERVER_CHARACTERISTIC_CONFIGURATION = 0x2903,
CHARACTERISTIC_PRESENTATION_FORMAT = 0x2904,
CHARACTERISTIC_AGGREGATE_FORMAT = 0x2905
} |
| Following UUID16 GATT profile attribute types are listed under: BT Core Spec v5.2: Vol 3, Part G GATT: 3.4 Summary of GATT Profile Attribute Types. More...
|
|
enum | HCIConstInt : int32_t { HCIConstInt::LE_CONN_MIN_TIMEOUT_MS = 500
} |
|
enum | HCIConstU16 : uint16_t { HCIConstU16::INDEX_NONE = 0xFFFF,
HCIConstU16::MAX_NAME_LENGTH = 248,
HCIConstU16::MAX_SHORT_NAME_LENGTH = 10,
HCIConstU16::MAX_AD_LENGTH = 31
} |
|
enum | HCIStatusCode : uint8_t {
HCIStatusCode::SUCCESS = 0x00,
HCIStatusCode::UNKNOWN_HCI_COMMAND = 0x01,
HCIStatusCode::UNKNOWN_CONNECTION_IDENTIFIER = 0x02,
HCIStatusCode::HARDWARE_FAILURE = 0x03,
HCIStatusCode::PAGE_TIMEOUT = 0x04,
HCIStatusCode::AUTHENTICATION_FAILURE = 0x05,
HCIStatusCode::PIN_OR_KEY_MISSING = 0x06,
HCIStatusCode::MEMORY_CAPACITY_EXCEEDED = 0x07,
HCIStatusCode::CONNECTION_TIMEOUT = 0x08,
HCIStatusCode::CONNECTION_LIMIT_EXCEEDED = 0x09,
HCIStatusCode::SYNC_DEVICE_CONNECTION_LIMIT_EXCEEDED = 0x0a,
HCIStatusCode::CONNECTION_ALREADY_EXISTS = 0x0b,
HCIStatusCode::COMMAND_DISALLOWED = 0x0c,
HCIStatusCode::CONNECTION_REJECTED_LIMITED_RESOURCES = 0x0d,
HCIStatusCode::CONNECTION_REJECTED_SECURITY = 0x0e,
HCIStatusCode::CONNECTION_REJECTED_UNACCEPTABLE_BD_ADDR = 0x0f,
HCIStatusCode::CONNECTION_ACCEPT_TIMEOUT_EXCEEDED = 0x10,
HCIStatusCode::UNSUPPORTED_FEATURE_OR_PARAM_VALUE = 0x11,
HCIStatusCode::INVALID_HCI_COMMAND_PARAMETERS = 0x12,
HCIStatusCode::REMOTE_USER_TERMINATED_CONNECTION = 0x13,
HCIStatusCode::REMOTE_DEVICE_TERMINATED_CONNECTION_LOW_RESOURCES = 0x14,
HCIStatusCode::REMOTE_DEVICE_TERMINATED_CONNECTION_POWER_OFF = 0x15,
HCIStatusCode::CONNECTION_TERMINATED_BY_LOCAL_HOST = 0x16,
HCIStatusCode::REPEATED_ATTEMPTS = 0x17,
HCIStatusCode::PAIRING_NOT_ALLOWED = 0x18,
HCIStatusCode::UNKNOWN_LMP_PDU = 0x19,
HCIStatusCode::UNSUPPORTED_REMOTE_OR_LMP_FEATURE = 0x1a,
HCIStatusCode::SCO_OFFSET_REJECTED = 0x1b,
HCIStatusCode::SCO_INTERVAL_REJECTED = 0x1c,
HCIStatusCode::SCO_AIR_MODE_REJECTED = 0x1d,
HCIStatusCode::INVALID_LMP_OR_LL_PARAMETERS = 0x1e,
HCIStatusCode::UNSPECIFIED_ERROR = 0x1f,
HCIStatusCode::UNSUPPORTED_LMP_OR_LL_PARAMETER_VALUE = 0x20,
HCIStatusCode::ROLE_CHANGE_NOT_ALLOWED = 0x21,
HCIStatusCode::LMP_OR_LL_RESPONSE_TIMEOUT = 0x22,
HCIStatusCode::LMP_OR_LL_COLLISION = 0x23,
HCIStatusCode::LMP_PDU_NOT_ALLOWED = 0x24,
HCIStatusCode::ENCRYPTION_MODE_NOT_ACCEPTED = 0x25,
HCIStatusCode::LINK_KEY_CANNOT_BE_CHANGED = 0x26,
HCIStatusCode::REQUESTED_QOS_NOT_SUPPORTED = 0x27,
HCIStatusCode::INSTANT_PASSED = 0x28,
HCIStatusCode::PAIRING_WITH_UNIT_KEY_NOT_SUPPORTED = 0x29,
HCIStatusCode::DIFFERENT_TRANSACTION_COLLISION = 0x2a,
HCIStatusCode::QOS_UNACCEPTABLE_PARAMETER = 0x2c,
HCIStatusCode::QOS_REJECTED = 0x2d,
HCIStatusCode::CHANNEL_ASSESSMENT_NOT_SUPPORTED = 0x2e,
HCIStatusCode::INSUFFICIENT_SECURITY = 0x2f,
HCIStatusCode::PARAMETER_OUT_OF_RANGE = 0x30,
HCIStatusCode::ROLE_SWITCH_PENDING = 0x32,
HCIStatusCode::RESERVED_SLOT_VIOLATION = 0x34,
HCIStatusCode::ROLE_SWITCH_FAILED = 0x35,
HCIStatusCode::EIR_TOO_LARGE = 0x36,
HCIStatusCode::SIMPLE_PAIRING_NOT_SUPPORTED_BY_HOST = 0x37,
HCIStatusCode::HOST_BUSY_PAIRING = 0x38,
HCIStatusCode::CONNECTION_REJECTED_NO_SUITABLE_CHANNEL = 0x39,
HCIStatusCode::CONTROLLER_BUSY = 0x3a,
HCIStatusCode::UNACCEPTABLE_CONNECTION_PARAM = 0x3b,
HCIStatusCode::ADVERTISING_TIMEOUT = 0x3c,
HCIStatusCode::CONNECTION_TERMINATED_MIC_FAILURE = 0x3d,
HCIStatusCode::CONNECTION_EST_FAILED_OR_SYNC_TIMEOUT = 0x3e,
HCIStatusCode::MAX_CONNECTION_FAILED = 0x3f,
HCIStatusCode::COARSE_CLOCK_ADJ_REJECTED = 0x40,
HCIStatusCode::TYPE0_SUBMAP_NOT_DEFINED = 0x41,
HCIStatusCode::UNKNOWN_ADVERTISING_IDENTIFIER = 0x42,
HCIStatusCode::LIMIT_REACHED = 0x43,
HCIStatusCode::OPERATION_CANCELLED_BY_HOST = 0x44,
HCIStatusCode::PACKET_TOO_LONG = 0x45,
HCIStatusCode::FAILED = 0xc3,
HCIStatusCode::CONNECT_FAILED = 0xc4,
HCIStatusCode::AUTH_FAILED = 0xc5,
HCIStatusCode::NOT_PAIRED = 0xc6,
HCIStatusCode::NO_RESOURCES = 0xc7,
HCIStatusCode::TIMEOUT = 0xc8,
HCIStatusCode::ALREADY_CONNECTED = 0xc9,
HCIStatusCode::BUSY = 0xca,
HCIStatusCode::REJECTED = 0xcb,
HCIStatusCode::NOT_SUPPORTED = 0xcc,
HCIStatusCode::INVALID_PARAMS = 0xcd,
HCIStatusCode::DISCONNECTED = 0xce,
HCIStatusCode::NOT_POWERED = 0xcf,
HCIStatusCode::CANCELLED = 0xd0,
HCIStatusCode::INVALID_INDEX = 0xd1,
HCIStatusCode::RFKILLED = 0xd2,
HCIStatusCode::ALREADY_PAIRED = 0xd3,
HCIStatusCode::PERMISSION_DENIED = 0xd4,
HCIStatusCode::INTERNAL_TIMEOUT = 0xfd,
HCIStatusCode::INTERNAL_FAILURE = 0xfe,
HCIStatusCode::UNKNOWN = 0xff
} |
| BT Core Spec v5.2: Vol 1, Part F Controller Error Codes: 1.3 List of Error Codes. More...
|
|
enum | HCIConstSizeT : jau::nsize_t {
HCIConstSizeT::COMMAND_HDR_SIZE = 1+3,
HCIConstSizeT::ACL_HDR_SIZE = 1+4,
HCIConstSizeT::SCO_HDR_SIZE = 1+3,
HCIConstSizeT::EVENT_HDR_SIZE = 1+2,
HCIConstSizeT::PACKET_MAX_SIZE = 255
} |
|
enum | HCIPacketType : uint8_t {
HCIPacketType::COMMAND = 0x01,
HCIPacketType::ACLDATA = 0x02,
HCIPacketType::SCODATA = 0x03,
HCIPacketType::EVENT = 0x04,
HCIPacketType::DIAG = 0xf0,
HCIPacketType::VENDOR = 0xff
} |
|
enum | HCIOGF : uint8_t { HCIOGF::LINK_CTL = 0x01,
HCIOGF::LINK_POLICY = 0x02,
HCIOGF::BREDR_CTL = 0x03,
HCIOGF::LE_CTL = 0x08
} |
|
enum | HCIEventType : uint8_t {
HCIEventType::INVALID = 0x00,
HCIEventType::INQUIRY_COMPLETE = 0x01,
HCIEventType::INQUIRY_RESULT = 0x02,
HCIEventType::CONN_COMPLETE = 0x03,
HCIEventType::CONN_REQUEST = 0x04,
HCIEventType::DISCONN_COMPLETE = 0x05,
HCIEventType::AUTH_COMPLETE = 0x06,
HCIEventType::REMOTE_NAME = 0x07,
HCIEventType::ENCRYPT_CHANGE = 0x08,
HCIEventType::CHANGE_LINK_KEY_COMPLETE = 0x09,
HCIEventType::REMOTE_FEATURES = 0x0b,
HCIEventType::REMOTE_VERSION = 0x0c,
HCIEventType::QOS_SETUP_COMPLETE = 0x0d,
HCIEventType::CMD_COMPLETE = 0x0e,
HCIEventType::CMD_STATUS = 0x0f,
HCIEventType::HARDWARE_ERROR = 0x10,
HCIEventType::ROLE_CHANGE = 0x12,
HCIEventType::NUM_COMP_PKTS = 0x13,
HCIEventType::MODE_CHANGE = 0x14,
HCIEventType::PIN_CODE_REQ = 0x16,
HCIEventType::LINK_KEY_REQ = 0x17,
HCIEventType::LINK_KEY_NOTIFY = 0x18,
HCIEventType::CLOCK_OFFSET = 0x1c,
HCIEventType::PKT_TYPE_CHANGE = 0x1d,
HCIEventType::ENCRYPT_KEY_REFRESH_COMPLETE = 0x30,
HCIEventType::IO_CAPABILITY_REQUEST = 0x31,
HCIEventType::IO_CAPABILITY_RESPONSE = 0x32,
HCIEventType::LE_META = 0x3e,
HCIEventType::DISCONN_PHY_LINK_COMPLETE = 0x42,
HCIEventType::DISCONN_LOGICAL_LINK_COMPLETE = 0x46,
HCIEventType::AMP_Receiver_Report = 0x4b
} |
| BT Core Spec v5.2: Vol 4, Part E HCI: 7.7 Events. More...
|
|
enum | HCIMetaEventType : uint8_t {
HCIMetaEventType::INVALID = 0x00,
HCIMetaEventType::LE_CONN_COMPLETE = 0x01,
HCIMetaEventType::LE_ADVERTISING_REPORT = 0x02,
HCIMetaEventType::LE_CONN_UPDATE_COMPLETE = 0x03,
HCIMetaEventType::LE_REMOTE_FEAT_COMPLETE = 0x04,
HCIMetaEventType::LE_LTKEY_REQUEST = 0x05,
HCIMetaEventType::LE_REMOTE_CONN_PARAM_REQ = 0x06,
HCIMetaEventType::LE_DATA_LENGTH_CHANGE = 0x07,
HCIMetaEventType::LE_READ_LOCAL_P256_PUBKEY_COMPLETE = 0x08,
HCIMetaEventType::LE_GENERATE_DHKEY_COMPLETE = 0x09,
HCIMetaEventType::LE_EXT_CONN_COMPLETE = 0x0A,
HCIMetaEventType::LE_DIRECT_ADV_REPORT = 0x0B,
HCIMetaEventType::LE_PHY_UPDATE_COMPLETE = 0x0C,
HCIMetaEventType::LE_EXT_ADV_REPORT = 0x0D,
HCIMetaEventType::LE_PERIODIC_ADV_SYNC_ESTABLISHED = 0x0E,
HCIMetaEventType::LE_PERIODIC_ADV_REPORT = 0x0F,
HCIMetaEventType::LE_PERIODIC_ADV_SYNC_LOST = 0x10,
HCIMetaEventType::LE_SCAN_TIMEOUT = 0x11,
HCIMetaEventType::LE_ADV_SET_TERMINATED = 0x12,
HCIMetaEventType::LE_SCAN_REQ_RECEIVED = 0x13,
HCIMetaEventType::LE_CHANNEL_SEL_ALGO = 0x14,
HCIMetaEventType::LE_CONNLESS_IQ_REPORT = 0x15,
HCIMetaEventType::LE_CONN_IQ_REPORT = 0x16,
HCIMetaEventType::LE_CTE_REQ_FAILED = 0x17,
HCIMetaEventType::LE_PERIODIC_ADV_SYNC_TRANSFER_RECV = 0x18,
HCIMetaEventType::LE_CIS_ESTABLISHED = 0x19,
HCIMetaEventType::LE_CIS_REQUEST = 0x1A,
HCIMetaEventType::LE_CREATE_BIG_COMPLETE = 0x1B,
HCIMetaEventType::LE_TERMINATE_BIG_COMPLETE = 0x1C,
HCIMetaEventType::LE_BIG_SYNC_ESTABLISHED = 0x1D,
HCIMetaEventType::LE_BIG_SYNC_LOST = 0x1E,
HCIMetaEventType::LE_REQUEST_PEER_SCA_COMPLETE = 0x1F,
HCIMetaEventType::LE_PATH_LOSS_THRESHOLD = 0x20,
HCIMetaEventType::LE_TRANSMIT_POWER_REPORTING = 0x21,
HCIMetaEventType::LE_BIGINFO_ADV_REPORT = 0x22
} |
| BT Core Spec v5.2: Vol 4, Part E HCI: 7.7.65 LE Meta event. More...
|
|
enum | HCIOpcode : uint16_t {
HCIOpcode::SPECIAL = 0x0000,
HCIOpcode::CREATE_CONN = 0x0405,
HCIOpcode::DISCONNECT = 0x0406,
HCIOpcode::IO_CAPABILITY_REQ_REPLY = 0x042b,
HCIOpcode::IO_CAPABILITY_REQ_NEG_REPLY = 0x0434,
HCIOpcode::SET_EVENT_MASK = 0x0C01,
HCIOpcode::RESET = 0x0C03,
HCIOpcode::READ_LOCAL_VERSION = 0x1001,
HCIOpcode::READ_LOCAL_COMMANDS = 0x1002,
HCIOpcode::LE_SET_EVENT_MASK = 0x2001,
HCIOpcode::LE_READ_BUFFER_SIZE = 0x2002,
HCIOpcode::LE_READ_LOCAL_FEATURES = 0x2003,
HCIOpcode::LE_SET_RANDOM_ADDR = 0x2005,
HCIOpcode::LE_SET_ADV_PARAM = 0x2006,
HCIOpcode::LE_READ_ADV_TX_POWER = 0x2007,
HCIOpcode::LE_SET_ADV_DATA = 0x2008,
HCIOpcode::LE_SET_SCAN_RSP_DATA = 0x2009,
HCIOpcode::LE_SET_ADV_ENABLE = 0x200a,
HCIOpcode::LE_SET_SCAN_PARAM = 0x200b,
HCIOpcode::LE_SET_SCAN_ENABLE = 0x200c,
HCIOpcode::LE_CREATE_CONN = 0x200d,
HCIOpcode::LE_CREATE_CONN_CANCEL = 0x200e,
HCIOpcode::LE_READ_WHITE_LIST_SIZE = 0x200f,
HCIOpcode::LE_CLEAR_WHITE_LIST = 0x2010,
HCIOpcode::LE_ADD_TO_WHITE_LIST = 0x2011,
HCIOpcode::LE_DEL_FROM_WHITE_LIST = 0x2012,
HCIOpcode::LE_CONN_UPDATE = 0x2013,
HCIOpcode::LE_READ_REMOTE_FEATURES = 0x2016,
HCIOpcode::LE_ENABLE_ENC = 0x2019,
HCIOpcode::LE_READ_PHY = 0x2030,
HCIOpcode::LE_SET_DEFAULT_PHY = 0x2031,
HCIOpcode::LE_SET_EXT_SCAN_PARAMS = 0x2041,
HCIOpcode::LE_SET_EXT_SCAN_ENABLE = 0x2042,
HCIOpcode::LE_EXT_CREATE_CONN = 0x2043
} |
| BT Core Spec v5.2: Vol 4, Part E HCI: 7.1 Link Controller commands. More...
|
|
enum | HCIOpcodeBit : uint8_t {
HCIOpcodeBit::SPECIAL = 0,
HCIOpcodeBit::CREATE_CONN = 3,
HCIOpcodeBit::DISCONNECT = 4,
HCIOpcodeBit::IO_CAPABILITY_REQ_REPLY = 5,
HCIOpcodeBit::IO_CAPABILITY_REQ_NEG_REPLY = 6,
HCIOpcodeBit::SET_EVENT_MASK = 7,
HCIOpcodeBit::RESET = 8,
HCIOpcodeBit::READ_LOCAL_VERSION = 10,
HCIOpcodeBit::READ_LOCAL_COMMANDS = 11,
HCIOpcodeBit::LE_SET_EVENT_MASK = 20,
HCIOpcodeBit::LE_READ_BUFFER_SIZE = 21,
HCIOpcodeBit::LE_READ_LOCAL_FEATURES = 22,
HCIOpcodeBit::LE_SET_RANDOM_ADDR = 23,
HCIOpcodeBit::LE_SET_ADV_PARAM = 24,
HCIOpcodeBit::LE_READ_ADV_TX_POWER = 25,
HCIOpcodeBit::LE_SET_ADV_DATA = 26,
HCIOpcodeBit::LE_SET_SCAN_RSP_DATA = 27,
HCIOpcodeBit::LE_SET_ADV_ENABLE = 28,
HCIOpcodeBit::LE_SET_SCAN_PARAM = 29,
HCIOpcodeBit::LE_SET_SCAN_ENABLE = 30,
HCIOpcodeBit::LE_CREATE_CONN = 31,
HCIOpcodeBit::LE_CREATE_CONN_CANCEL = 32,
HCIOpcodeBit::LE_READ_WHITE_LIST_SIZE = 33,
HCIOpcodeBit::LE_CLEAR_WHITE_LIST = 34,
HCIOpcodeBit::LE_ADD_TO_WHITE_LIST = 35,
HCIOpcodeBit::LE_DEL_FROM_WHITE_LIST = 36,
HCIOpcodeBit::LE_CONN_UPDATE = 37,
HCIOpcodeBit::LE_READ_REMOTE_FEATURES = 38,
HCIOpcodeBit::LE_ENABLE_ENC = 39,
HCIOpcodeBit::LE_READ_PHY = 40,
HCIOpcodeBit::LE_SET_DEFAULT_PHY = 41,
HCIOpcodeBit::LE_SET_EXT_SCAN_PARAMS = 42,
HCIOpcodeBit::LE_SET_EXT_SCAN_ENABLE = 43,
HCIOpcodeBit::LE_EXT_CREATE_CONN = 44
} |
|
enum | MgmtConstU16 : uint16_t { MGMT_INDEX_NONE = 0xFFFF,
MGMT_MAX_NAME_LENGTH = 248+1,
MGMT_MAX_SHORT_NAME_LENGTH = 10+1
} |
|
enum | MgmtSizeConst : jau::nsize_t { MGMT_HEADER_SIZE = 6
} |
|
enum | MgmtStatus : uint8_t {
MgmtStatus::SUCCESS = 0x00,
MgmtStatus::UNKNOWN_COMMAND = 0x01,
MgmtStatus::NOT_CONNECTED = 0x02,
MgmtStatus::FAILED = 0x03,
MgmtStatus::CONNECT_FAILED = 0x04,
MgmtStatus::AUTH_FAILED = 0x05,
MgmtStatus::NOT_PAIRED = 0x06,
MgmtStatus::NO_RESOURCES = 0x07,
MgmtStatus::TIMEOUT = 0x08,
MgmtStatus::ALREADY_CONNECTED = 0x09,
MgmtStatus::BUSY = 0x0a,
MgmtStatus::REJECTED = 0x0b,
MgmtStatus::NOT_SUPPORTED = 0x0c,
MgmtStatus::INVALID_PARAMS = 0x0d,
MgmtStatus::DISCONNECTED = 0x0e,
MgmtStatus::NOT_POWERED = 0x0f,
MgmtStatus::CANCELLED = 0x10,
MgmtStatus::INVALID_INDEX = 0x11,
MgmtStatus::RFKILLED = 0x12,
MgmtStatus::ALREADY_PAIRED = 0x13,
MgmtStatus::PERMISSION_DENIED = 0x14
} |
|
enum | MgmtOption : uint32_t { EXTERNAL_CONFIG = 0x00000001,
PUBLIC_ADDRESS = 0x00000002
} |
|
enum | MgmtLinkKeyType : uint8_t {
MgmtLinkKeyType::COMBI = 0x00,
MgmtLinkKeyType::LOCAL_UNIT = 0x01,
MgmtLinkKeyType::REMOTE_UNIT = 0x02,
MgmtLinkKeyType::DBG_COMBI = 0x03,
MgmtLinkKeyType::UNAUTH_COMBI_P192 = 0x04,
MgmtLinkKeyType::AUTH_COMBI_P192 = 0x05,
MgmtLinkKeyType::CHANGED_COMBI = 0x06,
MgmtLinkKeyType::UNAUTH_COMBI_P256 = 0x07,
MgmtLinkKeyType::AUTH_COMBI_P256 = 0x08,
MgmtLinkKeyType::NONE = 0xff
} |
| Link Key Types compatible with Mgmt's MgmtLinkKeyInfo. More...
|
|
enum | MgmtLTKType : uint8_t {
MgmtLTKType::UNAUTHENTICATED = 0x00,
MgmtLTKType::AUTHENTICATED = 0x01,
MgmtLTKType::UNAUTHENTICATED_P256 = 0x02,
MgmtLTKType::AUTHENTICATED_P256 = 0x03,
MgmtLTKType::DEBUG_P256 = 0x04,
MgmtLTKType::NONE = 0xff
} |
| Long Term Key Types compatible with Mgmt's MgmtLongTermKeyInfo. More...
|
|
enum | MgmtCSRKType : uint8_t {
MgmtCSRKType::UNAUTHENTICATED_LOCAL = 0x00,
MgmtCSRKType::UNAUTHENTICATED_REMOTE = 0x01,
MgmtCSRKType::AUTHENTICATED_LOCAL = 0x02,
MgmtCSRKType::AUTHENTICATED_REMOTE = 0x03,
MgmtCSRKType::NONE = 0xff
} |
| Signature Resolving Key Types compatible with Mgmt's MgmtSignatureResolvingKeyInfo. More...
|
|
enum | SMPConstInt : int32_t |
|
enum | SMPConstU16 : uint16_t { SMPConstU16::SMP_TIMEOUT_MS = 30000
} |
|
enum | SMPPairingState : uint8_t {
SMPPairingState::NONE = 0,
SMPPairingState::FAILED = 1,
SMPPairingState::REQUESTED_BY_RESPONDER = 2,
SMPPairingState::FEATURE_EXCHANGE_STARTED = 3,
SMPPairingState::FEATURE_EXCHANGE_COMPLETED = 4,
SMPPairingState::PASSKEY_EXPECTED = 5,
SMPPairingState::NUMERIC_COMPARE_EXPECTED = 6,
SMPPairingState::OOB_EXPECTED = 7,
SMPPairingState::KEY_DISTRIBUTION = 8,
SMPPairingState::COMPLETED = 9
} |
| SMP Pairing Process state definition. More...
|
|
enum | SMPIOCapability : uint8_t {
SMPIOCapability::DISPLAY_ONLY = 0x00,
SMPIOCapability::DISPLAY_YES_NO = 0x01,
SMPIOCapability::KEYBOARD_ONLY = 0x02,
SMPIOCapability::NO_INPUT_NO_OUTPUT = 0x03,
SMPIOCapability::KEYBOARD_DISPLAY = 0x04,
SMPIOCapability::UNSET = 0xFF
} |
| Vol 3, Part H, 2.3.2 IO capabilities. More...
|
|
enum | SMPOOBDataFlag : uint8_t { SMPOOBDataFlag::OOB_AUTH_DATA_NOT_PRESENT = 0x00,
SMPOOBDataFlag::OOB_AUTH_DATA_REMOTE_PRESENT = 0x01
} |
| Vol 3, Part H, 2.3.3 OOB authentication data. More...
|
|
enum | SMPAuthReqs : uint8_t {
SMPAuthReqs::NONE = 0,
SMPAuthReqs::BONDING = 0b00000001,
SMPAuthReqs::BONDING_RFU = 0b00000010,
SMPAuthReqs::MITM = 0b00000100,
SMPAuthReqs::SECURE_CONNECTIONS = 0b00001000,
SMPAuthReqs::KEYPRESS = 0b00010000,
SMPAuthReqs::CT2_H7_FUNC_SUPPORT = 0b00100000,
SMPAuthReqs::RFU_1 = 0b01000000,
SMPAuthReqs::RFU_2 = 0b10000000
} |
| SMP Authentication Requirements Bits, denotes specific bits or whole protocol uint8_t bit-mask. More...
|
|
enum | SMPKeyType : uint8_t {
SMPKeyType::NONE = 0,
SMPKeyType::ENC_KEY = 0b00000001,
SMPKeyType::ID_KEY = 0b00000010,
SMPKeyType::SIGN_KEY = 0b00000100,
SMPKeyType::LINK_KEY = 0b00001000,
SMPKeyType::RFU_1 = 0b00010000,
SMPKeyType::RFU_2 = 0b00100000,
SMPKeyType::RFU_3 = 0b01000000,
SMPKeyType::RFU_4 = 0b10000000
} |
| SMP Key Type for Distribution, indicates keys distributed in the Transport Specific Key Distribution phase. More...
|
|
|
constexpr BDAddressType | to_BDAddressType (const uint8_t v) noexcept |
|
constexpr uint8_t | number (const BDAddressType rhs) noexcept |
|
std::string | to_string (const BDAddressType type) noexcept |
|
constexpr uint8_t | number (const BLERandomAddressType rhs) noexcept |
|
std::string | to_string (const BLERandomAddressType type) noexcept |
|
constexpr uint8_t | number (const HCILEPeerAddressType rhs) noexcept |
|
BDAddressType | to_BDAddressType (const HCILEPeerAddressType hciPeerAddrType) noexcept |
|
std::string | to_string (const HCILEPeerAddressType type) noexcept |
|
constexpr uint8_t | number (const HCILEOwnAddressType rhs) noexcept |
|
BDAddressType | to_BDAddressType (const HCILEOwnAddressType hciOwnAddrType) noexcept |
|
HCILEOwnAddressType | to_HCILEOwnAddressType (const BDAddressType addrType) noexcept |
|
std::string | to_string (const HCILEOwnAddressType type) noexcept |
|
std::string | to_string (const EUI48Sub &a) noexcept |
|
bool | operator== (const EUI48Sub &lhs, const EUI48Sub &rhs) noexcept |
|
bool | operator!= (const EUI48Sub &lhs, const EUI48Sub &rhs) noexcept |
|
std::string | to_string (const EUI48 &a) noexcept |
|
bool | operator== (const EUI48 &lhs, const EUI48 &rhs) noexcept |
|
bool | operator!= (const EUI48 &lhs, const EUI48 &rhs) noexcept |
|
bool | operator== (const BDAddressAndType &lhs, const BDAddressAndType &rhs) noexcept |
|
bool | operator!= (const BDAddressAndType &lhs, const BDAddressAndType &rhs) noexcept |
|
std::string | to_string (const BDAddressAndType &a) noexcept |
|
bool | operator== (const BTDevice &lhs, const BTDevice &rhs) noexcept |
|
bool | operator!= (const BTDevice &lhs, const BTDevice &rhs) noexcept |
|
bool | operator== (const BTGattChar &lhs, const BTGattChar &rhs) noexcept |
|
bool | operator!= (const BTGattChar &lhs, const BTGattChar &rhs) noexcept |
|
bool | operator== (const BTGattDesc &lhs, const BTGattDesc &rhs) noexcept |
|
bool | operator!= (const BTGattDesc &lhs, const BTGattDesc &rhs) noexcept |
|
bool | operator== (const BTGattService &lhs, const BTGattService &rhs) noexcept |
|
bool | operator!= (const BTGattService &lhs, const BTGattService &rhs) noexcept |
|
constexpr uint8_t | number (const BTMode rhs) noexcept |
|
std::string | to_string (const BTMode v) noexcept |
|
BTMode | to_BTMode (const std::string &value) noexcept |
| Maps the specified name to a constant of BTMode. More...
|
|
constexpr uint64_t | number (const LE_Features rhs) noexcept |
|
constexpr LE_Features | operator^ (const LE_Features lhs, const LE_Features rhs) noexcept |
|
constexpr LE_Features | operator| (const LE_Features lhs, const LE_Features rhs) noexcept |
|
constexpr LE_Features | operator& (const LE_Features lhs, const LE_Features rhs) noexcept |
|
constexpr bool | operator== (const LE_Features lhs, const LE_Features rhs) noexcept |
|
constexpr bool | operator!= (const LE_Features lhs, const LE_Features rhs) noexcept |
|
constexpr bool | isLEFeaturesBitSet (const LE_Features mask, const LE_Features bit) noexcept |
|
std::string | to_string (const LE_Features mask) noexcept |
|
constexpr uint8_t | number (const LE_PHYs rhs) noexcept |
|
constexpr LE_PHYs | operator^ (const LE_PHYs lhs, const LE_PHYs rhs) noexcept |
|
constexpr LE_PHYs | operator| (const LE_PHYs lhs, const LE_PHYs rhs) noexcept |
|
constexpr LE_PHYs | operator& (const LE_PHYs lhs, const LE_PHYs rhs) noexcept |
|
constexpr bool | operator== (const LE_PHYs lhs, const LE_PHYs rhs) noexcept |
|
constexpr bool | operator!= (const LE_PHYs lhs, const LE_PHYs rhs) noexcept |
|
constexpr bool | isLEPHYBitSet (const LE_PHYs mask, const LE_PHYs bit) noexcept |
|
std::string | to_string (const LE_PHYs mask) noexcept |
|
constexpr uint8_t | number (const BTSecurityLevel rhs) noexcept |
|
constexpr bool | operator== (const BTSecurityLevel lhs, const BTSecurityLevel rhs) noexcept |
|
constexpr bool | operator!= (const BTSecurityLevel lhs, const BTSecurityLevel rhs) noexcept |
|
constexpr bool | operator< (const BTSecurityLevel lhs, const BTSecurityLevel rhs) noexcept |
|
constexpr bool | operator<= (const BTSecurityLevel lhs, const BTSecurityLevel rhs) noexcept |
|
constexpr bool | operator> (const BTSecurityLevel lhs, const BTSecurityLevel rhs) noexcept |
|
constexpr bool | operator>= (const BTSecurityLevel lhs, const BTSecurityLevel rhs) noexcept |
|
constexpr BTSecurityLevel | to_BTSecurityLevel (const uint8_t v) noexcept |
|
std::string | to_string (const BTSecurityLevel v) noexcept |
|
constexpr uint8_t | number (const PairingMode rhs) noexcept |
|
std::string | to_string (const PairingMode v) noexcept |
|
constexpr uint8_t | number (const ScanType rhs) noexcept |
|
constexpr ScanType | operator~ (const ScanType val) noexcept |
|
constexpr ScanType | operator^ (const ScanType lhs, const ScanType rhs) noexcept |
|
constexpr ScanType | operator| (const ScanType lhs, const ScanType rhs) noexcept |
|
constexpr ScanType | operator& (const ScanType lhs, const ScanType rhs) noexcept |
|
constexpr bool | operator== (const ScanType lhs, const ScanType rhs) noexcept |
|
constexpr bool | operator!= (const ScanType lhs, const ScanType rhs) noexcept |
|
constexpr ScanType | changeScanType (const ScanType current, const ScanType changeType, const bool changeEnable) noexcept |
|
constexpr bool | hasScanType (const ScanType current, const ScanType testType) noexcept |
|
std::string | to_string (const ScanType v) noexcept |
|
ScanType | to_ScanType (BTMode btMode) |
|
constexpr uint8_t | number (const AD_PDU_Type rhs) noexcept |
|
std::string | to_string (const AD_PDU_Type v) noexcept |
|
constexpr uint16_t | number (const EAD_Event_Type rhs) noexcept |
|
constexpr EAD_Event_Type | operator| (const EAD_Event_Type lhs, const EAD_Event_Type rhs) noexcept |
|
constexpr EAD_Event_Type | operator& (const EAD_Event_Type lhs, const EAD_Event_Type rhs) noexcept |
|
constexpr bool | operator== (const EAD_Event_Type lhs, const EAD_Event_Type rhs) noexcept |
|
constexpr bool | operator!= (const EAD_Event_Type lhs, const EAD_Event_Type rhs) noexcept |
|
constexpr bool | isEAD_Event_TypeSet (const EAD_Event_Type mask, const EAD_Event_Type bit) noexcept |
|
constexpr void | setEAD_Event_TypeSet (EAD_Event_Type &mask, const EAD_Event_Type bit) noexcept |
|
std::string | to_string (const EAD_Event_Type v) noexcept |
|
constexpr uint8_t | number (const HCIWhitelistConnectType rhs) noexcept |
|
constexpr uint16_t | number (const L2CAP_CID rhs) noexcept |
|
constexpr L2CAP_CID | to_L2CAP_CID (const uint16_t v) noexcept |
|
std::string | to_string (const L2CAP_CID v) noexcept |
|
constexpr uint16_t | number (const L2CAP_PSM rhs) noexcept |
|
constexpr L2CAP_PSM | to_L2CAP_PSM (const uint16_t v) noexcept |
|
std::string | to_string (const L2CAP_PSM v) noexcept |
|
constexpr uint16_t | number (const AppearanceCat rhs) noexcept |
|
std::string | to_string (const AppearanceCat v) noexcept |
|
constexpr bool | operator== (const ManufactureSpecificData &lhs, const ManufactureSpecificData &rhs) noexcept |
|
constexpr bool | operator!= (const ManufactureSpecificData &lhs, const ManufactureSpecificData &rhs) noexcept |
|
constexpr uint8_t | number (const GAPFlags rhs) noexcept |
|
std::string | to_string (const GAPFlags v) noexcept |
|
constexpr uint32_t | number (const EIRDataType rhs) noexcept |
|
constexpr EIRDataType | operator| (const EIRDataType lhs, const EIRDataType rhs) noexcept |
|
constexpr EIRDataType | operator& (const EIRDataType lhs, const EIRDataType rhs) noexcept |
|
constexpr bool | operator== (const EIRDataType lhs, const EIRDataType rhs) noexcept |
|
constexpr bool | operator!= (const EIRDataType lhs, const EIRDataType rhs) noexcept |
|
constexpr bool | isEIRDataTypeSet (const EIRDataType mask, const EIRDataType bit) noexcept |
|
constexpr void | setEIRDataTypeSet (EIRDataType &mask, const EIRDataType bit) noexcept |
|
std::string | to_string (const EIRDataType mask) noexcept |
|
std::string | to_string (EInfoReport::Source source) noexcept |
|
std::string | to_string (const EInfoReport &eir, const bool includeServices=true) noexcept |
|
std::string | to_string (const BTObject &o) noexcept |
|
constexpr AdapterSetting | operator~ (const AdapterSetting rhs) noexcept |
|
constexpr AdapterSetting | operator^ (const AdapterSetting lhs, const AdapterSetting rhs) noexcept |
|
constexpr AdapterSetting | operator| (const AdapterSetting lhs, const AdapterSetting rhs) noexcept |
|
constexpr AdapterSetting | operator& (const AdapterSetting lhs, const AdapterSetting rhs) noexcept |
|
constexpr bool | operator== (const AdapterSetting lhs, const AdapterSetting rhs) noexcept |
|
constexpr bool | operator!= (const AdapterSetting lhs, const AdapterSetting rhs) noexcept |
|
constexpr AdapterSetting | getAdapterSettingMaskDiff (const AdapterSetting setting_a, const AdapterSetting setting_b) noexcept |
|
constexpr bool | isAdapterSettingBitSet (const AdapterSetting mask, const AdapterSetting bit) noexcept |
|
constexpr void | setAdapterSettingMaskBit (AdapterSetting &mask, const AdapterSetting bit) noexcept |
|
constexpr void | clrAdapterSettingMaskBit (AdapterSetting &mask, const AdapterSetting bit) noexcept |
|
std::string | to_string (const AdapterSetting settingBitMask) noexcept |
|
BTMode | getAdapterSettingsBTMode (const AdapterSetting settingMask) noexcept |
| Maps the given AdapterSetting to BTMode. More...
|
|
std::string | to_string (const AdapterInfo &a) noexcept |
|
std::string | GattServiceTypeToString (const GattServiceType v) noexcept |
|
std::string | GattCharacteristicTypeToString (const GattCharacteristicType v) noexcept |
|
std::string | GattCharacteristicPropertyToString (const GattCharacteristicProperty v) noexcept |
|
std::string | GattRequirementSpecToString (const GattRequirementSpec v) noexcept |
|
const GattServiceCharacteristic * | findGattServiceChar (const uint16_t uuid16) noexcept |
| Find the GattServiceCharacteristic entry by given uuid16, denominating either a GattServiceType or GattCharacteristicType. More...
|
|
const GattCharacteristicSpec * | findGattCharSpec (const uint16_t uuid16) noexcept |
| Find the GattCharacteristicSpec entry by given uuid16, denominating either a GattCharacteristicType. More...
|
|
std::string | GattNameToString (const TROOctets &v) noexcept |
| Converts a GATT Name (not null-terminated) UTF8 to a null-terminated C++ string. More...
|
|
constexpr int32_t | number (const HCIConstInt rhs) noexcept |
|
constexpr int32_t | getHCIConnSupervisorTimeout (const uint16_t conn_latency, const uint16_t conn_interval_max_ms, const uint16_t min_result_ms=number(HCIConstInt::LE_CONN_MIN_TIMEOUT_MS), const uint16_t multiplier=10) noexcept |
| Defining the supervising timeout for LE connections to be a multiple of the maximum connection interval as follows: More...
|
|
constexpr uint16_t | number (const HCIConstU16 rhs) noexcept |
|
constexpr uint8_t | number (const HCIStatusCode rhs) noexcept |
|
std::string | to_string (const HCIStatusCode ec) noexcept |
|
constexpr jau::nsize_t | number (const HCIConstSizeT rhs) noexcept |
|
constexpr uint8_t | number (const HCIPacketType rhs) noexcept |
|
std::string | to_string (const HCIPacketType op) noexcept |
|
constexpr uint8_t | number (const HCIOGF rhs) noexcept |
|
std::string | to_string (const HCIOGF op) noexcept |
|
constexpr uint8_t | number (const HCIEventType rhs) noexcept |
|
std::string | to_string (const HCIEventType op) noexcept |
|
constexpr uint8_t | number (const HCIMetaEventType rhs) noexcept |
|
std::string | to_string (const HCIMetaEventType op) noexcept |
|
constexpr uint16_t | number (const HCIOpcode rhs) noexcept |
|
std::string | to_string (const HCIOpcode op) noexcept |
|
constexpr uint8_t | number (const HCIOpcodeBit rhs) noexcept |
|
std::string | to_string (const HCIPacket &p) noexcept |
|
std::string | to_string (const MgmtStatus opc) noexcept |
|
HCIStatusCode | to_HCIStatusCode (const MgmtStatus mstatus) noexcept |
|
std::string | to_string (const MgmtLinkKeyType type) noexcept |
|
std::string | to_string (const MgmtLTKType type) noexcept |
|
MgmtLTKType | to_MgmtLTKType (const SMPLongTermKeyInfo::Property ltk_prop_mask) noexcept |
|
std::string | to_string (const MgmtCSRKType type) noexcept |
|
constexpr int32_t | number (const SMPConstInt rhs) noexcept |
|
constexpr uint16_t | number (const SMPConstU16 rhs) noexcept |
|
std::string | to_string (const SMPPairingState state) noexcept |
|
constexpr bool | isSMPPairingActive (const SMPPairingState state) noexcept |
| Returns true if the given SMPPairingState indicated an active pairing process, i.e. More...
|
|
constexpr bool | hasSMPPairingFinished (const SMPPairingState state) noexcept |
| Returns true if the given SMPPairingState indicates a finished pairing process, i.e. More...
|
|
constexpr bool | isSMPPairingAllowingInput (const SMPPairingState state, const SMPPairingState inputSpec) noexcept |
| Returns true if the given SMPPairingState indicates a pairing process waiting for user input, i.e. More...
|
|
constexpr SMPIOCapability | to_SMPIOCapability (const uint8_t v) noexcept |
|
constexpr uint8_t | number (const SMPIOCapability rhs) noexcept |
|
std::string | to_string (const SMPIOCapability ioc) noexcept |
|
constexpr bool | hasSMPIOCapabilityBinaryInput (const SMPIOCapability ioc) noexcept |
|
constexpr bool | hasSMPIOCapabilityFullInput (const SMPIOCapability ioc) noexcept |
|
constexpr uint8_t | number (const SMPOOBDataFlag rhs) noexcept |
|
std::string | to_string (const SMPOOBDataFlag v) noexcept |
|
constexpr SMPAuthReqs | operator^ (const SMPAuthReqs lhs, const SMPAuthReqs rhs) noexcept |
|
constexpr SMPAuthReqs | operator| (const SMPAuthReqs lhs, const SMPAuthReqs rhs) noexcept |
|
constexpr SMPAuthReqs | operator& (const SMPAuthReqs lhs, const SMPAuthReqs rhs) noexcept |
|
constexpr bool | operator== (const SMPAuthReqs lhs, const SMPAuthReqs rhs) noexcept |
|
constexpr bool | operator!= (const SMPAuthReqs lhs, const SMPAuthReqs rhs) noexcept |
|
constexpr uint8_t | number (const SMPAuthReqs rhs) noexcept |
|
constexpr bool | isSMPAuthReqBitSet (const SMPAuthReqs mask, const SMPAuthReqs bit) noexcept |
|
std::string | to_string (const SMPAuthReqs mask) noexcept |
|
PairingMode | getPairingMode (const bool use_sc, const SMPAuthReqs authReqs_ini, const SMPIOCapability ioCap_ini, const SMPOOBDataFlag oobFlag_ini, const SMPAuthReqs authReqs_res, const SMPIOCapability ioCap_res, const SMPOOBDataFlag oobFlag_res) noexcept |
| Returns the PairingMode derived from both devices' sets of SMPAuthReqs, SMPIOCapability and SMPOOBDataFlag. More...
|
|
PairingMode | getPairingMode (const bool use_sc, const SMPIOCapability ioCap_ini, const SMPIOCapability ioCap_res) noexcept |
| Returns the PairingMode derived from both devices' SMPIOCapability. More...
|
|
constexpr SMPKeyType | operator^ (const SMPKeyType lhs, const SMPKeyType rhs) noexcept |
|
constexpr SMPKeyType & | operator^= (SMPKeyType &store, const SMPKeyType &rhs) noexcept |
|
constexpr SMPKeyType | operator| (const SMPKeyType lhs, const SMPKeyType rhs) noexcept |
|
constexpr SMPKeyType & | operator|= (SMPKeyType &store, const SMPKeyType &rhs) noexcept |
|
constexpr SMPKeyType | operator& (const SMPKeyType lhs, const SMPKeyType rhs) noexcept |
|
constexpr SMPKeyType & | operator&= (SMPKeyType &store, const SMPKeyType &rhs) noexcept |
|
constexpr bool | operator== (const SMPKeyType lhs, const SMPKeyType rhs) noexcept |
|
constexpr bool | operator!= (const SMPKeyType lhs, const SMPKeyType rhs) noexcept |
|
constexpr uint8_t | number (const SMPKeyType rhs) noexcept |
|
constexpr bool | isKeyDistBitSet (const SMPKeyType mask, const SMPKeyType bit) noexcept |
|
std::string | to_string (const SMPKeyType mask) noexcept |
|
constexpr SMPLongTermKeyInfo::Property | operator^ (const SMPLongTermKeyInfo::Property lhs, const SMPLongTermKeyInfo::Property rhs) noexcept |
|
constexpr SMPLongTermKeyInfo::Property & | operator^= (SMPLongTermKeyInfo::Property &store, const SMPLongTermKeyInfo::Property &rhs) noexcept |
|
constexpr SMPLongTermKeyInfo::Property | operator| (const SMPLongTermKeyInfo::Property lhs, const SMPLongTermKeyInfo::Property rhs) noexcept |
|
constexpr SMPLongTermKeyInfo::Property & | operator|= (SMPLongTermKeyInfo::Property &store, const SMPLongTermKeyInfo::Property &rhs) noexcept |
|
constexpr SMPLongTermKeyInfo::Property | operator& (const SMPLongTermKeyInfo::Property lhs, const SMPLongTermKeyInfo::Property rhs) noexcept |
|
constexpr SMPLongTermKeyInfo::Property & | operator&= (SMPLongTermKeyInfo::Property &store, const SMPLongTermKeyInfo::Property &rhs) noexcept |
|
constexpr bool | operator== (const SMPLongTermKeyInfo::Property lhs, const SMPLongTermKeyInfo::Property rhs) noexcept |
|
constexpr bool | operator!= (const SMPLongTermKeyInfo::Property lhs, const SMPLongTermKeyInfo::Property rhs) noexcept |
|
std::string | to_String (const SMPLongTermKeyInfo <k) noexcept |
|
constexpr SMPSignatureResolvingKeyInfo::Property | operator^ (const SMPSignatureResolvingKeyInfo::Property lhs, const SMPSignatureResolvingKeyInfo::Property rhs) noexcept |
|
constexpr SMPSignatureResolvingKeyInfo::Property & | operator^= (SMPSignatureResolvingKeyInfo::Property &store, const SMPSignatureResolvingKeyInfo::Property &rhs) noexcept |
|
constexpr SMPSignatureResolvingKeyInfo::Property | operator| (const SMPSignatureResolvingKeyInfo::Property lhs, const SMPSignatureResolvingKeyInfo::Property rhs) noexcept |
|
constexpr SMPSignatureResolvingKeyInfo::Property & | operator|= (SMPSignatureResolvingKeyInfo::Property &store, const SMPSignatureResolvingKeyInfo::Property &rhs) noexcept |
|
constexpr SMPSignatureResolvingKeyInfo::Property | operator& (const SMPSignatureResolvingKeyInfo::Property lhs, const SMPSignatureResolvingKeyInfo::Property rhs) noexcept |
|
constexpr SMPSignatureResolvingKeyInfo::Property & | operator&= (SMPSignatureResolvingKeyInfo::Property &store, const SMPSignatureResolvingKeyInfo::Property &rhs) noexcept |
|
constexpr bool | operator== (const SMPSignatureResolvingKeyInfo::Property lhs, const SMPSignatureResolvingKeyInfo::Property rhs) noexcept |
|
constexpr bool | operator!= (const SMPSignatureResolvingKeyInfo::Property lhs, const SMPSignatureResolvingKeyInfo::Property rhs) noexcept |
|
std::string | to_String (const SMPSignatureResolvingKeyInfo &csrk) noexcept |
|
std::string | to_String (const SMPPDUMsg &m) noexcept |
|
void | put_uuid (uint8_t *buffer, jau::nsize_t const byte_offset, const uuid_t &v) noexcept |
|
void | put_uuid (uint8_t *buffer, jau::nsize_t const byte_offset, const uuid_t &v, bool littleEndian) noexcept |
|
uuid16_t | get_uuid16 (uint8_t const *buffer, jau::nsize_t const byte_offset) noexcept |
|
uuid16_t | get_uuid16 (uint8_t const *buffer, jau::nsize_t const byte_offset, bool littleEndian) noexcept |
|
uuid32_t | get_uuid32 (uint8_t const *buffer, jau::nsize_t const byte_offset) noexcept |
|
uuid32_t | get_uuid32 (uint8_t const *buffer, jau::nsize_t const byte_offset, bool littleEndian) noexcept |
|
uuid128_t | get_uuid128 (uint8_t const *buffer, jau::nsize_t const byte_offset) noexcept |
|
uuid128_t | get_uuid128 (uint8_t const *buffer, jau::nsize_t const byte_offset, bool littleEndian) noexcept |
|
BDAddressType | fromJavaAdressTypeToBDAddressType (JNIEnv *env, jstring jAddressType) |
|
jstring | fromBDAddressTypeToJavaAddressType (JNIEnv *env, BDAddressType bdAddressType) |
|
Direct-BT Overview
Direct-BT provides direct Bluetooth LE and BREDR programming, offering robust high-performance support for embedded & desktop with zero overhead via C++ and Java.
Direct-BT follows the official Bluetooth Specification and its C++ implementation contains detailed references.
Direct-BT supports a fully event driven workflow from adapter management via device discovery to GATT programming, using its platform agnostic HCI, GATT, SMP and L2CAP client-side protocol implementation.
Direct-BT Layers
- BTManager for adapter configuration and adapter add/removal notifications (ChangedAdapterSetFunc())
- Using BlueZ Kernel Manager Control Channel via MgmtMsg communication.
- HCI Handling via HCIHandler using HCIPacket implementing connect/disconnect w/ tracking, device discovery, etc
- ATT PDU AttPDUMsg via L2CAP for low level packet communication
- GATT Support via BTGattHandler using AttPDUMsg over L2CAPComm, providing
- SMP PDU SMPPDUMsg via L2CAP for Security Manager Protocol (SMP) communication
- SMP Support via SMPHandler using SMPPDUMsg over L2CAPComm, providing (Not yet supported by Linux/BlueZ)
- LE Secure Connections
- LE legacy pairing
- On Linux/BlueZ, LE Secure Connections and LE legacy pairing is supported using
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
- Move specified HCI host features used in BTManager to HCIHandler, SMPHandler,.. - and -
- Add specialization for each new platform using their non-platform-agnostic features.
Direct-BT User Hierarchy
From a user perspective the following hierarchy is provided
Direct-BT Object Lifecycle
Object lifecycle with all instances and marked weak back-references to their owner
Direct-BT Mapped Names C++ vs Java
Mapped names from C++ implementation to Java implementation and to Java interface:
Direct-BT Event Driven Workflow
A fully event driven workflow from adapter management via device discovery to GATT programming is supported.
ChangedAdapterSetFunc() allows listening to added and removed BTAdapter via BTManager.
AdapterStatusListener allows listening to BTAdapter changes and BTDevice discovery.
BTGattCharListener allows listening to GATT indications and notifications.
Main event listener can be attached to these objects which maintain a set of unique listener instances without duplicates.
Other API attachment method exists for BTGattCharListener, however, they only exists for convenience and end up to be attached to BTGattHandler.
BT Core Spec v5.2: Vol 3, Part A L2CAP Spec: 7.9 PRIORITIZING DATA OVER HCI
In order for guaranteed channels to meet their guarantees, L2CAP should prioritize traffic over the HCI transport in devices that support HCI. Packets for Guaranteed channels should receive higher priority than packets for Best Effort channels.
ATTPDUTypes.hpp Module for ATTPDUMsg Types:
- BT Core Spec v5.2: Vol 3, Part F Attribute Protocol (ATT)
Module BTGattChar:
- BT Core Spec v5.2: Vol 3, Part G Generic Attribute Protocol (GATT)
- BT Core Spec v5.2: Vol 3, Part G GATT: 2.6 GATT Profile Hierarchy
Module GATTDescriptor:
- BT Core Spec v5.2: Vol 3, Part G Generic Attribute Protocol (GATT)
- BT Core Spec v5.2: Vol 3, Part G GATT: 2.6 GATT Profile Hierarchy
Module BTGattHandler:
- BT Core Spec v5.2: Vol 3, Part G Generic Attribute Protocol (GATT)
- BT Core Spec v5.2: Vol 3, Part G GATT: 2.6 GATT Profile Hierarchy
- BT Core Spec v5.2: Vol 3, Part G GATT: 3.4 Summary of GATT Profile Attribute Types
Module GATTService:
- BT Core Spec v5.2: Vol 3, Part G Generic Attribute Protocol (GATT)
- BT Core Spec v5.2: Vol 3, Part G GATT: 2.6 GATT Profile Hierarchy
GattNumbers.hpp Module for Higher level GATT value and service types like GattServiceType, GattCharacteristicType, GattCharacteristicProperty, GattRequirementSpec .. and finally GattServiceCharacteristic.
GATTTypes.hpp Module for GATT Types like GattAttributeType:
- BT Core Spec v5.2: Vol 3, Part G Generic Attribute Protocol (GATT)
- BT Core Spec v5.2: Vol 3, Part G GATT: 2.6 GATT Profile Hierarchy
Module HCIComm:
- BT Core Spec v5.2: Vol 4, Part E Host Controller Interface (HCI)
Module HCIHandler:
- BT Core Spec v5.2: Vol 4, Part E Host Controller Interface (HCI)
HCITypes.hpp Module for HCIPacket Types, HCIStatusCode etc:
- BT Core Spec v5.2: Vol 4, Part E Host Controller Interface (HCI): 7 HCI commands and events
Module L2CAPComm:
- BT Core Spec v5.2: Vol 3, Part A: BT Logical Link Control and Adaption Protocol (L2CAP)
SMPHandler.hpp Module for SMPHandler using SMPPDUMsg types
- BT Core Spec v5.2: Vol 3, Part H Security Manager Specification (SM): 2 Security Manager (SM)
- BT Core Spec v5.2: Vol 3, Part H Security Manager Specification (SM): 3 Security Manager Protocol (SMP)
Overall bookmark regarding BT Security
- BT Core Spec v5.2: Vol 1, Part A Architecture: 5 Security architecture
- BT Core Spec v5.2: Vol 1, Part A Architecture: 5.4 LE Security
- BT Core Spec v5.2: Vol 1, Part A Architecture: 5.4.5 LE Privacy feature
- device privacy mode (mixed mode, also accept other peer address)
- network privacy mode (only private address - default!)
- add device to resolving list, implying being added to device white list!
- BT Core Spec v5.2: Vol 3, Part C GAP: 10.2 LE SECURITY MODES
- BT Core Spec v5.2: Vol 3, Part H Security Manager Specification (SM): 2 Security Manager (SM)
- 2.3.5 Pairing: 2.3.5.6 LE Secure Connections pairing phase 2
- 2.3.5 Pairing: 2.3.5.6.3 LE Authentication stage 1 – Passkey Entry
- BT Core Spec v5.2: Vol 3, Part H Security Manager Specification (SM): 3 Security Manager Protocol (SMP)
- BT Core Spec v5.2: Vol 4, Part E HCI: 7.8.77 LE Set Privacy Mode command
- BT Core Spec v5.2: Vol 6 LE Adapter, Part B Link Layer Spec: 4.7 Resolving List
SMPTypes.hpp Module for SMPPDUMsg Types, SMPAuthReqs etc:
- BT Core Spec v5.2: Vol 3, Part H Security Manager Specification (SM): 2 Security Manager (SM)
- BT Core Spec v5.2: Vol 3, Part H Security Manager Specification (SM): 3 Security Manager Protocol (SMP)