* Add ability to fetch and report peripheral battery levels on split centrals. * Add additional support for adding a new Battery Level service to split centrals that exposes fetched peripheral battery levels to connected hosts. Co-authored-by: Peter Johanson <peter@peterjohanson.com>
134 lines
3.1 KiB
Text
134 lines
3.1 KiB
Text
# Copyright (c) 2022 The ZMK Contributors
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
if ZMK_SPLIT && ZMK_SPLIT_BLE
|
|
|
|
menu "BLE Transport"
|
|
|
|
# Added for backwards compatibility. New shields/board should set `ZMK_SPLIT_ROLE_CENTRAL` only.
|
|
config ZMK_SPLIT_BLE_ROLE_CENTRAL
|
|
bool
|
|
select ZMK_SPLIT_ROLE_CENTRAL
|
|
|
|
config ZMK_SPLIT_ROLE_CENTRAL
|
|
select BT_CENTRAL
|
|
select BT_GATT_CLIENT
|
|
select BT_GATT_AUTO_DISCOVER_CCC
|
|
select BT_SCAN_WITH_IDENTITY
|
|
|
|
# Bump this value needed for concurrent GATT discovery of splits
|
|
config BT_L2CAP_TX_BUF_COUNT
|
|
default 5 if ZMK_SPLIT_ROLE_CENTRAL
|
|
|
|
if ZMK_SPLIT_ROLE_CENTRAL
|
|
|
|
config ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS
|
|
int "Number of peripherals that will connect to the central."
|
|
default 1
|
|
|
|
menuconfig ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING
|
|
bool "Fetch Peripheral Battery Level Info"
|
|
help
|
|
Adds internal support for fetching the battery levels from peripherals
|
|
and generating events in the ZMK eventing system.
|
|
|
|
if ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING
|
|
|
|
config ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_QUEUE_SIZE
|
|
int "Max number of battery level events to queue when received from peripherals"
|
|
default ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS
|
|
|
|
config ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_PROXY
|
|
bool "Proxy Peripheral Battery Level Info"
|
|
help
|
|
Adds support for reporting the battery levels of connected split
|
|
peripherals through an additional Battery Level service.
|
|
|
|
endif
|
|
|
|
config ZMK_SPLIT_BLE_CENTRAL_POSITION_QUEUE_SIZE
|
|
int "Max number of key position state events to queue when received from peripherals"
|
|
default 5
|
|
|
|
config ZMK_SPLIT_BLE_CENTRAL_SPLIT_RUN_STACK_SIZE
|
|
int "BLE split central write thread stack size"
|
|
default 512
|
|
|
|
config ZMK_SPLIT_BLE_CENTRAL_SPLIT_RUN_QUEUE_SIZE
|
|
int "Max number of behavior run events to queue to send to the peripheral(s)"
|
|
default 5
|
|
|
|
config ZMK_SPLIT_BLE_PREF_INT
|
|
int "Connection interval to use for split central/peripheral connection"
|
|
default 6
|
|
|
|
config ZMK_SPLIT_BLE_PREF_LATENCY
|
|
int "Latency to use for split central/peripheral connection"
|
|
default 30
|
|
|
|
config ZMK_SPLIT_BLE_PREF_TIMEOUT
|
|
int "Supervision timeout to use for split central/peripheral connection"
|
|
default 400
|
|
|
|
endif # ZMK_SPLIT_ROLE_CENTRAL
|
|
|
|
if !ZMK_SPLIT_ROLE_CENTRAL
|
|
|
|
config ZMK_SPLIT_BLE_PERIPHERAL_STACK_SIZE
|
|
int "BLE split peripheral notify thread stack size"
|
|
default 650
|
|
|
|
config ZMK_SPLIT_BLE_PERIPHERAL_PRIORITY
|
|
int "BLE split peripheral notify thread priority"
|
|
default 5
|
|
|
|
config ZMK_SPLIT_BLE_PERIPHERAL_POSITION_QUEUE_SIZE
|
|
int "Max number of key position state events to queue to send to the central"
|
|
default 10
|
|
|
|
config BT_MAX_PAIRED
|
|
default 1
|
|
|
|
config BT_MAX_CONN
|
|
default 1
|
|
|
|
# Allow central to specify connection parameters.
|
|
config BT_GAP_AUTO_UPDATE_CONN_PARAMS
|
|
default n
|
|
|
|
#!ZMK_SPLIT_ROLE_CENTRAL
|
|
endif
|
|
|
|
endmenu
|
|
|
|
#ZMK_SPLIT_BLE
|
|
endif
|
|
|
|
|
|
if ZMK_BLE
|
|
|
|
if ZMK_SPLIT_BLE && ZMK_SPLIT_ROLE_CENTRAL
|
|
|
|
config BT_MAX_CONN
|
|
default 6
|
|
|
|
config BT_MAX_PAIRED
|
|
default 6
|
|
|
|
#ZMK_SPLIT_BLE && ZMK_SPLIT_ROLE_CENTRAL
|
|
endif
|
|
|
|
if !ZMK_SPLIT_BLE
|
|
|
|
config BT_MAX_CONN
|
|
default 5
|
|
|
|
config BT_MAX_PAIRED
|
|
default 5
|
|
|
|
#!ZMK_SPLIT_BLE
|
|
endif
|
|
|
|
#ZMK_BLE
|
|
endif
|
|
|