diff --git a/src/NimBLEAddress.cpp b/src/NimBLEAddress.cpp index d8ce5e8..af7956b 100644 --- a/src/NimBLEAddress.cpp +++ b/src/NimBLEAddress.cpp @@ -138,6 +138,15 @@ uint8_t NimBLEAddress::getType() const { } // getType +/** + * @brief Determine if this address is a Resolvable Private Address. + * @return True if the address is a RPA. + */ +bool NimBLEAddress::isRpa() const { + return (m_addrType && ((m_address[5] & 0xc0) == 0x40)); +} // isRpa + + /** * @brief Convert a BLE address to a string. * diff --git a/src/NimBLEAddress.h b/src/NimBLEAddress.h index a6e10a0..8a55b3e 100644 --- a/src/NimBLEAddress.h +++ b/src/NimBLEAddress.h @@ -43,6 +43,7 @@ public: NimBLEAddress(uint8_t address[6], uint8_t type = BLE_ADDR_PUBLIC); NimBLEAddress(const std::string &stringAddress, uint8_t type = BLE_ADDR_PUBLIC); NimBLEAddress(const uint64_t &address, uint8_t type = BLE_ADDR_PUBLIC); + bool isRpa() const; bool equals(const NimBLEAddress &otherAddress) const; const uint8_t* getNative() const; std::string toString() const;