Direct-BT  2.3.1
Direct-BT - Direct Bluetooth Programming.
Classes | Namespaces | Typedefs | Enumerations | Functions
MgmtTypes.hpp File Reference
#include <cstring>
#include <string>
#include <cstdint>
#include <mutex>
#include <jau/function_def.hpp>
#include <jau/cow_darray.hpp>
#include <jau/packed_attribute.hpp>
#include "BTTypes0.hpp"
#include "BTIoctl.hpp"
#include "OctetTypes.hpp"
#include "HCIComm.hpp"
#include "BTTypes1.hpp"
#include "SMPTypes.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::MgmtException
 
class  direct_bt::MgmtOpcodeException
 
struct  direct_bt::MgmtLinkKeyInfo
 Used for MgmtLoadLinkKeyCmd and MgmtEvtNewLinkKey. More...
 
struct  direct_bt::MgmtLongTermKeyInfo
 Used for MgmtLoadLongTermKeyCmd and MgmtEvtNewLongTermKey. More...
 
struct  direct_bt::MgmtIdentityResolvingKeyInfo
 Used for MgmtLoadIdentityResolvingKeyCmd and MgmtEvtNewIdentityResolvingKey. More...
 
struct  direct_bt::MgmtSignatureResolvingKeyInfo
 Used for MgmtEvtNewSignatureResolvingKey. More...
 
class  direct_bt::MgmtMsg
 
class  direct_bt::MgmtCommand
 
class  direct_bt::MgmtUint8Cmd
 
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::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...
 
class  direct_bt::MgmtCmdAdressInfoMeta
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtDisconnectCmd
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtLoadIdentityResolvingKeyCmd
 uint16_t key_count MgmtIdentityResolvingKey keys[key_count] More...
 
class  direct_bt::MgmtGetConnectionInfoCmd
 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::MgmtPinCodeNegativeReplyCmd
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtPairDeviceCmd
 mgmt_addr_info { EUI48, uint8_t type }, SMPIOCapability io_cap (1 octet) More...
 
class  direct_bt::MgmtCancelPairDevice
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtUnpairDeviceCmd
 mgmt_addr_info { EUI48, uint8_t type }, bool disconnect (1 octet) More...
 
class  direct_bt::MgmtUserConfirmReplyCmd
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtUserConfirmNegativeReplyCmd
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtUserPasskeyReplyCmd
 mgmt_addr_info { EUI48, uint8_t type }, uint32_t passkey More...
 
class  direct_bt::MgmtUserPasskeyNegativeReplyCmd
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtAddDeviceToWhitelistCmd
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t action More...
 
class  direct_bt::MgmtRemoveDeviceFromWhitelistCmd
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
struct  direct_bt::MgmtConnParam
 Used in MgmtLoadConnParamCmd and MgmtEvtNewConnectionParam. More...
 
class  direct_bt::MgmtLoadConnParamCmd
 uint16_t param_count 2 MgmtConnParam param[] 15 = 1x More...
 
class  direct_bt::MgmtEvent
 uint16_t opcode, uint16_t dev-id, uint16_t param_size More...
 
class  direct_bt::MgmtEvtAdressInfoMeta
 mgmt_addr_info { EUI48, uint8_t type }, More...
 
class  direct_bt::MgmtEvtCmdComplete
 
class  direct_bt::MgmtEvtCmdStatus
 
class  direct_bt::MgmtEvtControllerError
 
class  direct_bt::MgmtEvtNewSettings
 uint32_t settings 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::MgmtEvtNewLinkKey
 uint8_t store_hint, MgmtLinkKey key More...
 
class  direct_bt::MgmtEvtNewLongTermKey
 uint8_t store_hint, MgmtLongTermKeyInfo key 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::MgmtEvtDeviceDisconnected
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t reason More...
 
class  direct_bt::MgmtEvtDeviceConnectFailed
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t status 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::MgmtEvtAuthFailed
 mgmt_addr_info { EUI48, uint8_t type }, uint8_t status 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::MgmtEvtDiscovering
 
