Direct-BT v3.2.3-1-g688f983
Direct-BT - Direct Bluetooth Programming.
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
Direct-BT General User Level API

General User level Direct-BT API types and functionality, see Direct-BT Overview. More...

Namespaces

namespace  direct_bt::BTDeviceRegistry
 Application toolkit providing BT device registration of processed and awaited devices.
 
namespace  direct_bt::BTSecurityRegistry
 Application toolkit providing BT security setup and its device association on a pattern matching basis, i.e.
 

Classes

class  direct_bt::AdapterInfo
 
class  direct_bt::AdapterStatusListener
 BTAdapter status listener for remote BTDevice discovery events: Added, updated and removed; as well as for certain BTAdapter events. More...
 
class  direct_bt::BDAddressAndType
 Unique Bluetooth EUI48 address and BDAddressType tuple. More...
 
class  direct_bt::BTAdapter
 BTAdapter represents one local Bluetooth Controller. More...
 
class  direct_bt::BTDevice
 BTDevice represents one remote Bluetooth device. More...
 
class  direct_bt::BTException
 
class  direct_bt::BTManager
 A thread safe singleton handler of the BTAdapter manager, e.g. More...
 
class  direct_bt::BTObject
 
class  direct_bt::ConnectionInfo
 mgmt_addr_info { EUI48, uint8_t type }, int8_t rssi, int8_t tx_power, int8_t max_tx_power; More...
 
class  direct_bt::EInfoReport
 Collection of 'Extended Advertising Data' (EAD), 'Advertising Data' (AD) or 'Extended Inquiry Response' (EIR) information. More...
 
struct  direct_bt::BTSecurityRegistry::Entry
 
class  direct_bt::GattBatteryServiceSvc
 https://www.bluetooth.com/wp-content/uploads/Sitecore-Media-Library/Gatt/Xml/Services/org.bluetooth.service.battery_service.xml More...
 
struct  direct_bt::GattCharacteristicPropertySpec
 
struct  direct_bt::GattCharacteristicSpec
 
struct  direct_bt::GattClientCharacteristicConfigSpec
 
class  direct_bt::GattDeviceInformationSvc
 Device Information is a GATT service. More...
 
class  direct_bt::GattGenericAccessSvc
 Generic Access Service is a mandatory GATT service all peripherals are required to implement. More...
 
struct  direct_bt::GattPeriphalPreferredConnectionParameters
 Peripheral Preferred Connection Parameters is a GATT Characteristic. More...
 
struct  direct_bt::GattPnP_ID
 PnP ID is a GATT Characteristic. More...
 
struct  direct_bt::GattServiceCharacteristic
 
class  direct_bt::GattTemperatureMeasurement
 https://www.bluetooth.com/wp-content/uploads/Sitecore-Media-Library/Gatt/Xml/Characteristics/org.bluetooth.characteristic.temperature_measurement.xml More...
 
struct  std::hash< direct_bt::BDAddressAndType >
 
struct  std::hash< direct_bt::BTDeviceRegistry::DeviceID >
 
class  direct_bt::HCIException
 
class  direct_bt::HCIOpcodeException
 
class  direct_bt::HCIPacketException
 
class  direct_bt::HCIStatusCodeCategory
 
struct  std::is_error_code_enum< direct_bt::HCIStatusCode >
 
class  direct_bt::ManufactureSpecificData
 
class  direct_bt::MgmtEnv
 Managment Singleton runtime environment properties. More...
 
class  direct_bt::NameAndShortName
 
class  direct_bt::SMPKeyBin
 Storage for SMP keys including required connection parameter per local adapter and remote device. More...
 

Typedefs

typedef std::shared_ptr< AdapterStatusListenerdirect_bt::AdapterStatusListenerRef
 
typedef bool(* direct_bt::BTSecurityRegistry::AddressNameEntryMatchFunc) (const EUI48 &address, const std::string &name, const Entry &e)
 Function for user defined EUI48 address and name BTSecurityRegistry::Entry matching criteria and algorithm. More...
 
typedef bool(* direct_bt::BTSecurityRegistry::AddressSubNameEntryMatchFunc) (const EUI48Sub &addressSub, const std::string &name, const Entry &e)
 Function for user defined EUI48Sub addressSub and name BTSecurityRegistry::Entry matching criteria and algorithm. More...
 
typedef std::shared_ptr< BTAdapterdirect_bt::BTAdapterRef
 
typedef std::shared_ptr< BTDevicedirect_bt::BTDeviceRef
 
typedef std::shared_ptr< BTManagerdirect_bt::BTManagerRef
 
typedef jau::function< void(bool, std::shared_ptr< BTAdapter > &)> direct_bt::ChangedAdapterSetCallback
 Callback jau::function to receive change events regarding the system's adapter set, e.g. More...
 
typedef jau::cow_darray< ChangedAdapterSetCallbackdirect_bt::ChangedAdapterSetCallbackList
 
typedef void(* direct_bt::ChangedAdapterSetFunc) (bool added, std::shared_ptr< BTAdapter > &adapter)
 Callback function to receive change events regarding the system's adapter set, e.g. More...
 
typedef std::shared_ptr< EInfoReportdirect_bt::EInfoReportRef
 
typedef bool(* direct_bt::BTSecurityRegistry::NameEntryMatchFunc) (const std::string &name, const Entry &e)
 Function for user defined std::string name BTSecurityRegistry::Entry matching criteria and algorithm. More...
 

Enumerations

enum class  direct_bt::AD_PDU_Type : uint8_t {
  direct_bt::AD_PDU_Type::ADV_IND = 0x00 , direct_bt::AD_PDU_Type::ADV_DIRECT_IND = 0x01 , direct_bt::AD_PDU_Type::ADV_SCAN_IND = 0x02 , direct_bt::AD_PDU_Type::ADV_NONCONN_IND = 0x03 ,
  direct_bt::AD_PDU_Type::SCAN_RSP = 0x04 , direct_bt::AD_PDU_Type::ADV_IND2 = 0b0010011 , direct_bt::AD_PDU_Type::DIRECT_IND2 = 0b0010101 , direct_bt::AD_PDU_Type::SCAN_IND2 = 0b0010010 ,
  direct_bt::AD_PDU_Type::NONCONN_IND2 = 0b0010000 , direct_bt::AD_PDU_Type::SCAN_RSP_to_ADV_IND = 0b0011011 , direct_bt::AD_PDU_Type::SCAN_RSP_to_ADV_SCAN_IND = 0b0011010 , direct_bt::AD_PDU_Type::UNDEFINED = 0xff
}
 LE Advertising (AD) Protocol Data Unit (PDU) Types. More...
 
enum class  direct_bt::AD_Type_Const : uint8_t { direct_bt::AD_Type_Const::AD_FLAGS_LIMITED_MODE_BIT = 0x01 , direct_bt::AD_Type_Const::AD_FLAGS_GENERAL_MODE_BIT = 0x02 }
 
enum class  direct_bt::AdapterSetting : uint32_t {
  direct_bt::AdapterSetting::NONE = 0 , direct_bt::AdapterSetting::POWERED = 0x00000001 , direct_bt::AdapterSetting::CONNECTABLE = 0x00000002 , direct_bt::AdapterSetting::FAST_CONNECTABLE = 0x00000004 ,
  direct_bt::AdapterSetting::DISCOVERABLE = 0x00000008 , direct_bt::AdapterSetting::BONDABLE = 0x00000010 , direct_bt::AdapterSetting::LINK_SECURITY = 0x00000020 , direct_bt::AdapterSetting::SSP = 0x00000040 ,
  direct_bt::AdapterSetting::BREDR = 0x00000080 , direct_bt::AdapterSetting::HS = 0x00000100 , direct_bt::AdapterSetting::LE = 0x00000200 , direct_bt::AdapterSetting::ADVERTISING = 0x00000400 ,
  direct_bt::AdapterSetting::SECURE_CONN = 0x00000800 , direct_bt::AdapterSetting::DEBUG_KEYS = 0x00001000 , direct_bt::AdapterSetting::PRIVACY = 0x00002000 , direct_bt::AdapterSetting::CONFIGURATION = 0x00004000 ,
  direct_bt::AdapterSetting::STATIC_ADDRESS = 0x00008000 , direct_bt::AdapterSetting::PHY_CONFIGURATION = 0x00010000
}
 Adapter Setting Bits. More...
 
enum class  direct_bt::AppearanceCat : uint16_t {
  direct_bt::AppearanceCat::UNKNOWN = 0 , direct_bt::AppearanceCat::GENERIC_PHONE = 64 , direct_bt::AppearanceCat::GENERIC_COMPUTER = 128 , direct_bt::AppearanceCat::GENERIC_WATCH = 192 ,
  direct_bt::AppearanceCat::SPORTS_WATCH = 193 , direct_bt::AppearanceCat::GENERIC_CLOCK = 256 , direct_bt::AppearanceCat::GENERIC_DISPLAY = 320 , direct_bt::AppearanceCat::GENERIC_REMOTE_CLOCK = 384 ,
  direct_bt::AppearanceCat::GENERIC_EYE_GLASSES = 448 , direct_bt::AppearanceCat::GENERIC_TAG = 512 , direct_bt::AppearanceCat::GENERIC_KEYRING = 576 , direct_bt::AppearanceCat::GENERIC_MEDIA_PLAYER = 640 ,
  direct_bt::AppearanceCat::GENERIC_BARCODE_SCANNER = 704 , direct_bt::AppearanceCat::GENERIC_THERMOMETER = 768 , direct_bt::AppearanceCat::GENERIC_THERMOMETER_EAR = 769 , direct_bt::AppearanceCat::GENERIC_HEART_RATE_SENSOR = 832 ,
  direct_bt::AppearanceCat::HEART_RATE_SENSOR_BELT = 833 , direct_bt::AppearanceCat::GENERIC_BLOD_PRESSURE = 896 , direct_bt::AppearanceCat::BLOD_PRESSURE_ARM = 897 , direct_bt::AppearanceCat::BLOD_PRESSURE_WRIST = 898 ,
  direct_bt::AppearanceCat::HID = 960 , direct_bt::AppearanceCat::HID_KEYBOARD = 961 , direct_bt::AppearanceCat::HID_MOUSE = 962 , direct_bt::AppearanceCat::HID_JOYSTICK = 963 ,
  direct_bt::AppearanceCat::HID_GAMEPAD = 964 , direct_bt::AppearanceCat::HID_DIGITIZER_TABLET = 965 , direct_bt::AppearanceCat::HID_CARD_READER = 966 , direct_bt::AppearanceCat::HID_DIGITAL_PEN = 967 ,
  direct_bt::AppearanceCat::HID_BARCODE_SCANNER = 968 , direct_bt::AppearanceCat::GENERIC_GLUCOSE_METER = 1024 , direct_bt::AppearanceCat::GENERIC_RUNNING_WALKING_SENSOR = 1088 , direct_bt::AppearanceCat::RUNNING_WALKING_SENSOR_IN_SHOE = 1089 ,
  direct_bt::AppearanceCat::RUNNING_WALKING_SENSOR_ON_SHOE = 1090 , direct_bt::AppearanceCat::RUNNING_WALKING_SENSOR_HIP = 1091 , direct_bt::AppearanceCat::GENERIC_CYCLING = 1152 , direct_bt::AppearanceCat::CYCLING_COMPUTER = 1153 ,
  direct_bt::AppearanceCat::CYCLING_SPEED_SENSOR = 1154 , direct_bt::AppearanceCat::CYCLING_CADENCE_SENSOR = 1155 , direct_bt::AppearanceCat::CYCLING_POWER_SENSOR = 1156 , direct_bt::AppearanceCat::CYCLING_SPEED_AND_CADENCE_SENSOR = 1157 ,
  direct_bt::AppearanceCat::GENERIC_PULSE_OXIMETER = 3136 , direct_bt::AppearanceCat::PULSE_OXIMETER_FINGERTIP = 3137 , direct_bt::AppearanceCat::PULSE_OXIMETER_WRIST = 3138 , direct_bt::AppearanceCat::GENERIC_WEIGHT_SCALE = 3200 ,
  direct_bt::AppearanceCat::GENERIC_PERSONAL_MOBILITY_DEVICE = 3264 , direct_bt::AppearanceCat::PERSONAL_MOBILITY_DEVICE_WHEELCHAIR = 3265 , direct_bt::AppearanceCat::PERSONAL_MOBILITY_DEVICE_SCOOTER = 3266 , direct_bt::AppearanceCat::GENERIC_CONTINUOUS_GLUCOSE_MONITOR = 3328 ,
  direct_bt::AppearanceCat::GENERIC_INSULIN_PUMP = 3392 , direct_bt::AppearanceCat::INSULIN_PUMP_DURABLE = 3393 , direct_bt::AppearanceCat::INSULIN_PUMP_PATCH = 3396 , direct_bt::AppearanceCat::INSULIN_PUMP_PEN = 3400 ,
  direct_bt::AppearanceCat::GENERIC_MEDICATION_DELIVERY = 3456 , direct_bt::AppearanceCat::GENERIC_OUTDOOR_SPORTS_ACTIVITY = 5184 , direct_bt::AppearanceCat::OUTDOOR_SPORTS_ACTIVITY_LOCATION_DISPLAY_DEVICE = 5185 , direct_bt::AppearanceCat::OUTDOOR_SPORTS_ACTIVITY_LOCATION_AND_NAVIGATION_DISPLAY_DEVICE = 5186 ,
  direct_bt::AppearanceCat::OUTDOOR_SPORTS_ACTIVITY_LOCATION_POD = 5187 , direct_bt::AppearanceCat::OUTDOOR_SPORTS_ACTIVITY_LOCATION_AND_NAVIGATION_POD = 5188
}
 
