diff --git a/examples/bluetooth/nimble/ble_cts/cts_cent/main/main.c b/examples/bluetooth/nimble/ble_cts/cts_cent/main/main.c index 768415fd8c..d0bea3ea68 100644 --- a/examples/bluetooth/nimble/ble_cts/cts_cent/main/main.c +++ b/examples/bluetooth/nimble/ble_cts/cts_cent/main/main.c @@ -18,7 +18,6 @@ static const char *tag = "NimBLE_CTS_CENT"; static int ble_cts_cent_gap_event(struct ble_gap_event *event, void *arg); -static uint8_t peer_addr[6]; static char *day_of_week[7] = { "Unknown" @@ -193,6 +192,10 @@ ext_ble_cts_cent_should_connect(const struct ble_gap_ext_disc_desc *disc) { int offset = 0; int ad_struct_len = 0; + uint8_t test_addr[6]; + uint32_t peer_addr[6]; + + memset(peer_addr, 0x0, sizeof peer_addr); if (disc->legacy_event_type != BLE_HCI_ADV_RPT_EVTYPE_ADV_IND && disc->legacy_event_type != BLE_HCI_ADV_RPT_EVTYPE_DIR_IND) { @@ -200,11 +203,18 @@ ext_ble_cts_cent_should_connect(const struct ble_gap_ext_disc_desc *disc) } if (strlen(CONFIG_EXAMPLE_PEER_ADDR) && (strncmp(CONFIG_EXAMPLE_PEER_ADDR, "ADDR_ANY", strlen("ADDR_ANY")) != 0)) { ESP_LOGI(tag, "Peer address from menuconfig: %s", CONFIG_EXAMPLE_PEER_ADDR); - /* Convert string to address */ - sscanf(CONFIG_EXAMPLE_PEER_ADDR, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", + + /* Convert string to address */ + sscanf(CONFIG_EXAMPLE_PEER_ADDR, "%lx:%lx:%lx:%lx:%lx:%lx", &peer_addr[5], &peer_addr[4], &peer_addr[3], &peer_addr[2], &peer_addr[1], &peer_addr[0]); - if (memcmp(peer_addr, disc->addr.val, sizeof(disc->addr.val)) != 0) { + + /* Conversion */ + for(int i=0; i<6; i++) { + test_addr[i] = (uint8_t )peer_addr[i]; + } + + if (memcmp(test_addr, disc->addr.val, sizeof(disc->addr.val)) != 0) { return 0; } } @@ -243,6 +253,10 @@ ble_cts_cent_should_connect(const struct ble_gap_disc_desc *disc) struct ble_hs_adv_fields fields; int rc; int i; + uint8_t test_addr[6]; + uint32_t peer_addr[6]; + + memset(peer_addr, 0x0, sizeof peer_addr); /* The device has to be advertising connectability. */ if (disc->event_type != BLE_HCI_ADV_RPT_EVTYPE_ADV_IND && @@ -259,10 +273,16 @@ ble_cts_cent_should_connect(const struct ble_gap_disc_desc *disc) if (strlen(CONFIG_EXAMPLE_PEER_ADDR) && (strncmp(CONFIG_EXAMPLE_PEER_ADDR, "ADDR_ANY", strlen("ADDR_ANY")) != 0)) { ESP_LOGI(tag, "Peer address from menuconfig: %s", CONFIG_EXAMPLE_PEER_ADDR); /* Convert string to address */ - sscanf(CONFIG_EXAMPLE_PEER_ADDR, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", + sscanf(CONFIG_EXAMPLE_PEER_ADDR, "%lx:%lx:%lx:%lx:%lx:%lx", &peer_addr[5], &peer_addr[4], &peer_addr[3], &peer_addr[2], &peer_addr[1], &peer_addr[0]); - if (memcmp(peer_addr, disc->addr.val, sizeof(disc->addr.val)) != 0) { + + /* Conversion */ + for (int i=0; i<6; i++) { + test_addr[i] = (uint8_t )peer_addr[i]; + } + + if (memcmp(test_addr, disc->addr.val, sizeof(disc->addr.val)) != 0) { return 0; } } diff --git a/examples/bluetooth/nimble/ble_enc_adv_data/enc_adv_data_cent/main/main.c b/examples/bluetooth/nimble/ble_enc_adv_data/enc_adv_data_cent/main/main.c index 4427dede0b..93a4e552af 100644 --- a/examples/bluetooth/nimble/ble_enc_adv_data/enc_adv_data_cent/main/main.c +++ b/examples/bluetooth/nimble/ble_enc_adv_data/enc_adv_data_cent/main/main.c @@ -22,7 +22,6 @@ static struct km_peer kmp[CONFIG_BT_NIMBLE_MAX_CONNECTIONS + 1] = {0}; static const char *tag = "ENC_ADV_DATA_CENT"; static int enc_adv_data_cent_gap_event(struct ble_gap_event *event, void *arg); -static uint8_t peer_addr[6]; static int mtu_def = 512; void ble_store_config_init(void); @@ -287,6 +286,10 @@ enc_adv_data_cent_should_connect(const struct ble_gap_disc_desc *disc) struct ble_hs_adv_fields fields; int rc; int i; + uint8_t test_addr[6]; + uint32_t peer_addr[6]; + + memset(peer_addr, 0x0, sizeof peer_addr); if (disc->event_type != BLE_HCI_ADV_RPT_EVTYPE_ADV_IND && disc->event_type != BLE_HCI_ADV_RPT_EVTYPE_DIR_IND) { @@ -301,10 +304,16 @@ enc_adv_data_cent_should_connect(const struct ble_gap_disc_desc *disc) if (strlen(CONFIG_EXAMPLE_PEER_ADDR) && (strncmp(CONFIG_EXAMPLE_PEER_ADDR, "ADDR_ANY", strlen ("ADDR_ANY")) != 0)) { MODLOG_DFLT(INFO, "Peer address from menuconfig: %s", CONFIG_EXAMPLE_PEER_ADDR); /* Convert string to address */ - sscanf(CONFIG_EXAMPLE_PEER_ADDR, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", + sscanf(CONFIG_EXAMPLE_PEER_ADDR, "%lx:%lx:%lx:%lx:%lx:%lx", &peer_addr[5], &peer_addr[4], &peer_addr[3], &peer_addr[2], &peer_addr[1], &peer_addr[0]); - if (memcmp(peer_addr, disc->addr.val, sizeof(disc->addr.val)) != 0) { + + /* Conversion */ + for (int i=0; i<6; i++) { + test_addr[i] = (uint8_t )peer_addr[i]; + } + + if (memcmp(test_addr, disc->addr.val, sizeof(disc->addr.val)) != 0) { return 0; } } diff --git a/examples/bluetooth/nimble/ble_htp/htp_cent/main/main.c b/examples/bluetooth/nimble/ble_htp/htp_cent/main/main.c index cb948cb7fb..66d6c7c2c4 100644 --- a/examples/bluetooth/nimble/ble_htp/htp_cent/main/main.c +++ b/examples/bluetooth/nimble/ble_htp/htp_cent/main/main.c @@ -17,7 +17,6 @@ static const char *tag = "NimBLE_HTP_CENT"; static int ble_htp_cent_gap_event(struct ble_gap_event *event, void *arg); -static uint8_t peer_addr[6]; void ble_store_config_init(void); static void ble_htp_cent_scan(void); @@ -311,6 +310,10 @@ ext_ble_htp_cent_should_connect(const struct ble_gap_ext_disc_desc *disc) { int offset = 0; int ad_struct_len = 0; + uint8_t test_addr[6]; + uint32_t peer_addr[6]; + + memset(peer_addr, 0x0, sizeof peer_addr); if (disc->legacy_event_type != BLE_HCI_ADV_RPT_EVTYPE_ADV_IND && disc->legacy_event_type != BLE_HCI_ADV_RPT_EVTYPE_DIR_IND) { @@ -319,10 +322,16 @@ ext_ble_htp_cent_should_connect(const struct ble_gap_ext_disc_desc *disc) if (strlen(CONFIG_EXAMPLE_PEER_ADDR) && (strncmp(CONFIG_EXAMPLE_PEER_ADDR, "ADDR_ANY", strlen ("ADDR_ANY")) != 0)) { ESP_LOGI(tag, "Peer address from menuconfig: %s", CONFIG_EXAMPLE_PEER_ADDR); /* Convert string to address */ - sscanf(CONFIG_EXAMPLE_PEER_ADDR, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", + sscanf(CONFIG_EXAMPLE_PEER_ADDR, "%lx:%lx:%lx:%lx:%lx:%lx", &peer_addr[5], &peer_addr[4], &peer_addr[3], &peer_addr[2], &peer_addr[1], &peer_addr[0]); - if (memcmp(peer_addr, disc->addr.val, sizeof(disc->addr.val)) != 0) { + + /* Conversion */ + for (int i=0; i<6; i++) { + test_addr[i] = (uint8_t )peer_addr[i]; + } + + if (memcmp(test_addr, disc->addr.val, sizeof(disc->addr.val)) != 0) { return 0; } } @@ -358,6 +367,10 @@ ble_htp_cent_should_connect(const struct ble_gap_disc_desc *disc) struct ble_hs_adv_fields fields; int rc; int i; + uint8_t test_addr[6]; + uint32_t peer_addr[6]; + + memset(peer_addr, 0x0, sizeof peer_addr); /* The device has to be advertising connectability. */ if (disc->event_type != BLE_HCI_ADV_RPT_EVTYPE_ADV_IND && @@ -374,10 +387,16 @@ ble_htp_cent_should_connect(const struct ble_gap_disc_desc *disc) if (strlen(CONFIG_EXAMPLE_PEER_ADDR) && (strncmp(CONFIG_EXAMPLE_PEER_ADDR, "ADDR_ANY", strlen("ADDR_ANY")) != 0)) { ESP_LOGI(tag, "Peer address from menuconfig: %s", CONFIG_EXAMPLE_PEER_ADDR); /* Convert string to address */ - sscanf(CONFIG_EXAMPLE_PEER_ADDR, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", + sscanf(CONFIG_EXAMPLE_PEER_ADDR, "%lx:%lx:%lx:%lx:%lx:%lx", &peer_addr[5], &peer_addr[4], &peer_addr[3], &peer_addr[2], &peer_addr[1], &peer_addr[0]); - if (memcmp(peer_addr, disc->addr.val, sizeof(disc->addr.val)) != 0) { + + /* Conversion */ + for (int i=0; i<6; i++) { + test_addr[i] = (uint8_t )peer_addr[i]; + } + + if (memcmp(test_addr, disc->addr.val, sizeof(disc->addr.val)) != 0) { return 0; } } diff --git a/examples/bluetooth/nimble/ble_l2cap_coc/coc_blecent/main/main.c b/examples/bluetooth/nimble/ble_l2cap_coc/coc_blecent/main/main.c index 0999d925a2..f9a805ba95 100644 --- a/examples/bluetooth/nimble/ble_l2cap_coc/coc_blecent/main/main.c +++ b/examples/bluetooth/nimble/ble_l2cap_coc/coc_blecent/main/main.c @@ -17,7 +17,6 @@ static const char *tag = "NimBLE_BLE_CENT_L2CAP_COC"; static int blecent_gap_event(struct ble_gap_event *event, void *arg); -static uint8_t peer_addr[6]; void ble_store_config_init(void); @@ -237,6 +236,10 @@ ext_blecent_should_connect(const struct ble_gap_ext_disc_desc *disc) { int offset = 0; int ad_struct_len = 0; + uint8_t test_addr[6]; + uint32_t peer_addr[6]; + + memset(peer_addr, 0x0, sizeof peer_addr); if (disc->legacy_event_type != BLE_HCI_ADV_RPT_EVTYPE_ADV_IND && disc->legacy_event_type != BLE_HCI_ADV_RPT_EVTYPE_DIR_IND) { @@ -246,10 +249,16 @@ ext_blecent_should_connect(const struct ble_gap_ext_disc_desc *disc) (strncmp(CONFIG_EXAMPLE_PEER_ADDR, "ADDR_ANY", strlen("ADDR_ANY")) != 0)) { ESP_LOGI(tag, "Peer address from menuconfig: %s", CONFIG_EXAMPLE_PEER_ADDR); /* Convert string to address */ - sscanf(CONFIG_EXAMPLE_PEER_ADDR, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", + sscanf(CONFIG_EXAMPLE_PEER_ADDR, "%lx:%lx:%lx:%lx:%lx:%lx", &peer_addr[5], &peer_addr[4], &peer_addr[3], &peer_addr[2], &peer_addr[1], &peer_addr[0]); - if (memcmp(peer_addr, disc->addr.val, sizeof(disc->addr.val)) != 0) { + + /* Conversion */ + for (int i=0; i<6; i++) { + test_addr[i] = (uint8_t )peer_addr[i]; + } + + if (memcmp(test_addr, disc->addr.val, sizeof(disc->addr.val)) != 0) { return 0; } } @@ -281,6 +290,10 @@ blecent_should_connect(const struct ble_gap_disc_desc *disc) struct ble_hs_adv_fields fields; int rc; int i; + uint8_t test_addr[6]; + uint32_t peer_addr[6]; + + memset(peer_addr, 0x0, sizeof peer_addr); /* The device has to be advertising connectability. */ if (disc->event_type != BLE_HCI_ADV_RPT_EVTYPE_ADV_IND && @@ -298,10 +311,16 @@ blecent_should_connect(const struct ble_gap_disc_desc *disc) (strncmp(CONFIG_EXAMPLE_PEER_ADDR, "ADDR_ANY", strlen("ADDR_ANY")) != 0)) { MODLOG_DFLT(INFO, "Peer address from menuconfig:%s", CONFIG_EXAMPLE_PEER_ADDR); /* Convert string to address */ - sscanf(CONFIG_EXAMPLE_PEER_ADDR, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", + sscanf(CONFIG_EXAMPLE_PEER_ADDR, "%lx:%lx:%lx:%lx:%lx:%lx", &peer_addr[5], &peer_addr[4], &peer_addr[3], &peer_addr[2], &peer_addr[1], &peer_addr[0]); - if (memcmp(peer_addr, disc->addr.val, sizeof(disc->addr.val)) != 0) { + + /* Conversion */ + for (int i=0; i<6; i++) { + test_addr[i] = (uint8_t )peer_addr[i]; + } + + if (memcmp(test_addr, disc->addr.val, sizeof(disc->addr.val)) != 0) { return 0; } } diff --git a/examples/bluetooth/nimble/ble_phy/phy_cent/main/main.c b/examples/bluetooth/nimble/ble_phy/phy_cent/main/main.c index bb0ab4a754..8bb90d9d12 100644 --- a/examples/bluetooth/nimble/ble_phy/phy_cent/main/main.c +++ b/examples/bluetooth/nimble/ble_phy/phy_cent/main/main.c @@ -17,7 +17,6 @@ static const char *tag = "NimBLE_BLE_PHY_CENT"; static int blecent_gap_event(struct ble_gap_event *event, void *arg); -static uint8_t peer_addr[6]; static ble_addr_t conn_addr; static void blecent_scan(void); @@ -233,6 +232,10 @@ ext_blecent_should_connect(const struct ble_gap_ext_disc_desc *disc) { int offset = 0; int ad_struct_len = 0; + uint8_t test_addr[6]; + uint32_t peer_addr[6]; + + memset(peer_addr, 0x0, sizeof peer_addr); if (disc->legacy_event_type != BLE_HCI_ADV_RPT_EVTYPE_ADV_IND && disc->legacy_event_type != BLE_HCI_ADV_RPT_EVTYPE_DIR_IND) { @@ -241,10 +244,16 @@ ext_blecent_should_connect(const struct ble_gap_ext_disc_desc *disc) if (strlen(CONFIG_EXAMPLE_PEER_ADDR) && (strncmp(CONFIG_EXAMPLE_PEER_ADDR, "ADDR_ANY", strlen("ADDR_ANY")) != 0)) { ESP_LOGI(tag, "Peer address from menuconfig: %s", CONFIG_EXAMPLE_PEER_ADDR); /* Convert string to address */ - sscanf(CONFIG_EXAMPLE_PEER_ADDR, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", + sscanf(CONFIG_EXAMPLE_PEER_ADDR, "%lx:%lx:%lx:%lx:%lx:%lx", &peer_addr[5], &peer_addr[4], &peer_addr[3], &peer_addr[2], &peer_addr[1], &peer_addr[0]); - if (memcmp(peer_addr, disc->addr.val, sizeof(disc->addr.val)) != 0) { + + /* Conversion */ + for (int i=0; i<6; i++) { + test_addr[i] = (uint8_t )peer_addr[i]; + } + + if (memcmp(test_addr, disc->addr.val, sizeof(disc->addr.val)) != 0) { return 0; } } @@ -462,6 +471,10 @@ blecent_on_sync(void) { int ii, rc; uint8_t all_phy; + uint8_t test_addr[6]; + uint32_t peer_addr[6]; + + memset(peer_addr, 0x0, sizeof peer_addr); /* Make sure we have proper identity address set (public preferred) */ rc = ble_hs_util_ensure_addr(0); @@ -478,12 +491,17 @@ blecent_on_sync(void) if (strlen(CONFIG_EXAMPLE_PEER_ADDR) && (strncmp(CONFIG_EXAMPLE_PEER_ADDR, "ADDR_ANY", strlen("ADDR_ANY")) != 0)) { /* User wants to connect on 2M or coded phy directly */ - sscanf(CONFIG_EXAMPLE_PEER_ADDR, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", + sscanf(CONFIG_EXAMPLE_PEER_ADDR, "%lx:%lx:%lx:%lx:%lx:%lx", &peer_addr[5], &peer_addr[4], &peer_addr[3], &peer_addr[2], &peer_addr[1], &peer_addr[0]); + /* Conversion */ + for (int i=0; i<6; i++) { + test_addr[i] = (uint8_t )peer_addr[i]; + } + for(ii = 0 ;ii < 6; ii++) - conn_addr.val[ii] = peer_addr[ii]; + conn_addr.val[ii] = test_addr[ii]; conn_addr.type = 0; diff --git a/examples/bluetooth/nimble/ble_proximity_sensor/proximity_sensor_cent/main/main.c b/examples/bluetooth/nimble/ble_proximity_sensor/proximity_sensor_cent/main/main.c index 68c3d91d24..ff0023364b 100644 --- a/examples/bluetooth/nimble/ble_proximity_sensor/proximity_sensor_cent/main/main.c +++ b/examples/bluetooth/nimble/ble_proximity_sensor/proximity_sensor_cent/main/main.c @@ -16,7 +16,6 @@ #include "ble_prox_cent.h" static const char *tag = "NimBLE_PROX_CENT"; -static uint8_t peer_addr[6]; static uint8_t link_supervision_timeout; static int8_t tx_pwr_lvl; static struct ble_prox_cent_conn_peer conn_peer[MYNEWT_VAL(BLE_MAX_CONNECTIONS) + 1]; @@ -228,6 +227,10 @@ ext_ble_prox_cent_should_connect(const struct ble_gap_ext_disc_desc *disc) { int offset = 0; int ad_struct_len = 0; + uint8_t test_addr[6]; + uint32_t peer_addr[6]; + + memset(peer_addr, 0x0, sizeof peer_addr); if (disc->legacy_event_type != BLE_HCI_ADV_RPT_EVTYPE_ADV_IND && disc->legacy_event_type != BLE_HCI_ADV_RPT_EVTYPE_DIR_IND) { @@ -236,10 +239,16 @@ ext_ble_prox_cent_should_connect(const struct ble_gap_ext_disc_desc *disc) if (strlen(CONFIG_EXAMPLE_PEER_ADDR) && (strncmp(CONFIG_EXAMPLE_PEER_ADDR, "ADDR_ANY", strlen ("ADDR_ANY")) != 0)) { ESP_LOGI(tag, "Peer address from menuconfig: %s", CONFIG_EXAMPLE_PEER_ADDR); /* Convert string to address */ - sscanf(CONFIG_EXAMPLE_PEER_ADDR, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", + sscanf(CONFIG_EXAMPLE_PEER_ADDR, "%lx:%lx:%lx:%lx:%lx:%lx", &peer_addr[5], &peer_addr[4], &peer_addr[3], &peer_addr[2], &peer_addr[1], &peer_addr[0]); - if (memcmp(peer_addr, disc->addr.val, sizeof(disc->addr.val)) != 0) { + + /* Conversion */ + for (int i=0; i<6; i++) { + test_addr[i] = (uint8_t )peer_addr[i]; + } + + if (memcmp(test_addr, disc->addr.val, sizeof(disc->addr.val)) != 0) { return 0; } } @@ -275,6 +284,10 @@ ble_prox_cent_should_connect(const struct ble_gap_disc_desc *disc) struct ble_hs_adv_fields fields; int rc; int i; + uint8_t test_addr[6]; + uint32_t peer_addr[6]; + + memset(peer_addr, 0x0, sizeof peer_addr); /* The device has to be advertising connectability. */ if (disc->event_type != BLE_HCI_ADV_RPT_EVTYPE_ADV_IND && @@ -291,10 +304,16 @@ ble_prox_cent_should_connect(const struct ble_gap_disc_desc *disc) if (strlen(CONFIG_EXAMPLE_PEER_ADDR) && (strncmp(CONFIG_EXAMPLE_PEER_ADDR, "ADDR_ANY", strlen("ADDR_ANY")) != 0)) { ESP_LOGI(tag, "Peer address from menuconfig: %s", CONFIG_EXAMPLE_PEER_ADDR); /* Convert string to address */ - sscanf(CONFIG_EXAMPLE_PEER_ADDR, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", + sscanf(CONFIG_EXAMPLE_PEER_ADDR, "%lx:%lx:%lx:%lx:%lx:%lx", &peer_addr[5], &peer_addr[4], &peer_addr[3], &peer_addr[2], &peer_addr[1], &peer_addr[0]); - if (memcmp(peer_addr, disc->addr.val, sizeof(disc->addr.val)) != 0) { + + /* Conversion */ + for (int i=0; i<6; i++) { + test_addr[i] = (uint8_t )peer_addr[i]; + } + + if (memcmp(test_addr, disc->addr.val, sizeof(disc->addr.val)) != 0) { return 0; } } diff --git a/examples/bluetooth/nimble/blecent/main/main.c b/examples/bluetooth/nimble/blecent/main/main.c index 1317ee644a..c254e87c28 100644 --- a/examples/bluetooth/nimble/blecent/main/main.c +++ b/examples/bluetooth/nimble/blecent/main/main.c @@ -60,7 +60,6 @@ static const ble_uuid_t * remote_chr_uuid = static const char *tag = "NimBLE_BLE_CENT"; static int blecent_gap_event(struct ble_gap_event *event, void *arg); -static uint8_t peer_addr[6]; #if MYNEWT_VAL(BLE_EATT_CHAN_NUM) > 0 static uint16_t cids[MYNEWT_VAL(BLE_EATT_CHAN_NUM)]; @@ -483,6 +482,10 @@ ext_blecent_should_connect(const struct ble_gap_ext_disc_desc *disc) #if CONFIG_EXAMPLE_USE_CI_ADDRESS uint32_t *addr_offset; #endif // CONFIG_EXAMPLE_USE_CI_ADDRESS + uint8_t test_addr[6]; + uint32_t peer_addr[6]; + + memset(peer_addr, 0x0, sizeof peer_addr); if (disc->legacy_event_type != BLE_HCI_ADV_RPT_EVTYPE_ADV_IND && disc->legacy_event_type != BLE_HCI_ADV_RPT_EVTYPE_DIR_IND) { @@ -492,17 +495,24 @@ ext_blecent_should_connect(const struct ble_gap_ext_disc_desc *disc) #if !CONFIG_EXAMPLE_USE_CI_ADDRESS ESP_LOGI(tag, "Peer address from menuconfig: %s", CONFIG_EXAMPLE_PEER_ADDR); /* Convert string to address */ - sscanf(CONFIG_EXAMPLE_PEER_ADDR, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", + sscanf(CONFIG_EXAMPLE_PEER_ADDR, "%lx:%lx:%lx:%lx:%lx:%lx", &peer_addr[5], &peer_addr[4], &peer_addr[3], &peer_addr[2], &peer_addr[1], &peer_addr[0]); -#else - addr_offset = (uint32_t *)&peer_addr[1]; +#endif + + /* Conversion */ + for(int i=0; i<6; i++) { + test_addr[i] = (uint8_t )peer_addr[i]; + } + +#if CONFIG_EXAMPLE_USE_CI_ADDRESS + addr_offset = (uint32_t *)&test_addr[1]; *addr_offset = atoi(CONFIG_EXAMPLE_PEER_ADDR); - peer_addr[5] = 0xC3; - peer_addr[0] = TEST_CI_ADDRESS_CHIP_OFFSET; -#endif // !CONFIG_EXAMPLE_USE_CI_ADDRESS - if (memcmp(peer_addr, disc->addr.val, sizeof(disc->addr.val)) != 0) { - return 0; + test_addr[5] = 0xC3; + test_addr[0] = TEST_CI_ADDRESS_CHIP_OFFSET; +#endif + if (memcmp(test_addr, disc->addr.val, sizeof(disc->addr.val)) != 0) { + return 0; } } @@ -539,6 +549,10 @@ blecent_should_connect(const struct ble_gap_disc_desc *disc) #if CONFIG_EXAMPLE_USE_CI_ADDRESS uint32_t *addr_offset; #endif // CONFIG_EXAMPLE_USE_CI_ADDRESS + uint8_t test_addr[6]; + uint32_t peer_addr[6]; + + memset(peer_addr, 0x0, sizeof peer_addr); /* The device has to be advertising connectability. */ if (disc->event_type != BLE_HCI_ADV_RPT_EVTYPE_ADV_IND && @@ -556,16 +570,25 @@ blecent_should_connect(const struct ble_gap_disc_desc *disc) ESP_LOGI(tag, "Peer address from menuconfig: %s", CONFIG_EXAMPLE_PEER_ADDR); #if !CONFIG_EXAMPLE_USE_CI_ADDRESS /* Convert string to address */ - sscanf(CONFIG_EXAMPLE_PEER_ADDR, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", + sscanf(CONFIG_EXAMPLE_PEER_ADDR, "%lx:%lx:%lx:%lx:%lx:%lx", &peer_addr[5], &peer_addr[4], &peer_addr[3], &peer_addr[2], &peer_addr[1], &peer_addr[0]); -#else - addr_offset = (uint32_t *)&peer_addr[1]; + printf("peer--> %lx %lx %lx %lx %lx %lx \n", peer_addr[5], peer_addr[4], + peer_addr[3], peer_addr[2], peer_addr[1], peer_addr[0]); +#endif + /* Conversion */ + for (int i=0; i<6; i++) { + test_addr[i] = (uint8_t )peer_addr[i]; + } + +#if CONFIG_EXAMPLE_USE_CI_ADDRESS + addr_offset = (uint32_t *)&test_addr[1]; *addr_offset = atoi(CONFIG_EXAMPLE_PEER_ADDR); - peer_addr[5] = 0xC3; - peer_addr[0] = TEST_CI_ADDRESS_CHIP_OFFSET; -#endif // !CONFIG_EXAMPLE_USE_CI_ADDRESS - if (memcmp(peer_addr, disc->addr.val, sizeof(disc->addr.val)) != 0) { + test_addr[5] = 0xC3; + test_addr[0] = TEST_CI_ADDRESS_CHIP_OFFSET; +#endif + + if (memcmp(test_addr, disc->addr.val, sizeof(disc->addr.val)) != 0) { return 0; } } diff --git a/examples/bluetooth/nimble/throughput_app/blecent_throughput/main/main.c b/examples/bluetooth/nimble/throughput_app/blecent_throughput/main/main.c index c4672f1a8c..709d36db52 100644 --- a/examples/bluetooth/nimble/throughput_app/blecent_throughput/main/main.c +++ b/examples/bluetooth/nimble/throughput_app/blecent_throughput/main/main.c @@ -55,7 +55,6 @@ #define LL_PACKET_LENGTH 251 static const char *tag = "blecent_throughput"; static int blecent_gap_event(struct ble_gap_event *event, void *arg); -static uint8_t peer_addr[6]; static SemaphoreHandle_t xSemaphore; static int mbuf_len_total; static int failure_count; @@ -417,6 +416,10 @@ blecent_should_connect(const struct ble_gap_disc_desc *disc) struct ble_hs_adv_fields fields; int rc; int i; + uint8_t test_addr[6]; + uint32_t peer_addr[6]; + + memset(peer_addr, 0x0, sizeof peer_addr); rc = ble_hs_adv_parse_fields(&fields, disc->data, disc->length_data); if (rc != 0) { @@ -426,10 +429,16 @@ blecent_should_connect(const struct ble_gap_disc_desc *disc) if (strlen(CONFIG_EXAMPLE_PEER_ADDR) && (strncmp(CONFIG_EXAMPLE_PEER_ADDR, "ADDR_ANY", strlen("ADDR_ANY")) != 0)) { ESP_LOGI(tag, "Peer address from menuconfig: %s", CONFIG_EXAMPLE_PEER_ADDR); /* Convert string to address */ - sscanf(CONFIG_EXAMPLE_PEER_ADDR, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", + sscanf(CONFIG_EXAMPLE_PEER_ADDR, "%lx:%lx:%lx:%lx:%lx:%lx", &peer_addr[5], &peer_addr[4], &peer_addr[3], &peer_addr[2], &peer_addr[1], &peer_addr[0]); - if (memcmp(peer_addr, disc->addr.val, sizeof(disc->addr.val)) != 0) { + + /* Conversion */ + for (int i=0; i<6; i++) { + test_addr[i] = (uint8_t )peer_addr[i]; + } + + if (memcmp(test_addr, disc->addr.val, sizeof(disc->addr.val)) != 0) { return 0; } }