Direct-BT v3.3.0-1-gc2d430c
Direct-BT - Direct Bluetooth Programming.
Classes | Namespaces | Typedefs | Enumerations | Functions
MgmtTypes.hpp File Reference
#include <cstring>
#include <string>
#include <cstdint>
#include <mutex>
#include <jau/functional.hpp>
#include <jau/cow_darray.hpp>
#include <jau/octets.hpp>
#include <jau/packed_attribute.hpp>
#include "BTTypes0.hpp"
#include "BTIoctl.hpp"
#include "HCIComm.hpp"
#include "HCITypes.hpp"
#include "BTTypes1.hpp"
#include "SMPTypes.hpp"
#include "jau/int_types.hpp"
Include dependency graph for MgmtTypes.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  direct_bt::MgmtAdapterEventCallback
 
class  direct_bt::MgmtAddDeviceToWhitelistCmd
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t action More...
 
class  direct_bt::MgmtCancelPairDevice
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtCmdAdressInfoMeta
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtCommand
 
struct  direct_bt::MgmtConnParam
 Used in MgmtLoadConnParamCmd and MgmtEvtNewConnectionParam. More...
 
struct  direct_bt::MgmtDefaultParam
 Used in MgmtReadDefaultSysParamCmd and MgmtSetDefaultConnParamCmd. More...
 
class  direct_bt::MgmtDisconnectCmd
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtEvent
 uint16_t opcode, uint16_t dev-id, uint16_t param_size More...
 
class  direct_bt::MgmtEvtAdapterInfo
 
class  direct_bt::MgmtEvtAdressInfoMeta
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtEvtAuthFailed
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t status More...
 
class  direct_bt::MgmtEvtCmdComplete
 
class  direct_bt::MgmtEvtCmdStatus
 
class  direct_bt::MgmtEvtControllerError
 
class  direct_bt::MgmtEvtDeviceBlocked
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtEvtDeviceConnected
 mgmt_addr_info { EUI48, uint8_t type }, uint32_t flags, uint16_t eir_len; uint8_t *eir More...
 
class  direct_bt::MgmtEvtDeviceConnectFailed
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t status More...
 
class  direct_bt::MgmtEvtDeviceDisconnected
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t reason More...
 
class  direct_bt::MgmtEvtDeviceFound
 mgmt_addr_info { EUI48, uint8_t type }, int8_t rssi, uint32_t flags, uint16_t eir_len; uint8_t *eir More...
 
class  direct_bt::MgmtEvtDeviceUnblocked
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtEvtDeviceUnpaired
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtEvtDeviceWhitelistAdded
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t action More...
 
class  direct_bt::MgmtEvtDeviceWhitelistRemoved
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtEvtDiscovering
 
class  direct_bt::MgmtEvtHCIEncryptionChanged
 mgmt_addr_info { EUI48, uint8_t type }, HCIStatusCode status (1 Octet) uint8_t enc_enabled (1 Octet) More...
 
class  direct_bt::MgmtEvtHCIEncryptionKeyRefreshComplete
 mgmt_addr_info { EUI48, uint8_t type }, HCIStatusCode status (1 Octet) More...
 
class  direct_bt::MgmtEvtHCILEEnableEncryptionCmd
 BT Core Spec v5.2: Vol 4, Part E HCI: 7.8.24 LE Enable Encryption command. More...
 
class  direct_bt::MgmtEvtHCILELTKReplyAckCmd
 BT Core Spec v5.2: Vol 4, Part E HCI: 7.8.25 LE Long Term Key Request Reply command. More...
 
class  direct_bt::MgmtEvtHCILELTKReplyRejCmd
 BT Core Spec v5.2: Vol 4, Part E HCI: 7.8.26 LE Long Term Key Request Negative Reply command. More...
 
class  direct_bt::MgmtEvtHCILELTKReq
 BT Core Spec v5.2: Vol 4, Part E HCI: 7.7.65.5 LE Long Term Key Request event. More...
 
class  direct_bt::MgmtEvtHCILEPhyUpdateComplete
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t Tx (8 Octets) uint8_t Rx (8 Octets) More...
 
class  direct_bt::MgmtEvtHCILERemoteFeatures
 mgmt_addr_info { EUI48, uint8_t type }, uint64_t features (8 Octets) More...
 
class  direct_bt::MgmtEvtLocalNameChanged
 uint8_t name[MGMT_MAX_NAME_LENGTH]; uint8_t short_name[MGMT_MAX_SHORT_NAME_LENGTH]; More...
 
class  direct_bt::MgmtEvtNewConnectionParam
 int8_t store_hint, MgmtConnParam connParam More...
 
class  direct_bt::MgmtEvtNewIdentityResolvingKey
 uint8_t store_hint, EUI48 random_address; MgmtIdentityResolvingKey key More...
 
class  direct_bt::MgmtEvtNewLinkKey
 uint8_t store_hint, MgmtLinkKey key More...
 
