extmod/modbluetooth: Make gap_disconnect not raise when disconnected.
Previously it raised OSError(MP_ENOTCONN) if the conn_handle was already disconnected. Now it returns True/False.
This commit is contained in:
parent
ea315d7d58
commit
36502bdfdc
@ -262,6 +262,9 @@ Central Role (GATT Client)
|
||||
|
||||
On success, the ``_IRQ_PERIPHERAL_DISCONNECT`` event will be raised.
|
||||
|
||||
Returns ``False`` if the connection handle wasn't connected, and ``True``
|
||||
otherwise.
|
||||
|
||||
.. method:: BLE.gattc_discover_services(conn_handle)
|
||||
|
||||
Query a connected peripheral for its services.
|
||||
|
@ -27,6 +27,7 @@
|
||||
|
||||
#include "py/binary.h"
|
||||
#include "py/misc.h"
|
||||
#include "py/mperrno.h"
|
||||
#include "py/obj.h"
|
||||
#include "py/objstr.h"
|
||||
#include "py/objarray.h"
|
||||
@ -527,7 +528,13 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(bluetooth_ble_gap_scan_obj, 1, 4, blu
|
||||
STATIC mp_obj_t bluetooth_ble_gap_disconnect(mp_obj_t self_in, mp_obj_t conn_handle_in) {
|
||||
uint16_t conn_handle = mp_obj_get_int(conn_handle_in);
|
||||
int err = mp_bluetooth_gap_disconnect(conn_handle);
|
||||
return bluetooth_handle_errno(err);
|
||||
if (err == 0) {
|
||||
return mp_const_true;
|
||||
} else if (err == MP_ENOTCONN) {
|
||||
return mp_const_false;
|
||||
} else {
|
||||
return bluetooth_handle_errno(err);
|
||||
}
|
||||
}
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_2(bluetooth_ble_gap_disconnect_obj, bluetooth_ble_gap_disconnect);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user