Skip to content

Commit c3f5677

Browse files
carlescufijhedberg
authored andcommitted
Bluetooth: tester: Implement the GAP_SET_BONDABLE command
Implement the BTP GAP command to set bondable on or off. Signed-off-by: Carles Cufi <[email protected]>
1 parent 4a59e8d commit c3f5677

File tree

1 file changed

+26
-0
lines changed
  • tests/bluetooth/tester/src

1 file changed

+26
-0
lines changed

tests/bluetooth/tester/src/gap.c

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ static void supported_commands(u8_t *data, u16_t len)
117117
tester_set_bit(cmds, GAP_READ_CONTROLLER_INFO);
118118
tester_set_bit(cmds, GAP_SET_CONNECTABLE);
119119
tester_set_bit(cmds, GAP_SET_DISCOVERABLE);
120+
tester_set_bit(cmds, GAP_SET_BONDABLE);
120121
tester_set_bit(cmds, GAP_START_ADVERTISING);
121122
tester_set_bit(cmds, GAP_STOP_ADVERTISING);
122123
tester_set_bit(cmds, GAP_START_DISCOVERY);
@@ -237,6 +238,27 @@ static void set_discoverable(u8_t *data, u16_t len)
237238
(u8_t *) &rp, sizeof(rp));
238239
}
239240

241+
static void set_bondable(u8_t *data, u16_t len)
242+
{
243+
const struct gap_set_bondable_cmd *cmd = (void *) data;
244+
struct gap_set_bondable_rp rp;
245+
246+
LOG_DBG("cmd->bondable: %d", cmd->bondable);
247+
248+
if (cmd->bondable) {
249+
atomic_set_bit(&current_settings, GAP_SETTINGS_BONDABLE);
250+
} else {
251+
atomic_clear_bit(&current_settings, GAP_SETTINGS_BONDABLE);
252+
}
253+
254+
bt_set_bondable(cmd->bondable);
255+
256+
rp.current_settings = sys_cpu_to_le32(current_settings);
257+
258+
tester_send(BTP_SERVICE_ID_GAP, GAP_SET_BONDABLE, CONTROLLER_INDEX,
259+
(u8_t *) &rp, sizeof(rp));
260+
}
261+
240262
static void start_advertising(const u8_t *data, u16_t len)
241263
{
242264
const struct gap_start_advertising_cmd *cmd = (void *) data;
@@ -723,6 +745,7 @@ static void conn_param_update(const u8_t *data, u16_t len)
723745
void tester_handle_gap(u8_t opcode, u8_t index, u8_t *data,
724746
u16_t len)
725747
{
748+
LOG_DBG("opcode: 0x%02x", opcode);
726749
switch (opcode) {
727750
case GAP_READ_SUPPORTED_COMMANDS:
728751
case GAP_READ_CONTROLLER_INDEX_LIST:
@@ -761,6 +784,9 @@ void tester_handle_gap(u8_t opcode, u8_t index, u8_t *data,
761784
case GAP_SET_DISCOVERABLE:
762785
set_discoverable(data, len);
763786
return;
787+
case GAP_SET_BONDABLE:
788+
set_bondable(data, len);
789+
return;
764790
case GAP_START_ADVERTISING:
765791
start_advertising(data, len);
766792
return;

0 commit comments

Comments
 (0)