class  direct_bt::MgmtEvtNewLongTermKey
 uint8_t store_hint, MgmtLongTermKey key More...
 
class  direct_bt::MgmtEvtNewSettings
 uint32_t settings More...
 
class  direct_bt::MgmtEvtNewSignatureResolvingKey
 uint8_t store_hint, EUI48 random_address; MgmtSignatureResolvingKey key More...
 
class  direct_bt::MgmtEvtPairDeviceComplete
 mgmt_addr_info { EUI48, uint8_t type }, MgmtStatus (1 octet) More...
 
class  direct_bt::MgmtEvtPasskeyNotify
 mgmt_addr_info { EUI48, uint8_t type }, uint32_t passkey uint8_t entered More...
 
class  direct_bt::MgmtEvtPinCodeRequest
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t secure More...
 
class  direct_bt::MgmtEvtUserConfirmRequest
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t confirm_hint uint32_t value More...
 
class  direct_bt::MgmtEvtUserPasskeyRequest
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtException
 
class  direct_bt::MgmtGetConnectionInfoCmd
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtIdentityResolveKeyCmd
 uint16_t key_count MgmtLongTermKey keys[key_count] More...
 
struct  direct_bt::MgmtIdentityResolvingKey
 Used for MgmtLoadIdentityResolvingKeyCmd and MgmtEvtNewIdentityResolvingKey. More...
 
struct  direct_bt::MgmtLinkKeyInfo
 Used for MgmtLoadLinkKeyCmd and MgmtEvtNewLinkKey. More...
 
class  direct_bt::MgmtLoadConnParamCmd
 uint16_t param_count 2 MgmtConnParam param[] 15 = 1x More...
 
class  direct_bt::MgmtLoadIdentityResolvingKeyCmd
 uint16_t key_count MgmtIdentityResolvingKey keys[key_count] More...
 
class  direct_bt::MgmtLoadLinkKeyCmd
 uint8_t debug_keys, uint16_t key_count, MgmtLinkKey keys[key_count] More...
 
class  direct_bt::MgmtLoadLongTermKeyCmd
 uint16_t key_count MgmtLongTermKey keys[key_count] More...
 
struct  direct_bt::MgmtLongTermKey
 Used for MgmtLoadLongTermKeyCmd and MgmtEvtNewLongTermKey. More...
 
class  direct_bt::MgmtMsg
 
class  direct_bt::MgmtOpcodeException
 
class  direct_bt::MgmtPairDeviceCmd
 mgmt_addr_info { EUI48, uint8_t type }, SMPIOCapability io_cap (1 octet) More...
 
class  direct_bt::MgmtPinCodeNegativeReplyCmd
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtPinCodeReplyCmd
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t pin_len, uint8_t pin_code[16] More...
 
class  direct_bt::MgmtReadDefaultSysParamCmd
 
class  direct_bt::MgmtRemoveDeviceFromWhitelistCmd
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtSetDefaultConnParamCmd
 MgmtDefaultParamU16 param1, MgmtDefaultParamU16 param2,. More...
 
class  direct_bt::MgmtSetDiscoverableCmd
 uint8_t discoverable uint16_t timeout More...
 
class  direct_bt::MgmtSetLocalNameCmd
 uint8_t name[MGMT_MAX_NAME_LENGTH]; uint8_t short_name[MGMT_MAX_SHORT_NAME_LENGTH]; More...
 
class  direct_bt::MgmtSetPrivacyCmd
 uint8_t privacy 0x00 disabled, 0x01 always on (discoverable + pairing), 0x02 limited (not when discoverable, bondable) jau::uint128_t irk Identity Resolving Key More...
 
struct  direct_bt::MgmtSignatureResolvingKey
 Used for MgmtEvtNewSignatureResolvingKey. More...
 
class  direct_bt::MgmtUint8Cmd
 
class  direct_bt::MgmtUnpairDeviceCmd
 mgmt_addr_info { EUI48, uint8_t type }, bool disconnect (1 octet) More...
 
class  direct_bt::MgmtUserConfirmNegativeReplyCmd
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtUserConfirmReplyCmd
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtUserPasskeyNegativeReplyCmd
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtUserPasskeyReplyCmd
 mgmt_addr_info { EUI48, uint8_t type }, uint32_t passkey More...
 

Namespaces

namespace  direct_bt
 

Typedefs

typedef jau::cow_darray< MgmtAdapterEventCallback > direct_bt::MgmtAdapterEventCallbackList
 
typedef jau::function< void(const MgmtEvent &)> direct_bt::MgmtEventCallback
 
typedef jau::cow_darray< MgmtEventCallback > direct_bt::MgmtEventCallbackList
 

Enumerations

enum  direct_bt::MgmtConstU16 : uint16_t { direct_bt::MGMT_INDEX_NONE = 0xFFFF }
 
