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

Public Member Functions

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

Static Public Member Functions

static DisconnectReason getDisconnectReason (HCIStatusCode hciReason) noexcept
 BlueZ Kernel Mgmt mapping of HCI disconnect reason, which reduces some information. More...
 
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 Public Member Functions inherited from direct_bt::MgmtEvent
static MgmtEvent::Opcode getOpcode (const uint8_t *buffer)
 
static std::string getOpcodeString (const Opcode opc) noexcept
 
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 constexpr uint16_t number (const Opcode rhs) noexcept
 
- Static Public Member Functions inherited from direct_bt::MgmtMsg
template<class T >
static T * clone (const T &source) noexcept
 Clone template for convenience, based on derived class's copy-constructor. More...
 
static uint16_t getDevID (const uint8_t *data)
 
static uint16_t getIntOpcode (const uint8_t *buffer)
 

Protected Member Functions

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

Additional Inherited Members

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

Detailed Description

mgmt_addr_info { EUI48, uint8_t type }, uint8_t reason

Definition at line 1859 of file MgmtTypes.hpp.

Member Enumeration Documentation

◆ DisconnectReason

Enumerator
UNKNOWN 
TIMEOUT 
LOCAL_HOST 
REMOTE 
AUTH_FAILURE 

Definition at line 1862 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 1901 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 1906 of file MgmtTypes.hpp.

Member Function Documentation

◆ getDisconnectReasonString()

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

Definition at line 601 of file MgmtTypes.cpp.

◆ getHCIReason() [1/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 635 of file MgmtTypes.cpp.

◆ getDisconnectReason()

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

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

Definition at line 615 of file MgmtTypes.cpp.

◆ baseString()

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

Reimplemented from direct_bt::MgmtEvent.

Definition at line 1890 of file MgmtTypes.hpp.

◆ getAddress()

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

Definition at line 1916 of file MgmtTypes.hpp.

◆ getAddressType()

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

Definition at line 1917 of file MgmtTypes.hpp.

◆ getReason()

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

Definition at line 1919 of file MgmtTypes.hpp.

◆ getHCIReason() [2/2]

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

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

Definition at line 1922 of file MgmtTypes.hpp.

◆ getHCIHandle()

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

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

Definition at line 1930 of file MgmtTypes.hpp.

◆ getDataOffset()

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

Reimplemented from direct_bt::MgmtEvent.

Definition at line 1932 of file MgmtTypes.hpp.

◆ getDataSize()

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

Reimplemented from direct_bt::MgmtEvent.

Definition at line 1933 of file MgmtTypes.hpp.

◆ getData()

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

Reimplemented from direct_bt::MgmtEvent.

Definition at line 1934 of file MgmtTypes.hpp.


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