From e5700eeb5ff58d7121537ab4b002ced8ef1a2d0d Mon Sep 17 00:00:00 2001 From: Dimitris Zervas Date: Tue, 15 Sep 2020 01:16:14 +0300 Subject: [PATCH] [ble] Add support to change ble name from KMKKeyboard.go --- .gitignore | 1 + kmk/ble.py | 9 +++++---- kmk/hid.py | 6 +++--- kmk/kmk_keyboard.py | 4 ++-- user_keymaps/dzervas/lab68.py | 2 +- 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index c4944b4..c895ca2 100644 --- a/.gitignore +++ b/.gitignore @@ -125,3 +125,4 @@ mnt2/ kmk/release_info.py kmk/release_info.mpy *.mpy +.vscode diff --git a/kmk/ble.py b/kmk/ble.py index 4a62dee..22bef19 100644 --- a/kmk/ble.py +++ b/kmk/ble.py @@ -14,19 +14,20 @@ BLE_APPEARANCE_HID_KEYBOARD = 961 class BLEHID(AbstractHID): - def post_init(self): + def post_init(self, ble_name='KMK Keyboard', **kwargs): self.devices = {} hid = HIDService() advertisement = ProvideServicesAdvertisement(hid) advertisement.appearance = BLE_APPEARANCE_HID_KEYBOARD - scan_response = Advertisement() - scan_response.complete_name = 'KMK Keyboard' ble = BLERadio() + ble.name = ble_name + # ble.tx_power = 2 + if not ble.connected: - ble.start_advertising(advertisement, scan_response) + ble.start_advertising(advertisement) while not ble.connected: pass diff --git a/kmk/hid.py b/kmk/hid.py index af35d7f..62bdf13 100644 --- a/kmk/hid.py +++ b/kmk/hid.py @@ -41,7 +41,7 @@ HID_REPORT_SIZES = { class AbstractHID: REPORT_BYTES = 8 - def __init__(self): + def __init__(self, **kwargs): self._evt = bytearray(self.REPORT_BYTES) self.report_device = memoryview(self._evt)[0:1] self.report_device[0] = HIDReportTypes.KEYBOARD @@ -55,7 +55,7 @@ class AbstractHID: self.report_mods = memoryview(self._evt)[1:2] self.report_non_mods = memoryview(self._evt)[3:] - self.post_init() + self.post_init(**kwargs) def __repr__(self): return '{}(REPORT_BYTES={})'.format(self.__class__.__name__, self.REPORT_BYTES) @@ -191,7 +191,7 @@ class AbstractHID: class USBHID(AbstractHID): REPORT_BYTES = 9 - def post_init(self): + def post_init(self, **kwargs): self.devices = {} for device in usb_hid.devices: diff --git a/kmk/kmk_keyboard.py b/kmk/kmk_keyboard.py index 623d85f..7486156 100644 --- a/kmk/kmk_keyboard.py +++ b/kmk/kmk_keyboard.py @@ -191,7 +191,7 @@ class KMKKeyboard: else: return busio.UART(tx=pin, rx=None, timeout=timeout) - def go(self, hid_type=HIDModes.USB): + def go(self, hid_type=HIDModes.USB, **kwargs): assert self.keymap, 'must define a keymap with at least one row' assert self.row_pins, 'no GPIO pins defined for matrix rows' assert self.col_pins, 'no GPIO pins defined for matrix columns' @@ -225,7 +225,7 @@ class KMKKeyboard: elif hid_type == HIDModes.BLE: self.hid_helper = BLEHID - self._hid_helper_inst = self.hid_helper() + self._hid_helper_inst = self.hid_helper(**kwargs) # Split keyboard Init if self.split_type is not None: diff --git a/user_keymaps/dzervas/lab68.py b/user_keymaps/dzervas/lab68.py index fa1c4aa..be505f1 100644 --- a/user_keymaps/dzervas/lab68.py +++ b/user_keymaps/dzervas/lab68.py @@ -70,4 +70,4 @@ keyboard.keymap = [ ] if __name__ == '__main__': - keyboard.go(hid_type=HIDModes.BLE) + keyboard.go(hid_type=HIDModes.BLE, ble_name='Lab68')