enum class  direct_bt::BDAddressType : uint8_t { direct_bt::BDAddressType::BDADDR_BREDR = 0x00 , direct_bt::BDAddressType::BDADDR_LE_PUBLIC = 0x01 , direct_bt::BDAddressType::BDADDR_LE_RANDOM = 0x02 , direct_bt::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 class  direct_bt::BLERandomAddressType : uint8_t {
  direct_bt::BLERandomAddressType::UNRESOLVABLE_PRIVAT = 0x00 , direct_bt::BLERandomAddressType::RESOLVABLE_PRIVAT = 0x01 , direct_bt::BLERandomAddressType::RESERVED = 0x02 , direct_bt::BLERandomAddressType::STATIC_PUBLIC = 0x03 ,
  direct_bt::BLERandomAddressType::UNDEFINED = 0xff
}
 BT Core Spec v5.2: Vol 6 LE, Part B Link Layer Specification: 1.3 Device Address. More...
 
enum class  direct_bt::BTMode : uint8_t { direct_bt::BTMode::NONE = 0 , direct_bt::BTMode::DUAL = 1 , direct_bt::BTMode::BREDR = 2 , direct_bt::BTMode::LE = 3 }
 Bluetooth adapter operating mode. More...
 
enum class  direct_bt::BTRole : uint8_t { direct_bt::BTRole::None = 0 , direct_bt::BTRole::Master = 1 , direct_bt::BTRole::Slave = 2 }
 Bluetooth roles from the perspective of the link layer (connection initiator). More...
 
enum class  direct_bt::BTSecurityLevel : uint8_t {
  direct_bt::BTSecurityLevel::UNSET = 0 , direct_bt::BTSecurityLevel::NONE = 1 , direct_bt::BTSecurityLevel::ENC_ONLY = 2 , direct_bt::BTSecurityLevel::ENC_AUTH = 3 ,
  direct_bt::BTSecurityLevel::ENC_AUTH_FIPS = 4
}
 Bluetooth Security Level. More...
 
enum class  direct_bt::DiscoveryPolicy : uint8_t {
  direct_bt::DiscoveryPolicy::AUTO_OFF = 0 , direct_bt::DiscoveryPolicy::PAUSE_CONNECTED_UNTIL_DISCONNECTED = 1 , direct_bt::DiscoveryPolicy::PAUSE_CONNECTED_UNTIL_READY = 2 , direct_bt::DiscoveryPolicy::PAUSE_CONNECTED_UNTIL_PAIRED = 3 ,
  direct_bt::DiscoveryPolicy::ALWAYS_ON = 4
}
 Discovery policy defines the BTAdapter discovery mode after connecting a remote BTDevice: More...
 
enum class  direct_bt::EAD_Event_Type : uint16_t {
  direct_bt::EAD_Event_Type::NONE = 0 , direct_bt::EAD_Event_Type::CONN_ADV = 0b00000001 , direct_bt::EAD_Event_Type::SCAN_ADV = 0b00000010 , direct_bt::EAD_Event_Type::DIR_ADV = 0b00000100 ,
  direct_bt::EAD_Event_Type::SCAN_RSP = 0b00001000 , direct_bt::EAD_Event_Type::LEGACY_PDU = 0b00010000 , direct_bt::EAD_Event_Type::DATA_B0 = 0b00100000 , direct_bt::EAD_Event_Type::DATA_B1 = 0b01000000
}
 LE Extended Advertising (EAD) Event Types. More...
 
enum class  direct_bt::EIRDataType : uint32_t {
  direct_bt::EIRDataType::NONE = 0 , direct_bt::EIRDataType::EVT_TYPE = (1 << 0) , direct_bt::EIRDataType::EXT_EVT_TYPE = (1 << 1) , direct_bt::EIRDataType::BDADDR_TYPE = (1 << 2) ,
  direct_bt::EIRDataType::BDADDR = (1 << 3) , direct_bt::EIRDataType::FLAGS = (1 << 4) , direct_bt::EIRDataType::NAME = (1 << 5) , direct_bt::EIRDataType::NAME_SHORT = (1 << 6) ,
  direct_bt::EIRDataType::RSSI = (1 << 7) , direct_bt::EIRDataType::TX_POWER = (1 << 8) , direct_bt::EIRDataType::MANUF_DATA = (1 << 9) , direct_bt::EIRDataType::DEVICE_CLASS = (1 << 10) ,
  direct_bt::EIRDataType::APPEARANCE = (1 << 11) , direct_bt::EIRDataType::HASH = (1 << 12) , direct_bt::EIRDataType::RANDOMIZER = (1 << 13) , direct_bt::EIRDataType::DEVICE_ID = (1 << 14) ,
  direct_bt::EIRDataType::CONN_IVAL = (1 << 15) , direct_bt::EIRDataType::SERVICE_UUID = (1 << 30) , direct_bt::EIRDataType::ALL = 0xffffffff
}
 Bit mask of 'Extended Inquiry Response' (EIR) data fields, indicating a set of related data. More...
 
enum class  direct_bt::GAP_T : uint8_t {
  direct_bt::GAP_T::NONE = 0x00 , direct_bt::GAP_T::FLAGS = 0x01 , direct_bt::GAP_T::UUID16_INCOMPLETE = 0x02 , direct_bt::GAP_T::UUID16_COMPLETE = 0x03 ,
  direct_bt::GAP_T::UUID32_INCOMPLETE = 0x04 , direct_bt::GAP_T::UUID32_COMPLETE = 0x05 , direct_bt::GAP_T::UUID128_INCOMPLETE = 0x06 , direct_bt::GAP_T::UUID128_COMPLETE = 0x07 ,
  direct_bt::GAP_T::NAME_LOCAL_SHORT = 0x08 , direct_bt::GAP_T::NAME_LOCAL_COMPLETE = 0x09 , direct_bt::GAP_T::TX_POWER_LEVEL = 0x0A , direct_bt::GAP_T::SSP_CLASS_OF_DEVICE = 0x0D ,
  direct_bt::GAP_T::SSP_HASH_C192 = 0x0E , direct_bt::GAP_T::SSP_RANDOMIZER_R192 = 0x0F , direct_bt::GAP_T::DEVICE_ID = 0x10 , direct_bt::GAP_T::SEC_MGR_TK_VALUE = 0x10 ,
  direct_bt::GAP_T::SEC_MGR_OOB_FLAGS = 0x11 , direct_bt::GAP_T::SLAVE_CONN_IVAL_RANGE = 0x12 , direct_bt::GAP_T::SOLICIT_UUID16 = 0x14 , direct_bt::GAP_T::SOLICIT_UUID128 = 0x15 ,
  direct_bt::GAP_T::SVC_DATA_UUID16 = 0x16 , direct_bt::GAP_T::PUB_TRGT_ADDR = 0x17 , direct_bt::GAP_T::RND_TRGT_ADDR = 0x18 , direct_bt::GAP_T::GAP_APPEARANCE = 0x19 ,
  direct_bt::GAP_T::ADV_INTERVAL = 0x1A , direct_bt::GAP_T::LE_BT_DEV_ADDRESS = 0x1B , direct_bt::GAP_T::LE_ROLE = 0x1C , direct_bt::GAP_T::SSP_HASH_C256 = 0x1D ,
  direct_bt::GAP_T::SSP_RANDOMIZER_R256 = 0x1E , direct_bt::GAP_T::SOLICIT_UUID32 = 0x1F , direct_bt::GAP_T::SVC_DATA_UUID32 = 0x20 , direct_bt::GAP_T::SVC_DATA_UUID128 = 0x21 ,
  direct_bt::GAP_T::SSP_LE_SEC_CONN_ACK_VALUE = 0x22 , direct_bt::GAP_T::SSP_LE_SEC_CONN_RND_VALUE = 0x23 , direct_bt::GAP_T::URI = 0x24 , direct_bt::GAP_T::INDOOR_POSITIONING = 0x25 ,
  direct_bt::GAP_T::TX_DISCOVERY_DATA = 0x26 , direct_bt::GAP_T::LE_SUPP_FEATURES = 0x27 , direct_bt::GAP_T::CH_MAP_UPDATE_IND = 0x28 , direct_bt::GAP_T::PB_ADV = 0x29 ,
  direct_bt::GAP_T::MESH_MESSAGE = 0x2A , direct_bt::GAP_T::MESH_BEACON = 0x2B , direct_bt::GAP_T::BIG_INFO = 0x2C , direct_bt::GAP_T::BROADCAST_CODE = 0x2D ,
  direct_bt::GAP_T::INFO_DATA_3D = 0x3D , direct_bt::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 class  direct_bt::GAPFlags : uint8_t {
  direct_bt::GAPFlags::NONE = 0 , direct_bt::GAPFlags::LE_Ltd_Disc = (1 << 0) , direct_bt::GAPFlags::LE_Gen_Disc = (1 << 1) , direct_bt::GAPFlags::BREDR_UNSUP = (1 << 2) ,
  direct_bt::GAPFlags::Dual_SameCtrl = (1 << 3) , direct_bt::GAPFlags::Dual_SameHost = (1 << 4) , direct_bt::GAPFlags::RESERVED1 = (1 << 5) , direct_bt::GAPFlags::RESERVED2 = (1 << 6) ,
  direct_bt::GAPFlags::RESERVED3 = (1 << 7)
}
 GAP Flags values, see Bluetooth Core Specification Supplement V9, Part A: 1.3, p 12 pp. More...
 
enum  direct_bt::GattAttributeType : uint16_t { direct_bt::PRIMARY_SERVICE = 0x2800 , direct_bt::SECONDARY_SERVICE = 0x2801 , direct_bt::INCLUDE_DECLARATION = 0x2802 , direct_bt::CHARACTERISTIC = 0x2803 }
 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  direct_bt::GattCharacteristicProperty : uint8_t {
  direct_bt::Broadcast = 0x01 , direct_bt::Read = 0x02 , direct_bt::WriteNoAck = 0x04 , direct_bt::WriteWithAck = 0x08 ,
  direct_bt::Notify = 0x10 , direct_bt::Indicate = 0x20 , direct_bt::AuthSignedWrite = 0x40 , direct_bt::ExtProps = 0x80 ,
  direct_bt::ReliableWriteExt = 0x81 , direct_bt::AuxWriteExt = 0x82
}
 
enum  direct_bt::GattCharacteristicType : uint16_t {
  direct_bt::DEVICE_NAME = 0x2A00 , direct_bt::APPEARANCE = 0x2A01 , direct_bt::PERIPHERAL_PRIVACY_FLAG = 0x2A02 , direct_bt::RECONNECTION_ADDRESS = 0x2A03 ,
  direct_bt::PERIPHERAL_PREFERRED_CONNECTION_PARAMETERS = 0x2A04 , direct_bt::SERVICE_CHANGED = 0x2a05 , direct_bt::TEMPERATURE = 0x2A6E , direct_bt::TEMPERATURE_CELSIUS = 0x2A1F ,
  direct_bt::TEMPERATURE_FAHRENHEIT = 0x2A20 , direct_bt::TEMPERATURE_MEASUREMENT = 0x2A1C , direct_bt::TEMPERATURE_TYPE = 0x2A1D , direct_bt::INTERMEDIATE_TEMPERATURE = 0x2A1E ,
  direct_bt::MEASUREMENT_INTERVAL = 0x2A21 , direct_bt::SYSTEM_ID = 0x2A23 , direct_bt::MODEL_NUMBER_STRING = 0x2A24 , direct_bt::SERIAL_NUMBER_STRING = 0x2A25 ,
  direct_bt::FIRMWARE_REVISION_STRING = 0x2A26 , direct_bt::HARDWARE_REVISION_STRING = 0x2A27 , direct_bt::SOFTWARE_REVISION_STRING = 0x2A28 , direct_bt::MANUFACTURER_NAME_STRING = 0x2A29 ,
  direct_bt::REGULATORY_CERT_DATA_LIST = 0x2A2A , direct_bt::PNP_ID = 0x2A50
}
 GATT Assigned Characteristic Attribute Type for single logical value. More...
 
enum  direct_bt::GattRequirementSpec : uint8_t {
  direct_bt::Excluded = 0x00 , direct_bt::Mandatory = 0x01 , direct_bt::Optional = 0x02 , direct_bt::Conditional = 0x03 ,
  direct_bt::if_characteristic_supported = 0x11 , direct_bt::if_notify_or_indicate_supported = 0x12 , direct_bt::C1 = 0x21
}
 
enum class  direct_bt::GATTRole : uint8_t { direct_bt::GATTRole::None = 0 , direct_bt::GATTRole::Server = 1 , direct_bt::GATTRole::Client = 2 }
 Bluetooth GATT roles. More...
 
enum  direct_bt::GattServiceType : uint16_t {
  direct_bt::GENERIC_ACCESS = 0x1800 , direct_bt::GENERIC_ATTRIBUTE = 0x1801 , direct_bt::IMMEDIATE_ALERT = 0x1802 , direct_bt::LINK_LOSS = 0x1803 ,
  direct_bt::HEALTH_THERMOMETER = 0x1809 , direct_bt::DEVICE_INFORMATION = 0x180A , direct_bt::BATTERY_SERVICE = 0x180F
}
 GATT Service Type, each encapsulating a set of Characteristics. More...
 
enum class  direct_bt::HCIConstInt : int32_t { direct_bt::HCIConstInt::LE_CONN_MIN_TIMEOUT_MS = 500 }
 
enum class  direct_bt::HCIConstU16 : uint16_t { direct_bt::HCIConstU16::INDEX_NONE = 0xFFFF , direct_bt::HCIConstU16::MAX_NAME_LENGTH = 248 , direct_bt::HCIConstU16::MAX_SHORT_NAME_LENGTH = 10 , direct_bt::HCIConstU16::MAX_AD_LENGTH = 31 }
 
enum class  direct_bt::HCILEOwnAddressType : uint8_t {
  direct_bt::HCILEOwnAddressType::PUBLIC = 0x00 , direct_bt::HCILEOwnAddressType::RANDOM = 0x01 , direct_bt::HCILEOwnAddressType::RESOLVABLE_OR_PUBLIC = 0x02 , direct_bt::HCILEOwnAddressType::RESOLVABLE_OR_RANDOM = 0x03 ,
  direct_bt::HCILEOwnAddressType::UNDEFINED = 0xff
}
 
enum class  direct_bt::HCILEPeerAddressType : uint8_t {
  direct_bt::HCILEPeerAddressType::PUBLIC = 0x00 , direct_bt::HCILEPeerAddressType::RANDOM = 0x01 , direct_bt::HCILEPeerAddressType::PUBLIC_IDENTITY = 0x02 , direct_bt::HCILEPeerAddressType::RANDOM_STATIC_IDENTITY = 0x03 ,
  direct_bt::HCILEPeerAddressType::UNDEFINED = 0xff
}
 HCI LE Address-Type is PUBLIC: 0x00, RANDOM: 0x01. More...
 
enum class  direct_bt::HCIStatusCode : uint8_t {
  direct_bt::HCIStatusCode::SUCCESS = 0x00 , direct_bt::HCIStatusCode::UNKNOWN_COMMAND = 0x01 , direct_bt::HCIStatusCode::UNKNOWN_CONNECTION_IDENTIFIER = 0x02 , direct_bt::HCIStatusCode::HARDWARE_FAILURE = 0x03 ,
  direct_bt::HCIStatusCode::PAGE_TIMEOUT = 0x04 , direct_bt::HCIStatusCode::AUTHENTICATION_FAILURE = 0x05 , direct_bt::HCIStatusCode::PIN_OR_KEY_MISSING = 0x06 , direct_bt::HCIStatusCode::MEMORY_CAPACITY_EXCEEDED = 0x07 ,
  direct_bt::HCIStatusCode::CONNECTION_TIMEOUT = 0x08 , direct_bt::HCIStatusCode::CONNECTION_LIMIT_EXCEEDED = 0x09 , direct_bt::HCIStatusCode::SYNC_DEVICE_CONNECTION_LIMIT_EXCEEDED = 0x0a , direct_bt::HCIStatusCode::CONNECTION_ALREADY_EXISTS = 0x0b ,
  direct_bt::HCIStatusCode::COMMAND_DISALLOWED = 0x0c , direct_bt::HCIStatusCode::CONNECTION_REJECTED_LIMITED_RESOURCES = 0x0d , direct_bt::HCIStatusCode::CONNECTION_REJECTED_SECURITY = 0x0e , direct_bt::HCIStatusCode::CONNECTION_REJECTED_UNACCEPTABLE_BD_ADDR = 0x0f ,
  direct_bt::HCIStatusCode::CONNECTION_ACCEPT_TIMEOUT_EXCEEDED = 0x10 , direct_bt::HCIStatusCode::UNSUPPORTED_FEATURE_OR_PARAM_VALUE = 0x11 , direct_bt::HCIStatusCode::INVALID_HCI_COMMAND_PARAMETERS = 0x12 , direct_bt::HCIStatusCode::REMOTE_USER_TERMINATED_CONNECTION = 0x13 ,
  direct_bt::HCIStatusCode::REMOTE_DEVICE_TERMINATED_CONNECTION_LOW_RESOURCES = 0x14 , direct_bt::HCIStatusCode::REMOTE_DEVICE_TERMINATED_CONNECTION_POWER_OFF = 0x15 , direct_bt::HCIStatusCode::CONNECTION_TERMINATED_BY_LOCAL_HOST = 0x16 , direct_bt::HCIStatusCode::REPEATED_ATTEMPTS = 0x17 ,
  direct_bt::HCIStatusCode::PAIRING_NOT_ALLOWED = 0x18 , direct_bt::HCIStatusCode::UNKNOWN_LMP_PDU = 0x19 , direct_bt::HCIStatusCode::UNSUPPORTED_REMOTE_OR_LMP_FEATURE = 0x1a , direct_bt::HCIStatusCode::SCO_OFFSET_REJECTED = 0x1b ,
  direct_bt::HCIStatusCode::SCO_INTERVAL_REJECTED = 0x1c , direct_bt::HCIStatusCode::SCO_AIR_MODE_REJECTED = 0x1d , direct_bt::HCIStatusCode::INVALID_LMP_OR_LL_PARAMETERS = 0x1e , direct_bt::HCIStatusCode::UNSPECIFIED_ERROR = 0x1f ,
  direct_bt::HCIStatusCode::UNSUPPORTED_LMP_OR_LL_PARAMETER_VALUE = 0x20 , direct_bt::HCIStatusCode::ROLE_CHANGE_NOT_ALLOWED = 0x21 , direct_bt::HCIStatusCode::LMP_OR_LL_RESPONSE_TIMEOUT = 0x22 , direct_bt::HCIStatusCode::LMP_OR_LL_COLLISION = 0x23 ,
  direct_bt::HCIStatusCode::LMP_PDU_NOT_ALLOWED = 0x24 , direct_bt::HCIStatusCode::ENCRYPTION_MODE_NOT_ACCEPTED = 0x25 , direct_bt::HCIStatusCode::LINK_KEY_CANNOT_BE_CHANGED = 0x26 , direct_bt::HCIStatusCode::REQUESTED_QOS_NOT_SUPPORTED = 0x27 ,
  direct_bt::HCIStatusCode::INSTANT_PASSED = 0x28 , direct_bt::HCIStatusCode::PAIRING_WITH_UNIT_KEY_NOT_SUPPORTED = 0x29 , direct_bt::HCIStatusCode::DIFFERENT_TRANSACTION_COLLISION = 0x2a , direct_bt::HCIStatusCode::QOS_UNACCEPTABLE_PARAMETER = 0x2c ,
  direct_bt::HCIStatusCode::QOS_REJECTED = 0x2d , direct_bt::HCIStatusCode::CHANNEL_ASSESSMENT_NOT_SUPPORTED = 0x2e , direct_bt::HCIStatusCode::INSUFFICIENT_SECURITY = 0x2f , direct_bt::HCIStatusCode::PARAMETER_OUT_OF_RANGE = 0x30 ,
  direct_bt::HCIStatusCode::ROLE_SWITCH_PENDING = 0x32 , direct_bt::HCIStatusCode::RESERVED_SLOT_VIOLATION = 0x34 , direct_bt::HCIStatusCode::ROLE_SWITCH_FAILED = 0x35 , direct_bt::HCIStatusCode::EIR_TOO_LARGE = 0x36 ,
  direct_bt::HCIStatusCode::SIMPLE_PAIRING_NOT_SUPPORTED_BY_HOST = 0x37 , direct_bt::HCIStatusCode::HOST_BUSY_PAIRING = 0x38 , direct_bt::HCIStatusCode::CONNECTION_REJECTED_NO_SUITABLE_CHANNEL = 0x39 , direct_bt::HCIStatusCode::CONTROLLER_BUSY = 0x3a ,
  direct_bt::HCIStatusCode::UNACCEPTABLE_CONNECTION_PARAM = 0x3b , direct_bt::HCIStatusCode::ADVERTISING_TIMEOUT = 0x3c , direct_bt::HCIStatusCode::CONNECTION_TERMINATED_MIC_FAILURE = 0x3d , direct_bt::HCIStatusCode::CONNECTION_EST_FAILED_OR_SYNC_TIMEOUT = 0x3e ,
  direct_bt::HCIStatusCode::MAX_CONNECTION_FAILED = 0x3f , direct_bt::HCIStatusCode::COARSE_CLOCK_ADJ_REJECTED = 0x40 , direct_bt::HCIStatusCode::TYPE0_SUBMAP_NOT_DEFINED = 0x41 , direct_bt::HCIStatusCode::UNKNOWN_ADVERTISING_IDENTIFIER = 0x42 ,
  direct_bt::HCIStatusCode::LIMIT_REACHED = 0x43 , direct_bt::HCIStatusCode::OPERATION_CANCELLED_BY_HOST = 0x44 , direct_bt::HCIStatusCode::PACKET_TOO_LONG = 0x45 , direct_bt::HCIStatusCode::FAILED = 0xc3 ,
  direct_bt::HCIStatusCode::CONNECT_FAILED = 0xc4 , direct_bt::HCIStatusCode::AUTH_FAILED = 0xc5 , direct_bt::HCIStatusCode::NOT_PAIRED = 0xc6 , direct_bt::HCIStatusCode::NO_RESOURCES = 0xc7 ,
  direct_bt::HCIStatusCode::TIMEOUT = 0xc8 , direct_bt::HCIStatusCode::ALREADY_CONNECTED = 0xc9 , direct_bt::HCIStatusCode::BUSY = 0xca , direct_bt::HCIStatusCode::REJECTED = 0xcb ,
  direct_bt::HCIStatusCode::NOT_SUPPORTED = 0xcc , direct_bt::HCIStatusCode::INVALID_PARAMS = 0xcd , direct_bt::HCIStatusCode::DISCONNECTED = 0xce , direct_bt::HCIStatusCode::NOT_POWERED = 0xcf ,
  direct_bt::HCIStatusCode::CANCELLED = 0xd0 , direct_bt::HCIStatusCode::INVALID_INDEX = 0xd1 , direct_bt::HCIStatusCode::RFKILLED = 0xd2 , direct_bt::HCIStatusCode::ALREADY_PAIRED = 0xd3 ,
  direct_bt::HCIStatusCode::PERMISSION_DENIED = 0xd4 , direct_bt::HCIStatusCode::INTERNAL_TIMEOUT = 0xfd , direct_bt::HCIStatusCode::INTERNAL_FAILURE = 0xfe , direct_bt::HCIStatusCode::UNKNOWN = 0xff
}
 BT Core Spec v5.2: Vol 1, Part F Controller Error Codes: 1.3 List of Error Codes. More...
 
enum class  direct_bt::HCIWhitelistConnectType : uint8_t { direct_bt::HCIWhitelistConnectType::HCI_AUTO_CONN_REPORT = 0x00 , direct_bt::HCIWhitelistConnectType::HCI_AUTO_CONN_DIRECT = 0x01 , direct_bt::HCIWhitelistConnectType::HCI_AUTO_CONN_ALWAYS = 0x02 }
 HCI Whitelist connection type. More...
 
enum class  direct_bt::L2CAP_CID : uint16_t {
  direct_bt::L2CAP_CID::UNDEFINED = 0x0000 , direct_bt::L2CAP_CID::SIGNALING = 0x0001 , direct_bt::L2CAP_CID::CONN_LESS = 0x0002 , direct_bt::L2CAP_CID::A2MP = 0x0003 ,
  direct_bt::L2CAP_CID::ATT = 0x0004 , direct_bt::L2CAP_CID::LE_SIGNALING = 0x0005 , direct_bt::L2CAP_CID::SMP = 0x0006 , direct_bt::L2CAP_CID::SMP_BREDR = 0x0007 ,
  direct_bt::L2CAP_CID::DYN_START = 0x0040 , direct_bt::L2CAP_CID::DYN_END = 0xffff , direct_bt::L2CAP_CID::LE_DYN_END = 0x007f
}
 
enum class  direct_bt::L2CAP_PSM : uint16_t {
  direct_bt::L2CAP_PSM::UNDEFINED = 0x0000 , direct_bt::L2CAP_PSM::SDP = 0x0001 , direct_bt::L2CAP_PSM::RFCOMM = 0x0003 , direct_bt::L2CAP_PSM::TCSBIN = 0x0005 ,
  direct_bt::L2CAP_PSM::TCSBIN_CORDLESS = 0x0007 , direct_bt::L2CAP_PSM::BNEP = 0x000F , direct_bt::L2CAP_PSM::HID_CONTROL = 0x0011 , direct_bt::L2CAP_PSM::HID_INTERRUPT = 0x0013 ,
  direct_bt::L2CAP_PSM::UPNP = 0x0015 , direct_bt::L2CAP_PSM::AVCTP = 0x0017 , direct_bt::L2CAP_PSM::AVDTP = 0x0019 , direct_bt::L2CAP_PSM::AVCTP_BROWSING = 0x001B ,
  direct_bt::L2CAP_PSM::UDI_C_PLANE = 0x001D , direct_bt::L2CAP_PSM::ATT = 0x001F , direct_bt::L2CAP_PSM::LE_DYN_START = 0x0080 , direct_bt::L2CAP_PSM::LE_DYN_END = 0x00FF ,
  direct_bt::L2CAP_PSM::DYN_START = 0x1001 , direct_bt::L2CAP_PSM::DYN_END = 0xffff , direct_bt::L2CAP_PSM::AUTO_END = 0x10ff
}
 Protocol Service Multiplexers (PSM) Assigned numbers https://www.bluetooth.com/specifications/assigned-numbers/logical-link-control/ More...
 
enum class  direct_bt::L2CAP_States : uint8_t {
  direct_bt::L2CAP_States::CLOSED , direct_bt::L2CAP_States::WAIT_CONNECTED , direct_bt::L2CAP_States::WAIT_CONNECTED_RSP , direct_bt::L2CAP_States::CONFIG ,
  direct_bt::L2CAP_States::OPEN , direct_bt::L2CAP_States::WAIT_DISCONNECTED , direct_bt::L2CAP_States::WAIT_CREATE , direct_bt::L2CAP_States::WAIT_CONNECT ,
  direct_bt::L2CAP_States::WAIT_CREATE_RSP , direct_bt::L2CAP_States::WAIT_MOVE , direct_bt::L2CAP_States::WAIT_MOVE_RSP , direct_bt::L2CAP_States::WAIT_MOVE_CONFIRM ,
  direct_bt::L2CAP_States::WAIT_CONFIRM_RSP
}
 BT Core Spec v5.2: Vol 3, Part A L2CAP Spec: 6 State Machine. More...
 
enum class  direct_bt::LE_Features : uint64_t {
  direct_bt::LE_Features::NONE = 0 , direct_bt::LE_Features::LE_Encryption = 0b0000000000000000000000000000000000000000000000000000000000000001 , direct_bt::LE_Features::Conn_Param_Req_Proc = 0b0000000000000000000000000000000000000000000000000000000000000010 , direct_bt::LE_Features::Ext_Rej_Ind = 0b0000000000000000000000000000000000000000000000000000000000000100 ,
  direct_bt::LE_Features::SlaveInit_Feat_Exchg = 0b0000000000000000000000000000000000000000000000000000000000001000 , direct_bt::LE_Features::LE_Ping = 0b0000000000000000000000000000000000000000000000000000000000010000 , direct_bt::LE_Features::LE_Data_Pkt_Len_Ext = 0b0000000000000000000000000000000000000000000000000000000000100000 , direct_bt::LE_Features::LL_Privacy = 0b0000000000000000000000000000000000000000000000000000000001000000 ,
  direct_bt::LE_Features::Ext_Scan_Filter_Pol = 0b0000000000000000000000000000000000000000000000000000000010000000 , direct_bt::LE_Features::LE_2M_PHY = 0b0000000000000000000000000000000000000000000000000000000100000000 , direct_bt::LE_Features::Stable_Mod_Idx_Tx = 0b0000000000000000000000000000000000000000000000000000001000000000 , direct_bt::LE_Features::Stable_Mod_Idx_Rx = 0b0000000000000000000000000000000000000000000000000000010000000000 ,
  direct_bt::LE_Features::LE_Coded_PHY = 0b0000000000000000000000000000000000000000000000000000100000000000 , direct_bt::LE_Features::LE_Ext_Adv = 0b0000000000000000000000000000000000000000000000000001000000000000 , direct_bt::LE_Features::LE_Per_Adv = 0b0000000000000000000000000000000000000000000000000010000000000000 , direct_bt::LE_Features::Chan_Sel_Algo_2 = 0b0000000000000000000000000000000000000000000000000100000000000000 ,
  direct_bt::LE_Features::LE_Pwr_Cls_1 = 0b0000000000000000000000000000000000000000000000001000000000000000 , direct_bt::LE_Features::Min_Num_Used_Chan_Proc = 0b0000000000000000000000000000000000000000000000010000000000000000 , direct_bt::LE_Features::Conn_CTE_Req = 0b0000000000000000000000000000000000000000000000100000000000000000 , direct_bt::LE_Features::Conn_CTE_Res = 0b0000000000000000000000000000000000000000000001000000000000000000 ,
  direct_bt::LE_Features::ConnLess_CTE_Tx = 0b0000000000000000000000000000000000000000000010000000000000000000 , direct_bt::LE_Features::ConnLess_CTE_Rx = 0b0000000000000000000000000000000000000000000100000000000000000000 , direct_bt::LE_Features::AoD = 0b0000000000000000000000000000000000000000001000000000000000000000 , direct_bt::LE_Features::AoA = 0b0000000000000000000000000000000000000000010000000000000000000000 ,
  direct_bt::LE_Features::Rx_Const_Tone_Ext = 0b0000000000000000000000000000000000000000100000000000000000000000 , direct_bt::LE_Features::Per_Adv_Sync_Tx_Sender = 0b0000000000000000000000000000000000000001000000000000000000000000 , direct_bt::LE_Features::Per_Adv_Sync_Tx_Rec = 0b0000000000000000000000000000000000000010000000000000000000000000 , direct_bt::LE_Features::Zzz_Clk_Acc_Upd = 0b0000000000000000000000000000000000000100000000000000000000000000 ,
  direct_bt::LE_Features::Rem_Pub_Key_Val = 0b0000000000000000000000000000000000001000000000000000000000000000 , direct_bt::LE_Features::Conn_Iso_Stream_Master = 0b0000000000000000000000000000000000010000000000000000000000000000 , direct_bt::LE_Features::Conn_Iso_Stream_Slave = 0b0000000000000000000000000000000000100000000000000000000000000000 , direct_bt::LE_Features::Iso_Brdcst = 0b0000000000000000000000000000000001000000000000000000000000000000 ,
  direct_bt::LE_Features::Sync_Rx = 0b0000000000000000000000000000000010000000000000000000000000000000 , direct_bt::LE_Features::Iso_Chan = 0b0000000000000000000000000000000100000000000000000000000000000000 , direct_bt::LE_Features::LE_Pwr_Ctrl_Req = 0b0000000000000000000000000000001000000000000000000000000000000000 , direct_bt::LE_Features::LE_Pwr_Chg_Ind = 0b0000000000000000000000000000010000000000000000000000000000000000 ,
  direct_bt::LE_Features::LE_Path_Loss_Mon = 0b0000000000000000000000000000100000000000000000000000000000000000
}
 HCI Supported Commands. More...
 
enum class  direct_bt::LE_PHYs : uint8_t { direct_bt::LE_PHYs::NONE = 0 , direct_bt::LE_PHYs::LE_1M = 0b00000001 , direct_bt::LE_PHYs::LE_2M = 0b00000010 , direct_bt::LE_PHYs::LE_CODED = 0b00000100 }
 LE Transport PHY bit values. More...
 
enum class  direct_bt::PairingMode : uint8_t {
  direct_bt::PairingMode::NONE = 0 , direct_bt::PairingMode::NEGOTIATING = 1 , direct_bt::PairingMode::JUST_WORKS = 2 , direct_bt::PairingMode::PASSKEY_ENTRY_ini = 3 ,
  direct_bt::PairingMode::PASSKEY_ENTRY_res = 4 , direct_bt::PairingMode::NUMERIC_COMPARE_ini = 5 , direct_bt::PairingMode::NUMERIC_COMPARE_res = 6 , direct_bt::PairingMode::OUT_OF_BAND = 7 ,
  direct_bt::PairingMode::PRE_PAIRED = 8
}
 Bluetooth secure pairing mode. More...
 
enum class  direct_bt::ScanType : uint8_t { direct_bt::ScanType::NONE = 0 , direct_bt::ScanType::BREDR = 1 << number(BDAddressType::BDADDR_BREDR) , direct_bt::ScanType::LE = ( 1 << number(BDAddressType::BDADDR_LE_PUBLIC) ) | ( 1 << number(BDAddressType::BDADDR_LE_RANDOM) ) , direct_bt::ScanType::DUAL = BREDR | LE }
 Meta ScanType as derived from BTMode, with defined value mask consisting of BDAddressType bits. More...
 

Functions

std::string direct_bt::BTSecurityRegistry::allToString () noexcept
 
constexpr ScanType direct_bt::changeScanType (const ScanType current, const ScanType changeType, const bool changeEnable) noexcept
 
void direct_bt::BTSecurityRegistry::clear () noexcept
 Clears internal list. More...
 
constexpr void direct_bt::clrAdapterSettingMaskBit (AdapterSetting &mask, const AdapterSetting bit) noexcept
 
std::string direct_bt::GattCharacteristicPropertyToString (const GattCharacteristicProperty v) noexcept
 
std::string direct_bt::GattCharacteristicTypeToString (const GattCharacteristicType v) noexcept
 
std::string direct_bt::GattNameToString (const jau::TROOctets &v) noexcept
 Converts a GATT Name (not null-terminated) UTF8 to a null-terminated C++ string. More...
 
std::string direct_bt::GattRequirementSpecToString (const GattRequirementSpec v) noexcept
 
std::string direct_bt::GattServiceTypeToString (const GattServiceType v) noexcept
 
Entrydirect_bt::BTSecurityRegistry::get (const EUI48 &addr, const std::string &name, AddressNameEntryMatchFunc m) noexcept
 Returns a matching BTSecurityRegistry::Entry with the given addr and/or name. More...
 
Entrydirect_bt::BTSecurityRegistry::get (const EUI48Sub &addrSub, const std::string &name, AddressSubNameEntryMatchFunc m) noexcept
 Returns a matching BTSecurityRegistry::Entry with the given addrSub and/or name. More...
 
Entrydirect_bt::BTSecurityRegistry::get (const std::string &name, NameEntryMatchFunc m) noexcept
 Returns a matching BTSecurityRegistry::Entry with the given name. More...
 
constexpr AdapterSetting direct_bt::getAdapterSettingMaskDiff (const AdapterSetting setting_a, const AdapterSetting setting_b) noexcept
 
BTMode direct_bt::getAdapterSettingsBTMode (const AdapterSetting settingMask) noexcept
 Maps the given AdapterSetting to BTMode. More...
 
jau::darray< Entry > & direct_bt::BTSecurityRegistry::getEntries () noexcept
 Returns the reference of the current list of Entry, not a copy. More...
 
Entrydirect_bt::BTSecurityRegistry::getEqual (const EUI48Sub &addrSub, const std::string &name) noexcept
 Returns a matching Entry,. More...
 
Entrydirect_bt::BTSecurityRegistry::getEqual (const std::string &name) noexcept
 Returns a matching Entry, which Entry::nameSub is set and the given name starts with Entry::nameSub. More...
 
constexpr uint16_t direct_bt::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 int32_t direct_bt::getHCIMaxConnLatency (const int16_t supervision_timeout_ms, const int16_t conn_interval_max_ms)
 Supervisor timeout shall be in the range [0 - ((supervision_timeout_ms / (conn_interval_max_ms*2)) - 1)]. More...
 
Entrydirect_bt::BTSecurityRegistry::getOrCreate (const std::string &addrOrNameSub) noexcept
 Determines whether the given addrOrNameSub is a EUI48Sub or just a name and retrieves an entry. More...
 
Entrydirect_bt::BTSecurityRegistry::getStartOf (const EUI48 &addr, const std::string &name) noexcept
 Returns a matching Entry,. More...
 
Entrydirect_bt::BTSecurityRegistry::getStartOf (const EUI48Sub &addrSub, const std::string &name) noexcept
 Returns a matching Entry,. More...
 
Entrydirect_bt::BTSecurityRegistry::getStartOf (const std::string &name) noexcept
 Returns a matching Entry, which Entry::nameSub is set and the given name starts with Entry::nameSub. More...
 
constexpr bool direct_bt::is_set (const EAD_Event_Type mask, const EAD_Event_Type bit) noexcept
 
constexpr bool direct_bt::is_set (const EIRDataType mask, const EIRDataType bit) noexcept
 
constexpr bool direct_bt::is_set (const LE_Features mask, const LE_Features bit) noexcept
 
constexpr bool direct_bt::is_set (const LE_PHYs mask, const LE_PHYs bit) noexcept
 
constexpr bool direct_bt::is_set (const ScanType current, const ScanType testType) noexcept
 
constexpr bool direct_bt::isAdapterSettingBitSet (const AdapterSetting mask, const AdapterSetting bit) noexcept
 
std::error_code direct_bt::make_error_code (HCIStatusCode e) noexcept
 
constexpr uint8_t direct_bt::number (const AD_PDU_Type rhs) noexcept
 
constexpr uint16_t direct_bt::number (const AppearanceCat rhs) noexcept
 
constexpr uint8_t direct_bt::number (const BDAddressType rhs) noexcept
 
constexpr uint8_t direct_bt::number (const BLERandomAddressType rhs) noexcept
 
constexpr uint8_t direct_bt::number (const BTMode rhs) noexcept
 
constexpr uint8_t direct_bt::number (const BTRole rhs) noexcept
 
constexpr uint8_t direct_bt::number (const BTSecurityLevel rhs) noexcept
 
constexpr uint8_t direct_bt::number (const DiscoveryPolicy rhs) noexcept
 
constexpr uint16_t direct_bt::number (const EAD_Event_Type rhs) noexcept
 
constexpr uint32_t direct_bt::number (const EIRDataType rhs) noexcept
 
constexpr uint8_t direct_bt::number (const GAP_T rhs) noexcept
 
constexpr uint8_t direct_bt::number (const GAPFlags rhs) noexcept
 
constexpr uint8_t direct_bt::number (const GATTRole rhs) noexcept
 
constexpr int32_t direct_bt::number (const HCIConstInt rhs) noexcept
 
constexpr uint16_t direct_bt::number (const HCIConstU16 rhs) noexcept
 
constexpr uint8_t direct_bt::number (const HCILEOwnAddressType rhs) noexcept
 
constexpr uint8_t direct_bt::number (const HCILEPeerAddressType rhs) noexcept
 
constexpr uint8_t direct_bt::number (const HCIStatusCode rhs) noexcept
 
constexpr uint8_t direct_bt::number (const HCIWhitelistConnectType rhs) noexcept
 
constexpr uint16_t direct_bt::number (const L2CAP_CID rhs) noexcept
 
constexpr uint16_t direct_bt::number (const L2CAP_PSM rhs) noexcept
 
constexpr uint64_t direct_bt::number (const LE_Features rhs) noexcept
 
constexpr uint8_t direct_bt::number (const LE_PHYs rhs) noexcept
 
constexpr uint8_t direct_bt::number (const PairingMode rhs) noexcept
 
constexpr uint8_t direct_bt::number (const ScanType rhs) noexcept
 
constexpr BTRole direct_bt::operator! (const BTRole rhs) noexcept
 
constexpr bool direct_bt::operator!= (const AdapterSetting lhs, const AdapterSetting rhs) noexcept
 
bool direct_bt::operator!= (const BDAddressAndType &lhs, const BDAddressAndType &rhs) noexcept
 
bool direct_bt::operator!= (const BTAdapter &lhs, const BTAdapter &rhs) noexcept
 
bool direct_bt::operator!= (const BTDevice &lhs, const BTDevice &rhs) noexcept
 
constexpr bool direct_bt::operator!= (const BTSecurityLevel lhs, const BTSecurityLevel rhs) noexcept
 
constexpr bool direct_bt::operator!= (const EAD_Event_Type lhs, const EAD_Event_Type rhs) noexcept
 
constexpr bool direct_bt::operator!= (const EIRDataType lhs, const EIRDataType rhs) noexcept
 
constexpr bool direct_bt::operator!= (const GAPFlags lhs, const GAPFlags rhs) noexcept
 
constexpr bool direct_bt::operator!= (const LE_Features lhs, const LE_Features rhs) noexcept
 
constexpr bool direct_bt::operator!= (const LE_PHYs lhs, const LE_PHYs rhs) noexcept
 
constexpr bool direct_bt::operator!= (const ManufactureSpecificData &lhs, const ManufactureSpecificData &rhs) noexcept
 
constexpr bool direct_bt::operator!= (const ScanType lhs, const ScanType rhs) noexcept
 
constexpr AdapterSetting direct_bt::operator& (const AdapterSetting lhs, const AdapterSetting rhs) noexcept
 
constexpr EAD_Event_Type direct_bt::operator& (const EAD_Event_Type lhs, const EAD_Event_Type rhs) noexcept
 
constexpr EIRDataType direct_bt::operator& (const EIRDataType lhs, const EIRDataType rhs) noexcept
 
constexpr GAPFlags direct_bt::operator& (const GAPFlags lhs, const GAPFlags rhs) noexcept
 
constexpr LE_Features direct_bt::operator& (const LE_Features lhs, const LE_Features rhs) noexcept
 
constexpr LE_PHYs direct_bt::operator& (const LE_PHYs lhs, const LE_PHYs rhs) noexcept
 
constexpr ScanType direct_bt::operator& (const ScanType lhs, const ScanType rhs) noexcept
 
constexpr bool direct_bt::operator< (const BTSecurityLevel lhs, const BTSecurityLevel rhs) noexcept
 
constexpr bool direct_bt::operator<= (const BTSecurityLevel lhs, const BTSecurityLevel rhs) noexcept
 
constexpr bool direct_bt::operator== (const AdapterSetting lhs, const AdapterSetting rhs) noexcept
 
bool direct_bt::operator== (const BDAddressAndType &lhs, const BDAddressAndType &rhs) noexcept
 
bool direct_bt::operator== (const BTAdapter &lhs, const BTAdapter &rhs) noexcept
 
bool direct_bt::operator== (const BTDevice &lhs, const BTDevice &rhs) noexcept
 
constexpr bool direct_bt::operator== (const BTSecurityLevel lhs, const BTSecurityLevel rhs) noexcept
 
constexpr bool direct_bt::operator== (const EAD_Event_Type lhs, const EAD_Event_Type rhs) noexcept
 
constexpr bool direct_bt::operator== (const EIRDataType lhs, const EIRDataType rhs) noexcept
 
constexpr bool direct_bt::operator== (const GAPFlags lhs, const GAPFlags rhs) noexcept
 
constexpr bool direct_bt::operator== (const LE_Features lhs, const LE_Features rhs) noexcept
 
constexpr bool direct_bt::operator== (const LE_PHYs lhs, const LE_PHYs rhs) noexcept
 
constexpr bool direct_bt::operator== (const ManufactureSpecificData &lhs, const ManufactureSpecificData &rhs) noexcept
 
constexpr bool direct_bt::operator== (const ScanType lhs, const ScanType rhs) noexcept
 
constexpr bool direct_bt::operator> (const BTSecurityLevel lhs, const BTSecurityLevel rhs) noexcept
 
constexpr bool direct_bt::operator>= (const BTSecurityLevel lhs, const BTSecurityLevel rhs) noexcept
 
constexpr AdapterSetting direct_bt::operator^ (const AdapterSetting lhs, const AdapterSetting rhs) noexcept
 
constexpr LE_Features direct_bt::operator^ (const LE_Features lhs, const LE_Features rhs) noexcept
 
constexpr LE_PHYs direct_bt::operator^ (const LE_PHYs lhs, const LE_PHYs rhs) noexcept
 
constexpr ScanType direct_bt::operator^ (const ScanType lhs, const ScanType rhs) noexcept
 
constexpr AdapterSetting direct_bt::operator| (const AdapterSetting lhs, const AdapterSetting rhs) noexcept
 
constexpr EAD_Event_Type direct_bt::operator| (const EAD_Event_Type lhs, const EAD_Event_Type rhs) noexcept
 
constexpr EIRDataType direct_bt::operator| (const EIRDataType lhs, const EIRDataType rhs) noexcept
 
constexpr GAPFlags direct_bt::operator| (const GAPFlags lhs, const GAPFlags rhs) noexcept
 
constexpr LE_Features direct_bt::operator| (const LE_Features lhs, const LE_Features rhs) noexcept
 
constexpr LE_PHYs direct_bt::operator| (const LE_PHYs lhs, const LE_PHYs rhs) noexcept
 
constexpr ScanType direct_bt::operator| (const ScanType lhs, const ScanType rhs) noexcept
 
constexpr AdapterSetting direct_bt::operator~ (const AdapterSetting rhs) noexcept
 
constexpr EIRDataType direct_bt::operator~ (const EIRDataType rhs) noexcept
 
constexpr ScanType direct_bt::operator~ (const ScanType val) noexcept
 
constexpr void direct_bt::set (EAD_Event_Type &mask, const EAD_Event_Type bit) noexcept
 
constexpr void direct_bt::set (EIRDataType &mask, const EIRDataType bit) noexcept
 
constexpr void direct_bt::setAdapterSettingMaskBit (AdapterSetting &mask, const AdapterSetting bit) noexcept
 
BDAddressType direct_bt::to_BDAddressType (const HCILEOwnAddressType hciOwnAddrType) noexcept
 
BDAddressType direct_bt::to_BDAddressType (const HCILEPeerAddressType hciPeerAddrType) noexcept
 
constexpr BDAddressType direct_bt::to_BDAddressType (const uint8_t v) noexcept
 
BTMode direct_bt::to_BTMode (const std::string &value) noexcept
 Maps the specified name to a constant of BTMode. More...
 
constexpr BTSecurityLevel direct_bt::to_BTSecurityLevel (const uint8_t v) noexcept
 
constexpr DiscoveryPolicy direct_bt::to_DiscoveryPolicy (const uint8_t v) noexcept
 
HCILEOwnAddressType direct_bt::to_HCILEOwnAddressType (const BDAddressType addrType, bool resolvable) noexcept
 
constexpr L2CAP_CID direct_bt::to_L2CAP_CID (const uint16_t v) noexcept
 
constexpr L2CAP_PSM direct_bt::to_L2CAP_PSM (const uint16_t v) noexcept
 
ScanType direct_bt::to_ScanType (BTMode btMode)
 
std::string direct_bt::to_string (const AD_PDU_Type v) noexcept
 
std::string direct_bt::to_string (const AdapterInfo &a) noexcept
 
std::string direct_bt::to_string (const AdapterSetting settingBitMask) noexcept
 
std::string direct_bt::to_string (const AppearanceCat v) noexcept
 
std::string direct_bt::to_string (const BDAddressAndType &a) noexcept
 
std::string direct_bt::to_string (const BDAddressType type) noexcept
 
std::string direct_bt::to_string (const BLERandomAddressType type) noexcept
 
std::string direct_bt::to_string (const BTMode v) noexcept
 
std::string direct_bt::to_string (const BTObject &o) noexcept
 
std::string direct_bt::to_string (const BTRole v) noexcept
 
std::string direct_bt::to_string (const BTSecurityLevel v) noexcept
 
std::string direct_bt::to_string (const DiscoveryPolicy v) noexcept
 
std::string direct_bt::to_string (const EAD_Event_Type v) noexcept
 
std::string direct_bt::to_string (const EInfoReport &eir, const bool includeServices=true) noexcept
 
std::string direct_bt::to_string (const EIRDataType mask) noexcept
 
std::string direct_bt::to_string (const GAPFlags v) noexcept
 
std::string direct_bt::to_string (const GATTRole v) noexcept
 
std::string direct_bt::to_string (const HCILEOwnAddressType type) noexcept
 
std::string direct_bt::to_string (const HCILEPeerAddressType type) noexcept
 
std::string direct_bt::to_string (const HCIStatusCode ec) noexcept
 
std::string direct_bt::to_string (const L2CAP_CID v) noexcept
 
std::string direct_bt::to_string (const L2CAP_PSM v) noexcept
 
std::string direct_bt::to_string (const LE_Features mask) noexcept
 
std::string direct_bt::to_string (const LE_PHYs mask) noexcept
 
std::string direct_bt::to_string (const PairingMode v) noexcept
 
std::string direct_bt::to_string (const ScanType v) noexcept
 
std::string direct_bt::to_string (EInfoReport::Source source) noexcept
 

Variables

constexpr const EIRDataType direct_bt::EIR_DATA_TYPE_MASK
 Explicit mask to erase all implicit set EIRDataType fields: EVT_TYPE, EXT_EVT_TYPE, BDADDR_TYPE, BDADDR and RSSI. More...
 

Detailed Description

General User level Direct-BT API types and functionality, see Direct-BT Overview.

Typedef Documentation

◆ BTManagerRef

typedef std::shared_ptr< BTManager > direct_bt::BTManagerRef

Definition at line 61 of file BTAdapter.hpp.

◆ AdapterStatusListenerRef

Definition at line 297 of file BTAdapter.hpp.

◆ BTAdapterRef

typedef std::shared_ptr<BTAdapter> direct_bt::BTAdapterRef

Definition at line 1354 of file BTAdapter.hpp.

◆ BTDeviceRef

typedef std::shared_ptr< BTDevice > direct_bt::BTDeviceRef

Definition at line 1347 of file BTDevice.hpp.

◆ ChangedAdapterSetFunc

typedef void(* direct_bt::ChangedAdapterSetFunc) (bool added, std::shared_ptr< BTAdapter > &adapter)

Callback function to receive change events regarding the system's adapter set, e.g.

a removed or added adapter due to user interaction or 'cold reset'.

When a new callback is added, all available adapter's will be reported as added, this allows a fully event driven workflow.

The callback is performed on a dedicated thread, allowing the user to perform complex operations.

If an adapter is being removed from the system, DBTAdapter::close() is being called by BTManager after issuing all ChangedAdapterSetFunc calls.

Parameters
addedtrue if adapter was newly added, otherwise removed from system
adapterthe shared DBTAdapter reference
See also
ChangedAdapterSetCallback
BTManager::addChangedAdapterSetCallback()
BTManager::removeChangedAdapterSetCallback()
Direct-BT Overview

Definition at line 166 of file BTManager.hpp.

◆ ChangedAdapterSetCallback

typedef jau::function<void(bool, std::shared_ptr<BTAdapter>&)> direct_bt::ChangedAdapterSetCallback

Callback jau::function to receive change events regarding the system's adapter set, e.g.

a removed or added adapter due to user interaction or 'cold reset'.

When a new callback is added, all available adapter's will be reported as added, this allows a fully event driven workflow.

The callback is performed on a dedicated thread, allowing the user to perform complex operations.

If an adapter is being removed from the system, DBTAdapter::close() is being called by BTManager after issuing all ChangedAdapterSetFunc calls.

Parameters
addedtrue if adapter was newly added, otherwise removed from system
adapterthe shared DBTAdapter reference
See also
ChangedAdapterSetFunc
BTManager::addChangedAdapterSetCallback()
BTManager::removeChangedAdapterSetCallback()
Direct-BT Overview

Definition at line 192 of file BTManager.hpp.

◆ ChangedAdapterSetCallbackList

Definition at line 193 of file BTManager.hpp.

◆ AddressNameEntryMatchFunc

typedef bool(* direct_bt::BTSecurityRegistry::AddressNameEntryMatchFunc) (const EUI48 &address, const std::string &name, const Entry &e)

Function for user defined EUI48 address and name BTSecurityRegistry::Entry matching criteria and algorithm.

Return true if the given address or name matches with the BTSecurityRegistry::Entry.

Parameters
addressEUI48 address
nameoptional name, maybe empty
eEntry entry

Definition at line 105 of file BTSecurityRegistry.hpp.

◆ AddressSubNameEntryMatchFunc

typedef bool(* direct_bt::BTSecurityRegistry::AddressSubNameEntryMatchFunc) (const EUI48Sub &addressSub, const std::string &name, const Entry &e)

Function for user defined EUI48Sub addressSub and name BTSecurityRegistry::Entry matching criteria and algorithm.

Return true if the given addressSub or name matches with the BTSecurityRegistry::Entry.

Parameters
addressSubEUI48Sub address
nameoptional name, maybe empty
eEntry entry

Definition at line 118 of file BTSecurityRegistry.hpp.

◆ NameEntryMatchFunc

typedef bool(* direct_bt::BTSecurityRegistry::NameEntryMatchFunc) (const std::string &name, const Entry &e)

Function for user defined std::string name BTSecurityRegistry::Entry matching criteria and algorithm.

Return true if the given name matches with the BTSecurityRegistry::Entry.

Parameters
name
eEntry entry

Definition at line 130 of file BTSecurityRegistry.hpp.

◆ EInfoReportRef

typedef std::shared_ptr<EInfoReport> direct_bt::EInfoReportRef

Definition at line 1164 of file BTTypes0.hpp.

Enumeration Type Documentation

◆ DiscoveryPolicy

enum class direct_bt::DiscoveryPolicy : uint8_t
strong

Discovery policy defines the BTAdapter discovery mode after connecting a remote BTDevice:

Policy is set via BTAdapter::startDiscovery()

Default is DiscoveryPolicy::PAUSE_CONNECTED_UNTIL_READY, as it has been shown that continuous advertising reduces the bandwidth for the initial bring-up time including GATT service discovery considerably. Continuous advertising would increase the readiness lag of the remote device until AdapterStatusListener::deviceReady().

In case users favors faster parallel discovery of new remote devices and hence a slower readiness, DiscoveryPolicy::PAUSE_CONNECTED_UNTIL_PAIRED or even DiscoveryPolicy::ALWAYS_ON can be used.

Since
2.5.0
Enumerator
AUTO_OFF 

Turn off discovery when connected and leave discovery disabled, if turned off by host system.

PAUSE_CONNECTED_UNTIL_DISCONNECTED 

Pause discovery until all connected BTDevice become disconnected, effectively until AdapterStatusListener::deviceDisconnected().

PAUSE_CONNECTED_UNTIL_READY 

Pause discovery until all connected BTDevice reach readiness inclusive optional SMP pairing (~120ms) without GATT service discovery (~700ms), effectively until AdapterStatusListener::deviceReady().

This is the default!

PAUSE_CONNECTED_UNTIL_PAIRED 

Pause discovery until all connected BTDevice are optionally SMP paired (~120ms) without GATT service discovery (~700ms).

ALWAYS_ON 

Always keep discovery enabled, i.e.

re-enabled if automatically turned-off by HCI host OS as soon as possible.

Definition at line 82 of file BTAdapter.hpp.

◆ BDAddressType

enum class direct_bt::BDAddressType : uint8_t
strong

BT Core Spec v5.2: Vol 3, Part C Generic Access Profile (GAP): 15.1.1.1 Public Bluetooth address.

1) BT public address used as BD_ADDR for BR/EDR physical channel is defined in Vol 2, Part B 1.2
  • EUI-48 or MAC (6 octets) 2) BT public address used as BD_ADDR for the LE physical channel is defined in Vol 6, Part B 1.3 BT Core Spec v5.2: Vol 3, Part C Generic Access Profile (GAP): 15.1.1.2 Random Bluetooth address 3) BT random address used as BD_ADDR on the LE physical channel is defined in Vol 3, Part C 10.8
Enumerator
BDADDR_BREDR 

Bluetooth BREDR address.

BDADDR_LE_PUBLIC 

Bluetooth LE public address.

BDADDR_LE_RANDOM 

Bluetooth LE random address, see BLERandomAddressType.

BDADDR_UNDEFINED 

Undefined.

Definition at line 60 of file BTAddress.hpp.

◆ BLERandomAddressType

enum class direct_bt::BLERandomAddressType : uint8_t
strong

BT Core Spec v5.2: Vol 6 LE, Part B Link Layer Specification: 1.3 Device Address.

BT Core Spec v5.2: Vol 6 LE, Part B Link Layer Specification: 1.3.2 Random device Address

Table 1.2, address bits [47:46]

If BDAddressType is BDAddressType::BDADDR_LE_RANDOM, its value shall be different than BLERandomAddressType::UNDEFINED.

If BDAddressType is not BDAddressType::BDADDR_LE_RANDOM, its value shall be BLERandomAddressType::UNDEFINED.

Enumerator
UNRESOLVABLE_PRIVAT 

Non-resolvable private random device address 0b00.

RESOLVABLE_PRIVAT 

Resolvable private random device address 0b01.

Requires Local Identity Resolving Key (IRK) or the Peer Identity Resolving Key (IRK).

