26#ifndef GATT_NUMBERS_HPP_ 
   27#define GATT_NUMBERS_HPP_ 
  187    std::string 
toString() const noexcept;
 
  195    std::string 
toString() const noexcept;
 
  218    std::string 
toString() const noexcept;
 
  225    std::string 
toString() const noexcept;
 
  229#if defined(DIRECTBT_BUILDIN_GATT_SERVICE_CHARACTERISTIC_SPEC) 
  281    static std::shared_ptr<GattPeriphalPreferredConnectionParameters> 
get(
const jau::TROOctets &source) 
noexcept;
 
  285    std::string 
toString() const noexcept;
 
  305        const std::shared_ptr<GattPeriphalPreferredConnectionParameters> 
prefConnParam;
 
  308                             std::shared_ptr<GattPeriphalPreferredConnectionParameters> prefConnParam_) noexcept
 
  309        : deviceName(std::move(deviceName_)), appearance(appearance_), prefConnParam(std::move(prefConnParam_)) {}
 
  311        std::string 
toString() const noexcept;
 
  329    : vendor_id_source(0), vendor_id(0), product_id(0), product_version(0) {}
 
  333    GattPnP_ID(
const uint8_t vendor_id_source_, 
const uint16_t vendor_id_, 
const uint16_t product_id_, 
const uint16_t product_version_) noexcept
 
  334    : vendor_id_source(vendor_id_source_), vendor_id(vendor_id_), product_id(product_id_), product_version(product_version_) {}
 
  336    std::string 
toString() const noexcept;
 
  364        const std::shared_ptr<GattPnP_ID> 
pnpID;
 
  367                                 std::string firmwareRevision_, std::string hardwareRevision_, std::string softwareRevision_,
 
  368                                 std::string manufacturer_, 
jau::POctets regulatoryCertDataList_, std::shared_ptr<GattPnP_ID> pnpID_) noexcept
 
  369        : systemID( std::move(systemID_) ), modelNumber( std::move(modelNumber_) ), serialNumber( std::move(serialNumber_) ), 
 
  370          firmwareRevision( std::move(firmwareRevision_) ), hardwareRevision( std::move(hardwareRevision_) ), 
 
  371          softwareRevision( std::move(softwareRevision_) ), manufacturer( std::move(manufacturer_) ),
 
  372          regulatoryCertDataList( std::move(regulatoryCertDataList_) ), pnpID( std::move(pnpID_) ) {}
 
  374        std::string 
toString() const noexcept;
 
  387            IS_TEMP_FAHRENHEIT  = 1,
 
  405        static std::shared_ptr<GattTemperatureMeasurement> 
get(
const jau::TROOctets &source) 
noexcept;
 
  414        : flags(flags_), temperatureValue(temperatureValue_), timestamp(timestamp_), temperature_type(temperature_type_) {}
 
  416        bool isFahrenheit() const noexcept { 
return 0 != ( flags & Bits::IS_TEMP_FAHRENHEIT ); }
 
  417        bool hasTimestamp() const noexcept { 
return 0 != ( flags & Bits::HAS_TIMESTAMP ); }
 
  420        std::string 
toString() const noexcept;
 
