@@ -192,8 +192,9 @@ void *BLE;
192
192
// example:
193
193
// mbed compile -t GCC_ARM -m SFE_ARTEMIS_DK -D AM_CUSTOM_BDADDR -D AM_CUSTOM_BDADDR_TEMPLT0=0xaa1109
194
194
//
195
- // These #defines override any template values specified in b_BLEMacAddress
196
- //
195
+ // These #defines override any template values specified in g_BLEMacAddress.
196
+ //
197
+ // NOTE: If a octet value in the macro number is 0, it is not assigned
197
198
//
198
199
// Worth noting, these can also be set in your mbed_app.json file, with the following
199
200
//
@@ -750,18 +751,25 @@ ap3_hciDrvWrite(uint8_t type, uint16_t len, uint8_t *pData)
750
751
if (g_BLEMacAddress [i ]) // !=0, set value
751
752
bd_addr [i ] = g_BLEMacAddress [i ];
752
753
}
753
-
754
- // 3: Via macros defined to 24 bit numbers
754
+
755
+ // 3: Via macros defined to 24 bit numbers. If an octet is zero, we skip
756
+ // setting that octet it
755
757
#ifdef AM_CUSTOM_BDADDR_TEMPLT0
756
- bd_addr [0 ] = AM_CUSTOM_BDADDR_TEMPLT0 ; // lower 8 bits
757
- bd_addr [1 ] = AM_CUSTOM_BDADDR_TEMPLT0 >> 8 ; // mid 8 bits
758
- bd_addr [2 ] = AM_CUSTOM_BDADDR_TEMPLT0 >> 16 ; // high 8 bits
758
+ if (AM_CUSTOM_BDADDR_TEMPLT0 & 0xFF )
759
+ bd_addr [0 ] = AM_CUSTOM_BDADDR_TEMPLT0 ; // lower 8 bits
760
+ if (AM_CUSTOM_BDADDR_TEMPLT0 & 0xFF00 )
761
+ bd_addr [1 ] = AM_CUSTOM_BDADDR_TEMPLT0 >> 8 ; // mid 8 bits
762
+ if (AM_CUSTOM_BDADDR_TEMPLT0 & 0xFF0000 )
763
+ bd_addr [2 ] = AM_CUSTOM_BDADDR_TEMPLT0 >> 16 ; // high 8 bits
759
764
#endif
760
765
#ifdef AM_CUSTOM_BDADDR_TEMPLT1
761
- bd_addr [3 ] = AM_CUSTOM_BDADDR_TEMPLT1 ; // lower 8 bits
762
- bd_addr [4 ] = AM_CUSTOM_BDADDR_TEMPLT1 >> 8 ; // mid 8 bits
763
- bd_addr [5 ] = AM_CUSTOM_BDADDR_TEMPLT1 >> 16 ; // high 8 bits
764
- #endif
766
+ if (AM_CUSTOM_BDADDR_TEMPLT1 & 0xFF )
767
+ bd_addr [3 ] = AM_CUSTOM_BDADDR_TEMPLT1 ; // lower 8 bits
768
+ if (AM_CUSTOM_BDADDR_TEMPLT1 & 0xFF00 )
769
+ bd_addr [4 ] = AM_CUSTOM_BDADDR_TEMPLT1 >> 8 ; // mid 8 bits
770
+ if (AM_CUSTOM_BDADDR_TEMPLT1 & 0xFF0000 )
771
+ bd_addr [5 ] = AM_CUSTOM_BDADDR_TEMPLT1 >> 16 ; // high 8 bits
772
+ #endif
765
773
// Send the command to
766
774
HciVendorSpecificCmd (AM_CODE_SET_BDADDR , sizeof (bd_addr ), bd_addr );
767
775
0 commit comments