EUI48: 24 bits hash = ag(IRK, prand), 24 bits prand.

RESERVED 

Reserved for future use 0b10.

STATIC_PUBLIC 

Static public 'random' device address 0b11.

Not changing between power-cycles.

UNDEFINED 

Undefined, e.g.

address not of type BDAddressType::BDADDR_LE_RANDOM

Definition at line 98 of file BTAddress.hpp.

◆ HCILEPeerAddressType

enum class direct_bt::HCILEPeerAddressType : uint8_t
strong

HCI LE Address-Type is PUBLIC: 0x00, RANDOM: 0x01.

BT Core Spec v5.2: Vol 4, Part E Host Controller Interface (HCI) Functionality:

> 7.8.5: LE Set Advertising Parameters command
-- Own_Address_Type: public: 0x00 (default), random: 0x01, resolvable-1: 0x02, resolvable-2: 0x03
> 7.8.10: LE Set Scan Parameters command
-- Own_Address_Type: public: 0x00 (default), random: 0x01, resolvable-1: 0x02, resolvable-2: 0x03
> 7.8.12: LE Create Connection command
-- Own_Address_Type: public: 0x00 (default), random: 0x01,
   Public Identity Address (resolvable-1, any not supporting LE_Set_Privacy_Mode command): 0x02,
   Random (static) Identity Address (resolvable-2, any not supporting LE_Set_Privacy_Mode command): 0x03
