mirror of https://github.com/ARMmbed/mbed-os.git
BLE: Fix bit access to mapped advertising set.
parent
f6ceafa3e9
commit
7882bb3016
|
@ -2055,21 +2055,18 @@ bool GenericGap::get_adv_set_bit(const uint8_t *bytes, uint8_t bit_number) {
|
||||||
if (bit_number > MAX_ADVERTISING_SETS) {
|
if (bit_number > MAX_ADVERTISING_SETS) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
uint8_t byte = bit_number / 8;
|
uint8_t byte_index = bit_number / 8;
|
||||||
uint8_t bit = bit_number - byte;
|
uint8_t bit_index = bit_number % 8;
|
||||||
bytes += byte;
|
return (bytes[byte_index] >> bit_index) & 0x01;
|
||||||
bool value = ((*bytes) >> bit) & 0x01;
|
|
||||||
return value;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GenericGap::set_adv_set_bit(uint8_t *bytes, uint8_t bit_number) {
|
bool GenericGap::set_adv_set_bit(uint8_t *bytes, uint8_t bit_number) {
|
||||||
if (bit_number > MAX_ADVERTISING_SETS) {
|
if (bit_number > MAX_ADVERTISING_SETS) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
uint8_t byte = bit_number / 8;
|
uint8_t byte_index = bit_number / 8;
|
||||||
uint8_t bit = bit_number - byte;
|
uint8_t bit_index = bit_number % 8;
|
||||||
bytes += byte;
|
bytes[byte_index] |= (0x01 << bit_index);
|
||||||
*bytes = *bytes | (0x01 >> bit);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2077,10 +2074,9 @@ bool GenericGap::clear_adv_set_bit(uint8_t *bytes, uint8_t bit_number) {
|
||||||
if (bit_number > MAX_ADVERTISING_SETS) {
|
if (bit_number > MAX_ADVERTISING_SETS) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
uint8_t byte = bit_number / 8;
|
uint8_t byte_index = bit_number / 8;
|
||||||
uint8_t bit = bit_number - byte;
|
uint8_t bit_index = bit_number % 8;
|
||||||
bytes += byte;
|
bytes[byte_index] &= ~(0x01 << bit_index);
|
||||||
*bytes = *bytes & (0x00 >> bit);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue