@@ -561,12 +561,15 @@ ble_error_t nRF5xGap::setAddress(AddressType_t type, const Address_t address)
561
561
*/
562
562
if ((type == BLEProtocol::AddressType::PUBLIC) || (type == BLEProtocol::AddressType::RANDOM_STATIC))
563
563
{
564
+ memcpy (dev_addr.addr , address, ADDR_LEN);
564
565
#if (NRF_SD_BLE_API_VERSION <= 2)
565
566
cycle_mode = BLE_GAP_ADDR_CYCLE_MODE_NONE;
566
567
#else
567
568
privacy_params.privacy_mode = BLE_GAP_PRIVACY_MODE_OFF;
569
+
570
+ ASSERT_INT (ERROR_NONE, pm_id_addr_set (&dev_addr), BLE_ERROR_PARAM_OUT_OF_RANGE);
571
+ ASSERT_INT (ERROR_NONE, pm_privacy_set (&privacy_params), BLE_ERROR_PARAM_OUT_OF_RANGE);
568
572
#endif
569
- memcpy (dev_addr.addr , address, ADDR_LEN);
570
573
}
571
574
else if ((type == BLEProtocol::AddressType::RANDOM_PRIVATE_RESOLVABLE) || (type == BLEProtocol::AddressType::RANDOM_PRIVATE_NON_RESOLVABLE))
572
575
{
@@ -575,6 +578,8 @@ ble_error_t nRF5xGap::setAddress(AddressType_t type, const Address_t address)
575
578
#else
576
579
privacy_params.privacy_mode = BLE_GAP_PRIVACY_MODE_DEVICE_PRIVACY;
577
580
privacy_params.private_addr_type = type;
581
+
582
+ ASSERT_INT (ERROR_NONE, pm_privacy_set (&privacy_params), BLE_ERROR_PARAM_OUT_OF_RANGE);
578
583
#endif
579
584
// address is ignored when in auto mode
580
585
}
@@ -586,9 +591,6 @@ ble_error_t nRF5xGap::setAddress(AddressType_t type, const Address_t address)
586
591
dev_addr.addr_type = type;
587
592
#if (NRF_SD_BLE_API_VERSION <= 2)
588
593
ASSERT_INT (ERROR_NONE, sd_ble_gap_address_set (cycle_mode, &dev_addr), BLE_ERROR_PARAM_OUT_OF_RANGE);
589
- #else
590
- ASSERT_INT (ERROR_NONE, pm_privacy_set (&privacy_params), BLE_ERROR_PARAM_OUT_OF_RANGE);
591
- ASSERT_INT (ERROR_NONE, pm_id_addr_set (&dev_addr), BLE_ERROR_PARAM_OUT_OF_RANGE);
592
594
#endif
593
595
594
596
return BLE_ERROR_NONE;
@@ -678,7 +680,7 @@ void nRF5xGap::getPermittedTxPowerValues(const int8_t **valueArrayPP, size_t *co
678
680
};
679
681
#elif defined(NRF52840_XXAA)
680
682
static const int8_t permittedTxValues[] = {
681
- -40 , -20 , -16 , -12 , -8 , -4 , 0 , 4 , 5 , 6 , 7 , 8 , 9
683
+ -40 , -20 , -16 , -12 , -8 , -4 , 0 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9
682
684
};
683
685
#else
684
686
#error permitted TX power values unknown for this SOC
@@ -1118,6 +1120,7 @@ ble_error_t nRF5xGap::getStackWhiteIdentityList(GapWhiteAndIdentityList_t &gapAd
1118
1120
if (!irk_found[i])
1119
1121
{
1120
1122
memcpy (&gapAdrHelper.addrs [i], &whitelistAddresses[i], sizeof (ble_gap_addr_t ));
1123
+ gapAdrHelper.addrs [i].addr_id_peer = 0 ;
1121
1124
gapAdrHelper.addrs_cnt ++;
1122
1125
}
1123
1126
}
0 commit comments