Enumerator
PUBLIC 

Public Device Address.

RANDOM 

Random Device Address.

PUBLIC_IDENTITY 

Public Resolved Identity Address.

RANDOM_STATIC_IDENTITY 

Resolved Random (Static) Identity Address.

UNDEFINED 

HCIADDR_UNDEFINED.

Definition at line 135 of file BTAddress.hpp.

◆ HCILEOwnAddressType

enum class direct_bt::HCILEOwnAddressType : uint8_t
strong
Enumerator
PUBLIC 

Public Device Address.

RANDOM 

Random Device Address.

RESOLVABLE_OR_PUBLIC 

Controller Resolved Private Address or Public Address.

RESOLVABLE_OR_RANDOM 

Controller Resolved Private Address or Random Address.

UNDEFINED 

Definition at line 150 of file BTAddress.hpp.

◆ BTRole

enum class direct_bt::BTRole : uint8_t
strong

Bluetooth roles from the perspective of the link layer (connection initiator).

See also
BTAdapter roles.
BTDevice roles.
Since
2.4.0
Enumerator
None 

Undefined role.

Master 

Master or central role, discovering remote devices and initiating connection.

This is a GATTRole::Client.

Slave 

Slave or peripheral role, advertising and waiting for connections to accept.

This is a GATTRole::Server.

Definition at line 69 of file BTTypes0.hpp.

◆ GATTRole

enum class direct_bt::GATTRole : uint8_t
strong

Bluetooth GATT roles.

See also
BTGattHandler roles.
BTAdapter roles.
BTDevice roles.
Since
2.4.0
Enumerator
None 

Undefined role.

Server 

Local GATT server role to a remote BTDevice BTRole::Master running a GATTRole::Client.

Local BTAdapter is in BTRole::Slave role.

Client 

Local GATT client role to a remote BTDevice BTRole::Slave running a GATTRole::Server.

Local BTAdapter is in BTRole::Master role.

Definition at line 96 of file BTTypes0.hpp.

◆ BTMode

enum class direct_bt::BTMode : uint8_t
strong

Bluetooth adapter operating mode.

Enumerator
NONE 

Zero mode, neither DUAL, BREDR nor LE.

Usually an error.

DUAL 

Dual Bluetooth mode, i.e.

BREDR + LE.

BREDR 

BREDR only Bluetooth mode.

LE 

LE only Bluetooth mode.

Definition at line 112 of file BTTypes0.hpp.

◆ LE_Features

enum class direct_bt::LE_Features : uint64_t
strong

HCI Supported Commands.

   BT Core Spec v5.2: Vol 4, Part E, 6.27 (HCI) Supported Commands
   BT Core Spec v5.2: Vol 4, Part E, 7.4.2 Read Local Supported Commands command
   

Unable to encode via enum and build-in integer: 64 octets = 512 bit wide!

enum class HCISupportedCommands : jau::uint512_t { NONE = 0, HCI_Create_Connection = ... }; LE Link Layer Feature Set

BT Core Spec v5.2: Vol 6, Part B, 4.6 (LE LL) Feature Support

BT Core Spec v5.2: Vol 4, Part E, 7.8.3 LE Read Local Supported Features command

BT Core Spec v5.2: Vol 4, Part E, 7.8.21 LE Read Remote Features command
BT Core Spec v5.2: Vol 4, Part E, 7.7.65.4 LE Read Remote Features Complete event

BT Core Spec v5.2: Vol 6, Part B, 7.8.115 LE Set Host Feature Command
Enumerator
NONE 

NONE.

LE_Encryption 

LE_Encryption.

Conn_Param_Req_Proc 

Conn_Param_Request_Proc.

Ext_Rej_Ind 
SlaveInit_Feat_Exchg 
LE_Ping 
LE_Data_Pkt_Len_Ext 
LL_Privacy 
Ext_Scan_Filter_Pol 
LE_2M_PHY 
Stable_Mod_Idx_Tx 
Stable_Mod_Idx_Rx 
LE_Coded_PHY 
LE_Ext_Adv 
LE_Per_Adv 
Chan_Sel_Algo_2 
LE_Pwr_Cls_1 
Min_Num_Used_Chan_Proc 
Conn_CTE_Req 
Conn_CTE_Res 
ConnLess_CTE_Tx 
ConnLess_CTE_Rx 
AoD 
AoA 
Rx_Const_Tone_Ext 
Per_Adv_Sync_Tx_Sender 
Per_Adv_Sync_Tx_Rec 
Zzz_Clk_Acc_Upd 
Rem_Pub_Key_Val 
Conn_Iso_Stream_Master 
Conn_Iso_Stream_Slave 
Iso_Brdcst 
Sync_Rx 
Iso_Chan 
LE_Pwr_Ctrl_Req 
LE_Pwr_Chg_Ind 
LE_Path_Loss_Mon 

Definition at line 162 of file BTTypes0.hpp.

◆ LE_PHYs

enum class direct_bt::LE_PHYs : uint8_t
strong

LE Transport PHY bit values.

BT Core Spec v5.2: Vol 4, Part E, 7.8.47 LE Read PHY command (we transfer the sequential value to this bitmask for unification)
BT Core Spec v5.2: Vol 4, Part E, 7.8.48 LE Set Default PHY command
Enumerator
NONE 
LE_1M 
LE_2M 
LE_CODED 

Definition at line 231 of file BTTypes0.hpp.

◆ BTSecurityLevel

enum class direct_bt::BTSecurityLevel : uint8_t
strong

Bluetooth Security Level.

This BTSecurityLevel is natively compatible with Linux/BlueZ's BT_SECURITY values 1-4.

Enumerator
UNSET 

Security Level not set, value 0.

NONE 

No encryption and no authentication.

Also known as BT_SECURITY_LOW, value 1.

ENC_ONLY 

Encryption and no authentication (no MITM).

Also known as BT_SECURITY_MEDIUM, value 2.

ENC_AUTH 

Encryption and authentication (MITM).

Also known as BT_SECURITY_HIGH, value 3.

ENC_AUTH_FIPS 

Authenticated Secure Connections.

Also known as BT_SECURITY_FIPS, value 4.

Definition at line 267 of file BTTypes0.hpp.

◆ PairingMode

enum class direct_bt::PairingMode : uint8_t
strong

Bluetooth secure pairing mode.

BT Core Spec v5.2: Vol 1, Part A, 5 Security Overview
BT Core Spec v5.2: Vol 1, Part A, 5.4 LE SECURITY
BT Core Spec v5.2: Vol 3, Part H (SM): 2.3.5.1 Selecting key generation method Table 2.8
See also
SMPPairingState
Enumerator
NONE 

No pairing mode, implying no secure connections, no encryption and no MITM protection.

NEGOTIATING 

Pairing mode in negotiating, i.e.

Pairing Feature Exchange in progress.

JUST_WORKS 

Just Works.

Random key exchange with encryption but no MITM protection.

PASSKEY_ENTRY_ini 

Passkey Entry input by initiator.

Responder produces and display artifact. A known digit sequence (PIN) must be given as a secret to be validated on the device. Random key exchange with additional secret (PIN) and encryption and MITM protection.

PASSKEY_ENTRY_res 

Passkey Entry input by responder.

Initiator produces and display artifact. A known digit sequence (PIN) must be given as a secret to be validated on the device. Random key exchange with additional secret (PIN) and encryption and MITM protection.

NUMERIC_COMPARE_ini 

Visual comparison of digit sequence (PIN) input by initiator, shown on both devices.

Responder produces and display artifact. Random key exchange with additional secret (PIN) and encryption and MITM protection.

NUMERIC_COMPARE_res 

Visual comparison of digit sequence (PIN) input by responder, shown on both devices.

Initiator produces and displays artifact. Random key exchange with additional secret (PIN) and encryption and MITM protection.

OUT_OF_BAND 

Utilizing a second factor secret to be used as a secret, e.g.

NFC field. Random key exchange with additional secret (2FA) and encryption and potential MITM protection.

PRE_PAIRED 

Reusing encryption keys from previous pairing.

Definition at line 317 of file BTTypes0.hpp.

◆ ScanType

enum class direct_bt::ScanType : uint8_t
strong

Meta ScanType as derived from BTMode, with defined value mask consisting of BDAddressType bits.

This ScanType is natively compatible with DBTManager's implementation for start and stop discovery.

Enumerator
NONE 
BREDR 
LE 
DUAL 

Definition at line 350 of file BTTypes0.hpp.

◆ AD_PDU_Type

enum class direct_bt::AD_PDU_Type : uint8_t
strong

LE Advertising (AD) Protocol Data Unit (PDU) Types.

BT Core Spec v5.2: Vol 4 HCI, Part E HCI Functional: 7.7.65.2 LE Advertising Report event BT Core Spec v5.2: Vol 4 HCI, Part E HCI Functional: 7.7.65.13 LE Extended Advertising Report event BT Core Spec v5.2: Vol 6 LE Controller, Part B Link Layer: 2.3 Advertising physical channel PDU BT Core Spec v5.2: Vol 6 LE Controller, Part B Link Layer: 2.3.1 Advertising PDUs

Enumerator
ADV_IND 

Advertising Indications (ADV_IND), where a peripheral device requests connection to any central device (i.e., not directed at a particular central device).

ADV_DIRECT_IND 

Similar to ADV_IND, yet the connection request is directed at a specific central device.

ADV_SCAN_IND 

Similar to ADV_IND, w/o connection requests and with the option additional information via scan responses.

ADV_NONCONN_IND 

Non connectable devices, advertising information to any listening device.

SCAN_RSP 

Scan response PDU type.

ADV_IND2 

EAD_Event_Type with EAD_Event_Type::LEGACY_PDU: ADV_IND variant.

DIRECT_IND2 

EAD_Event_Type with EAD_Event_Type::LEGACY_PDU: ADV_DIRECT_IND variant.

SCAN_IND2 

EAD_Event_Type with EAD_Event_Type::LEGACY_PDU: ADV_SCAN_IND variant.

NONCONN_IND2 

EAD_Event_Type with EAD_Event_Type::LEGACY_PDU: ADV_NONCONN_IND variant.

SCAN_RSP_to_ADV_IND 

EAD_Event_Type with EAD_Event_Type::LEGACY_PDU: SCAN_RSP variant to an ADV_IND.

SCAN_RSP_to_ADV_SCAN_IND 

EAD_Event_Type with EAD_Event_Type::LEGACY_PDU: SCAN_RSP variant to an ADV_SCAN_IND.

UNDEFINED 

Definition at line 397 of file BTTypes0.hpp.

◆ EAD_Event_Type

enum class direct_bt::EAD_Event_Type : uint16_t
strong

LE Extended Advertising (EAD) Event Types.

BT Core Spec v5.2: Vol 4 HCI, Part E HCI Functional: 7.7.65.13 LE Extended Advertising Report event

Enumerator
NONE 
CONN_ADV 
SCAN_ADV 
DIR_ADV 
SCAN_RSP 
LEGACY_PDU 
DATA_B0 
DATA_B1 

Definition at line 439 of file BTTypes0.hpp.

◆ HCIWhitelistConnectType

enum class direct_bt::HCIWhitelistConnectType : uint8_t
strong

HCI Whitelist connection type.

Enumerator
HCI_AUTO_CONN_REPORT 

Report Connection: Only supported for LE on Linux .

HCI_AUTO_CONN_DIRECT 

Incoming Connections: Only supported type for BDADDR_BREDR (!LE) on Linux .

HCI_AUTO_CONN_ALWAYS 

Auto Connect: Only supported for LE on Linux .

Definition at line 471 of file BTTypes0.hpp.

◆ AD_Type_Const

enum class direct_bt::AD_Type_Const : uint8_t
strong
Enumerator
AD_FLAGS_LIMITED_MODE_BIT 
AD_FLAGS_GENERAL_MODE_BIT 

Definition at line 483 of file BTTypes0.hpp.

◆ L2CAP_CID

enum class direct_bt::L2CAP_CID : uint16_t
strong
Enumerator
UNDEFINED 
SIGNALING 
CONN_LESS 
A2MP 
ATT 
LE_SIGNALING 
SMP 
SMP_BREDR 
DYN_START 
DYN_END 
LE_DYN_END 

Definition at line 488 of file BTTypes0.hpp.

◆ L2CAP_PSM

enum class direct_bt::L2CAP_PSM : uint16_t
strong

Protocol Service Multiplexers (PSM) Assigned numbers https://www.bluetooth.com/specifications/assigned-numbers/logical-link-control/

Enumerator
UNDEFINED 
SDP 
RFCOMM 
TCSBIN 
TCSBIN_CORDLESS 
BNEP 
HID_CONTROL 
HID_INTERRUPT 
UPNP 
AVCTP 
AVDTP 
AVCTP_BROWSING 
UDI_C_PLANE 
ATT 
LE_DYN_START 
LE_DYN_END 
DYN_START 
DYN_END 
AUTO_END 

Definition at line 514 of file BTTypes0.hpp.

◆ L2CAP_States

enum class direct_bt::L2CAP_States : uint8_t
strong

BT Core Spec v5.2: Vol 3, Part A L2CAP Spec: 6 State Machine.

Enumerator
CLOSED 
WAIT_CONNECTED 
WAIT_CONNECTED_RSP 
CONFIG 
OPEN 
WAIT_DISCONNECTED 
WAIT_CREATE 
WAIT_CONNECT 
WAIT_CREATE_RSP 
WAIT_MOVE 
WAIT_MOVE_RSP 
WAIT_MOVE_CONFIRM 
WAIT_CONFIRM_RSP 

