Direct-BT  2.3.1
Direct-BT - Direct Bluetooth Programming.
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
direct_bt::MgmtEvtDeviceDisconnected Class Reference

mgmt_addr_info { EUI48, uint8_t type }, uint8_t reason More...

#include <MgmtTypes.hpp>

Inheritance diagram for direct_bt::MgmtEvtDeviceDisconnected:
Collaboration diagram for direct_bt::MgmtEvtDeviceDisconnected:

Public Types

enum  DisconnectReason : uint8_t {
  DisconnectReason::UNKNOWN = 0x00, DisconnectReason::TIMEOUT = 0x01, DisconnectReason::LOCAL_HOST = 0x02, DisconnectReason::REMOTE = 0x03,
  DisconnectReason::AUTH_FAILURE = 0x04
}
 
- Public Types inherited from direct_bt::MgmtEvent
enum  Opcode : uint16_t {
  Opcode::INVALID = 0x0000, Opcode::CMD_COMPLETE = 0x0001, Opcode::CMD_STATUS = 0x0002, Opcode::CONTROLLER_ERROR = 0x0003,
  Opcode::INDEX_ADDED = 0x0004, Opcode::INDEX_REMOVED = 0x0005, Opcode::NEW_SETTINGS = 0x0006, Opcode::CLASS_OF_DEV_CHANGED = 0x0007,
  Opcode::LOCAL_NAME_CHANGED = 0x0008, Opcode::NEW_LINK_KEY = 0x0009, Opcode::NEW_LONG_TERM_KEY = 0x000A, Opcode::DEVICE_CONNECTED = 0x000B,
  Opcode::DEVICE_DISCONNECTED = 0x000C, Opcode::CONNECT_FAILED = 0x000D, Opcode::PIN_CODE_REQUEST = 0x000E, Opcode::USER_CONFIRM_REQUEST = 0x000F,
  Opcode::USER_PASSKEY_REQUEST = 0x0010, Opcode::AUTH_FAILED = 0x0011, Opcode::DEVICE_FOUND = 0x0012, Opcode::DISCOVERING = 0x0013,
  Opcode::DEVICE_BLOCKED = 0x0014, Opcode::DEVICE_UNBLOCKED = 0x0015, Opcode::DEVICE_UNPAIRED = 0x0016, Opcode::PASSKEY_NOTIFY = 0x0017,
  Opcode::NEW_IRK = 0x0018, Opcode::NEW_CSRK = 0x0019, Opcode::DEVICE_WHITELIST_ADDED = 0x001A, Opcode::DEVICE_WHITELIST_REMOVED = 0x001B,
  Opcode::NEW_CONN_PARAM = 0x001C, Opcode::UNCONF_INDEX_ADDED = 0x001D, Opcode::UNCONF_INDEX_REMOVED = 0x001E, Opcode::NEW_CONFIG_OPTIONS = 0x001F,
  Opcode::EXT_INDEX_ADDED = 0x0020, Opcode::EXT_INDEX_REMOVED = 0x0021, Opcode::LOCAL_OOB_DATA_UPDATED = 0x0022, Opcode::ADVERTISING_ADDED = 0x0023,
  Opcode::ADVERTISING_REMOVED = 0x0024, Opcode::EXT_INFO_CHANGED = 0x0025, Opcode::PHY_CONFIGURATION_CHANGED = 0x0026, Opcode::EXP_FEATURE_CHANGED = 0x0027,
  Opcode::DEVICE_FLAGS_CHANGED = 0x002a, Opcode::ADV_MONITOR_ADDED = 0x002b, Opcode::ADV_MONITOR_REMOVED = 0x002c, Opcode::PAIR_DEVICE_COMPLETE = 0x002d,
  Opcode::HCI_ENC_CHANGED = 0x002e, Opcode::HCI_ENC_KEY_REFRESH_COMPLETE = 0x002f, Opcode::HCI_LE_REMOTE_USR_FEATURES = 0x0030, Opcode::MGMT_EVENT_TYPE_COUNT = 0x0031
}
 

Public Member Functions

 MgmtEvtDeviceDisconnected (const uint8_t *buffer, const jau::nsize_t buffer_len)
 
 MgmtEvtDeviceDisconnected (const uint16_t dev_id, const BDAddressAndType &addressAndType, HCIStatusCode hciReason_, const uint16_t hci_conn_handle_)
 
