summaryrefslogtreecommitdiff
path: root/shared-bindings/bleio/Central.c
diff options
context:
space:
mode:
authorDan Halbert <halbert@halwitz.org>2019-07-16 19:53:36 -0400
committerDan Halbert <halbert@halwitz.org>2019-07-16 19:53:36 -0400
commit364ee62d108bbdc1d4da8bb646a9332a68964b76 (patch)
treea35823d7f86e9c422f280823df71b960976ab242 /shared-bindings/bleio/Central.c
parentcb99546ea569bd91421e7ee0884c2756387a12d3 (diff)
Address review comments.
Diffstat (limited to 'shared-bindings/bleio/Central.c')
-rw-r--r--shared-bindings/bleio/Central.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/shared-bindings/bleio/Central.c b/shared-bindings/bleio/Central.c
index a21f711af..fc00bce5c 100644
--- a/shared-bindings/bleio/Central.c
+++ b/shared-bindings/bleio/Central.c
@@ -56,7 +56,7 @@
//|
//| my_entry = None
//| for entry in entries:
-//| if entry.name is not None and entry.name == 'MyCentral':
+//| if entry.name is not None and entry.name == 'MyPeripheral':
//| my_entry = entry
//| break
//|
@@ -86,13 +86,13 @@ STATIC mp_obj_t bleio_central_make_new(const mp_obj_type_t *type, size_t n_args,
//|
//| :param bleio.Address address: The address of the peripheral to connect to
//| :param float/int timeout: Try to connect for timeout seconds.
-//| :param iterable service_uuids: a collection of :py:class:~`UUID` objects for the services
+//| :param iterable service_uuids_whitelist: an iterable of :py:class:~`UUID` objects for the services
//| provided by the peripheral that you want to use.
//| The peripheral may provide more services, but services not listed are ignored.
//| If a service in service_uuids is not found during discovery, it will not
//| appear in `remote_services`.
//|
-//| If service_uuids is None, then all services will undergo discovery, which can be slow.
+//| If service_uuids_whitelist is None, then all services will undergo discovery, which can be slow.
//|
//| If the service UUID is 128-bit, or its characteristic UUID's are 128-bit, you
//| you must have already created a :py:class:~`UUID` object for that UUID in order for the
@@ -101,11 +101,11 @@ STATIC mp_obj_t bleio_central_make_new(const mp_obj_type_t *type, size_t n_args,
STATIC mp_obj_t bleio_central_connect(mp_uint_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
bleio_central_obj_t *self = MP_OBJ_TO_PTR(pos_args[0]);
- enum { ARG_address, ARG_timeout, ARG_service_uuids };
+ enum { ARG_address, ARG_timeout, ARG_service_uuids_whitelist };
static const mp_arg_t allowed_args[] = {
{ MP_QSTR_address, MP_ARG_REQUIRED | MP_ARG_OBJ },
{ MP_QSTR_timeout, MP_ARG_REQUIRED | MP_ARG_OBJ },
- { MP_QSTR_service_uuids, MP_ARG_KW_ONLY | MP_ARG_OBJ, {.u_obj = mp_const_none} },
+ { MP_QSTR_service_uuids_whitelist, MP_ARG_KW_ONLY | MP_ARG_OBJ, {.u_obj = mp_const_none} },
};
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
@@ -119,7 +119,7 @@ STATIC mp_obj_t bleio_central_connect(mp_uint_t n_args, const mp_obj_t *pos_args
mp_float_t timeout = mp_obj_get_float(args[ARG_timeout].u_obj);
// common_hal_bleio_central_connect() will validate that services is an iterable or None.
- common_hal_bleio_central_connect(self, address, timeout, args[ARG_service_uuids].u_obj);
+ common_hal_bleio_central_connect(self, address, timeout, args[ARG_service_uuids_whitelist].u_obj);
return mp_const_none;
}
@@ -160,12 +160,15 @@ const mp_obj_property_t bleio_central_connected_obj = {
//| .. attribute:: remote_services (read-only)
//|
-//| Empty until connected, then a list of services provided by the remote peripheral.
+//| A tuple of services provided by the remote peripheral.
+//| If the Central is not connected, an empty tuple will be returned.
//|
STATIC mp_obj_t bleio_central_get_remote_services(mp_obj_t self_in) {
bleio_central_obj_t *self = MP_OBJ_TO_PTR(self_in);
- return MP_OBJ_FROM_PTR(common_hal_bleio_central_get_remote_services(self));
+ // Return list as a tuple so user won't be able to change it.
+ mp_obj_list_t *service_list = common_hal_bleio_central_get_remote_services(self);
+ return mp_obj_new_tuple(service_list->len, service_list->items);
}
STATIC MP_DEFINE_CONST_FUN_OBJ_1(bleio_central_get_remote_services_obj, bleio_central_get_remote_services);