class  direct_bt::MgmtEvtDeviceBlocked
 mgmt_addr_info { EUI48, uint8_t type }, 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::MgmtEvtNewIdentityResolvingKey
 uint8_t store_hint, EUI48 random_address; MgmtIdentityResolvingKey key More...
 
class  direct_bt::MgmtEvtNewSignatureResolvingKey
 uint8_t store_hint, EUI48 random_address; MgmtSignatureResolvingKeyInfo key 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::MgmtEvtNewConnectionParam
 int8_t store_hint, MgmtConnParam connParam More...
 
class  direct_bt::MgmtEvtPairDeviceComplete
 mgmt_addr_info { EUI48, uint8_t type }, MgmtStatus (1 octet) More...
 
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::MgmtEvtHCILERemoteUserFeatures
 mgmt_addr_info { EUI48, uint8_t type }, uint64_t features (8 Octets) More...
 
class  direct_bt::MgmtEvtAdapterInfo
 
class  direct_bt::MgmtAdapterEventCallback
 

Namespaces

 direct_bt
 

Typedefs

typedef jau::FunctionDef< bool, const MgmtEvent & > direct_bt::MgmtEventCallback
 
typedef jau::cow_darray< MgmtEventCallback > direct_bt::MgmtEventCallbackList
 
typedef jau::cow_darray< MgmtAdapterEventCallback > direct_bt::MgmtAdapterEventCallbackList
 

Enumerations

enum  direct_bt::MgmtConstU16 : uint16_t { direct_bt::MGMT_INDEX_NONE = 0xFFFF, direct_bt::MGMT_MAX_NAME_LENGTH = 248+1, direct_bt::MGMT_MAX_SHORT_NAME_LENGTH = 10+1 }
 
enum  direct_bt::MgmtSizeConst : jau::nsize_t { direct_bt::MGMT_HEADER_SIZE = 6 }
 
enum  direct_bt::MgmtStatus : uint8_t {
  direct_bt::MgmtStatus::SUCCESS = 0x00, direct_bt::MgmtStatus::UNKNOWN_COMMAND = 0x01, direct_bt::MgmtStatus::NOT_CONNECTED = 0x02, direct_bt::MgmtStatus::FAILED = 0x03,
  direct_bt::MgmtStatus::CONNECT_FAILED = 0x04, direct_bt::MgmtStatus::AUTH_FAILED = 0x05, direct_bt::MgmtStatus::NOT_PAIRED = 0x06, direct_bt::MgmtStatus::NO_RESOURCES = 0x07,
  direct_bt::MgmtStatus::TIMEOUT = 0x08, direct_bt::MgmtStatus::ALREADY_CONNECTED = 0x09, direct_bt::MgmtStatus::BUSY = 0x0a, direct_bt::MgmtStatus::REJECTED = 0x0b,
  direct_bt::MgmtStatus::NOT_SUPPORTED = 0x0c, direct_bt::MgmtStatus::INVALID_PARAMS = 0x0d, direct_bt::MgmtStatus::DISCONNECTED = 0x0e, direct_bt::MgmtStatus::NOT_POWERED = 0x0f,
  direct_bt::MgmtStatus::CANCELLED = 0x10, direct_bt::MgmtStatus::INVALID_INDEX = 0x11, direct_bt::MgmtStatus::RFKILLED = 0x12, direct_bt::MgmtStatus::ALREADY_PAIRED = 0x13,
  direct_bt::MgmtStatus::PERMISSION_DENIED = 0x14
}
 
enum  direct_bt::MgmtOption : uint32_t { direct_bt::EXTERNAL_CONFIG = 0x00000001, direct_bt::PUBLIC_ADDRESS = 0x00000002 }
 
enum  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  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 MgmtLongTermKeyInfo. More...
 
enum  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 MgmtSignatureResolvingKeyInfo. More...
 

Functions

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