mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-24 13:43:38 +00:00
pts/sm_test: generate sc oob data on start, track oob data, manually start central connect
This commit is contained in:
parent
cd3c43a4cf
commit
b0ecbe6b0a
@ -234,6 +234,14 @@ static void handle_gatt_client_event(uint8_t packet_type, uint16_t channel, uint
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
static void sc_oob_callback(const uint8_t * confirm_value, const uint8_t * random_value){
|
||||
printf("OOB_CONFIRM: ");
|
||||
printf_hexdump(confirm_value, 16);
|
||||
printf("OOB_RANDOM: ");
|
||||
printf_hexdump(random_value, 16);
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
static void app_packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size){
|
||||
UNUSED(channel);
|
||||
UNUSED(size);
|
||||
@ -246,11 +254,8 @@ static void app_packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *
|
||||
if (btstack_event_state_get_state(packet) == HCI_STATE_WORKING){
|
||||
gap_local_bd_addr(local_addr);
|
||||
printf("BD_ADDR: %s\n", bd_addr_to_str(local_addr));
|
||||
// start connecting if we're central
|
||||
if (we_are_central){
|
||||
printf("CENTRAL: connect to %s\n", bd_addr_to_str(peer_address));
|
||||
gap_connect(peer_address, BD_ADDR_TYPE_LE_PUBLIC);
|
||||
}
|
||||
// generate OOB data
|
||||
sm_generate_sc_oob_data(sc_oob_callback);
|
||||
}
|
||||
break;
|
||||
case HCI_EVENT_LE_META:
|
||||
@ -333,10 +338,18 @@ static void stdin_process(char c){
|
||||
printf("accepting just works\n");
|
||||
sm_just_works_confirm(connection_handle);
|
||||
break;
|
||||
case 'c':
|
||||
printf("CENTRAL: connect to %s\n", bd_addr_to_str(peer_address));
|
||||
gap_connect(peer_address, BD_ADDR_TYPE_LE_PUBLIC);
|
||||
break;
|
||||
case 'd':
|
||||
printf("decline bonding\n");
|
||||
sm_bonding_decline(connection_handle);
|
||||
break;
|
||||
case 'g':
|
||||
printf("generate oob data\n");
|
||||
sm_generate_sc_oob_data(sc_oob_callback);
|
||||
break;
|
||||
case 'x':
|
||||
printf("Exit\n");
|
||||
exit(0);
|
||||
|
@ -170,7 +170,7 @@ def run(test_descriptor, nodes):
|
||||
print('%s started' % node.get_name())
|
||||
if state == 'W4_SLAVE_BD_ADDR':
|
||||
# peripheral started, start central
|
||||
state = 'W4_CONNECTED'
|
||||
state = 'W4_MASTER_BD_ADDR'
|
||||
master_role = test_descriptor['master_role']
|
||||
master = Node()
|
||||
# configure master
|
||||
@ -184,6 +184,15 @@ def run(test_descriptor, nodes):
|
||||
master.set_failure(test_descriptor['tester_failure'])
|
||||
master.start_process()
|
||||
nodes.append(master)
|
||||
if state == 'W4_MASTER_BD_ADDR':
|
||||
# central started, start connecting
|
||||
node.write('c')
|
||||
elif line.startswith('OOB_CONFIRM:'):
|
||||
confirm = line.split('OOB_CONFIRM: ')[1]
|
||||
test_descriptor[node.get_name()+'_oob_confirm'] = confirm
|
||||
elif line.startswith('OOB_RANDOM:'):
|
||||
random = line.split('OOB_RANDOM: ')[1]
|
||||
test_descriptor[node.get_name()+'_oob_random'] = random
|
||||
elif line.startswith('CONNECTED:'):
|
||||
print('%s connected' % node.get_name())
|
||||
if state == 'W4_CONNECTED':
|
||||
@ -332,6 +341,7 @@ def run_test(test_descriptor):
|
||||
tester_role = 'responder'
|
||||
slave_role = 'tester'
|
||||
master_role = 'iut'
|
||||
|
||||
test_descriptor['iut_role' ] = iut_role
|
||||
test_descriptor['tester_role'] = tester_role
|
||||
test_descriptor['master_role'] = master_role
|
||||
|
Loading…
x
Reference in New Issue
Block a user