diff options
| author | Yihui Xiong <yihui.xiong@hotmail.com> | 2020-08-14 17:48:15 +0800 |
|---|---|---|
| committer | Yihui Xiong <yihui.xiong@hotmail.com> | 2020-08-14 17:48:15 +0800 |
| commit | 52990a332d602db17564ae3b1d27444f25f4531e (patch) | |
| tree | 9eabf050f1cf6465d5365e6347137c1a6de9b861 /ports/nrf | |
| parent | e7da652711f8d7ccdffce1a4da2a25aaf61ae150 (diff) | |
fix
Diffstat (limited to 'ports/nrf')
| -rw-r--r-- | ports/nrf/common-hal/_bleio/Adapter.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/ports/nrf/common-hal/_bleio/Adapter.c b/ports/nrf/common-hal/_bleio/Adapter.c index d34f5d287..6d6669c5e 100644 --- a/ports/nrf/common-hal/_bleio/Adapter.c +++ b/ports/nrf/common-hal/_bleio/Adapter.c @@ -386,13 +386,15 @@ bleio_address_obj_t *common_hal_bleio_adapter_get_address(bleio_adapter_obj_t *s return address; } -uint32_t common_hal_bleio_adapter_set_address(bleio_adapter_obj_t *self, bleio_address_obj_t *address) -{ +bool common_hal_bleio_adapter_set_address(bleio_adapter_obj_t *self, bleio_address_obj_t *address) { ble_gap_addr_t local_address; + mp_buffer_info_t bufinfo; + if (!mp_get_buffer(address->bytes, &bufinfo, MP_BUFFER_READ)) { + return false; + } local_address.addr_type = address->type; - const char *data = mp_obj_str_get_str(address->bytes); - memcpy(local_address.addr, data, NUM_BLEIO_ADDRESS_BYTES); - return sd_ble_gap_addr_set(&local_address); + memcpy(local_address.addr, bufinfo.buf, NUM_BLEIO_ADDRESS_BYTES); + return sd_ble_gap_addr_set(&local_address) == NRF_SUCCESS; } mp_obj_str_t* common_hal_bleio_adapter_get_name(bleio_adapter_obj_t *self) { |
