From 79568dbe6dfac4206b51f72ddb8e82b2785d5ee4 Mon Sep 17 00:00:00 2001 From: Laurent Meunier Date: Fri, 22 Feb 2019 10:24:59 +0100 Subject: [PATCH] STM32WB: Set a random static address during init --- .../targets/TARGET_STM/stm32wb_HCIDriver.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/features/FEATURE_BLE/targets/TARGET_STM/stm32wb_HCIDriver.cpp b/features/FEATURE_BLE/targets/TARGET_STM/stm32wb_HCIDriver.cpp index 18d108896e..753fc05e4b 100644 --- a/features/FEATURE_BLE/targets/TARGET_STM/stm32wb_HCIDriver.cpp +++ b/features/FEATURE_BLE/targets/TARGET_STM/stm32wb_HCIDriver.cpp @@ -311,11 +311,22 @@ public: randCnt++; HciLeRandCmd(); } else { - /* last command in sequence; set resetting state and call callback */ - tr_debug("signal_reset_sequence_done\r\n"); - signal_reset_sequence_done(); + uint8_t addr[6] = { 0 }; + memcpy(addr, pMsg, sizeof(addr)); + DM_RAND_ADDR_SET(addr, DM_RAND_ADDR_STATIC); + // note: will invoke set rand address + cordio::BLE::deviceInstance().getGap().setAddress( + BLEProtocol::AddressType::RANDOM_STATIC, + addr + ); } break; + + case HCI_OPCODE_LE_SET_RAND_ADDR: + /* send next command in sequence */ + signal_reset_sequence_done(); + break; + default: tr_debug("Complete Event in reset seq with unknown opcode =0x%4X\r\n", opcode); break;