const char* dump_rc_notification_event_id(UINT8 event_id);
const char* dump_rc_pdu(UINT8 pdu);
+bool str_is_bdaddr(const char *str);
bool str2bd(const char *str, bt_bdaddr_t *addr);
char *bd2str(const bt_bdaddr_t *addr, bdstr_t *bdstr);
** Logging helper functions
*****************************************************************************/
+bool str_is_bdaddr(const char *string) {
+ size_t len = strlen(string);
+ if (len != 17)
+ return false;
+
+ for (size_t i = 0; i < len; ++i) {
+ // Every 3rd char must be ':'.
+ if (((i + 1) % 3) == 0 && string[i] != ':')
+ return false;
+
+ // All other chars must be a hex digit.
+ if (((i + 1) % 3) != 0 && !isxdigit(string[i]))
+ return false;
+ }
+ return true;
+}
+
bool str2bd(const char *str, bt_bdaddr_t *addr) {
uint8_t *ptr = addr->address;
return sscanf(str, "%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx",