diff --git a/.gitignore b/.gitignore index 6edeff8..b578cdb 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ build* test/renode/logs/* test/renode/*.html test/renode/*.xml +test/renode/snapshots diff --git a/samples/uptime/prj.conf b/samples/uptime/prj.conf index 2b4aea7..b17e25a 100644 --- a/samples/uptime/prj.conf +++ b/samples/uptime/prj.conf @@ -14,3 +14,4 @@ CONFIG_LIB_CPLUSPLUS=y CONFIG_STD_CPP17=y CONFIG_NEWLIB_LIBC=y CONFIG_BLE_UTILS=y +CONFIG_BT_ASSERT=n \ No newline at end of file diff --git a/test/renode/load.resc b/test/renode/load.resc index c053d70..b0315ef 100644 --- a/test/renode/load.resc +++ b/test/renode/load.resc @@ -5,7 +5,7 @@ emulation CreateBLEMedium "wireless" mach add "central" machine LoadPlatformDescription @platforms/cpus/nrf52840.repl - +connector Connect sysbus.radio wireless showAnalyzer uart0 @@ -21,4 +21,6 @@ mach set "central" sysbus LoadELF $ORIGIN/uptime_central/build/zephyr/zephyr.elf mach set "peripheral" -sysbus LoadELF $ORIGIN/../../samples/uptime/build/zephyr/zephyr.elf \ No newline at end of file +sysbus LoadELF $ORIGIN/../../samples/uptime/build/zephyr/zephyr.elf + +start \ No newline at end of file diff --git a/test/renode/uptime_central/src/discovery.cpp b/test/renode/uptime_central/src/discovery.cpp index d7708fa..8e4e7f5 100644 --- a/test/renode/uptime_central/src/discovery.cpp +++ b/test/renode/uptime_central/src/discovery.cpp @@ -136,11 +136,32 @@ static uint8_t service_discover_cb(bt_conn *conn, return BT_GATT_ITER_STOP; } + + static bool adv_data_cb(bt_data *data, void *user_data) { auto addr = static_cast(user_data); int i; + int err = bt_le_scan_stop(); + if (err) { + LOG_INF("Stop LE scan failed (err %d)", err); + return true; + } + + LOG_INF("Connecting.."); + err = bt_conn_le_create(addr, &conn_create_param, + &conn_default_param, &default_conn); + if (err) { + LOG_ERR("Create conn failed (err %d)", err); + start_scan(); + } + return false; + /* + TODO wait for upcoming changes with uuid advertisement + until then do not compare uuid in adv data + */ + /* switch (data->type) { case BT_DATA_UUID128_SOME: case BT_DATA_UUID128_ALL: @@ -151,12 +172,6 @@ static bool adv_data_cb(bt_data *data, void *user_data) for (i = 0; i < data->data_len; i += BT_UUID_SIZE_128) { int err; - - /* - TODO wait for upcoming changes with uuid advertisement - until then do not compare uuid in adv data - */ - /* bt_uuid_128 adv_uuid ={ .uuid = { BT_UUID_TYPE_128 }}; memcpy(adv_uuid.val, data->data+i, BT_UUID_SIZE_128); const int uuid_match = bt_uuid_cmp(&adv_uuid.uuid, &uptime::uuid::svc_base.uuid); @@ -164,26 +179,13 @@ static bool adv_data_cb(bt_data *data, void *user_data) continue; } LOG_INF("Matched Uptime adv. UUID"); - */ - err = bt_le_scan_stop(); - if (err) { - LOG_INF("Stop LE scan failed (err %d)", err); - continue; - } - - LOG_INF("Connecting.."); - err = bt_conn_le_create(addr, &conn_create_param, - &conn_default_param, &default_conn); - if (err) { - LOG_ERR("Create conn failed (err %d)", err); - start_scan(); - } - + return false; } } return true; + */ } static void device_found_cb(const bt_addr_le_t *addr, int8_t rssi, uint8_t type,