Skip to content

Commit 02fd64f

Browse files
authored
Merge pull request #52 from elle-bi/main
Add API to get random address
2 parents 616f2fb + 240590a commit 02fd64f

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

Diff for: src/local/BLELocalDevice.cpp

+19
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,15 @@ int BLELocalDevice::begin()
6060
* Force both MSB bits to b00 in order to define Static Random Address
6161
*/
6262
randomNumber[5] |= 0xC0;
63+
64+
// Copy the random address in private variable as it will be sent to the BLE chip
65+
randomAddress [0] = randomNumber[0];
66+
randomAddress [1] = randomNumber[1];
67+
randomAddress [2] = randomNumber[2];
68+
randomAddress [3] = randomNumber[3];
69+
randomAddress [4] = randomNumber[4];
70+
randomAddress [5] = randomNumber[5];
71+
6372
if (HCI.leSetRandomAddress((uint8_t*)randomNumber) != 0) {
6473
end();
6574
return 0;
@@ -105,6 +114,16 @@ void BLELocalDevice::end()
105114
HCI.end();
106115
}
107116

117+
void BLELocalDevice::getRandomAddress(uint8_t buff[6])
118+
{
119+
buff [0] = randomAddress[0];
120+
buff [1] = randomAddress[1];
121+
buff [2] = randomAddress[2];
122+
buff [3] = randomAddress[3];
123+
buff [4] = randomAddress[4];
124+
buff [5] = randomAddress[5];
125+
}
126+
108127
void BLELocalDevice::poll()
109128
{
110129
HCI.poll();

Diff for: src/local/BLELocalDevice.h

+3
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,8 @@ class BLELocalDevice {
8484

8585
virtual void setTimeout(unsigned long timeout);
8686

87+
virtual void getRandomAddress(uint8_t buff[6]);
88+
8789
virtual void debug(Stream& stream);
8890
virtual void noDebug();
8991

@@ -92,6 +94,7 @@ class BLELocalDevice {
9294
virtual BLEAdvertisingData& getScanResponseData();
9395

9496
private:
97+
uint8_t randomAddress[6];
9598
HCITransportInterface *_HCITransport;
9699
BLEAdvertisingData _advertisingData;
97100
BLEAdvertisingData _scanResponseData;

0 commit comments

Comments
 (0)