File tree Expand file tree Collapse file tree
ports/nrf/common-hal/_bleio Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -386,13 +386,15 @@ bleio_address_obj_t *common_hal_bleio_adapter_get_address(bleio_adapter_obj_t *s
386386 return address ;
387387}
388388
389- uint32_t common_hal_bleio_adapter_set_address (bleio_adapter_obj_t * self , bleio_address_obj_t * address )
390- {
389+ bool common_hal_bleio_adapter_set_address (bleio_adapter_obj_t * self , bleio_address_obj_t * address ) {
391390 ble_gap_addr_t local_address ;
391+ mp_buffer_info_t bufinfo ;
392+ if (!mp_get_buffer (address -> bytes , & bufinfo , MP_BUFFER_READ )) {
393+ return false;
394+ }
392395 local_address .addr_type = address -> type ;
393- const char * data = mp_obj_str_get_str (address -> bytes );
394- memcpy (local_address .addr , data , NUM_BLEIO_ADDRESS_BYTES );
395- return sd_ble_gap_addr_set (& local_address );
396+ memcpy (local_address .addr , bufinfo .buf , NUM_BLEIO_ADDRESS_BYTES );
397+ return sd_ble_gap_addr_set (& local_address ) == NRF_SUCCESS ;
396398}
397399
398400mp_obj_str_t * common_hal_bleio_adapter_get_name (bleio_adapter_obj_t * self ) {
Original file line number Diff line number Diff line change @@ -105,7 +105,9 @@ STATIC mp_obj_t bleio_adapter_get_address(mp_obj_t self) {
105105MP_DEFINE_CONST_FUN_OBJ_1 (bleio_adapter_get_address_obj , bleio_adapter_get_address );
106106
107107STATIC mp_obj_t bleio_adapter_set_address (mp_obj_t self , mp_obj_t new_address ) {
108- common_hal_bleio_adapter_set_address (self , new_address );
108+ if (!common_hal_bleio_adapter_set_address (self , new_address )) {
109+ mp_raise_bleio_BluetoothError (translate ("Could not set address" ));
110+ }
109111 return mp_const_none ;
110112}
111113MP_DEFINE_CONST_FUN_OBJ_2 (bleio_adapter_set_address_obj , bleio_adapter_set_address );
Original file line number Diff line number Diff line change @@ -42,7 +42,7 @@ extern bool common_hal_bleio_adapter_get_enabled(bleio_adapter_obj_t *self);
4242extern void common_hal_bleio_adapter_set_enabled (bleio_adapter_obj_t * self , bool enabled );
4343extern bool common_hal_bleio_adapter_get_connected (bleio_adapter_obj_t * self );
4444extern bleio_address_obj_t * common_hal_bleio_adapter_get_address (bleio_adapter_obj_t * self );
45- extern uint32_t common_hal_bleio_adapter_set_address (bleio_adapter_obj_t * self , bleio_address_obj_t * address );
45+ extern bool common_hal_bleio_adapter_set_address (bleio_adapter_obj_t * self , bleio_address_obj_t * address );
4646
4747extern mp_obj_str_t * common_hal_bleio_adapter_get_name (bleio_adapter_obj_t * self );
4848extern void common_hal_bleio_adapter_set_name (bleio_adapter_obj_t * self , const char * name );
You can’t perform that action at this time.
0 commit comments