Definition at line 544 of file BTTypes0.hpp.

◆ GAP_T

enum class direct_bt::GAP_T : uint8_t
strong

​​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.

Type identifier values as defined in "Assigned Numbers - Generic Access Profile" https://www.bluetooth.com/specifications/assigned-numbers/generic-access-profile/

Also see Bluetooth Core Specification Supplement V9, Part A: 1, p 9 pp for data format definitions.

For data segment layout see Bluetooth Core Specification V5.2 [Vol. 3, Part C, 11, p 1392]

https://www.bluetooth.com/specifications/archived-specifications/

Enumerator
NONE 
FLAGS 

Flags.

UUID16_INCOMPLETE 

Incomplete List of 16-bit Service Class UUID.

(Supplement, Part A, section 1.1)

UUID16_COMPLETE 

Complete List of 16-bit Service Class UUID.

(Supplement, Part A, section 1.1)

UUID32_INCOMPLETE 

Incomplete List of 32-bit Service Class UUID.

(Supplement, Part A, section 1.1)

UUID32_COMPLETE 

Complete List of 32-bit Service Class UUID.

(Supplement, Part A, section 1.1)

UUID128_INCOMPLETE 

Incomplete List of 128-bit Service Class UUID.

(Supplement, Part A, section 1.1)

UUID128_COMPLETE 

Complete List of 128-bit Service Class UUID.

(Supplement, Part A, section 1.1)

NAME_LOCAL_SHORT 

Shortened local name (Supplement, Part A, section 1.2)

NAME_LOCAL_COMPLETE 

Complete local name (Supplement, Part A, section 1.2)

TX_POWER_LEVEL 

Transmit power level (Supplement, Part A, section 1.5)

SSP_CLASS_OF_DEVICE 

SSP: Secure Simple Pairing Out of Band: Supplement, Part A, section 1.6 Supplement, Part A, Section 1.6: SSP OOB Data Block w/ SSP_OOB_LEN ([Vol 3] Part C, Section 5.2.2.7.)

SSP Class of device (Supplement, Part A, section 1.6).

SSP_HASH_C192 

SSP: Simple Pairing Hash C and Simple Pairing Hash C-192 (Supplement, Part A 1.6)

SSP_RANDOMIZER_R192 

SSP: Simple Pairing Randomizer R-192 (Supplement, Part A, section 1.6)

DEVICE_ID 

Device ID Profile v 1.3 or later.

SEC_MGR_TK_VALUE 

Security Manager TK Value (Supplement, Part A, section 1.8)

SEC_MGR_OOB_FLAGS 

Security Manager Out of Band Flags (Supplement, Part A, section 1.7)

SLAVE_CONN_IVAL_RANGE 

Slave Connection Interval Range (Supplement, Part A, section 1.9)

SOLICIT_UUID16 

List of 16-bit Service Solicitation UUIDs (Supplement, Part A, section 1.10)

SOLICIT_UUID128 

List of 128-bit Service Solicitation UUIDs (Supplement, Part A, section 1.10)

SVC_DATA_UUID16 

Service Data - 16-bit UUID (Supplement, Part A, section 1.11)

PUB_TRGT_ADDR 
RND_TRGT_ADDR 
GAP_APPEARANCE 

(GAP) Appearance (Supplement, Part A, section 1.12)

ADV_INTERVAL 

Advertising Interval (Supplement, Part A, section 1.15)

LE_BT_DEV_ADDRESS 

LE Bluetooth Device Address.

LE_ROLE 

LE ROLE.

SSP_HASH_C256 

SSP: Simple Pairing Hash C-256 (Supplement, Part A 1.6)

SSP_RANDOMIZER_R256 

SSP: Simple Pairing Randomizer R-256 (Supplement, Part A, section 1.6)

SOLICIT_UUID32 

List of 32-bit Service Solicitation UUID (Supplement, Part A, section 1.10)

SVC_DATA_UUID32 

Service data, 32-bit UUID (Supplement, Part A, section 1.11)

SVC_DATA_UUID128 

Service data, 128-bit UUID (Supplement, Part A, section 1.11)

SSP_LE_SEC_CONN_ACK_VALUE 

SSP: LE Secure Connections Confirmation Value (Supplement Part A, Section 1.6)

SSP_LE_SEC_CONN_RND_VALUE 

SSP: LE Secure Connections Random Value (Supplement Part A, Section 1.6)

URI 
INDOOR_POSITIONING 
TX_DISCOVERY_DATA 
LE_SUPP_FEATURES 

LE Supported Features (Supplement, Part A, Section 1.19)

CH_MAP_UPDATE_IND 
PB_ADV 
MESH_MESSAGE 
MESH_BEACON 
BIG_INFO 
BROADCAST_CODE 
INFO_DATA_3D 
MANUFACTURE_SPECIFIC 

Manufacturer id code and specific opaque data.

Definition at line 579 of file BTTypes0.hpp.

◆ AppearanceCat

enum class direct_bt::AppearanceCat : uint16_t
strong
Enumerator
UNKNOWN 
GENERIC_PHONE 
GENERIC_COMPUTER 
GENERIC_WATCH 
SPORTS_WATCH 
GENERIC_CLOCK 
GENERIC_DISPLAY 
GENERIC_REMOTE_CLOCK 
GENERIC_EYE_GLASSES 
GENERIC_TAG 
GENERIC_KEYRING 
GENERIC_MEDIA_PLAYER 
GENERIC_BARCODE_SCANNER 
GENERIC_THERMOMETER 
GENERIC_THERMOMETER_EAR 
GENERIC_HEART_RATE_SENSOR 
HEART_RATE_SENSOR_BELT 
GENERIC_BLOD_PRESSURE 
BLOD_PRESSURE_ARM 
BLOD_PRESSURE_WRIST 
HID 
HID_KEYBOARD 
HID_MOUSE 
HID_JOYSTICK 
HID_GAMEPAD 
HID_DIGITIZER_TABLET 
HID_CARD_READER 
HID_DIGITAL_PEN 
HID_BARCODE_SCANNER 
GENERIC_GLUCOSE_METER 
GENERIC_RUNNING_WALKING_SENSOR 
RUNNING_WALKING_SENSOR_IN_SHOE 
RUNNING_WALKING_SENSOR_ON_SHOE 
RUNNING_WALKING_SENSOR_HIP 
GENERIC_CYCLING 
CYCLING_COMPUTER 
CYCLING_SPEED_SENSOR 
CYCLING_CADENCE_SENSOR 
CYCLING_POWER_SENSOR 
CYCLING_SPEED_AND_CADENCE_SENSOR 
GENERIC_PULSE_OXIMETER 
PULSE_OXIMETER_FINGERTIP 
PULSE_OXIMETER_WRIST 
GENERIC_WEIGHT_SCALE 
GENERIC_PERSONAL_MOBILITY_DEVICE 
PERSONAL_MOBILITY_DEVICE_WHEELCHAIR 
PERSONAL_MOBILITY_DEVICE_SCOOTER 
GENERIC_CONTINUOUS_GLUCOSE_MONITOR 
GENERIC_INSULIN_PUMP 
INSULIN_PUMP_DURABLE 
INSULIN_PUMP_PATCH 
INSULIN_PUMP_PEN 
GENERIC_MEDICATION_DELIVERY 
GENERIC_OUTDOOR_SPORTS_ACTIVITY 
OUTDOOR_SPORTS_ACTIVITY_LOCATION_DISPLAY_DEVICE 
OUTDOOR_SPORTS_ACTIVITY_LOCATION_AND_NAVIGATION_DISPLAY_DEVICE 
OUTDOOR_SPORTS_ACTIVITY_LOCATION_POD 
OUTDOOR_SPORTS_ACTIVITY_LOCATION_AND_NAVIGATION_POD 

Definition at line 696 of file BTTypes0.hpp.

◆ GAPFlags

enum class direct_bt::GAPFlags : uint8_t
strong

GAP Flags values, see Bluetooth Core Specification Supplement V9, Part A: 1.3, p 12 pp.

See also
EInfoReport
Enumerator
NONE 
LE_Ltd_Disc 
LE_Gen_Disc 
BREDR_UNSUP 
Dual_SameCtrl 
Dual_SameHost 
RESERVED1 
RESERVED2 
RESERVED3 

Definition at line 802 of file BTTypes0.hpp.

◆ EIRDataType

enum class direct_bt::EIRDataType : uint32_t
strong

Bit mask of 'Extended Inquiry Response' (EIR) data fields, indicating a set of related data.

See also
EInfoReport
Enumerator
NONE 
EVT_TYPE 
EXT_EVT_TYPE 
BDADDR_TYPE 
BDADDR 
FLAGS 
NAME 
NAME_SHORT 
RSSI 
TX_POWER 
MANUF_DATA 
DEVICE_CLASS 
APPEARANCE 
HASH 
RANDOMIZER 
DEVICE_ID 
CONN_IVAL 
SERVICE_UUID 
ALL 

Definition at line 838 of file BTTypes0.hpp.

◆ AdapterSetting

enum class direct_bt::AdapterSetting : uint32_t
strong

Adapter Setting Bits.

Used to denote specific bits or as a bit-mask.

Enumerator
NONE 
POWERED 
CONNECTABLE 
FAST_CONNECTABLE 
DISCOVERABLE 
BONDABLE 
LINK_SECURITY 
SSP 
BREDR 
HS 
LE 
ADVERTISING 
SECURE_CONN 
DEBUG_KEYS 
PRIVACY 
CONFIGURATION 
STATIC_ADDRESS 
PHY_CONFIGURATION 

Definition at line 144 of file BTTypes1.hpp.

◆ GattAttributeType

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.

See BTGattDesc::Type and GattCharacteristicType for further declarations.

Enumerator
PRIMARY_SERVICE 
SECONDARY_SERVICE 
INCLUDE_DECLARATION 
CHARACTERISTIC 

Definition at line 63 of file GattNumbers.hpp.

◆ GattServiceType

enum direct_bt::GattServiceType : uint16_t

GATT Service Type, each encapsulating a set of Characteristics.

https://www.bluetooth.com/specifications/gatt/services/

https://www.bluetooth.com/specifications/gatt/ - See GATT Specification Supplement (GSS) Version 2
Enumerator
GENERIC_ACCESS 

This service contains generic information about the device.

This is a mandatory service.

GENERIC_ATTRIBUTE 

The service allows receiving indications of changed services.

This is a mandatory service.

IMMEDIATE_ALERT 

This service exposes a control point to change the peripheral alert behavior.

LINK_LOSS 

The service defines behavior on the device when a link is lost between two devices.

HEALTH_THERMOMETER 

This service exposes temperature and other data from a thermometer intended for healthcare and fitness applications.

DEVICE_INFORMATION 

This service exposes manufacturer and/or vendor information about a device.

BATTERY_SERVICE 

This service exposes the state of a battery within a device.

Definition at line 84 of file GattNumbers.hpp.

◆ GattCharacteristicType

GATT Assigned Characteristic Attribute Type for single logical value.

https://www.bluetooth.com/specifications/gatt/characteristics/

See GattAttributeType for further non BTGattChar related declarations.

Enumerator
DEVICE_NAME 
APPEARANCE 
PERIPHERAL_PRIVACY_FLAG 
RECONNECTION_ADDRESS 
PERIPHERAL_PREFERRED_CONNECTION_PARAMETERS 
SERVICE_CHANGED 
TEMPERATURE 

Mandatory: sint16 10^-2: Celsius.

TEMPERATURE_CELSIUS 

Mandatory: sint16 10^-1: Celsius.

TEMPERATURE_FAHRENHEIT 
TEMPERATURE_MEASUREMENT 
TEMPERATURE_TYPE 

Mandatory: 8bit: 1 armpit, 2 body (general), 3(ear), 4 (finger), ...

INTERMEDIATE_TEMPERATURE 
MEASUREMENT_INTERVAL 
SYSTEM_ID 

Mandatory: uint40.

MODEL_NUMBER_STRING 
SERIAL_NUMBER_STRING 
FIRMWARE_REVISION_STRING 
HARDWARE_REVISION_STRING 
SOFTWARE_REVISION_STRING 
MANUFACTURER_NAME_STRING 
REGULATORY_CERT_DATA_LIST 
PNP_ID 

Definition at line 109 of file GattNumbers.hpp.

◆ GattCharacteristicProperty

Enumerator
Broadcast 
Read 
WriteNoAck 
WriteWithAck 
Notify 
Indicate 
AuthSignedWrite 
ExtProps 
ReliableWriteExt 

FIXME: extension?

AuxWriteExt 

FIXME: extension?

Definition at line 156 of file GattNumbers.hpp.

◆ GattRequirementSpec

Enumerator
Excluded 
Mandatory 
Optional 
Conditional 
if_characteristic_supported 
if_notify_or_indicate_supported 
C1 

Definition at line 172 of file GattNumbers.hpp.

◆ HCIConstInt

enum class direct_bt::HCIConstInt : int32_t
strong
Enumerator
LE_CONN_MIN_TIMEOUT_MS 

le connection supervisor timeout minimum of 500ms, see getHCIConnSupervisorTimeout() and v5.2 Vol 4, Part E - 7.8.12.

Definition at line 81 of file HCITypes.hpp.

◆ HCIConstU16

enum class direct_bt::HCIConstU16 : uint16_t
strong
Enumerator
INDEX_NONE 
MAX_NAME_LENGTH 
MAX_SHORT_NAME_LENGTH 
MAX_AD_LENGTH 

Definition at line 121 of file HCITypes.hpp.

◆ HCIStatusCode

enum class direct_bt::HCIStatusCode : uint8_t
strong

BT Core Spec v5.2: Vol 1, Part F Controller Error Codes: 1.3 List of Error Codes.

BT Core Spec v5.2: Vol 1, Part F Controller Error Codes: 2 Error code descriptions

Enumerator
SUCCESS 
UNKNOWN_COMMAND 
UNKNOWN_CONNECTION_IDENTIFIER 
HARDWARE_FAILURE 
PAGE_TIMEOUT 
AUTHENTICATION_FAILURE 
PIN_OR_KEY_MISSING 
MEMORY_CAPACITY_EXCEEDED 
CONNECTION_TIMEOUT 
CONNECTION_LIMIT_EXCEEDED 
SYNC_DEVICE_CONNECTION_LIMIT_EXCEEDED 
CONNECTION_ALREADY_EXISTS 
COMMAND_DISALLOWED 
CONNECTION_REJECTED_LIMITED_RESOURCES 
CONNECTION_REJECTED_SECURITY 
CONNECTION_REJECTED_UNACCEPTABLE_BD_ADDR 
CONNECTION_ACCEPT_TIMEOUT_EXCEEDED 
UNSUPPORTED_FEATURE_OR_PARAM_VALUE 
INVALID_HCI_COMMAND_PARAMETERS 
REMOTE_USER_TERMINATED_CONNECTION 
REMOTE_DEVICE_TERMINATED_CONNECTION_LOW_RESOURCES 
REMOTE_DEVICE_TERMINATED_CONNECTION_POWER_OFF 
CONNECTION_TERMINATED_BY_LOCAL_HOST 
REPEATED_ATTEMPTS 
PAIRING_NOT_ALLOWED 
UNKNOWN_LMP_PDU 
UNSUPPORTED_REMOTE_OR_LMP_FEATURE 
SCO_OFFSET_REJECTED 
SCO_INTERVAL_REJECTED 
SCO_AIR_MODE_REJECTED 
INVALID_LMP_OR_LL_PARAMETERS 
UNSPECIFIED_ERROR 
UNSUPPORTED_LMP_OR_LL_PARAMETER_VALUE 
ROLE_CHANGE_NOT_ALLOWED 
LMP_OR_LL_RESPONSE_TIMEOUT 
LMP_OR_LL_COLLISION 
LMP_PDU_NOT_ALLOWED 
ENCRYPTION_MODE_NOT_ACCEPTED 
LINK_KEY_CANNOT_BE_CHANGED 
REQUESTED_QOS_NOT_SUPPORTED 
INSTANT_PASSED 
PAIRING_WITH_UNIT_KEY_NOT_SUPPORTED 
DIFFERENT_TRANSACTION_COLLISION 
QOS_UNACCEPTABLE_PARAMETER 
QOS_REJECTED 
CHANNEL_ASSESSMENT_NOT_SUPPORTED 
INSUFFICIENT_SECURITY 
PARAMETER_OUT_OF_RANGE 
ROLE_SWITCH_PENDING 
RESERVED_SLOT_VIOLATION 
ROLE_SWITCH_FAILED 
EIR_TOO_LARGE 
SIMPLE_PAIRING_NOT_SUPPORTED_BY_HOST 
HOST_BUSY_PAIRING 
CONNECTION_REJECTED_NO_SUITABLE_CHANNEL 
CONTROLLER_BUSY 
UNACCEPTABLE_CONNECTION_PARAM 
ADVERTISING_TIMEOUT 
CONNECTION_TERMINATED_MIC_FAILURE 
CONNECTION_EST_FAILED_OR_SYNC_TIMEOUT 
MAX_CONNECTION_FAILED 
COARSE_CLOCK_ADJ_REJECTED 
TYPE0_SUBMAP_NOT_DEFINED 
UNKNOWN_ADVERTISING_IDENTIFIER 
LIMIT_REACHED 
OPERATION_CANCELLED_BY_HOST 
PACKET_TOO_LONG 
FAILED 
CONNECT_FAILED 
AUTH_FAILED 
NOT_PAIRED 
NO_RESOURCES 
TIMEOUT 
ALREADY_CONNECTED 
BUSY 
REJECTED 
NOT_SUPPORTED 
INVALID_PARAMS 
DISCONNECTED 
NOT_POWERED 
CANCELLED 
INVALID_INDEX 
RFKILLED 
ALREADY_PAIRED 
PERMISSION_DENIED 
INTERNAL_TIMEOUT 
INTERNAL_FAILURE 
UNKNOWN 