const EUI48getAddress () const noexcept
 
BDAddressType getAddressType () const noexcept
 
DisconnectReason getReason () const noexcept
 
HCIStatusCode getHCIReason () const noexcept
 Returns either the HCI reason if given, or the translated DisconnectReason. More...
 
uint16_t getHCIHandle () const noexcept
 Returns the disconnected HCI connection handle, assuming creation occurred via HCIHandler. More...
 
jau::nsize_t getDataOffset () const noexcept override
 
jau::nsize_t getDataSize () const noexcept override
 
const uint8_t * getData () const noexcept override
 
- Public Member Functions inherited from direct_bt::MgmtEvent
 MgmtEvent (const uint8_t *buffer, const jau::nsize_t buffer_len, const jau::nsize_t exp_param_size)
 Persistent memory, w/ ownership . More...
 
 MgmtEvent (const Opcode opc, const uint16_t dev_id, const uint16_t param_size=0)
 
 MgmtEvent (const Opcode opc, const uint16_t dev_id, const uint16_t param_size, const uint8_t *param)
 
virtual ~MgmtEvent () noexcept override
 
jau::nsize_t getTotalSize () const noexcept
 
Opcode getOpcode () const noexcept
 
virtual bool validate (const MgmtCommand &req) const noexcept
 
std::string toString () const noexcept override
 
- Public Member Functions inherited from direct_bt::MgmtMsg
 MgmtMsg (const uint16_t opc, const uint16_t dev_id, const uint16_t param_size)
 
 MgmtMsg (const uint8_t *buffer, const jau::nsize_t buffer_len)
 
virtual ~MgmtMsg ()
 
uint64_t getTimestamp () const noexcept
 
jau::nsize_t getTotalSize () const noexcept
 
TROOctetsgetPDU () noexcept
 Return the underlying octets read only. More...
 
uint16_t getIntOpcode () const noexcept
 
uint16_t getDevID () const noexcept
 
uint16_t getParamSize () const noexcept
 

Static Public Member Functions

static std::string getDisconnectReasonString (DisconnectReason mgmtReason) noexcept
 
static HCIStatusCode getHCIReason (DisconnectReason mgmtReason) noexcept
 BlueZ Kernel Mgmt has reduced information by HCIStatusCode -> DisconnectReason, now the inverse surely can't repair this loss. More...
 
static DisconnectReason getDisconnectReason (HCIStatusCode hciReason) noexcept
 BlueZ Kernel Mgmt mapping of HCI disconnect reason, which reduces some information. More...
 
- Static Public Member Functions inherited from direct_bt::MgmtEvent
static constexpr uint16_t number (const Opcode rhs) noexcept
 
static std::string getOpcodeString (const Opcode opc) noexcept
 
static MgmtEvent::Opcode getOpcode (const uint8_t *buffer)
 
static std::unique_ptr< MgmtEventgetSpecialized (const uint8_t *buffer, jau::nsize_t const buffer_size) noexcept
 Return a newly created specialized instance pointer to base class. More...
 
- Static Public Member Functions inherited from direct_bt::MgmtMsg
static uint16_t getIntOpcode (const uint8_t *buffer)
 
static uint16_t getDevID (const uint8_t *data)
 
template<class T >
static T * clone (const T &source) noexcept
 Clone template for convenience, based on derived class's copy-constructor. More...
 

Protected Member Functions

std::string baseString () const noexcept override
 
- Protected Member Functions inherited from direct_bt::MgmtEvent
virtual std::string valueString () const noexcept override
 

Additional Inherited Members

- Static Protected Member Functions inherited from direct_bt::MgmtEvent
static void checkOpcode (const Opcode has, const Opcode min, const Opcode max)
 
static void checkOpcode (const Opcode has, const Opcode exp)
 
- Protected Attributes inherited from direct_bt::MgmtMsg
POctets pdu
 
uint64_t ts_creation
 

Detailed Description

mgmt_addr_info { EUI48, uint8_t type }, uint8_t reason

Definition at line 1538 of file MgmtTypes.hpp.

Member Enumeration Documentation

◆ DisconnectReason

Enumerator
UNKNOWN 
TIMEOUT 
LOCAL_HOST 
REMOTE 
AUTH_FAILURE 

Definition at line 1541 of file MgmtTypes.hpp.

Constructor & Destructor Documentation