https://www.bluetooth.com/wp-content/uploads/Sitecore-Media-Library/Gatt/Xml/Services/org....
Generic Access Service is a mandatory GATT service all peripherals are required to implement.
const AppearanceCat appearance
Characteristic: Mandatory [Read: Mandatory; Write: Excluded; ...].
const std::string deviceName
Characteristic: Mandatory [Read: Mandatory; Write: Optional; ...].
const std::shared_ptr< GattPeriphalPreferredConnectionParameters > prefConnParam
Characteristic: Optional [Read: Mandatory; Write: Excluded; ...].
const std::string peripheralPrivacyFlag
Characteristic: Optional [Read: Mandatory; Write: Conditional; ...].
GattGenericAccessSvc(std::string deviceName_, const AppearanceCat appearance_, std::shared_ptr< GattPeriphalPreferredConnectionParameters > prefConnParam_) noexcept
const std::string reconnectionAdress
Characteristic: Conditional [Read: Excluded; Write: Mandatory; ...].
https://www.bluetooth.com/wp-content/uploads/Sitecore-Media-Library/Gatt/Xml/Characteristics/org....
static std::shared_ptr< GattTemperatureMeasurement > get(const jau::TOctetSlice &source) noexcept
const uint8_t flags
Bitfields of Bits.
const ieee11073::AbsoluteTime timestamp
Timestamp, if HAS_TIMESTAMP is set.
GattTemperatureMeasurement(const uint8_t flags_, const float temperatureValue_, const ieee11073::AbsoluteTime ×tamp_, const uint8_t temperature_type_) noexcept
const uint8_t temperature_type
Temperature Type, if HAS_TEMP_TYPE is set: Format ????.
bool isFahrenheit() const noexcept
bool hasTimestamp() const noexcept
bool hasTemperatureType() const noexcept
const float temperatureValue
In Celsius if IS_TEMP_FAHRENHEIT is set, otherwise Fahrenheit.
Persistent endian aware octet data, i.e.
Transient endian aware octet data slice, i.e.
Transient read only and endian aware octet data, i.e.
@ little
Identifier for little endian, equivalent to endian::little.
std::string GattRequirementSpecToString(const GattRequirementSpec v) noexcept
std::string GattNameToString(const jau::TROOctets &v) noexcept
Converts a GATT Name (not null-terminated) UTF8 to a null-terminated C++ string.
GattAttributeType
Following UUID16 GATT profile attribute types are listed under: BT Core Spec v5.2: Vol 3,...
GattCharacteristicProperty
Entry * get(const EUI48 &addr, const std::string &name, AddressNameEntryMatchFunc m) noexcept
Returns a matching BTSecurityRegistry::Entry with the given addr and/or name.
std::string GattCharacteristicTypeToString(const GattCharacteristicType v) noexcept
std::string GattCharacteristicPropertyToString(const GattCharacteristicProperty v) noexcept
std::string GattServiceTypeToString(const GattServiceType v) noexcept
GattServiceType
GATT Service Type, each encapsulating a set of Characteristics.
GattCharacteristicType
GATT Assigned Characteristic Attribute Type for single logical value.
@ AuxWriteExt
FIXME: extension?
@ ReliableWriteExt
FIXME: extension?
@ LINK_LOSS
The service defines behavior on the device when a link is lost between two devices.
@ BATTERY_SERVICE
This service exposes the state of a battery within a device.
@ HEALTH_THERMOMETER
This service exposes temperature and other data from a thermometer intended for healthcare and fitnes...
@ DEVICE_INFORMATION
This service exposes manufacturer and/or vendor information about a device.
@ GENERIC_ACCESS
This service contains generic information about the device.
@ GENERIC_ATTRIBUTE
The service allows receiving indications of changed services.
@ IMMEDIATE_ALERT
This service exposes a control point to change the peripheral alert behavior.
@ if_characteristic_supported
@ if_notify_or_indicate_supported
@ TEMPERATURE_CELSIUS
Mandatory: sint16 10^-1: Celsius.
@ TEMPERATURE
Mandatory: sint16 10^-2: Celsius.
@ INTERMEDIATE_TEMPERATURE
@ TEMPERATURE_TYPE
Mandatory: 8bit: 1 armpit, 2 body (general), 3(ear), 4 (finger), ...
@ SYSTEM_ID
Mandatory: uint40.
@ PERIPHERAL_PREFERRED_CONNECTION_PARAMETERS
@ MANUFACTURER_NAME_STRING
@ REGULATORY_CERT_DATA_LIST
@ TEMPERATURE_MEASUREMENT
@ SOFTWARE_REVISION_STRING
@ PERIPHERAL_PRIVACY_FLAG
@ HARDWARE_REVISION_STRING
@ FIRMWARE_REVISION_STRING
GattCharacteristicProperty property
std::string toString() const noexcept
GattRequirementSpec requirement
jau::darray< GattCharacteristicPropertySpec > propertySpec
Aggregated in PropertySpecIdx order.
GattClientCharacteristicConfigSpec clientConfig
GattCharacteristicType characteristic
GattRequirementSpec requirement
GattCharacteristicPropertySpec writeWithAck
GattCharacteristicPropertySpec read
GattRequirementSpec requirement
Peripheral Preferred Connection Parameters is a GATT Characteristic.
const uint16_t connectionSupervisionTimeoutMultiplier
mandatory [10..3200]
const uint16_t minConnectionInterval
mandatory [6..3200] x 1.25ms
const uint16_t maxConnectionInterval
mandatory [6..3200] x 1.25ms and >= minConnectionInterval
const uint16_t slaveLatency
mandatory [1..1000]
PnP ID is a GATT Characteristic.
const uint16_t product_version
const uint8_t vendor_id_source
const uint16_t product_id
GattPnP_ID(const uint8_t vendor_id_source_, const uint16_t vendor_id_, const uint16_t product_id_, const uint16_t product_version_) noexcept
jau::darray< GattCharacteristicSpec > characteristics
const jau::darray< const GattServiceCharacteristic * > GATT_SERVICES
GattCharacteristicProperty
const GattServiceCharacteristic GATT_HEALTH_THERMOMETER_SRVC
https://www.bluetooth.com/wp-content/uploads/Sitecore-Media-Library/Gatt/Xml/Services/org....
const GattServiceCharacteristic GATT_DEVICE_INFORMATION_SRVC
const GattServiceCharacteristic GATT_GENERIC_ACCESS_SRVC