Definition at line 138 of file HCITypes.hpp.

Function Documentation

◆ number() [1/25]

constexpr uint8_t direct_bt::number ( const DiscoveryPolicy  rhs)
constexprnoexcept

Definition at line 100 of file BTAdapter.hpp.

◆ to_DiscoveryPolicy()

constexpr DiscoveryPolicy direct_bt::to_DiscoveryPolicy ( const uint8_t  v)
constexprnoexcept
Examples
dbt_repeater00.cpp, and dbt_scanner10.cpp.

Definition at line 103 of file BTAdapter.hpp.

Here is the caller graph for this function:

◆ to_string() [1/27]

std::string direct_bt::to_string ( const DiscoveryPolicy  v)
noexcept
Examples
dbt_peripheral00.cpp.

Definition at line 58 of file BTAdapter.cpp.

◆ operator==() [1/12]

bool direct_bt::operator== ( const BTAdapter lhs,
const BTAdapter rhs 
)
inlinenoexcept

Definition at line 1348 of file BTAdapter.hpp.

◆ operator!=() [1/12]

bool direct_bt::operator!= ( const BTAdapter lhs,
const BTAdapter rhs 
)
inlinenoexcept

Definition at line 1351 of file BTAdapter.hpp.

◆ to_BDAddressType() [1/3]

constexpr BDAddressType direct_bt::to_BDAddressType ( const uint8_t  v)
constexprnoexcept

Definition at line 70 of file BTAddress.hpp.

Here is the caller graph for this function:

◆ number() [2/25]

constexpr uint8_t direct_bt::number ( const BDAddressType  rhs)
constexprnoexcept

Definition at line 76 of file BTAddress.hpp.

◆ to_string() [2/27]

std::string direct_bt::to_string ( const BDAddressType  type)
noexcept

Definition at line 139 of file BTTypes0.cpp.

◆ number() [3/25]

constexpr uint8_t direct_bt::number ( const BLERandomAddressType  rhs)
constexprnoexcept

Definition at line 116 of file BTAddress.hpp.

◆ to_string() [3/27]

std::string direct_bt::to_string ( const BLERandomAddressType  type)
noexcept

Definition at line 154 of file BTTypes0.cpp.

◆ number() [4/25]

constexpr uint8_t direct_bt::number ( const HCILEPeerAddressType  rhs)
constexprnoexcept

Definition at line 146 of file BTAddress.hpp.

◆ to_BDAddressType() [2/3]

BDAddressType direct_bt::to_BDAddressType ( const HCILEPeerAddressType  hciPeerAddrType)
noexcept

Definition at line 54 of file BTTypes0.cpp.

◆ to_string() [4/27]

std::string direct_bt::to_string ( const HCILEPeerAddressType  type)
noexcept

Definition at line 76 of file BTTypes0.cpp.

◆ number() [5/25]

constexpr uint8_t direct_bt::number ( const HCILEOwnAddressType  rhs)
constexprnoexcept

Definition at line 161 of file BTAddress.hpp.

◆ to_BDAddressType() [3/3]

BDAddressType direct_bt::to_BDAddressType ( const HCILEOwnAddressType  hciOwnAddrType)
noexcept

Definition at line 84 of file BTTypes0.cpp.

◆ to_HCILEOwnAddressType()

HCILEOwnAddressType direct_bt::to_HCILEOwnAddressType ( const BDAddressType  addrType,
bool  resolvable 
)
noexcept

Definition at line 99 of file BTTypes0.cpp.

◆ to_string() [5/27]

std::string direct_bt::to_string ( const HCILEOwnAddressType  type)
noexcept

Definition at line 124 of file BTTypes0.cpp.

◆ operator==() [2/12]

bool direct_bt::operator== ( const BDAddressAndType lhs,
const BDAddressAndType rhs 
)
inlinenoexcept

Definition at line 348 of file BTAddress.hpp.

◆ operator!=() [2/12]

bool direct_bt::operator!= ( const BDAddressAndType lhs,
const BDAddressAndType rhs 
)
inlinenoexcept

Definition at line 355 of file BTAddress.hpp.

◆ to_string() [6/27]

std::string direct_bt::to_string ( const BDAddressAndType a)
inlinenoexcept

Definition at line 358 of file BTAddress.hpp.

◆ operator==() [3/12]

bool direct_bt::operator== ( const BTDevice lhs,
const BTDevice rhs 
)
inlinenoexcept

Definition at line 1338 of file BTDevice.hpp.

◆ operator!=() [3/12]

bool direct_bt::operator!= ( const BTDevice lhs,
const BTDevice rhs 
)
inlinenoexcept

Definition at line 1344 of file BTDevice.hpp.

◆ get() [1/3]

Entry * direct_bt::BTSecurityRegistry::get ( const EUI48 addr,
const std::string &  name,
AddressNameEntryMatchFunc  m 
)
noexcept

Returns a matching BTSecurityRegistry::Entry with the given addr and/or name.

Matching criteria and algorithm is defined by the given AddressNameEntryMatchFunc.

Examples
dbt_peripheral00.cpp, dbt_repeater00.cpp, dbt_scanner10.cpp, and test_type_traits_queries01.cpp.

Definition at line 36 of file BTSecurityRegistry.cpp.

Here is the caller graph for this function:

◆ get() [2/3]

Entry * direct_bt::BTSecurityRegistry::get ( const EUI48Sub addrSub,
const std::string &  name,
AddressSubNameEntryMatchFunc  m 
)
noexcept

Returns a matching BTSecurityRegistry::Entry with the given addrSub and/or name.

Matching criteria and algorithm is defined by the given AddressSubNameEntryMatchFunc.

Definition at line 46 of file BTSecurityRegistry.cpp.

◆ get() [3/3]

Entry * direct_bt::BTSecurityRegistry::get ( const std::string &  name,
NameEntryMatchFunc  m 
)
noexcept

Returns a matching BTSecurityRegistry::Entry with the given name.

Matching criteria and algorithm is defined by the given NameEntryMatchFunc.

Definition at line 56 of file BTSecurityRegistry.cpp.

◆ getStartOf() [1/3]

Entry * direct_bt::BTSecurityRegistry::getStartOf ( const EUI48 addr,
const std::string &  name 
)
inlinenoexcept

Returns a matching Entry,.

Otherwise null is returned.

Examples
dbt_peripheral00.cpp, dbt_repeater00.cpp, and dbt_scanner10.cpp.

Definition at line 163 of file BTSecurityRegistry.hpp.

Here is the caller graph for this function:

◆ getStartOf() [2/3]

Entry * direct_bt::BTSecurityRegistry::getStartOf ( const EUI48Sub addrSub,
const std::string &  name 
)
inlinenoexcept

Returns a matching Entry,.

Otherwise null is returned.

Definition at line 176 of file BTSecurityRegistry.hpp.

◆ getStartOf() [3/3]

Entry * direct_bt::BTSecurityRegistry::getStartOf ( const std::string &  name)
inlinenoexcept

Returns a matching Entry, which Entry::nameSub is set and the given name starts with Entry::nameSub.

Otherwise null is returned.

Definition at line 188 of file BTSecurityRegistry.hpp.

◆ getEqual() [1/2]

Entry * direct_bt::BTSecurityRegistry::getEqual ( const EUI48Sub addrSub,
const std::string &  name 
)
inlinenoexcept

Returns a matching Entry,.

Otherwise null is returned.

Definition at line 201 of file BTSecurityRegistry.hpp.

Here is the caller graph for this function:

◆ getEqual() [2/2]

Entry * direct_bt::BTSecurityRegistry::getEqual ( const std::string &  name)
inlinenoexcept

Returns a matching Entry, which Entry::nameSub is set and the given name starts with Entry::nameSub.

Otherwise null is returned.

Definition at line 213 of file BTSecurityRegistry.hpp.

◆ getEntries()

jau::darray< Entry > & direct_bt::BTSecurityRegistry::getEntries ( )
noexcept

Returns the reference of the current list of Entry, not a copy.

Definition at line 67 of file BTSecurityRegistry.cpp.

◆ getOrCreate()

Entry * direct_bt::BTSecurityRegistry::getOrCreate ( const std::string &  addrOrNameSub)
noexcept

Determines whether the given addrOrNameSub is a EUI48Sub or just a name and retrieves an entry.

If no entry exists, creates a new entry.

Implementation uses getEqual() to find a pre-existing entry.

Parameters
addrOrNameSubeither a EUI48Sub or just a name
Returns
new or existing instance
Examples
dbt_repeater00.cpp, and dbt_scanner10.cpp.

Definition at line 71 of file BTSecurityRegistry.cpp.

Here is the caller graph for this function:

◆ clear()

void direct_bt::BTSecurityRegistry::clear ( )
noexcept

Clears internal list.

Definition at line 90 of file BTSecurityRegistry.cpp.

Here is the caller graph for this function:

◆ allToString()

std::string direct_bt::BTSecurityRegistry::allToString ( )
noexcept
Examples
dbt_repeater00.cpp, and dbt_scanner10.cpp.

Definition at line 93 of file BTSecurityRegistry.cpp.

Here is the caller graph for this function:

◆ number() [6/25]

constexpr uint8_t direct_bt::number ( const BTRole  rhs)
constexprnoexcept

Definition at line 77 of file BTTypes0.hpp.

◆ operator!()

constexpr BTRole direct_bt::operator! ( const BTRole  rhs)
constexprnoexcept

Definition at line 80 of file BTTypes0.hpp.

◆ to_string() [7/27]

std::string direct_bt::to_string ( const BTRole  v)
noexcept

Definition at line 198 of file BTTypes0.cpp.

◆ number() [7/25]

constexpr uint8_t direct_bt::number ( const GATTRole  rhs)
constexprnoexcept

Definition at line 104 of file BTTypes0.hpp.

◆ to_string() [8/27]

std::string direct_bt::to_string ( const GATTRole  v)
noexcept

Definition at line 207 of file BTTypes0.cpp.

◆ number() [8/25]

constexpr uint8_t direct_bt::number ( const BTMode  rhs)
constexprnoexcept

Definition at line 122 of file BTTypes0.hpp.

◆ to_string() [9/27]

std::string direct_bt::to_string ( const BTMode  v)
noexcept

Definition at line 216 of file BTTypes0.cpp.

◆ to_BTMode()

BTMode direct_bt::to_BTMode ( const std::string &  value)
noexcept

Maps the specified name to a constant of BTMode.

Parameters
namethe string name to be mapped to a constant of this enum type.
Returns
the corresponding constant of this enum type, using BTMode#NONE if not supported.
Examples
dbt_peripheral00.cpp, dbt_repeater00.cpp, and dbt_scanner10.cpp.

Definition at line 226 of file BTTypes0.cpp.

Here is the caller graph for this function:

◆ number() [9/25]

constexpr uint64_t direct_bt::number ( const LE_Features  rhs)
constexprnoexcept

Definition at line 201 of file BTTypes0.hpp.

◆ operator^() [1/4]

constexpr LE_Features direct_bt::operator^ ( const LE_Features  lhs,
const LE_Features  rhs 
)
constexprnoexcept

Definition at line 204 of file BTTypes0.hpp.

◆ operator|() [1/7]

constexpr LE_Features direct_bt::operator| ( const LE_Features  lhs,
const LE_Features  rhs 
)
constexprnoexcept

Definition at line 207 of file BTTypes0.hpp.

◆ operator&() [1/7]

constexpr LE_Features direct_bt::operator& ( const LE_Features  lhs,
const LE_Features  rhs 
)
constexprnoexcept

Definition at line 210 of file BTTypes0.hpp.

◆ operator==() [4/12]

constexpr bool direct_bt::operator== ( const LE_Features  lhs,
const LE_Features  rhs 
)
constexprnoexcept

Definition at line 213 of file BTTypes0.hpp.

◆ operator!=() [4/12]

constexpr bool direct_bt::operator!= ( const LE_Features  lhs,
const LE_Features  rhs 
)
constexprnoexcept

Definition at line 216 of file BTTypes0.hpp.

◆ is_set() [1/5]

constexpr bool direct_bt::is_set ( const LE_Features  mask,
const LE_Features  bit 
)
constexprnoexcept

Definition at line 219 of file BTTypes0.hpp.

Here is the caller graph for this function:

◆ to_string() [10/27]

std::string direct_bt::to_string ( const LE_Features  mask)
noexcept

Definition at line 281 of file BTTypes0.cpp.

◆ number() [10/25]

constexpr uint8_t direct_bt::number ( const LE_PHYs  rhs)
constexprnoexcept

Definition at line 237 of file BTTypes0.hpp.

◆ operator^() [2/4]

constexpr LE_PHYs direct_bt::operator^ ( const LE_PHYs  lhs,
const LE_PHYs  rhs 
)
constexprnoexcept

Definition at line 240 of file BTTypes0.hpp.

◆ operator|() [2/7]

constexpr LE_PHYs direct_bt::operator| ( const LE_PHYs  lhs,
const LE_PHYs  rhs 
)
constexprnoexcept

Definition at line 243 of file BTTypes0.hpp.

◆ operator&() [2/7]

constexpr LE_PHYs direct_bt::operator& ( const LE_PHYs  lhs,
const LE_PHYs  rhs 
)
constexprnoexcept

Definition at line 246 of file BTTypes0.hpp.

◆ operator==() [5/12]

constexpr bool direct_bt::operator== ( const LE_PHYs  lhs,
const LE_PHYs  rhs 
)
constexprnoexcept

Definition at line 249 of file BTTypes0.hpp.

◆ operator!=() [5/12]

constexpr bool direct_bt::operator!= ( const LE_PHYs  lhs,
const LE_PHYs  rhs 
)
constexprnoexcept

Definition at line 252 of file BTTypes0.hpp.

◆ is_set() [2/5]

constexpr bool direct_bt::is_set ( const LE_PHYs  mask,
const LE_PHYs  bit 
)
constexprnoexcept

Definition at line 255 of file BTTypes0.hpp.

◆ to_string() [11/27]

std::string direct_bt::to_string ( const LE_PHYs  mask)
noexcept

Definition at line 298 of file BTTypes0.cpp.

◆ number() [11/25]

constexpr uint8_t direct_bt::number ( const BTSecurityLevel  rhs)
constexprnoexcept

Definition at line 279 of file BTTypes0.hpp.

◆ operator==() [6/12]

constexpr bool direct_bt::operator== ( const BTSecurityLevel  lhs,
const BTSecurityLevel  rhs 
)
constexprnoexcept

Definition at line 282 of file BTTypes0.hpp.

◆ operator!=() [6/12]

constexpr bool direct_bt::operator!= ( const BTSecurityLevel  lhs,
const BTSecurityLevel  rhs 
)
constexprnoexcept

Definition at line 285 of file BTTypes0.hpp.

◆ operator<()

constexpr bool direct_bt::operator< ( const BTSecurityLevel  lhs,
const BTSecurityLevel  rhs 
)
constexprnoexcept

Definition at line 288 of file BTTypes0.hpp.

◆ operator<=()

constexpr bool direct_bt::operator<= ( const BTSecurityLevel  lhs,
const BTSecurityLevel  rhs 
)
constexprnoexcept

Definition at line 291 of file BTTypes0.hpp.

◆ operator>()

constexpr bool direct_bt::operator> ( const BTSecurityLevel  lhs,
const BTSecurityLevel  rhs 
)
constexprnoexcept

Definition at line 294 of file BTTypes0.hpp.

◆ operator>=()

constexpr bool direct_bt::operator>= ( const BTSecurityLevel  lhs,
const BTSecurityLevel  rhs 
)
constexprnoexcept

Definition at line 297 of file BTTypes0.hpp.

◆ to_BTSecurityLevel()

constexpr BTSecurityLevel direct_bt::to_BTSecurityLevel ( const uint8_t  v)
constexprnoexcept
Examples
dbt_peripheral00.cpp, dbt_repeater00.cpp, and dbt_scanner10.cpp.

Definition at line 300 of file BTTypes0.hpp.

Here is the caller graph for this function:

◆ to_string() [12/27]

std::string direct_bt::to_string ( const BTSecurityLevel  v)
noexcept

Definition at line 310 of file BTTypes0.cpp.

◆ number() [12/25]

constexpr uint8_t direct_bt::number ( const PairingMode  rhs)
constexprnoexcept

Definition at line 337 of file BTTypes0.hpp.

◆ to_string() [13/27]

std::string direct_bt::to_string ( const PairingMode  v)
noexcept

Definition at line 321 of file BTTypes0.cpp.

◆ number() [13/25]

constexpr uint8_t direct_bt::number ( const ScanType  rhs)
constexprnoexcept

Definition at line 356 of file BTTypes0.hpp.

◆ operator~() [1/3]

constexpr ScanType direct_bt::operator~ ( const ScanType  val)
constexprnoexcept

Definition at line 359 of file BTTypes0.hpp.

◆ operator^() [3/4]

