From 88706d12f8cc720d28e868cc6ec59d0fa67bdfb9 Mon Sep 17 00:00:00 2001 From: Martin Milata Date: Mon, 31 Mar 2025 19:58:31 +0200 Subject: [PATCH] feat(core): ble: expose allow/reject pairing in micropython [no changelog] --- .../upymod/modtrezorio/modtrezorio-ble.h | 26 +++++++++++++++++++ core/mocks/generated/trezorio/ble.pyi | 14 ++++++++++ 2 files changed, 40 insertions(+) diff --git a/core/embed/upymod/modtrezorio/modtrezorio-ble.h b/core/embed/upymod/modtrezorio/modtrezorio-ble.h index d79fbe6461..2f761e4b06 100644 --- a/core/embed/upymod/modtrezorio/modtrezorio-ble.h +++ b/core/embed/upymod/modtrezorio/modtrezorio-ble.h @@ -169,6 +169,28 @@ STATIC mp_obj_t mod_trezorio_BLE_peer_count(void) { STATIC MP_DEFINE_CONST_FUN_OBJ_0(mod_trezorio_BLE_peer_count_obj, mod_trezorio_BLE_peer_count); +/// def allow_pairing() -> bool: +/// """ +/// Accept BLE pairing request +/// """ +STATIC mp_obj_t mod_trezorio_BLE_allow_pairing() { + ble_command_t cmd = {.cmd_type = BLE_ALLOW_PAIRING, .data_len = 0}; + return mp_obj_new_bool(ble_issue_command(&cmd)); +} +STATIC MP_DEFINE_CONST_FUN_OBJ_0(mod_trezorio_BLE_allow_pairing_obj, + mod_trezorio_BLE_allow_pairing); + +/// def reject_pairing() -> bool: +/// """ +/// Reject BLE pairing request +/// """ +STATIC mp_obj_t mod_trezorio_BLE_reject_pairing(void) { + ble_command_t cmd = {.cmd_type = BLE_REJECT_PAIRING, .data_len = 0}; + return mp_obj_new_bool(ble_issue_command(&cmd)); +} +STATIC MP_DEFINE_CONST_FUN_OBJ_0(mod_trezorio_BLE_reject_pairing_obj, + mod_trezorio_BLE_reject_pairing); + /// class BleInterface: /// """ /// BLE interface wrapper. @@ -302,6 +324,10 @@ STATIC const mp_rom_map_elem_t mod_trezorio_BLE_globals_table[] = { MP_ROM_PTR(&mod_trezorio_BLE_disconnect_obj)}, {MP_ROM_QSTR(MP_QSTR_peer_count), MP_ROM_PTR(&mod_trezorio_BLE_peer_count_obj)}, + {MP_ROM_QSTR(MP_QSTR_allow_pairing), + MP_ROM_PTR(&mod_trezorio_BLE_allow_pairing_obj)}, + {MP_ROM_QSTR(MP_QSTR_reject_pairing), + MP_ROM_PTR(&mod_trezorio_BLE_reject_pairing_obj)}, {MP_ROM_QSTR(MP_QSTR_BleInterface), MP_ROM_PTR(&mod_trezorio_BleInterface_type)}, }; diff --git a/core/mocks/generated/trezorio/ble.pyi b/core/mocks/generated/trezorio/ble.pyi index cae0b4c079..f1d80d8d21 100644 --- a/core/mocks/generated/trezorio/ble.pyi +++ b/core/mocks/generated/trezorio/ble.pyi @@ -44,6 +44,20 @@ def peer_count() -> int: """ +# upymod/modtrezorio/modtrezorio-ble.h +def allow_pairing() -> bool: + """ + Accept BLE pairing request + """ + + +# upymod/modtrezorio/modtrezorio-ble.h +def reject_pairing() -> bool: + """ + Reject BLE pairing request + """ + + # upymod/modtrezorio/modtrezorio-ble.h class BleInterface: """