diff options
| author | Dan Halbert <halbert@halwitz.org> | 2019-06-13 21:55:07 -0400 |
|---|---|---|
| committer | Dan Halbert <halbert@halwitz.org> | 2019-06-13 21:55:07 -0400 |
| commit | bed6d43a768838fd3bc5d2048bf7acdc6e9b0a33 (patch) | |
| tree | 814683e585940b502d4e47f8556a69045729c77a /ports/nrf/common-hal/bleio | |
| parent | 6fed24e1b6fce58f2c06328b9bc8b8f9d9512b42 (diff) | |
| parent | 6be7cf7440acb827d4b0f767b6083a859499b045 (diff) | |
merge from upstream; WIP redo Address; no more AddressType
Diffstat (limited to 'ports/nrf/common-hal/bleio')
| -rw-r--r-- | ports/nrf/common-hal/bleio/Adapter.c | 10 | ||||
| -rw-r--r-- | ports/nrf/common-hal/bleio/Peripheral.c | 1 | ||||
| -rw-r--r-- | ports/nrf/common-hal/bleio/Scanner.c | 5 |
3 files changed, 7 insertions, 9 deletions
diff --git a/ports/nrf/common-hal/bleio/Adapter.c b/ports/nrf/common-hal/bleio/Adapter.c index 540659aa1..120fcf055 100644 --- a/ports/nrf/common-hal/bleio/Adapter.c +++ b/ports/nrf/common-hal/bleio/Adapter.c @@ -136,17 +136,15 @@ void common_hal_bleio_adapter_get_address(bleio_address_obj_t *address) { uint32_t err_code; common_hal_bleio_adapter_set_enabled(true); - -#if (BLE_API_VERSION == 2) - err_code = sd_ble_gap_address_get(&local_address); -#else err_code = sd_ble_gap_addr_get(&local_address); -#endif if (err_code != NRF_SUCCESS) { mp_raise_OSError_msg(translate("Failed to get local address")); } address->type = local_address.addr_type; - memcpy(address->value, local_address.addr, BLEIO_ADDRESS_BYTES); + + mp_buffer_info_t buf_info; + mp_get_buffer_raise(address, &buf_info, MP_BUFFER_READ); + memcpy(address->bytes, buf_info.buf, NUM_BLEIO_ADDRESS_BYTES); } diff --git a/ports/nrf/common-hal/bleio/Peripheral.c b/ports/nrf/common-hal/bleio/Peripheral.c index e522b50d2..e59676fde 100644 --- a/ports/nrf/common-hal/bleio/Peripheral.c +++ b/ports/nrf/common-hal/bleio/Peripheral.c @@ -32,6 +32,7 @@ #include "ble_drv.h" #include "ble_hci.h" #include "nrf_soc.h" +#include "py/gc.h" #include "py/objstr.h" #include "py/runtime.h" #include "shared-bindings/bleio/Adapter.h" diff --git a/ports/nrf/common-hal/bleio/Scanner.c b/ports/nrf/common-hal/bleio/Scanner.c index b76caaf21..08600bc0a 100644 --- a/ports/nrf/common-hal/bleio/Scanner.c +++ b/ports/nrf/common-hal/bleio/Scanner.c @@ -51,15 +51,14 @@ STATIC void on_ble_evt(ble_evt_t *ble_evt, void *scanner_in) { return; } - // TODO: Don't add new entry for each item, group by address and update bleio_scanentry_obj_t *entry = m_new_obj(bleio_scanentry_obj_t); entry->base.type = &bleio_scanentry_type; entry->rssi = report->rssi; + memcpy(entry->address.bytes, report->data.p_data, NUM_BLEIO_ADDRESS_BYTES); entry->address.type = report->peer_addr.addr_type; - memcpy(entry->address.value, report->peer_addr.addr, BLEIO_ADDRESS_BYTES); - entry->data = mp_obj_new_bytearray(report->data.len, report->data.p_data); + entry->data = mp_obj_new_bytes(report->data.p_data, report->data.len); mp_obj_list_append(scanner->adv_reports, entry); |
