This commit is contained in:
Xudong Zheng 2026-02-03 23:16:18 +01:00 committed by GitHub
commit ed4885d4bc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 22 additions and 0 deletions

View File

@ -234,6 +234,10 @@ config BT_PERIPHERAL_PREF_TIMEOUT
config BT_DEVICE_NAME_MAX
default 16
config ZMK_BLE_KEYBOARD_NAME_MAC
bool "Include MAC address in BLE device name"
depends on ZMK_SPLIT_ROLE_CENTRAL
endif # ZMK_BLE
endmenu # Output Types

View File

@ -720,6 +720,24 @@ static int zmk_ble_complete_startup(void) {
#endif // IS_ENABLED(CONFIG_ZMK_BLE_CLEAR_BONDS_ON_START)
#if IS_ENABLED(CONFIG_ZMK_BLE_KEYBOARD_NAME_MAC)
bt_addr_le_t addrs[CONFIG_BT_ID_MAX];
size_t id_count;
bt_id_get(addrs, &id_count);
if (id_count < 1) {
LOG_ERR("Failed to get Bluetooth device address");
} else {
// The generated name can be a maximum of 29 bytes (plus NULL) since
// CONFIG_BT_DEVICE_NAME is 16 bytes at most.
char name[30] = {};
uint8_t *a = addrs[0].a.val;
snprintf(name, sizeof(name), "%s %02X%02X%02X%02X%02X%02X", CONFIG_BT_DEVICE_NAME, a[5],
a[4], a[3], a[2], a[1], a[0]);
name[CONFIG_BT_DEVICE_NAME_MAX] = '\0';
zmk_ble_set_device_name(name);
}
#endif
bt_conn_cb_register(&conn_callbacks);
bt_conn_auth_cb_register(&zmk_ble_auth_cb_display);
bt_conn_auth_info_cb_register(&zmk_ble_auth_info_cb_display);