summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Kconfig8
-rw-r--r--README.md8
-rw-r--r--src/ble.c11
3 files changed, 20 insertions, 7 deletions
diff --git a/Kconfig b/Kconfig
index 2ab2c6f..7d06654 100644
--- a/Kconfig
+++ b/Kconfig
@@ -13,6 +13,14 @@ config ZMK_BLE
select BT_GATT_DIS
select BT_GATT_BAS
+if ZMK_BLE
+
+config ZMK_BLE_PASSKEY_ENTRY
+ bool "Experimental: Requiring typing passkey from host to pair BLE connection"
+ default n
+
+endif
+
module = ZMK_KSCAN
module-str = zmk_kscan
source "subsys/logging/Kconfig.template.log_config"
diff --git a/README.md b/README.md
index c2a982c..c09f6b7 100644
--- a/README.md
+++ b/README.md
@@ -7,12 +7,8 @@ with a less restritive license and better BLE support, built on top of the [Zeph
- Debouncing in the kscan driver itself? Only some GPIO drivers in Zephyr support it "natively"
- Document boards/shields/keymaps usage.
-- Custom keymap code via `zephyr_library()`>
- Move most Kconfig setings to the board/keymap defconfigs and out of the toplevel `prj.conf` file.
- Merge the Kscan GPIO driver upstream, or integrate it locally, to avoid use of Zephyr branch.
-- BLE SC by typing in the # prompted on the host.
- - Store the connection being authenticated.
- - Hook into endpoint flow to detect keypresses and store/send them to the connection once 6 are typed.
- Display support, including displaying BLE SC auth numbers for "numeric comparison" mode if we have the screen.
- Fix BT settings to work w/ Zephyr. Do we really need them?
- Tests?
@@ -25,7 +21,9 @@ with a less restritive license and better BLE support, built on top of the [Zeph
- One Shot
- Shell over BLE?
- Split support
- - custom kscan driver? that recieves events from other side over serial/BLE notifications?
+ - custom kscan driver? that recieves events from other side over BLE notifications?
+ - Need to figure out how to do "custom" GATT services. Custom UUID?
+ - Do we need to send any state updates over from primary to secondary side?
## Long Term
diff --git a/src/ble.c b/src/ble.c
index 18b4fe3..8b11681 100644
--- a/src/ble.c
+++ b/src/ble.c
@@ -76,6 +76,8 @@ static void auth_passkey_display(struct bt_conn *conn, unsigned int passkey)
printk("Passkey for %s: %06u\n", addr, passkey);
}
+#ifdef CONFIG_ZMK_BLE_PASSKEY_ENTRY
+
static void auth_passkey_entry(struct bt_conn *conn)
{
char addr[BT_ADDR_LE_STR_LEN];
@@ -86,6 +88,8 @@ static void auth_passkey_entry(struct bt_conn *conn)
auth_passkey_entry_conn = bt_conn_ref(conn);
}
+#endif
+
static void auth_cancel(struct bt_conn *conn)
{
char addr[BT_ADDR_LE_STR_LEN];
@@ -104,8 +108,11 @@ static void auth_cancel(struct bt_conn *conn)
}
static struct bt_conn_auth_cb zmk_ble_auth_cb_display = {
- // .passkey_display = auth_passkey_display,
- // .passkey_entry = auth_passkey_entry,
+// .passkey_display = auth_passkey_display,
+
+#ifdef CONFIG_ZMK_BLE_PASSKEY_ENTRY
+ .passkey_entry = auth_passkey_entry,
+#endif
.cancel = auth_cancel,
};