constexpr ScanType direct_bt::operator^ ( const ScanType  lhs,
const ScanType  rhs 
)
constexprnoexcept

Definition at line 362 of file BTTypes0.hpp.

◆ operator|() [3/7]

constexpr ScanType direct_bt::operator| ( const ScanType  lhs,
const ScanType  rhs 
)
constexprnoexcept

Definition at line 365 of file BTTypes0.hpp.

◆ operator&() [3/7]

constexpr ScanType direct_bt::operator& ( const ScanType  lhs,
const ScanType  rhs 
)
constexprnoexcept

Definition at line 368 of file BTTypes0.hpp.

◆ operator==() [7/12]

constexpr bool direct_bt::operator== ( const ScanType  lhs,
const ScanType  rhs 
)
constexprnoexcept

Definition at line 371 of file BTTypes0.hpp.

◆ operator!=() [7/12]

constexpr bool direct_bt::operator!= ( const ScanType  lhs,
const ScanType  rhs 
)
constexprnoexcept

Definition at line 374 of file BTTypes0.hpp.

◆ changeScanType()

constexpr ScanType direct_bt::changeScanType ( const ScanType  current,
const ScanType  changeType,
const bool  changeEnable 
)
constexprnoexcept

Definition at line 377 of file BTTypes0.hpp.

Here is the caller graph for this function:

◆ is_set() [3/5]

constexpr bool direct_bt::is_set ( const ScanType  current,
const ScanType  testType 
)
constexprnoexcept

Definition at line 380 of file BTTypes0.hpp.

◆ to_string() [14/27]

std::string direct_bt::to_string ( const ScanType  v)
noexcept

Definition at line 357 of file BTTypes0.cpp.

◆ to_ScanType()

ScanType direct_bt::to_ScanType ( BTMode  btMode)

Definition at line 336 of file BTTypes0.cpp.

◆ number() [14/25]

constexpr uint8_t direct_bt::number ( const AD_PDU_Type  rhs)
constexprnoexcept

Definition at line 427 of file BTTypes0.hpp.

◆ to_string() [15/27]

std::string direct_bt::to_string ( const AD_PDU_Type  v)
noexcept

Definition at line 381 of file BTTypes0.cpp.

◆ number() [15/25]

constexpr uint16_t direct_bt::number ( const EAD_Event_Type  rhs)
constexprnoexcept

Definition at line 449 of file BTTypes0.hpp.

◆ operator|() [4/7]

constexpr EAD_Event_Type direct_bt::operator| ( const EAD_Event_Type  lhs,
const EAD_Event_Type  rhs 
)
constexprnoexcept

Definition at line 452 of file BTTypes0.hpp.

◆ operator&() [4/7]

constexpr EAD_Event_Type direct_bt::operator& ( const EAD_Event_Type  lhs,
const EAD_Event_Type  rhs 
)
constexprnoexcept

Definition at line 455 of file BTTypes0.hpp.

◆ operator==() [8/12]

constexpr bool direct_bt::operator== ( const EAD_Event_Type  lhs,
const EAD_Event_Type  rhs 
)
constexprnoexcept

Definition at line 458 of file BTTypes0.hpp.

◆ operator!=() [8/12]

constexpr bool direct_bt::operator!= ( const EAD_Event_Type  lhs,
const EAD_Event_Type  rhs 
)
constexprnoexcept

Definition at line 461 of file BTTypes0.hpp.

◆ is_set() [4/5]

constexpr bool direct_bt::is_set ( const EAD_Event_Type  mask,
const EAD_Event_Type  bit 
)
constexprnoexcept

Definition at line 464 of file BTTypes0.hpp.

◆ set() [1/2]

constexpr void direct_bt::set ( EAD_Event_Type mask,
const EAD_Event_Type  bit 
)
constexprnoexcept

Definition at line 465 of file BTTypes0.hpp.

Here is the caller graph for this function:

◆ to_string() [16/27]

std::string direct_bt::to_string ( const EAD_Event_Type  v)
noexcept

Definition at line 402 of file BTTypes0.cpp.

◆ number() [16/25]

constexpr uint8_t direct_bt::number ( const HCIWhitelistConnectType  rhs)
constexprnoexcept

Definition at line 479 of file BTTypes0.hpp.

◆ number() [17/25]

constexpr uint16_t direct_bt::number ( const L2CAP_CID  rhs)
constexprnoexcept

Definition at line 504 of file BTTypes0.hpp.

◆ to_L2CAP_CID()

constexpr L2CAP_CID direct_bt::to_L2CAP_CID ( const uint16_t  v)
constexprnoexcept

Definition at line 507 of file BTTypes0.hpp.

◆ to_string() [17/27]

std::string direct_bt::to_string ( const L2CAP_CID  v)
noexcept

Definition at line 429 of file BTTypes0.cpp.

◆ number() [18/25]

constexpr uint16_t direct_bt::number ( const L2CAP_PSM  rhs)
constexprnoexcept

Definition at line 535 of file BTTypes0.hpp.

◆ to_L2CAP_PSM()

constexpr L2CAP_PSM direct_bt::to_L2CAP_PSM ( const uint16_t  v)
constexprnoexcept

Definition at line 538 of file BTTypes0.hpp.

◆ to_string() [18/27]

std::string direct_bt::to_string ( const L2CAP_PSM  v)
noexcept

Definition at line 460 of file BTTypes0.cpp.

◆ number() [19/25]

constexpr uint8_t direct_bt::number ( const GAP_T  rhs)
constexprnoexcept

Definition at line 694 of file BTTypes0.hpp.

◆ number() [20/25]

constexpr uint16_t direct_bt::number ( const AppearanceCat  rhs)
constexprnoexcept

Definition at line 756 of file BTTypes0.hpp.

◆ to_string() [19/27]

std::string direct_bt::to_string ( const AppearanceCat  v)
noexcept

Definition at line 530 of file BTTypes0.cpp.

◆ operator==() [9/12]

constexpr bool direct_bt::operator== ( const ManufactureSpecificData lhs,
const ManufactureSpecificData rhs 
)
constexprnoexcept

Definition at line 787 of file BTTypes0.hpp.

◆ operator!=() [9/12]

constexpr bool direct_bt::operator!= ( const ManufactureSpecificData lhs,
const ManufactureSpecificData rhs 
)
constexprnoexcept

Definition at line 790 of file BTTypes0.hpp.

◆ number() [21/25]

constexpr uint8_t direct_bt::number ( const GAPFlags  rhs)
constexprnoexcept

Definition at line 813 of file BTTypes0.hpp.

◆ operator|() [5/7]

constexpr GAPFlags direct_bt::operator| ( const GAPFlags  lhs,
const GAPFlags  rhs 
)
constexprnoexcept

Definition at line 814 of file BTTypes0.hpp.

◆ operator&() [5/7]

constexpr GAPFlags direct_bt::operator& ( const GAPFlags  lhs,
const GAPFlags  rhs 
)
constexprnoexcept

Definition at line 817 of file BTTypes0.hpp.

◆ operator==() [10/12]

constexpr bool direct_bt::operator== ( const GAPFlags  lhs,
const GAPFlags  rhs 
)
constexprnoexcept

Definition at line 820 of file BTTypes0.hpp.

◆ operator!=() [10/12]

constexpr bool direct_bt::operator!= ( const GAPFlags  lhs,
const GAPFlags  rhs 
)
constexprnoexcept

Definition at line 823 of file BTTypes0.hpp.

◆ to_string() [20/27]

std::string direct_bt::to_string ( const GAPFlags  v)
noexcept

Definition at line 577 of file BTTypes0.cpp.

◆ number() [22/25]

constexpr uint32_t direct_bt::number ( const EIRDataType  rhs)
constexprnoexcept

Definition at line 859 of file BTTypes0.hpp.

◆ operator|() [6/7]

constexpr EIRDataType direct_bt::operator| ( const EIRDataType  lhs,
const EIRDataType  rhs 
)
constexprnoexcept

Definition at line 861 of file BTTypes0.hpp.

◆ operator&() [6/7]

constexpr EIRDataType direct_bt::operator& ( const EIRDataType  lhs,
const EIRDataType  rhs 
)
constexprnoexcept

Definition at line 864 of file BTTypes0.hpp.

◆ operator~() [2/3]

constexpr EIRDataType direct_bt::operator~ ( const EIRDataType  rhs)
constexprnoexcept

Definition at line 867 of file BTTypes0.hpp.

◆ operator==() [11/12]

constexpr bool direct_bt::operator== ( const EIRDataType  lhs,
const EIRDataType  rhs 
)
constexprnoexcept

Definition at line 870 of file BTTypes0.hpp.

◆ operator!=() [11/12]

constexpr bool direct_bt::operator!= ( const EIRDataType  lhs,
const EIRDataType  rhs 
)
constexprnoexcept

Definition at line 873 of file BTTypes0.hpp.

◆ is_set() [5/5]

constexpr bool direct_bt::is_set ( const EIRDataType  mask,
const EIRDataType  bit 
)
constexprnoexcept

Definition at line 876 of file BTTypes0.hpp.

◆ set() [2/2]

constexpr void direct_bt::set ( EIRDataType mask,
const EIRDataType  bit 
)
constexprnoexcept

Definition at line 877 of file BTTypes0.hpp.

◆ to_string() [21/27]

std::string direct_bt::to_string ( const EIRDataType  mask)
noexcept

Definition at line 609 of file BTTypes0.cpp.

◆ to_string() [22/27]

std::string direct_bt::to_string ( EInfoReport::Source  source)
noexcept

Definition at line 762 of file BTTypes0.cpp.

◆ to_string() [23/27]

std::string direct_bt::to_string ( const EInfoReport eir,
const bool  includeServices = true 
)
inlinenoexcept

Definition at line 1162 of file BTTypes0.hpp.

◆ to_string() [24/27]

std::string direct_bt::to_string ( const BTObject o)
inlinenoexcept

Definition at line 74 of file BTTypes1.hpp.

◆ operator~() [3/3]

constexpr AdapterSetting direct_bt::operator~ ( const AdapterSetting  rhs)
constexprnoexcept

Definition at line 164 of file BTTypes1.hpp.

◆ operator^() [4/4]

constexpr AdapterSetting direct_bt::operator^ ( const AdapterSetting  lhs,
const AdapterSetting  rhs 
)
constexprnoexcept

Definition at line 167 of file BTTypes1.hpp.

◆ operator|() [7/7]

constexpr AdapterSetting direct_bt::operator| ( const AdapterSetting  lhs,
const AdapterSetting  rhs 
)
constexprnoexcept

Definition at line 170 of file BTTypes1.hpp.

◆ operator&() [7/7]

constexpr AdapterSetting direct_bt::operator& ( const AdapterSetting  lhs,
const AdapterSetting  rhs 
)
constexprnoexcept

Definition at line 173 of file BTTypes1.hpp.

◆ operator==() [12/12]

constexpr bool direct_bt::operator== ( const AdapterSetting  lhs,
const AdapterSetting  rhs 
)
constexprnoexcept

Definition at line 176 of file BTTypes1.hpp.

◆ operator!=() [12/12]

constexpr bool direct_bt::operator!= ( const AdapterSetting  lhs,
const AdapterSetting  rhs 
)
constexprnoexcept

Definition at line 179 of file BTTypes1.hpp.

◆ getAdapterSettingMaskDiff()

constexpr AdapterSetting direct_bt::getAdapterSettingMaskDiff ( const AdapterSetting  setting_a,
const AdapterSetting  setting_b 
)
constexprnoexcept

Definition at line 183 of file BTTypes1.hpp.

◆ isAdapterSettingBitSet()

constexpr bool direct_bt::isAdapterSettingBitSet ( const AdapterSetting  mask,
const AdapterSetting  bit 
)
constexprnoexcept
Examples
dbt_peripheral00.cpp, dbt_repeater00.cpp, and dbt_scanner10.cpp.

Definition at line 185 of file BTTypes1.hpp.

Here is the caller graph for this function:

◆ setAdapterSettingMaskBit()

constexpr void direct_bt::setAdapterSettingMaskBit ( AdapterSetting mask,
const AdapterSetting  bit 
)
constexprnoexcept

Definition at line 187 of file BTTypes1.hpp.

◆ clrAdapterSettingMaskBit()

constexpr void direct_bt::clrAdapterSettingMaskBit ( AdapterSetting mask,
const AdapterSetting  bit 
)
constexprnoexcept

Definition at line 188 of file BTTypes1.hpp.

◆ to_string() [25/27]

std::string direct_bt::to_string ( const AdapterSetting  settingBitMask)
noexcept

Definition at line 80 of file BTTypes1.cpp.

◆ getAdapterSettingsBTMode()

BTMode direct_bt::getAdapterSettingsBTMode ( const AdapterSetting  settingMask)
noexcept

Maps the given AdapterSetting to BTMode.

Definition at line 88 of file BTTypes1.cpp.

Here is the caller graph for this function:

◆ to_string() [26/27]

std::string direct_bt::to_string ( const AdapterInfo a)
inlinenoexcept

Definition at line 298 of file BTTypes1.hpp.

Here is the caller graph for this function:

◆ GattServiceTypeToString()

std::string direct_bt::GattServiceTypeToString ( const GattServiceType  v)
noexcept

Definition at line 268 of file GATTNumbers.cpp.

Here is the caller graph for this function:

◆ GattCharacteristicTypeToString()

std::string direct_bt::GattCharacteristicTypeToString ( const GattCharacteristicType  v)
noexcept

Definition at line 300 of file GATTNumbers.cpp.

Here is the caller graph for this function:

◆ GattCharacteristicPropertyToString()

std::string direct_bt::GattCharacteristicPropertyToString ( const GattCharacteristicProperty  v)
noexcept

Definition at line 320 of file GATTNumbers.cpp.

Here is the caller graph for this function:

◆ GattRequirementSpecToString()

std::string direct_bt::GattRequirementSpecToString ( const GattRequirementSpec  v)
noexcept

Definition at line 337 of file GATTNumbers.cpp.

Here is the caller graph for this function:

◆ GattNameToString()

std::string direct_bt::GattNameToString ( const jau::TROOctets v)
noexcept

Converts a GATT Name (not null-terminated) UTF8 to a null-terminated C++ string.

Definition at line 381 of file GATTNumbers.cpp.

Here is the caller graph for this function:

◆ number() [23/25]

constexpr int32_t direct_bt::number ( const HCIConstInt  rhs)
constexprnoexcept

Definition at line 85 of file HCITypes.hpp.

◆ getHCIConnSupervisorTimeout()

constexpr uint16_t direct_bt::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 
)
constexprnoexcept

Defining the supervising timeout for LE connections to be a multiple of the maximum connection interval as follows:

 ( 1 + conn_latency ) * conn_interval_max_ms * max(2, multiplier) [ms]

If above result is smaller than the given min_result_ms, min_result_ms/10 will be returned.

Parameters
conn_latencythe connection latency
conn_interval_max_msthe maximum connection interval in [ms]
min_result_msthe minimum resulting supervisor timeout, defaults to HCIConstInt::LE_CONN_MIN_TIMEOUT_MS. If above formula results in a smaller value, min_result_ms/10 will be returned.
multiplierrecommendation is 6, we use 10 as default for safety.
Returns
the resulting supervising timeout in 1/10 [ms], suitable for the HCIHandler::le_create_conn() command.
Examples
dbt_repeater00.cpp, and dbt_scanner10.cpp.

Definition at line 102 of file HCITypes.hpp.

Here is the caller graph for this function:

◆ getHCIMaxConnLatency()

constexpr int32_t direct_bt::getHCIMaxConnLatency ( const int16_t  supervision_timeout_ms,
const int16_t  conn_interval_max_ms 
)
constexpr

Supervisor timeout shall be in the range [0 - ((supervision_timeout_ms / (conn_interval_max_ms*2)) - 1)].

Parameters
supervision_timeout_ms
conn_interval_max_ms
Returns
maximum supervisor timeout, applicable to given parameter

Definition at line 117 of file HCITypes.hpp.

◆ number() [24/25]

constexpr uint16_t direct_bt::number ( const HCIConstU16  rhs)
constexprnoexcept

Definition at line 128 of file HCITypes.hpp.

◆ number() [25/25]

constexpr uint8_t direct_bt::number ( const HCIStatusCode  rhs)
constexprnoexcept

Definition at line 234 of file HCITypes.hpp.

◆ to_string() [27/27]

std::string direct_bt::to_string ( const HCIStatusCode  ec)
noexcept

Definition at line 145 of file HCITypes.cpp.

◆ make_error_code()

std::error_code direct_bt::make_error_code ( HCIStatusCode  e)
inlinenoexcept

Definition at line 250 of file HCITypes.hpp.

Here is the caller graph for this function:

Variable Documentation

◆ EIR_DATA_TYPE_MASK

constexpr const EIRDataType direct_bt::EIR_DATA_TYPE_MASK
inlineconstexpr
Initial value:
= ~( EIRDataType::EVT_TYPE | EIRDataType::EXT_EVT_TYPE |
EIRDataType::BDADDR_TYPE | EIRDataType::BDADDR | EIRDataType::RSSI )

Explicit mask to erase all implicit set EIRDataType fields: EVT_TYPE, EXT_EVT_TYPE, BDADDR_TYPE, BDADDR and RSSI.

Examples
dbt_repeater00.cpp.

Definition at line 881 of file BTTypes0.hpp.