@@ -989,6 +989,37 @@ static int cmd_clear(const struct shell *sh, size_t argc, char *argv[])
989
989
return err ;
990
990
}
991
991
992
+ static int cmd_select (const struct shell * sh , size_t argc , char * argv [])
993
+ {
994
+ char addr_str [BT_ADDR_STR_LEN ];
995
+ struct bt_conn * conn ;
996
+ bt_addr_t addr ;
997
+ int err ;
998
+
999
+ err = bt_addr_from_str (argv [1 ], & addr );
1000
+ if (err ) {
1001
+ shell_error (sh , "Invalid peer address (err %d)" , err );
1002
+ return err ;
1003
+ }
1004
+
1005
+ conn = bt_conn_lookup_addr_br (& addr );
1006
+ if (!conn ) {
1007
+ shell_error (sh , "No matching connection found" );
1008
+ return - ENOEXEC ;
1009
+ }
1010
+
1011
+ if (default_conn != NULL ) {
1012
+ bt_conn_unref (default_conn );
1013
+ }
1014
+
1015
+ default_conn = conn ;
1016
+
1017
+ bt_addr_to_str (& addr , addr_str , sizeof (addr_str ));
1018
+ shell_print (sh , "Selected conn is now: %s" , addr_str );
1019
+
1020
+ return 0 ;
1021
+ }
1022
+
992
1023
static const char * get_conn_type_str (uint8_t type )
993
1024
{
994
1025
switch (type ) {
@@ -1101,6 +1132,7 @@ SHELL_STATIC_SUBCMD_SET_CREATE(br_cmds,
1101
1132
SHELL_CMD_ARG (connect , NULL , "<address>" , cmd_connect , 2 , 0 ),
1102
1133
SHELL_CMD_ARG (bonds , NULL , HELP_NONE , cmd_bonds , 1 , 0 ),
1103
1134
SHELL_CMD_ARG (clear , NULL , "[all] [" HELP_ADDR "]" , cmd_clear , 2 , 0 ),
1135
+ SHELL_CMD_ARG (select , NULL , HELP_ADDR , cmd_select , 2 , 0 ),
1104
1136
SHELL_CMD_ARG (info , NULL , HELP_ADDR , cmd_info , 1 , 1 ),
1105
1137
SHELL_CMD_ARG (discovery , NULL , "<value: on, off> [length: 1-48] [mode: limited]" ,
1106
1138
cmd_discovery , 2 , 2 ),
0 commit comments