enum class  direct_bt::MgmtCSRKType : uint8_t {
  direct_bt::MgmtCSRKType::UNAUTHENTICATED_LOCAL = 0x00 , direct_bt::MgmtCSRKType::UNAUTHENTICATED_REMOTE = 0x01 , direct_bt::MgmtCSRKType::AUTHENTICATED_LOCAL = 0x02 , direct_bt::MgmtCSRKType::AUTHENTICATED_REMOTE = 0x03 ,
  direct_bt::MgmtCSRKType::NONE = 0xff
}
 Signature Resolving Key Types compatible with Mgmt's MgmtSignatureResolvingKey. More...
 
enum class  direct_bt::MgmtLinkKeyType : uint8_t {
  direct_bt::MgmtLinkKeyType::COMBI = 0x00 , direct_bt::MgmtLinkKeyType::LOCAL_UNIT = 0x01 , direct_bt::MgmtLinkKeyType::REMOTE_UNIT = 0x02 , direct_bt::MgmtLinkKeyType::DBG_COMBI = 0x03 ,
  direct_bt::MgmtLinkKeyType::UNAUTH_COMBI_P192 = 0x04 , direct_bt::MgmtLinkKeyType::AUTH_COMBI_P192 = 0x05 , direct_bt::MgmtLinkKeyType::CHANGED_COMBI = 0x06 , direct_bt::MgmtLinkKeyType::UNAUTH_COMBI_P256 = 0x07 ,
  direct_bt::MgmtLinkKeyType::AUTH_COMBI_P256 = 0x08 , direct_bt::MgmtLinkKeyType::NONE = 0xff
}
 Link Key Types compatible with Mgmt's MgmtLinkKeyInfo. More...
 
enum class  direct_bt::MgmtLTKType : uint8_t {
  direct_bt::MgmtLTKType::UNAUTHENTICATED = 0x00 , direct_bt::MgmtLTKType::AUTHENTICATED = 0x01 , direct_bt::MgmtLTKType::UNAUTHENTICATED_P256 = 0x02 , direct_bt::MgmtLTKType::AUTHENTICATED_P256 = 0x03 ,
  direct_bt::MgmtLTKType::DEBUG_P256 = 0x04 , direct_bt::MgmtLTKType::NONE = 0xff
}
 Long Term Key Types compatible with Mgmt's MgmtLongTermKey. More...
 
enum  direct_bt::MgmtOption : uint32_t { direct_bt::EXTERNAL_CONFIG = 0x00000001 , direct_bt::PUBLIC_ADDRESS = 0x00000002 }
 
enum  direct_bt::MgmtSizeConst : jau::nsize_t { direct_bt::MGMT_HEADER_SIZE = 6 , direct_bt::MGMT_MAX_NAME_LENGTH = 248+1 , direct_bt::MGMT_MAX_SHORT_NAME_LENGTH = 10+1 }
 
enum class  direct_bt::MgmtStatus : uint8_t {
  direct_bt::MgmtStatus::SUCCESS = 0x00 , direct_bt::MgmtStatus::UNKNOWN_COMMAND = 0x01 , direct_bt::MgmtStatus::NOT_CONNECTED = 0x02 , direct_bt::MgmtStatus::FAILED = 0x03 ,
  direct_bt::MgmtStatus::CONNECT_FAILED = 0x04 , direct_bt::MgmtStatus::AUTH_FAILED = 0x05 , direct_bt::MgmtStatus::NOT_PAIRED = 0x06 , direct_bt::MgmtStatus::NO_RESOURCES = 0x07 ,
  direct_bt::MgmtStatus::TIMEOUT = 0x08 , direct_bt::MgmtStatus::ALREADY_CONNECTED = 0x09 , direct_bt::MgmtStatus::BUSY = 0x0a , direct_bt::MgmtStatus::REJECTED = 0x0b ,
  direct_bt::MgmtStatus::NOT_SUPPORTED = 0x0c , direct_bt::MgmtStatus::INVALID_PARAMS = 0x0d , direct_bt::MgmtStatus::DISCONNECTED = 0x0e , direct_bt::MgmtStatus::NOT_POWERED = 0x0f ,
  direct_bt::MgmtStatus::CANCELLED = 0x10 , direct_bt::MgmtStatus::INVALID_INDEX = 0x11 , direct_bt::MgmtStatus::RFKILLED = 0x12 , direct_bt::MgmtStatus::ALREADY_PAIRED = 0x13 ,
  direct_bt::MgmtStatus::PERMISSION_DENIED = 0x14
}
 

Functions

HCIStatusCode direct_bt::to_HCIStatusCode (const MgmtStatus mstatus) noexcept
 
MgmtLTKType direct_bt::to_MgmtLTKType (const SMPLongTermKey::Property ltk_prop_mask) noexcept
 
std::string direct_bt::to_string (const MgmtCSRKType type) noexcept
 
std::string direct_bt::to_string (const MgmtLinkKeyType type) noexcept
 
std::string direct_bt::to_string (const MgmtLTKType type) noexcept
 
std::string direct_bt::to_string (const MgmtStatus opc) noexcept