diff --git a/headers/os/bluetooth/bdaddrUtils.h b/headers/os/bluetooth/bdaddrUtils.h index 710c99458b..140fb0e70b 100644 --- a/headers/os/bluetooth/bdaddrUtils.h +++ b/headers/os/bluetooth/bdaddrUtils.h @@ -15,7 +15,7 @@ namespace Bluetooth { class bdaddrUtils { - + public: static inline bdaddr_t NullAddress() { @@ -58,7 +58,24 @@ class bdaddrUtils { return str; } - + + static bdaddr_t FromString(const char * addr) + { + int b0, b1, b2, b3, b4, b5; + size_t count = sscanf(addr, "%2X:%2X:%2X:%2X:%2X:%2X", + &b0, + &b1, + &b2, + &b3, + &b4, + &b5); + + if (count == 6) + return ((bdaddr_t) {{b0, b1, b2, b3, b4, b5}}); + + return NullAddress(); + } + }; }