@@ -716,6 +716,21 @@ static mp_obj_t bluetooth_ble_gap_pair(mp_obj_t self_in, mp_obj_t conn_handle_in
716716}
717717static MP_DEFINE_CONST_FUN_OBJ_2 (bluetooth_ble_gap_pair_obj , bluetooth_ble_gap_pair ) ;
718718
719+ static mp_obj_t bluetooth_ble_gap_unpair (mp_obj_t self_in , mp_obj_t key_buff ) {
720+ (void )self_in ;
721+
722+ uint8_t * key = NULL ;
723+ size_t key_len = 0 ;
724+
725+ mp_buffer_info_t key_bufinfo = {0 };
726+ mp_get_buffer_raise (key_buff , & key_bufinfo , MP_BUFFER_READ );
727+ key = key_bufinfo .buf ;
728+ key_len = key_bufinfo .len ;
729+
730+ return bluetooth_handle_errno (mp_bluetooth_gap_unpair (key , key_len ));
731+ }
732+ static MP_DEFINE_CONST_FUN_OBJ_2 (bluetooth_ble_gap_unpair_obj , bluetooth_ble_gap_unpair ) ;
733+
719734static mp_obj_t bluetooth_ble_gap_passkey (size_t n_args , const mp_obj_t * args ) {
720735 uint16_t conn_handle = mp_obj_get_int (args [1 ]);
721736 uint8_t action = mp_obj_get_int (args [2 ]);
@@ -944,6 +959,7 @@ static const mp_rom_map_elem_t bluetooth_ble_locals_dict_table[] = {
944959 { MP_ROM_QSTR (MP_QSTR_gap_disconnect ), MP_ROM_PTR (& bluetooth_ble_gap_disconnect_obj ) },
945960 #if MICROPY_PY_BLUETOOTH_ENABLE_PAIRING_BONDING
946961 { MP_ROM_QSTR (MP_QSTR_gap_pair ), MP_ROM_PTR (& bluetooth_ble_gap_pair_obj ) },
962+ { MP_ROM_QSTR (MP_QSTR_gap_unpair ), MP_ROM_PTR (& bluetooth_ble_gap_unpair_obj ) },
947963 { MP_ROM_QSTR (MP_QSTR_gap_passkey ), MP_ROM_PTR (& bluetooth_ble_gap_passkey_obj ) },
948964 #endif
949965 // GATT Server
0 commit comments