example/spp_streamer_client: use state to decide on next action on inquiry complete

This commit is contained in:
Matthias Ringwald 2017-06-12 11:24:11 +02:00
parent 287c758dd4
commit 7c03fe59ad

View File

@ -189,25 +189,35 @@ static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *pack
break; break;
case GAP_EVENT_INQUIRY_RESULT: case GAP_EVENT_INQUIRY_RESULT:
if (state != W4_PEER_COD) break;
class_of_device = gap_event_inquiry_result_get_class_of_device(packet); class_of_device = gap_event_inquiry_result_get_class_of_device(packet);
gap_event_inquiry_result_get_bd_addr(packet, event_addr); gap_event_inquiry_result_get_bd_addr(packet, event_addr);
if (class_of_device == TEST_COD){ if (class_of_device == TEST_COD){
memcpy(peer_addr, event_addr, 6); memcpy(peer_addr, event_addr, 6);
printf("Peer found: %s\n", bd_addr_to_str(peer_addr)); printf("Peer found: %s\n", bd_addr_to_str(peer_addr));
stop_scan(); stop_scan();
printf("Start to connect\n");
state = W4_RFCOMM_CHANNEL;
rfcomm_create_channel(packet_handler, peer_addr, RFCOMM_SERVER_CHANNEL, NULL);
} else { } else {
printf("Device found: %s with COD: 0x%06x\n", bd_addr_to_str(event_addr), (int) class_of_device); printf("Device found: %s with COD: 0x%06x\n", bd_addr_to_str(event_addr), (int) class_of_device);
} }
break; break;
case GAP_EVENT_INQUIRY_COMPLETE: case GAP_EVENT_INQUIRY_COMPLETE:
printf("Inquiry complete\n"); switch (state){
printf("Peer not found, starting scan again\n"); case W4_PEER_COD:
start_scan(); printf("Inquiry complete\n");
printf("Peer not found, starting scan again\n");
start_scan();
break;
case W4_SCAN_COMPLETE:
printf("Start to connect\n");
state = W4_RFCOMM_CHANNEL;
rfcomm_create_channel(packet_handler, peer_addr, RFCOMM_SERVER_CHANNEL, NULL);
break;
default:
break;
}
if (state == W4_PEER_COD){
}
break; break;
default: default:
@ -217,6 +227,7 @@ static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *pack
case RFCOMM_DATA_PACKET: case RFCOMM_DATA_PACKET:
test_track_transferred(size); test_track_transferred(size);
#if 0 #if 0
printf("RCV: '"); printf("RCV: '");
for (i=0;i<size;i++){ for (i=0;i<size;i++){