mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-29 22:20:37 +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);
|
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){
|
static void app_packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size){
|
||||||
UNUSED(channel);
|
UNUSED(channel);
|
||||||
UNUSED(size);
|
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){
|
if (btstack_event_state_get_state(packet) == HCI_STATE_WORKING){
|
||||||
gap_local_bd_addr(local_addr);
|
gap_local_bd_addr(local_addr);
|
||||||
printf("BD_ADDR: %s\n", bd_addr_to_str(local_addr));
|
printf("BD_ADDR: %s\n", bd_addr_to_str(local_addr));
|
||||||
// start connecting if we're central
|
// generate OOB data
|
||||||
if (we_are_central){
|
sm_generate_sc_oob_data(sc_oob_callback);
|
||||||
printf("CENTRAL: connect to %s\n", bd_addr_to_str(peer_address));
|
|
||||||
gap_connect(peer_address, BD_ADDR_TYPE_LE_PUBLIC);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case HCI_EVENT_LE_META:
|
case HCI_EVENT_LE_META:
|
||||||
@ -333,10 +338,18 @@ static void stdin_process(char c){
|
|||||||
printf("accepting just works\n");
|
printf("accepting just works\n");
|
||||||
sm_just_works_confirm(connection_handle);
|
sm_just_works_confirm(connection_handle);
|
||||||
break;
|
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':
|
case 'd':
|
||||||
printf("decline bonding\n");
|
printf("decline bonding\n");
|
||||||
sm_bonding_decline(connection_handle);
|
sm_bonding_decline(connection_handle);
|
||||||
break;
|
break;
|
||||||
|
case 'g':
|
||||||
|
printf("generate oob data\n");
|
||||||
|
sm_generate_sc_oob_data(sc_oob_callback);
|
||||||
|
break;
|
||||||
case 'x':
|
case 'x':
|
||||||
printf("Exit\n");
|
printf("Exit\n");
|
||||||
exit(0);
|
exit(0);
|
||||||
|
@ -170,7 +170,7 @@ def run(test_descriptor, nodes):
|
|||||||
print('%s started' % node.get_name())
|
print('%s started' % node.get_name())
|
||||||
if state == 'W4_SLAVE_BD_ADDR':
|
if state == 'W4_SLAVE_BD_ADDR':
|
||||||
# peripheral started, start central
|
# peripheral started, start central
|
||||||
state = 'W4_CONNECTED'
|
state = 'W4_MASTER_BD_ADDR'
|
||||||
master_role = test_descriptor['master_role']
|
master_role = test_descriptor['master_role']
|
||||||
master = Node()
|
master = Node()
|
||||||
# configure master
|
# configure master
|
||||||
@ -184,6 +184,15 @@ def run(test_descriptor, nodes):
|
|||||||
master.set_failure(test_descriptor['tester_failure'])
|
master.set_failure(test_descriptor['tester_failure'])
|
||||||
master.start_process()
|
master.start_process()
|
||||||
nodes.append(master)
|
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:'):
|
elif line.startswith('CONNECTED:'):
|
||||||
print('%s connected' % node.get_name())
|
print('%s connected' % node.get_name())
|
||||||
if state == 'W4_CONNECTED':
|
if state == 'W4_CONNECTED':
|
||||||
@ -332,6 +341,7 @@ def run_test(test_descriptor):
|
|||||||
tester_role = 'responder'
|
tester_role = 'responder'
|
||||||
slave_role = 'tester'
|
slave_role = 'tester'
|
||||||
master_role = 'iut'
|
master_role = 'iut'
|
||||||
|
|
||||||
test_descriptor['iut_role' ] = iut_role
|
test_descriptor['iut_role' ] = iut_role
|
||||||
test_descriptor['tester_role'] = tester_role
|
test_descriptor['tester_role'] = tester_role
|
||||||
test_descriptor['master_role'] = master_role
|
test_descriptor['master_role'] = master_role
|
||||||
|
Loading…
x
Reference in New Issue
Block a user