Browse Source

Working BT settings.

xmkb
Pete Johanson 4 years ago
parent
commit
6701b7babc
  1. 22
      app/Kconfig
  2. 7
      app/boards/arm/nice_nano/nice_nano_defconfig
  3. 16
      app/boards/shields/kyria/Kconfig.defconfig
  4. 14
      app/src/ble.c
  5. 8
      app/src/main.c

22
app/Kconfig

@ -40,6 +40,8 @@ menuconfig ZMK_BLE @@ -40,6 +40,8 @@ menuconfig ZMK_BLE
select BT_PERIPHERAL
select BT_GATT_DIS
select BT_GATT_BAS
select SETTINGS
select BT_SETTINGS
if ZMK_BLE
@ -47,6 +49,9 @@ config ZMK_BLE_INIT_PRIORITY @@ -47,6 +49,9 @@ config ZMK_BLE_INIT_PRIORITY
int "Init Priority"
default 50
config SYSTEM_WORKQUEUE_STACK_SIZE
default 2048
# HID GATT notifications sent this way are *not* picked up by Linux, and possibly others.
config BT_GATT_NOTIFY_MULTIPLE
default n
@ -58,16 +63,6 @@ config ZMK_BLE_PASSKEY_ENTRY @@ -58,16 +63,6 @@ config ZMK_BLE_PASSKEY_ENTRY
bool "Experimental: Requiring typing passkey from host to pair BLE connection"
default n
# Incresed stack due to settings API usage
# CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048
#
# CONFIG_BT_SETTINGS=y
# CONFIG_FLASH=y
# CONFIG_FLASH_PAGE_LAYOUT=y
# CONFIG_FLASH_MAP=y
# CONFIG_NVS=y
# CONFIG_SETTINGS=y
endif
endmenu
@ -97,6 +92,13 @@ config ZMK_SPLIT_BLE_ROLE_CENTRAL @@ -97,6 +92,13 @@ config ZMK_SPLIT_BLE_ROLE_CENTRAL
select BT_CENTRAL
select BT_GATT_CLIENT
if ZMK_SPLIT_BLE_ROLE_CENTRAL
config BT_MAX_CONN
default 2
endif
config ZMK_SPLIT_BLE_ROLE_PERIPHERAL
bool "Peripheral"

7
app/boards/arm/nice_nano/nice_nano_defconfig

@ -11,3 +11,10 @@ CONFIG_ARM_MPU=y @@ -11,3 +11,10 @@ CONFIG_ARM_MPU=y
CONFIG_GPIO=y
CONFIG_USE_DT_CODE_PARTITION=y
CONFIG_MPU_ALLOW_FLASH_WRITE=y
CONFIG_NVS=y
CONFIG_SETTINGS_NVS=y
CONFIG_FLASH=y
CONFIG_FLASH_PAGE_LAYOUT=y
CONFIG_FLASH_MAP=y

16
app/boards/shields/kyria/Kconfig.defconfig

@ -1,8 +1,20 @@ @@ -1,8 +1,20 @@
if SHIELD_KYRIA_LEFT || SHIELD_KYRIA_RIGHT
if SHIELD_KYRIA_LEFT
config ZMK_KEYBOARD_NAME
default "Kyria"
default "Kyria Left"
endif
if SHIELD_KYRIA_RIGHT
config ZMK_KEYBOARD_NAME
default "Kyria Right"
endif
if SHIELD_KYRIA_LEFT || SHIELD_KYRIA_RIGHT
config ZMK_SPLIT
default y

14
app/src/ble.c

@ -128,8 +128,11 @@ static struct bt_conn_auth_cb zmk_ble_auth_cb_display = { @@ -128,8 +128,11 @@ static struct bt_conn_auth_cb zmk_ble_auth_cb_display = {
static const struct bt_data zmk_ble_ad[] = {
BT_DATA_BYTES(BT_DATA_FLAGS, (BT_LE_AD_GENERAL | BT_LE_AD_NO_BREDR)),
BT_DATA_BYTES(BT_DATA_UUID16_SOME,
#if !IS_ENABLED(CONFIG_ZMK_SPLIT_BLE)
0x12, 0x18, /* HID Service */
0x0f, 0x18), /* Battery Service */
#endif
0x0f, 0x18 /* Battery Service */
),
#if IS_ENABLED(CONFIG_ZMK_SPLIT_BLE)
BT_DATA_BYTES(BT_DATA_UUID128_ALL,
ZMK_SPLIT_BT_SERVICE_UUID)
@ -155,10 +158,6 @@ static void zmk_ble_ready(int err) @@ -155,10 +158,6 @@ static void zmk_ble_ready(int err)
static int zmk_ble_init(struct device *_arg)
{
if (IS_ENABLED(CONFIG_SETTINGS))
{
settings_load();
}
int err = bt_enable(NULL);
if (err)
@ -167,6 +166,11 @@ static int zmk_ble_init(struct device *_arg) @@ -167,6 +166,11 @@ static int zmk_ble_init(struct device *_arg)
return err;
}
if (IS_ENABLED(CONFIG_BT_SETTINGS))
{
settings_load();
}
bt_conn_cb_register(&conn_callbacks);
bt_conn_auth_cb_register(&zmk_ble_auth_cb_display);

8
app/src/main.c

@ -16,10 +16,6 @@ LOG_MODULE_REGISTER(zmk, CONFIG_ZMK_LOG_LEVEL); @@ -16,10 +16,6 @@ LOG_MODULE_REGISTER(zmk, CONFIG_ZMK_LOG_LEVEL);
#include <zmk/kscan.h>
#include <zmk/endpoints.h>
#ifdef CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL
#include <zmk/split/bluetooth/central.h>
#endif /* CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL */
#define ZMK_KSCAN_DEV DT_LABEL(ZMK_MATRIX_NODE_ID)
void main(void)
@ -30,8 +26,4 @@ void main(void) @@ -30,8 +26,4 @@ void main(void)
{
return;
}
#ifdef CONFIG_SETTINGS
settings_load();
#endif
}

Loading…
Cancel
Save