◆ MgmtEvtDeviceDisconnected() [1/2]

direct_bt::MgmtEvtDeviceDisconnected::MgmtEvtDeviceDisconnected ( const uint8_t *  buffer,
const jau::nsize_t  buffer_len 
)
inline

Definition at line 1580 of file MgmtTypes.hpp.

◆ MgmtEvtDeviceDisconnected() [2/2]

direct_bt::MgmtEvtDeviceDisconnected::MgmtEvtDeviceDisconnected ( const uint16_t  dev_id,
const BDAddressAndType addressAndType,
HCIStatusCode  hciReason_,
const uint16_t  hci_conn_handle_ 
)
inline

Definition at line 1585 of file MgmtTypes.hpp.

Here is the call graph for this function:

Member Function Documentation

◆ baseString()

std::string direct_bt::MgmtEvtDeviceDisconnected::baseString ( ) const
inlineoverrideprotectedvirtualnoexcept

Reimplemented from direct_bt::MgmtEvent.

Definition at line 1569 of file MgmtTypes.hpp.

Here is the call graph for this function:

◆ getAddress()

const EUI48& direct_bt::MgmtEvtDeviceDisconnected::getAddress ( ) const
inlinenoexcept

Definition at line 1595 of file MgmtTypes.hpp.

Here is the call graph for this function:

◆ getAddressType()

BDAddressType direct_bt::MgmtEvtDeviceDisconnected::getAddressType ( ) const
inlinenoexcept

Definition at line 1596 of file MgmtTypes.hpp.

Here is the call graph for this function:

◆ getData()

const uint8_t* direct_bt::MgmtEvtDeviceDisconnected::getData ( ) const
inlineoverridevirtualnoexcept

Reimplemented from direct_bt::MgmtEvent.

Definition at line 1613 of file MgmtTypes.hpp.

Here is the call graph for this function:

◆ getDataOffset()

jau::nsize_t direct_bt::MgmtEvtDeviceDisconnected::getDataOffset ( ) const
inlineoverridevirtualnoexcept

Reimplemented from direct_bt::MgmtEvent.

Definition at line 1611 of file MgmtTypes.hpp.

◆ getDataSize()

jau::nsize_t direct_bt::MgmtEvtDeviceDisconnected::getDataSize ( ) const
inlineoverridevirtualnoexcept

Reimplemented from direct_bt::MgmtEvent.

Definition at line 1612 of file MgmtTypes.hpp.

Here is the call graph for this function:

◆ getDisconnectReason()

MgmtEvtDeviceDisconnected::DisconnectReason MgmtEvtDeviceDisconnected::getDisconnectReason ( HCIStatusCode  hciReason)
staticnoexcept

BlueZ Kernel Mgmt mapping of HCI disconnect reason, which reduces some information.

Definition at line 510 of file MgmtTypes.cpp.

◆ getDisconnectReasonString()

std::string MgmtEvtDeviceDisconnected::getDisconnectReasonString ( DisconnectReason  mgmtReason)
staticnoexcept

Definition at line 496 of file MgmtTypes.cpp.

◆ getHCIHandle()

uint16_t direct_bt::MgmtEvtDeviceDisconnected::getHCIHandle ( ) const
inlinenoexcept

Returns the disconnected HCI connection handle, assuming creation occurred via HCIHandler.

Definition at line 1609 of file MgmtTypes.hpp.

◆ getHCIReason() [1/2]

HCIStatusCode direct_bt::MgmtEvtDeviceDisconnected::getHCIReason ( ) const
inlinenoexcept

Returns either the HCI reason if given, or the translated DisconnectReason.

Definition at line 1601 of file MgmtTypes.hpp.

◆ getHCIReason() [2/2]

HCIStatusCode MgmtEvtDeviceDisconnected::getHCIReason ( DisconnectReason  mgmtReason)
staticnoexcept

BlueZ Kernel Mgmt has reduced information by HCIStatusCode -> DisconnectReason, now the inverse surely can't repair this loss.

See getDisconnectReason(HCIStatusCode) below for the mentioned mapping.

Definition at line 530 of file MgmtTypes.cpp.

◆ getReason()

DisconnectReason direct_bt::MgmtEvtDeviceDisconnected::getReason ( ) const
inlinenoexcept

Definition at line 1598 of file MgmtTypes.hpp.

Here is the call graph for this function:

The documentation for this class was generated from the following files: