mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-04-07 16:20:19 +00:00
use HAVE_STDIO in HFP/HSP examples
This commit is contained in:
parent
5e4b451e64
commit
1bbaca756a
@ -76,10 +76,8 @@ const uint32_t hfp_service_buffer[150/4]; // implicit alignment to 4-byte memo
|
|||||||
const uint8_t rfcomm_channel_nr = 1;
|
const uint8_t rfcomm_channel_nr = 1;
|
||||||
const char hfp_ag_service_name[] = "BTstack HFP AG Test";
|
const char hfp_ag_service_name[] = "BTstack HFP AG Test";
|
||||||
|
|
||||||
static bd_addr_t device_addr;
|
static bd_addr_t device_addr = {0x00,0x15,0x83,0x5F,0x9D,0x46};
|
||||||
static bd_addr_t pts_addr = {0x00,0x15,0x83,0x5F,0x9D,0x46};
|
|
||||||
//static bd_addr_t pts_addr = {0x00,0x1b,0xDC,0x07,0x32,0xEF};
|
|
||||||
static bd_addr_t speaker_addr = {0x00, 0x21, 0x3C, 0xAC, 0xF7, 0x38};
|
|
||||||
static uint8_t codecs[1] = {HFP_CODEC_CVSD};
|
static uint8_t codecs[1] = {HFP_CODEC_CVSD};
|
||||||
static uint16_t handle = -1;
|
static uint16_t handle = -1;
|
||||||
static int memory_1_enabled = 1;
|
static int memory_1_enabled = 1;
|
||||||
@ -279,9 +277,6 @@ static void show_usage(void){
|
|||||||
printf("a - establish HFP connection to PTS module\n");
|
printf("a - establish HFP connection to PTS module\n");
|
||||||
// printf("A - release HFP connection to PTS module\n");
|
// printf("A - release HFP connection to PTS module\n");
|
||||||
|
|
||||||
printf("z - establish HFP connection to speaker\n");
|
|
||||||
// printf("Z - release HFP connection to speaker\n");
|
|
||||||
|
|
||||||
printf("b - establish AUDIO connection\n");
|
printf("b - establish AUDIO connection\n");
|
||||||
printf("B - release AUDIO connection\n");
|
printf("B - release AUDIO connection\n");
|
||||||
|
|
||||||
@ -344,11 +339,11 @@ static void show_usage(void){
|
|||||||
printf("---\n");
|
printf("---\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_STDIO
|
||||||
static int stdin_process(struct data_source *ds){
|
static int stdin_process(struct data_source *ds){
|
||||||
read(ds->fd, &cmd, 1);
|
read(ds->fd, &cmd, 1);
|
||||||
switch (cmd){
|
switch (cmd){
|
||||||
case 'a':
|
case 'a':
|
||||||
memcpy(device_addr, pts_addr, 6);
|
|
||||||
log_info("USER:\'%c\'", cmd);
|
log_info("USER:\'%c\'", cmd);
|
||||||
printf("Establish HFP service level connection to PTS module %s...\n", bd_addr_to_str(device_addr));
|
printf("Establish HFP service level connection to PTS module %s...\n", bd_addr_to_str(device_addr));
|
||||||
hfp_ag_establish_service_level_connection(device_addr);
|
hfp_ag_establish_service_level_connection(device_addr);
|
||||||
@ -358,12 +353,6 @@ static int stdin_process(struct data_source *ds){
|
|||||||
printf("Release HFP service level connection.\n");
|
printf("Release HFP service level connection.\n");
|
||||||
hfp_ag_release_service_level_connection(device_addr);
|
hfp_ag_release_service_level_connection(device_addr);
|
||||||
break;
|
break;
|
||||||
case 'z':
|
|
||||||
memcpy(device_addr, speaker_addr, 6);
|
|
||||||
log_info("USER:\'%c\'", cmd);
|
|
||||||
printf("Establish HFP service level connection to %s...\n", bd_addr_to_str(device_addr));
|
|
||||||
hfp_ag_establish_service_level_connection(device_addr);
|
|
||||||
break;
|
|
||||||
case 'Z':
|
case 'Z':
|
||||||
log_info("USER:\'%c\'", cmd);
|
log_info("USER:\'%c\'", cmd);
|
||||||
printf("Release HFP service level connection to %s...\n", bd_addr_to_str(device_addr));
|
printf("Release HFP service level connection to %s...\n", bd_addr_to_str(device_addr));
|
||||||
@ -571,7 +560,7 @@ static int stdin_process(struct data_source *ds){
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void packet_handler(uint8_t * event, uint16_t event_size){
|
static void packet_handler(uint8_t * event, uint16_t event_size){
|
||||||
|
|
||||||
@ -665,6 +654,8 @@ static hfp_phone_number_t subscriber_number = {
|
|||||||
|
|
||||||
int btstack_main(int argc, const char * argv[]);
|
int btstack_main(int argc, const char * argv[]);
|
||||||
int btstack_main(int argc, const char * argv[]){
|
int btstack_main(int argc, const char * argv[]){
|
||||||
|
// HFP HS address is hardcoded, please change it
|
||||||
|
|
||||||
// init L2CAP
|
// init L2CAP
|
||||||
l2cap_init();
|
l2cap_init();
|
||||||
rfcomm_init();
|
rfcomm_init();
|
||||||
@ -686,13 +677,10 @@ int btstack_main(int argc, const char * argv[]){
|
|||||||
|
|
||||||
sdp_register_service_internal(NULL, (uint8_t *)hfp_service_buffer);
|
sdp_register_service_internal(NULL, (uint8_t *)hfp_service_buffer);
|
||||||
|
|
||||||
|
#ifdef HAVE_STDIO
|
||||||
// pre-select pts
|
btstack_stdin_setup(stdin_process);
|
||||||
memcpy(device_addr, pts_addr, 6);
|
#endif
|
||||||
|
|
||||||
// turn on!
|
// turn on!
|
||||||
hci_power_control(HCI_POWER_ON);
|
hci_power_control(HCI_POWER_ON);
|
||||||
|
|
||||||
btstack_stdin_setup(stdin_process);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -78,11 +78,7 @@ const uint32_t hfp_service_buffer[150/4]; // implicit alignment to 4-byte memo
|
|||||||
const uint8_t rfcomm_channel_nr = 1;
|
const uint8_t rfcomm_channel_nr = 1;
|
||||||
const char hfp_hf_service_name[] = "BTstack HFP HF Test";
|
const char hfp_hf_service_name[] = "BTstack HFP HF Test";
|
||||||
|
|
||||||
static bd_addr_t pts_addr = {0x00,0x15,0x83,0x5F,0x9D,0x46};
|
static bd_addr_t device_addr = {0xD8,0xBb,0x2C,0xDf,0xF1,0x08};
|
||||||
//static bd_addr_t pts_addr = {0x00,0x1b,0xDC,0x07,0x32,0xEF};
|
|
||||||
static bd_addr_t phone_addr = {0xD8,0xBb,0x2C,0xDf,0xF1,0x08};
|
|
||||||
|
|
||||||
static bd_addr_t device_addr;
|
|
||||||
static uint16_t handle = -1;
|
static uint16_t handle = -1;
|
||||||
static uint8_t codecs[] = {HFP_CODEC_CVSD, HFP_CODEC_MSBC};
|
static uint8_t codecs[] = {HFP_CODEC_CVSD, HFP_CODEC_MSBC};
|
||||||
static uint16_t indicators[1] = {0x01};
|
static uint16_t indicators[1] = {0x01};
|
||||||
@ -97,8 +93,6 @@ static void show_usage(void){
|
|||||||
printf("\n--- Bluetooth HFP Hands-Free (HF) unit Test Console ---\n");
|
printf("\n--- Bluetooth HFP Hands-Free (HF) unit Test Console ---\n");
|
||||||
printf("---\n");
|
printf("---\n");
|
||||||
|
|
||||||
printf("z - use iPhone as Audiogateway\n");
|
|
||||||
|
|
||||||
printf("a - establish SLC connection to device\n");
|
printf("a - establish SLC connection to device\n");
|
||||||
printf("A - release SLC connection to device\n");
|
printf("A - release SLC connection to device\n");
|
||||||
|
|
||||||
@ -178,6 +172,7 @@ static void show_usage(void){
|
|||||||
printf("---\n");
|
printf("---\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_STDIO
|
||||||
static int stdin_process(struct data_source *ds){
|
static int stdin_process(struct data_source *ds){
|
||||||
read(ds->fd, &cmd, 1);
|
read(ds->fd, &cmd, 1);
|
||||||
|
|
||||||
@ -420,11 +415,6 @@ static int stdin_process(struct data_source *ds){
|
|||||||
printf("Private consulation with call 2\n");
|
printf("Private consulation with call 2\n");
|
||||||
hfp_hf_private_consultation_with_call(device_addr, 2);
|
hfp_hf_private_consultation_with_call(device_addr, 2);
|
||||||
break;
|
break;
|
||||||
case 'z':
|
|
||||||
memcpy(device_addr, phone_addr, 6);
|
|
||||||
log_info("USER:\'%c\'", cmd);
|
|
||||||
printf("Use iPhone %s as Audiogateway.\n", bd_addr_to_str(device_addr));
|
|
||||||
break;
|
|
||||||
case '[':
|
case '[':
|
||||||
log_info("USER:\'%c\'", cmd);
|
log_info("USER:\'%c\'", cmd);
|
||||||
printf("Query Response and Hold status (RHH ?)\n");
|
printf("Query Response and Hold status (RHH ?)\n");
|
||||||
@ -463,7 +453,7 @@ static int stdin_process(struct data_source *ds){
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void packet_handler(uint8_t * event, uint16_t event_size){
|
static void packet_handler(uint8_t * event, uint16_t event_size){
|
||||||
if (event[0] == RFCOMM_EVENT_OPEN_CHANNEL_COMPLETE){
|
if (event[0] == RFCOMM_EVENT_OPEN_CHANNEL_COMPLETE){
|
||||||
@ -527,6 +517,8 @@ static void packet_handler(uint8_t * event, uint16_t event_size){
|
|||||||
|
|
||||||
int btstack_main(int argc, const char * argv[]);
|
int btstack_main(int argc, const char * argv[]);
|
||||||
int btstack_main(int argc, const char * argv[]){
|
int btstack_main(int argc, const char * argv[]){
|
||||||
|
// HFP AG address is hardcoded, please change it
|
||||||
|
|
||||||
// init L2CAP
|
// init L2CAP
|
||||||
l2cap_init();
|
l2cap_init();
|
||||||
rfcomm_init();
|
rfcomm_init();
|
||||||
@ -545,14 +537,10 @@ int btstack_main(int argc, const char * argv[]){
|
|||||||
hfp_hf_create_sdp_record((uint8_t *)hfp_service_buffer, rfcomm_channel_nr, hfp_hf_service_name, 0);
|
hfp_hf_create_sdp_record((uint8_t *)hfp_service_buffer, rfcomm_channel_nr, hfp_hf_service_name, 0);
|
||||||
sdp_register_service_internal(NULL, (uint8_t *)hfp_service_buffer);
|
sdp_register_service_internal(NULL, (uint8_t *)hfp_service_buffer);
|
||||||
|
|
||||||
// pre-select pts
|
#ifdef HAVE_STDIO
|
||||||
memcpy(device_addr, pts_addr, 6);
|
btstack_stdin_setup(stdin_process);
|
||||||
|
#endif
|
||||||
// turn on!
|
// turn on!
|
||||||
hci_power_control(HCI_POWER_ON);
|
hci_power_control(HCI_POWER_ON);
|
||||||
|
|
||||||
btstack_stdin_setup(stdin_process);
|
|
||||||
// printf("Establishing HFP connection to %s...\n", bd_addr_to_str(phone_addr));
|
|
||||||
// hfp_hf_connect(phone_addr);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -80,8 +80,8 @@ static const char hsp_ag_service_name[] = "Audio Gateway Test";
|
|||||||
static uint16_t sco_handle = 0;
|
static uint16_t sco_handle = 0;
|
||||||
|
|
||||||
static char hs_cmd_buffer[100];
|
static char hs_cmd_buffer[100];
|
||||||
// static bd_addr_t current_addr = {0x04,0x0C,0xCE,0xE4,0x85,0xD3};
|
|
||||||
static bd_addr_t current_addr = {0x00,0x1b,0xDC,0x07,0x32,0xEF};
|
static bd_addr_t device_addr = {0x00,0x1b,0xDC,0x07,0x32,0xEF};
|
||||||
|
|
||||||
static int phase = 0;
|
static int phase = 0;
|
||||||
|
|
||||||
@ -126,7 +126,7 @@ static void show_usage(void){
|
|||||||
printf("\n--- Bluetooth HSP Audio Gateway Test Console %s ---\n", bd_addr_to_str(iut_address));
|
printf("\n--- Bluetooth HSP Audio Gateway Test Console %s ---\n", bd_addr_to_str(iut_address));
|
||||||
|
|
||||||
printf("---\n");
|
printf("---\n");
|
||||||
printf("c - Connect to %s\n", bd_addr_to_str(current_addr));
|
printf("c - Connect to %s\n", bd_addr_to_str(device_addr));
|
||||||
printf("C - Disconnect\n");
|
printf("C - Disconnect\n");
|
||||||
printf("a - establish audio connection\n");
|
printf("a - establish audio connection\n");
|
||||||
printf("A - release audio connection\n");
|
printf("A - release audio connection\n");
|
||||||
@ -142,15 +142,15 @@ static void show_usage(void){
|
|||||||
printf("---\n");
|
printf("---\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_STDIO
|
||||||
static int stdin_process(struct data_source *ds){
|
static int stdin_process(struct data_source *ds){
|
||||||
char buffer;
|
char buffer;
|
||||||
read(ds->fd, &buffer, 1);
|
read(ds->fd, &buffer, 1);
|
||||||
|
|
||||||
switch (buffer){
|
switch (buffer){
|
||||||
case 'c':
|
case 'c':
|
||||||
printf("Connect to %s\n", bd_addr_to_str(current_addr));
|
printf("Connect to %s\n", bd_addr_to_str(device_addr));
|
||||||
hsp_ag_connect(current_addr);
|
hsp_ag_connect(device_addr);
|
||||||
break;
|
break;
|
||||||
case 'C':
|
case 'C':
|
||||||
printf("Disconnect.\n");
|
printf("Disconnect.\n");
|
||||||
@ -199,6 +199,7 @@ static int stdin_process(struct data_source *ds){
|
|||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void try_send_sco(void){
|
static void try_send_sco(void){
|
||||||
return;
|
return;
|
||||||
@ -350,7 +351,9 @@ int btstack_main(int argc, const char * argv[]){
|
|||||||
|
|
||||||
hsp_ag_register_packet_handler(packet_handler);
|
hsp_ag_register_packet_handler(packet_handler);
|
||||||
|
|
||||||
|
#ifdef HAVE_STDIO
|
||||||
btstack_stdin_setup(stdin_process);
|
btstack_stdin_setup(stdin_process);
|
||||||
|
#endif
|
||||||
|
|
||||||
gap_set_local_name("BTstack HSP AG");
|
gap_set_local_name("BTstack HSP AG");
|
||||||
hci_discoverable_control(1);
|
hci_discoverable_control(1);
|
||||||
|
@ -80,8 +80,7 @@ static const char hsp_hs_service_name[] = "Headset Test";
|
|||||||
static uint16_t sco_handle = 0;
|
static uint16_t sco_handle = 0;
|
||||||
|
|
||||||
static char hs_cmd_buffer[100];
|
static char hs_cmd_buffer[100];
|
||||||
// static bd_addr_t current_addr = {0x04,0x0C,0xCE,0xE4,0x85,0xD3};
|
static bd_addr_t device_addr = {0x00,0x1b,0xDC,0x07,0x32,0xEF};
|
||||||
static bd_addr_t current_addr = {0x00,0x1b,0xDC,0x07,0x32,0xEF};
|
|
||||||
|
|
||||||
static int phase = 0;
|
static int phase = 0;
|
||||||
|
|
||||||
@ -117,6 +116,7 @@ static const uint8_t sine[] = {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
static void show_usage(void){
|
static void show_usage(void){
|
||||||
uint8_t iut_address_type;
|
uint8_t iut_address_type;
|
||||||
bd_addr_t iut_address;
|
bd_addr_t iut_address;
|
||||||
@ -124,7 +124,7 @@ static void show_usage(void){
|
|||||||
|
|
||||||
printf("\n--- Bluetooth HSP Headset Test Console %s ---\n", bd_addr_to_str(iut_address));
|
printf("\n--- Bluetooth HSP Headset Test Console %s ---\n", bd_addr_to_str(iut_address));
|
||||||
printf("---\n");
|
printf("---\n");
|
||||||
printf("c - Connect to %s\n", bd_addr_to_str(current_addr));
|
printf("c - Connect to %s\n", bd_addr_to_str(device_addr));
|
||||||
printf("C - Disconnect\n");
|
printf("C - Disconnect\n");
|
||||||
printf("a - establish audio connection\n");
|
printf("a - establish audio connection\n");
|
||||||
printf("A - release audio connection\n");
|
printf("A - release audio connection\n");
|
||||||
@ -140,15 +140,15 @@ static void show_usage(void){
|
|||||||
printf("---\n");
|
printf("---\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_STDIO
|
||||||
static int stdin_process(struct data_source *ds){
|
static int stdin_process(struct data_source *ds){
|
||||||
char buffer;
|
char buffer;
|
||||||
read(ds->fd, &buffer, 1);
|
read(ds->fd, &buffer, 1);
|
||||||
|
|
||||||
switch (buffer){
|
switch (buffer){
|
||||||
case 'c':
|
case 'c':
|
||||||
printf("Connect to %s\n", bd_addr_to_str(current_addr));
|
printf("Connect to %s\n", bd_addr_to_str(device_addr));
|
||||||
hsp_hs_connect(current_addr);
|
hsp_hs_connect(device_addr);
|
||||||
break;
|
break;
|
||||||
case 'C':
|
case 'C':
|
||||||
printf("Disconnect.\n");
|
printf("Disconnect.\n");
|
||||||
@ -197,6 +197,7 @@ static int stdin_process(struct data_source *ds){
|
|||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void try_send_sco(void){
|
static void try_send_sco(void){
|
||||||
if (!sco_handle) return;
|
if (!sco_handle) return;
|
||||||
@ -239,7 +240,6 @@ static void packet_handler(uint8_t * event, uint16_t event_size){
|
|||||||
switch (event[0]) {
|
switch (event[0]) {
|
||||||
case BTSTACK_EVENT_STATE:
|
case BTSTACK_EVENT_STATE:
|
||||||
if (event[2] != HCI_STATE_WORKING) break;
|
if (event[2] != HCI_STATE_WORKING) break;
|
||||||
printf("HCI_STATE_WORKING\n");
|
|
||||||
show_usage();
|
show_usage();
|
||||||
break;
|
break;
|
||||||
case HCI_EVENT_NUMBER_OF_COMPLETED_PACKETS:
|
case HCI_EVENT_NUMBER_OF_COMPLETED_PACKETS:
|
||||||
@ -348,7 +348,9 @@ int btstack_main(int argc, const char * argv[]){
|
|||||||
hsp_hs_init(rfcomm_channel_nr);
|
hsp_hs_init(rfcomm_channel_nr);
|
||||||
hsp_hs_register_packet_handler(packet_handler);
|
hsp_hs_register_packet_handler(packet_handler);
|
||||||
|
|
||||||
|
#ifdef HAVE_STDIO
|
||||||
btstack_stdin_setup(stdin_process);
|
btstack_stdin_setup(stdin_process);
|
||||||
|
#endif
|
||||||
|
|
||||||
gap_set_local_name("BTstack HSP HS");
|
gap_set_local_name("BTstack HSP HS");
|
||||||
hci_discoverable_control(1);
|
hci_discoverable_control(1);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user