@@ -117,6 +117,7 @@ static void supported_commands(u8_t *data, u16_t len)
117
117
tester_set_bit (cmds , GAP_READ_CONTROLLER_INFO );
118
118
tester_set_bit (cmds , GAP_SET_CONNECTABLE );
119
119
tester_set_bit (cmds , GAP_SET_DISCOVERABLE );
120
+ tester_set_bit (cmds , GAP_SET_BONDABLE );
120
121
tester_set_bit (cmds , GAP_START_ADVERTISING );
121
122
tester_set_bit (cmds , GAP_STOP_ADVERTISING );
122
123
tester_set_bit (cmds , GAP_START_DISCOVERY );
@@ -237,6 +238,27 @@ static void set_discoverable(u8_t *data, u16_t len)
237
238
(u8_t * ) & rp , sizeof (rp ));
238
239
}
239
240
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
+
240
262
static void start_advertising (const u8_t * data , u16_t len )
241
263
{
242
264
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)
723
745
void tester_handle_gap (u8_t opcode , u8_t index , u8_t * data ,
724
746
u16_t len )
725
747
{
748
+ LOG_DBG ("opcode: 0x%02x" , opcode );
726
749
switch (opcode ) {
727
750
case GAP_READ_SUPPORTED_COMMANDS :
728
751
case GAP_READ_CONTROLLER_INDEX_LIST :
@@ -761,6 +784,9 @@ void tester_handle_gap(u8_t opcode, u8_t index, u8_t *data,
761
784
case GAP_SET_DISCOVERABLE :
762
785
set_discoverable (data , len );
763
786
return ;
787
+ case GAP_SET_BONDABLE :
788
+ set_bondable (data , len );
789
+ return ;
764
790
case GAP_START_ADVERTISING :
765
791
start_advertising (data , len );
766
792
return ;
0 commit comments