mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-06 16:13:43 +00:00
use getters in RFCOMM_EVENT_INCOMING_CONNECTION and RFCOMM_EVENT_CHANNEL_OPENED
This commit is contained in:
parent
a6ef64ba22
commit
caa8239151
@ -121,23 +121,22 @@ static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *pack
|
||||
|
||||
case RFCOMM_EVENT_INCOMING_CONNECTION:
|
||||
// data: event (8), len(8), address(48), channel (8), rfcomm_cid (16)
|
||||
reverse_bd_addr(&packet[2],
|
||||
event_addr);
|
||||
rfcomm_channel_nr = packet[8];
|
||||
rfcomm_channel_id = little_endian_read_16(packet, 9);
|
||||
printf("RFCOMM channel %u requested for %s\n", rfcomm_channel_nr, bd_addr_to_str(event_addr));
|
||||
rfcomm_event_incoming_connection_get_bd_addr(packet, event_addr);
|
||||
rfcomm_channel_nr = rfcomm_event_incoming_connection_get_server_channel(packet);
|
||||
rfcomm_channel_id = rfcomm_event_incoming_connection_get_rfcomm_cid(packet);
|
||||
printf("RFCOMM channel %u requested for %s\n", rfcomm_channel_nr, bd_addr_to_str(event_addr));
|
||||
rfcomm_accept_connection(rfcomm_channel_id);
|
||||
break;
|
||||
|
||||
case RFCOMM_EVENT_CHANNEL_OPENED:
|
||||
// data: event(8), len(8), status (8), address (48), server channel(8), rfcomm_cid(16), max frame size(16)
|
||||
if (packet[2]) {
|
||||
printf("RFCOMM channel open failed, status %u\n", packet[2]);
|
||||
} else {
|
||||
rfcomm_channel_id = little_endian_read_16(packet, 12);
|
||||
mtu = little_endian_read_16(packet, 14);
|
||||
printf("\nRFCOMM channel open succeeded. New RFCOMM Channel ID %u, max frame size %u\n", rfcomm_channel_id, mtu);
|
||||
}
|
||||
if (rfcomm_event_channel_opened_get_status(packet)) {
|
||||
printf("RFCOMM channel open failed, status %u\n", rfcomm_event_channel_opened_get_status(packet));
|
||||
} else {
|
||||
rfcomm_channel_id = rfcomm_event_channel_opened_get_rfcomm_cid(packet);
|
||||
mtu = rfcomm_event_channel_opened_get_max_frame_size(packet);
|
||||
printf("RFCOMM channel open succeeded. New RFCOMM Channel ID %u, max frame size %u\n", rfcomm_channel_id, mtu);
|
||||
}
|
||||
break;
|
||||
|
||||
case RFCOMM_EVENT_CHANNEL_CLOSED:
|
||||
|
@ -201,20 +201,20 @@ static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *pack
|
||||
|
||||
case RFCOMM_EVENT_INCOMING_CONNECTION:
|
||||
// data: event (8), len(8), address(48), channel (8), rfcomm_cid (16)
|
||||
reverse_bd_addr(&packet[2], event_addr);
|
||||
rfcomm_channel_nr = packet[8];
|
||||
rfcomm_channel_id = little_endian_read_16(packet, 9);
|
||||
rfcomm_event_incoming_connection_get_bd_addr(packet, event_addr);
|
||||
rfcomm_channel_nr = rfcomm_event_incoming_connection_get_server_channel(packet);
|
||||
rfcomm_channel_id = rfcomm_event_incoming_connection_get_rfcomm_cid(packet);
|
||||
printf("RFCOMM channel %u requested for %s\n", rfcomm_channel_nr, bd_addr_to_str(event_addr));
|
||||
rfcomm_accept_connection(rfcomm_channel_id);
|
||||
break;
|
||||
|
||||
case RFCOMM_EVENT_CHANNEL_OPENED:
|
||||
// data: event(8), len(8), status (8), address (48), server channel(8), rfcomm_cid(16), max frame size(16)
|
||||
if (packet[2]) {
|
||||
printf("RFCOMM channel open failed, status %u\n", packet[2]);
|
||||
if (rfcomm_event_channel_opened_get_status(packet)) {
|
||||
printf("RFCOMM channel open failed, status %u\n", rfcomm_event_channel_opened_get_status(packet));
|
||||
} else {
|
||||
rfcomm_channel_id = little_endian_read_16(packet, 12);
|
||||
mtu = little_endian_read_16(packet, 14);
|
||||
rfcomm_channel_id = rfcomm_event_channel_opened_get_rfcomm_cid(packet);
|
||||
mtu = rfcomm_event_channel_opened_get_max_frame_size(packet);
|
||||
printf("RFCOMM channel open succeeded. New RFCOMM Channel ID %u, max frame size %u\n", rfcomm_channel_id, mtu);
|
||||
}
|
||||
break;
|
||||
|
@ -168,21 +168,21 @@ static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *pack
|
||||
|
||||
case RFCOMM_EVENT_INCOMING_CONNECTION:
|
||||
// data: event (8), len(8), address(48), channel (8), rfcomm_cid (16)
|
||||
reverse_bd_addr(&packet[2], event_addr);
|
||||
rfcomm_channel_nr = packet[8];
|
||||
rfcomm_channel_id = little_endian_read_16(packet, 9);
|
||||
printf("RFCOMM channel %u requested for %s\n\r", rfcomm_channel_nr, bd_addr_to_str(event_addr));
|
||||
rfcomm_event_incoming_connection_get_bd_addr(packet, event_addr);
|
||||
rfcomm_channel_nr = rfcomm_event_incoming_connection_get_server_channel(packet);
|
||||
rfcomm_channel_id = rfcomm_event_incoming_connection_get_rfcomm_cid(packet);
|
||||
printf("RFCOMM channel %u requested for %s\n", rfcomm_channel_nr, bd_addr_to_str(event_addr));
|
||||
rfcomm_accept_connection(rfcomm_channel_id);
|
||||
break;
|
||||
|
||||
|
||||
case RFCOMM_EVENT_CHANNEL_OPENED:
|
||||
// data: event(8), len(8), status (8), address (48), server channel(8), rfcomm_cid(16), max frame size(16)
|
||||
if (packet[2]) {
|
||||
printf("RFCOMM channel open failed, status %u\n\r", packet[2]);
|
||||
if (rfcomm_event_channel_opened_get_status(packet)) {
|
||||
printf("RFCOMM channel open failed, status %u\n", rfcomm_event_channel_opened_get_status(packet));
|
||||
} else {
|
||||
rfcomm_channel_id = little_endian_read_16(packet, 12);
|
||||
mtu = little_endian_read_16(packet, 14);
|
||||
printf("\n\rRFCOMM channel open succeeded. New RFCOMM Channel ID %u, max frame size %u\n\r", rfcomm_channel_id, mtu);
|
||||
rfcomm_channel_id = rfcomm_event_channel_opened_get_rfcomm_cid(packet);
|
||||
mtu = rfcomm_event_channel_opened_get_max_frame_size(packet);
|
||||
printf("RFCOMM channel open succeeded. New RFCOMM Channel ID %u, max frame size %u\n", rfcomm_channel_id, mtu);
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -114,26 +114,25 @@ void packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint
|
||||
bt_send_cmd(&hci_pin_code_request_reply, &event_addr, 4, "0000");
|
||||
break;
|
||||
|
||||
case RFCOMM_EVENT_INCOMING_CONNECTION:
|
||||
// data: event (8), len(8), address(48), channel (8), rfcomm_cid (16)
|
||||
reverse_bd_addr(&packet[2],
|
||||
event_addr);
|
||||
rfcomm_channel_nr = packet[8];
|
||||
rfcomm_channel_id = little_endian_read_16(packet, 9);
|
||||
printf("RFCOMM channel %u requested for %s\n", rfcomm_channel_nr, bd_addr_to_str(event_addr));
|
||||
bt_send_cmd(&rfcomm_accept_connection_cmd, rfcomm_channel_id);
|
||||
break;
|
||||
|
||||
case RFCOMM_EVENT_CHANNEL_OPENED:
|
||||
// data: event(8), len(8), status (8), address (48), handle(16), server channel(8), rfcomm_cid(16), max frame size(16)
|
||||
if (packet[2]) {
|
||||
printf("RFCOMM channel open failed, status %u\n", packet[2]);
|
||||
} else {
|
||||
rfcomm_channel_id = little_endian_read_16(packet, 12);
|
||||
mtu = little_endian_read_16(packet, 14);
|
||||
printf("RFCOMM channel open succeeded. New RFCOMM Channel ID %u, max frame size %u\n", rfcomm_channel_id, mtu);
|
||||
}
|
||||
break;
|
||||
case RFCOMM_EVENT_INCOMING_CONNECTION:
|
||||
// data: event (8), len(8), address(48), channel (8), rfcomm_cid (16)
|
||||
rfcomm_event_incoming_connection_get_bd_addr(packet, event_addr);
|
||||
rfcomm_channel_nr = rfcomm_event_incoming_connection_get_server_channel(packet);
|
||||
rfcomm_channel_id = rfcomm_event_incoming_connection_get_rfcomm_cid(packet);
|
||||
printf("RFCOMM channel %u requested for %s\n", rfcomm_channel_nr, bd_addr_to_str(event_addr));
|
||||
rfcomm_accept_connection(rfcomm_channel_id);
|
||||
break;
|
||||
|
||||
case RFCOMM_EVENT_CHANNEL_OPENED:
|
||||
// data: event(8), len(8), status (8), address (48), server channel(8), rfcomm_cid(16), max frame size(16)
|
||||
if (rfcomm_event_channel_opened_get_status(packet)) {
|
||||
printf("RFCOMM channel open failed, status %u\n", rfcomm_event_channel_opened_get_status(packet));
|
||||
} else {
|
||||
rfcomm_channel_id = rfcomm_event_channel_opened_get_rfcomm_cid(packet);
|
||||
mtu = rfcomm_event_channel_opened_get_max_frame_size(packet);
|
||||
printf("RFCOMM channel open succeeded. New RFCOMM Channel ID %u, max frame size %u\n", rfcomm_channel_id, mtu);
|
||||
}
|
||||
break;
|
||||
|
||||
case HCI_EVENT_DISCONNECTION_COMPLETE:
|
||||
// connection closed -> quit test app
|
||||
|
@ -134,30 +134,27 @@ void packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint
|
||||
hci_event_pin_code_request_get_bd_addr(packet, event_addr);
|
||||
bt_send_cmd(&hci_pin_code_request_reply, &event_addr, 4, "0000");
|
||||
break;
|
||||
|
||||
case RFCOMM_EVENT_INCOMING_CONNECTION:
|
||||
// data: event (8), len(8), address(48), channel (8), rfcomm_cid (16)
|
||||
reverse_bd_addr(&packet[2],
|
||||
event_addr);
|
||||
rfcomm_channel_nr = packet[8];
|
||||
rfcomm_channel_id = little_endian_read_16(packet, 9);
|
||||
printf("RFCOMM channel %u requested for %s\n", rfcomm_channel_nr, bd_addr_to_str(event_addr));
|
||||
bt_send_cmd(&rfcomm_accept_connection_cmd, rfcomm_channel_id);
|
||||
break;
|
||||
|
||||
case RFCOMM_EVENT_CHANNEL_OPENED:
|
||||
// data: event(8), len(8), status (8), address (48), handle(16), server channel(8), rfcomm_cid(16), max frame size(16)
|
||||
if (packet[2]) {
|
||||
printf("RFCOMM channel open failed, status %u\n", packet[2]);
|
||||
} else {
|
||||
// data: event(8), len(8), status (8), address (48), handle (16), server channel(8), rfcomm_cid(16), max frame size(16)
|
||||
rfcomm_channel_id = little_endian_read_16(packet, 12);
|
||||
mtu = little_endian_read_16(packet, 14);
|
||||
|
||||
printf("RFCOMM channel open succeeded. New RFCOMM Channel ID %u, max frame size %u\n", rfcomm_channel_id, mtu);
|
||||
|
||||
case RFCOMM_EVENT_INCOMING_CONNECTION:
|
||||
// data: event (8), len(8), address(48), channel (8), rfcomm_cid (16)
|
||||
rfcomm_event_incoming_connection_get_bd_addr(packet, event_addr);
|
||||
rfcomm_channel_nr = rfcomm_event_incoming_connection_get_server_channel(packet);
|
||||
rfcomm_channel_id = rfcomm_event_incoming_connection_get_rfcomm_cid(packet);
|
||||
printf("RFCOMM channel %u requested for %s\n", rfcomm_channel_nr, bd_addr_to_str(event_addr));
|
||||
rfcomm_accept_connection(rfcomm_channel_id);
|
||||
break;
|
||||
|
||||
case RFCOMM_EVENT_CHANNEL_OPENED:
|
||||
// data: event(8), len(8), status (8), address (48), server channel(8), rfcomm_cid(16), max frame size(16)
|
||||
if (rfcomm_event_channel_opened_get_status(packet)) {
|
||||
printf("RFCOMM channel open failed, status %u\n", rfcomm_event_channel_opened_get_status(packet));
|
||||
} else {
|
||||
rfcomm_channel_id = rfcomm_event_channel_opened_get_rfcomm_cid(packet);
|
||||
mtu = rfcomm_event_channel_opened_get_max_frame_size(packet);
|
||||
printf("RFCOMM channel open succeeded. New RFCOMM Channel ID %u, max frame size %u\n", rfcomm_channel_id, mtu);
|
||||
}
|
||||
break;
|
||||
|
||||
break;
|
||||
|
||||
case HCI_EVENT_DISCONNECTION_COMPLETE:
|
||||
// connection closed -> quit test app
|
||||
printf("Basebank connection closed\n");
|
||||
|
@ -124,25 +124,24 @@ static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *pack
|
||||
break;
|
||||
|
||||
case RFCOMM_EVENT_INCOMING_CONNECTION:
|
||||
// data: event (8), len(8), address(48), channel (8), rfcomm_cid (16)
|
||||
reverse_bd_addr(&packet[2],
|
||||
event_addr);
|
||||
rfcomm_channel_nr = packet[8];
|
||||
rfcomm_channel_id = little_endian_read_16(packet, 9);
|
||||
printf("RFCOMM channel %u requested for %s\n\r", rfcomm_channel_nr, bd_addr_to_str(event_addr));
|
||||
// data: event (8), len(8), address(48), channel (8), rfcomm_cid (16)
|
||||
rfcomm_event_incoming_connection_get_bd_addr(packet, event_addr);
|
||||
rfcomm_channel_nr = rfcomm_event_incoming_connection_get_server_channel(packet);
|
||||
rfcomm_channel_id = rfcomm_event_incoming_connection_get_rfcomm_cid(packet);
|
||||
printf("RFCOMM channel %u requested for %s\n", rfcomm_channel_nr, bd_addr_to_str(event_addr));
|
||||
rfcomm_accept_connection(rfcomm_channel_id);
|
||||
break;
|
||||
|
||||
case RFCOMM_EVENT_CHANNEL_OPENED:
|
||||
// data: event(8), len(8), status (8), address (48), server channel(8), rfcomm_cid(16), max frame size(16)
|
||||
if (packet[2]) {
|
||||
printf("RFCOMM channel open failed, status %u\n\r", packet[2]);
|
||||
} else {
|
||||
rfcomm_channel_id = little_endian_read_16(packet, 12);
|
||||
mtu = little_endian_read_16(packet, 14);
|
||||
printf("\n\rRFCOMM channel open succeeded. New RFCOMM Channel ID %u, max frame size %u\n\r", rfcomm_channel_id, mtu);
|
||||
}
|
||||
break;
|
||||
break;
|
||||
|
||||
case RFCOMM_EVENT_CHANNEL_OPENED:
|
||||
// data: event(8), len(8), status (8), address (48), server channel(8), rfcomm_cid(16), max frame size(16)
|
||||
if (rfcomm_event_channel_opened_get_status(packet)) {
|
||||
printf("RFCOMM channel open failed, status %u\n", rfcomm_event_channel_opened_get_status(packet));
|
||||
} else {
|
||||
rfcomm_channel_id = rfcomm_event_channel_opened_get_rfcomm_cid(packet);
|
||||
mtu = rfcomm_event_channel_opened_get_max_frame_size(packet);
|
||||
printf("RFCOMM channel open succeeded. New RFCOMM Channel ID %u, max frame size %u\n", rfcomm_channel_id, mtu);
|
||||
}
|
||||
break;
|
||||
|
||||
case RFCOMM_EVENT_CHANNEL_CLOSED:
|
||||
rfcomm_channel_id = 0;
|
||||
|
@ -162,21 +162,21 @@ static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *pack
|
||||
|
||||
case RFCOMM_EVENT_INCOMING_CONNECTION:
|
||||
// data: event (8), len(8), address(48), channel (8), rfcomm_cid (16)
|
||||
reverse_bd_addr(&packet[2], event_addr);
|
||||
rfcomm_channel_nr = packet[8];
|
||||
rfcomm_channel_id = little_endian_read_16(packet, 9);
|
||||
printf("RFCOMM channel %u requested for %s\n\r", rfcomm_channel_nr, bd_addr_to_str(event_addr));
|
||||
rfcomm_event_incoming_connection_get_bd_addr(packet, event_addr);
|
||||
rfcomm_channel_nr = rfcomm_event_incoming_connection_get_server_channel(packet);
|
||||
rfcomm_channel_id = rfcomm_event_incoming_connection_get_rfcomm_cid(packet);
|
||||
printf("RFCOMM channel %u requested for %s\n", rfcomm_channel_nr, bd_addr_to_str(event_addr));
|
||||
rfcomm_accept_connection(rfcomm_channel_id);
|
||||
break;
|
||||
|
||||
|
||||
case RFCOMM_EVENT_CHANNEL_OPENED:
|
||||
// data: event(8), len(8), status (8), address (48), server channel(8), rfcomm_cid(16), max frame size(16)
|
||||
if (packet[2]) {
|
||||
printf("RFCOMM channel open failed, status %u\n\r", packet[2]);
|
||||
if (rfcomm_event_channel_opened_get_status(packet)) {
|
||||
printf("RFCOMM channel open failed, status %u\n", rfcomm_event_channel_opened_get_status(packet));
|
||||
} else {
|
||||
rfcomm_channel_id = little_endian_read_16(packet, 12);
|
||||
mtu = little_endian_read_16(packet, 14);
|
||||
printf("\n\rRFCOMM channel open succeeded. New RFCOMM Channel ID %u, max frame size %u\n\r", rfcomm_channel_id, mtu);
|
||||
rfcomm_channel_id = rfcomm_event_channel_opened_get_rfcomm_cid(packet);
|
||||
mtu = rfcomm_event_channel_opened_get_max_frame_size(packet);
|
||||
printf("RFCOMM channel open succeeded. New RFCOMM Channel ID %u, max frame size %u\n", rfcomm_channel_id, mtu);
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -123,25 +123,24 @@ static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *pack
|
||||
break;
|
||||
|
||||
case RFCOMM_EVENT_INCOMING_CONNECTION:
|
||||
// data: event (8), len(8), address(48), channel (8), rfcomm_cid (16)
|
||||
reverse_bd_addr(&packet[2],
|
||||
event_addr);
|
||||
rfcomm_channel_nr = packet[8];
|
||||
rfcomm_channel_id = little_endian_read_16(packet, 9);
|
||||
printf("RFCOMM channel %u requested for %s\n\r", rfcomm_channel_nr, bd_addr_to_str(event_addr));
|
||||
// data: event (8), len(8), address(48), channel (8), rfcomm_cid (16)
|
||||
rfcomm_event_incoming_connection_get_bd_addr(packet, event_addr);
|
||||
rfcomm_channel_nr = rfcomm_event_incoming_connection_get_server_channel(packet);
|
||||
rfcomm_channel_id = rfcomm_event_incoming_connection_get_rfcomm_cid(packet);
|
||||
printf("RFCOMM channel %u requested for %s\n", rfcomm_channel_nr, bd_addr_to_str(event_addr));
|
||||
rfcomm_accept_connection(rfcomm_channel_id);
|
||||
break;
|
||||
|
||||
case RFCOMM_EVENT_CHANNEL_OPENED:
|
||||
// data: event(8), len(8), status (8), address (48), server channel(8), rfcomm_cid(16), max frame size(16)
|
||||
if (packet[2]) {
|
||||
printf("RFCOMM channel open failed, status %u\n\r", packet[2]);
|
||||
} else {
|
||||
rfcomm_channel_id = little_endian_read_16(packet, 12);
|
||||
mtu = little_endian_read_16(packet, 14);
|
||||
printf("\n\rRFCOMM channel open succeeded. New RFCOMM Channel ID %u, max frame size %u\n\r", rfcomm_channel_id, mtu);
|
||||
}
|
||||
break;
|
||||
break;
|
||||
|
||||
case RFCOMM_EVENT_CHANNEL_OPENED:
|
||||
// data: event(8), len(8), status (8), address (48), server channel(8), rfcomm_cid(16), max frame size(16)
|
||||
if (rfcomm_event_channel_opened_get_status(packet)) {
|
||||
printf("RFCOMM channel open failed, status %u\n", rfcomm_event_channel_opened_get_status(packet));
|
||||
} else {
|
||||
rfcomm_channel_id = rfcomm_event_channel_opened_get_rfcomm_cid(packet);
|
||||
mtu = rfcomm_event_channel_opened_get_max_frame_size(packet);
|
||||
printf("RFCOMM channel open succeeded. New RFCOMM Channel ID %u, max frame size %u\n", rfcomm_channel_id, mtu);
|
||||
}
|
||||
break;
|
||||
|
||||
case RFCOMM_EVENT_CHANNEL_CLOSED:
|
||||
rfcomm_channel_id = 0;
|
||||
|
@ -163,21 +163,21 @@ static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *pack
|
||||
|
||||
case RFCOMM_EVENT_INCOMING_CONNECTION:
|
||||
// data: event (8), len(8), address(48), channel (8), rfcomm_cid (16)
|
||||
reverse_bd_addr(&packet[2], event_addr);
|
||||
rfcomm_channel_nr = packet[8];
|
||||
rfcomm_channel_id = little_endian_read_16(packet, 9);
|
||||
printf("RFCOMM channel %u requested for %s\n\r", rfcomm_channel_nr, bd_addr_to_str(event_addr));
|
||||
rfcomm_event_incoming_connection_get_bd_addr(packet, event_addr);
|
||||
rfcomm_channel_nr = rfcomm_event_incoming_connection_get_server_channel(packet);
|
||||
rfcomm_channel_id = rfcomm_event_incoming_connection_get_rfcomm_cid(packet);
|
||||
printf("RFCOMM channel %u requested for %s\n", rfcomm_channel_nr, bd_addr_to_str(event_addr));
|
||||
rfcomm_accept_connection(rfcomm_channel_id);
|
||||
break;
|
||||
|
||||
|
||||
case RFCOMM_EVENT_CHANNEL_OPENED:
|
||||
// data: event(8), len(8), status (8), address (48), server channel(8), rfcomm_cid(16), max frame size(16)
|
||||
if (packet[2]) {
|
||||
printf("RFCOMM channel open failed, status %u\n\r", packet[2]);
|
||||
if (rfcomm_event_channel_opened_get_status(packet)) {
|
||||
printf("RFCOMM channel open failed, status %u\n", rfcomm_event_channel_opened_get_status(packet));
|
||||
} else {
|
||||
rfcomm_channel_id = little_endian_read_16(packet, 12);
|
||||
mtu = little_endian_read_16(packet, 14);
|
||||
printf("\n\rRFCOMM channel open succeeded. New RFCOMM Channel ID %u, max frame size %u\n\r", rfcomm_channel_id, mtu);
|
||||
rfcomm_channel_id = rfcomm_event_channel_opened_get_rfcomm_cid(packet);
|
||||
mtu = rfcomm_event_channel_opened_get_max_frame_size(packet);
|
||||
printf("RFCOMM channel open succeeded. New RFCOMM Channel ID %u, max frame size %u\n", rfcomm_channel_id, mtu);
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -452,12 +452,11 @@ void hfp_handle_hci_event(uint8_t packet_type, uint8_t *packet, uint16_t size){
|
||||
|
||||
case RFCOMM_EVENT_INCOMING_CONNECTION:
|
||||
// data: event (8), len(8), address(48), channel (8), rfcomm_cid (16)
|
||||
reverse_bd_addr(&packet[2], event_addr);
|
||||
rfcomm_event_incoming_connection_get_bd_addr(packet, event_addr);
|
||||
hfp_connection = provide_hfp_connection_context_for_bd_addr(event_addr);
|
||||
|
||||
if (!hfp_connection || hfp_connection->state != HFP_IDLE) return;
|
||||
|
||||
hfp_connection->rfcomm_cid = little_endian_read_16(packet, 9);
|
||||
hfp_connection->rfcomm_cid = rfcomm_event_incoming_connection_get_rfcomm_cid(packet);
|
||||
hfp_connection->state = HFP_W4_RFCOMM_CONNECTED;
|
||||
printf("RFCOMM channel %u requested for %s\n", hfp_connection->rfcomm_cid, bd_addr_to_str(hfp_connection->remote_addr));
|
||||
rfcomm_accept_connection(hfp_connection->rfcomm_cid);
|
||||
@ -467,19 +466,17 @@ void hfp_handle_hci_event(uint8_t packet_type, uint8_t *packet, uint16_t size){
|
||||
// data: event(8), len(8), status (8), address (48), handle(16), server channel(8), rfcomm_cid(16), max frame size(16)
|
||||
printf("RFCOMM_EVENT_CHANNEL_OPENED packet_handler type %u, size %u\n", packet_type, size);
|
||||
|
||||
reverse_bd_addr(&packet[3], event_addr);
|
||||
rfcomm_event_incoming_connection_get_bd_addr(packet, event_addr);
|
||||
hfp_connection = get_hfp_connection_context_for_bd_addr(event_addr);
|
||||
if (!hfp_connection || hfp_connection->state != HFP_W4_RFCOMM_CONNECTED) return;
|
||||
|
||||
if (packet[2]) {
|
||||
hfp_emit_event(hfp_callback, HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED, packet[2]);
|
||||
if (rfcomm_event_channel_opened_get_status(packet)) {
|
||||
hfp_emit_event(hfp_callback, HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED, rfcomm_event_channel_opened_get_status(packet));
|
||||
remove_hfp_connection_context(hfp_connection);
|
||||
} else {
|
||||
hfp_connection->acl_handle = little_endian_read_16(packet, 9);
|
||||
printf("RFCOMM_EVENT_CHANNEL_OPENED con_handle 0x%02x\n", hfp_connection->acl_handle);
|
||||
|
||||
hfp_connection->rfcomm_cid = little_endian_read_16(packet, 12);
|
||||
uint16_t mtu = little_endian_read_16(packet, 14);
|
||||
hfp_connection->acl_handle = rfcomm_event_channel_opened_get_con_handle(packet);
|
||||
hfp_connection->rfcomm_cid = rfcomm_event_channel_opened_get_rfcomm_cid(packet);
|
||||
uint16_t mtu = rfcomm_event_channel_opened_get_max_frame_size(packet);
|
||||
printf("RFCOMM channel open succeeded. hfp_connection %p, RFCOMM Channel ID 0x%02x, max frame size %u\n", hfp_connection, hfp_connection->rfcomm_cid, mtu);
|
||||
|
||||
switch (hfp_connection->state){
|
||||
|
@ -604,8 +604,8 @@ static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *pack
|
||||
// data: event (8), len(8), address(48), channel (8), rfcomm_cid (16)
|
||||
if (hsp_state != HSP_IDLE) return;
|
||||
|
||||
reverse_bd_addr(&packet[2], event_addr);
|
||||
rfcomm_cid = little_endian_read_16(packet, 9);
|
||||
rfcomm_event_incoming_connection_get_bd_addr(packet, event_addr);
|
||||
rfcomm_cid = rfcomm_event_incoming_connection_get_server_channel(packet);
|
||||
log_info("RFCOMM channel %u requested for %s", packet[8], bd_addr_to_str(event_addr));
|
||||
hsp_state = HSP_W4_RFCOMM_CONNECTED;
|
||||
rfcomm_accept_connection(rfcomm_cid);
|
||||
@ -614,15 +614,15 @@ static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *pack
|
||||
case RFCOMM_EVENT_CHANNEL_OPENED:
|
||||
log_info("RFCOMM_EVENT_CHANNEL_OPENED packet_handler type %u, packet[0] %x", packet_type, packet[0]);
|
||||
// data: event(8), len(8), status (8), address (48), handle(16), server channel(8), rfcomm_cid(16), max frame size(16)
|
||||
if (packet[2]) {
|
||||
log_info("RFCOMM channel open failed, status %u§", packet[2]);
|
||||
if (rfcomm_event_channel_opened_get_status(packet)) {
|
||||
log_info("RFCOMM channel open failed, status %u§", rfcomm_event_channel_opened_get_status(packet));
|
||||
hsp_ag_reset_state();
|
||||
hsp_state = HSP_IDLE;
|
||||
} else {
|
||||
// data: event(8) , len(8), status (8), address (48), handle (16), server channel(8), rfcomm_cid(16), max frame size(16)
|
||||
rfcomm_handle = little_endian_read_16(packet, 9);
|
||||
rfcomm_cid = little_endian_read_16(packet, 12);
|
||||
mtu = little_endian_read_16(packet, 14);
|
||||
rfcomm_handle = rfcomm_event_channel_opened_get_con_handle(packet);
|
||||
rfcomm_cid = rfcomm_event_channel_opened_get_rfcomm_cid(packet);
|
||||
mtu = rfcomm_event_channel_opened_get_max_frame_size(packet);
|
||||
log_info("RFCOMM channel open succeeded. New RFCOMM Channel ID %u, max frame size %u, state %d", rfcomm_cid, mtu, hsp_state);
|
||||
hsp_state = HSP_RFCOMM_CONNECTION_ESTABLISHED;
|
||||
}
|
||||
|
@ -348,20 +348,20 @@ static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *pack
|
||||
|
||||
case RFCOMM_EVENT_INCOMING_CONNECTION:
|
||||
// data: event (8), len(8), address(48), channel (8), rfcomm_cid (16)
|
||||
reverse_bd_addr(&packet[2], remote);
|
||||
rfcomm_channel_nr = packet[8];
|
||||
rfcomm_channel_id = little_endian_read_16(packet, 9);
|
||||
rfcomm_event_incoming_connection_get_bd_addr(packet, remote);
|
||||
rfcomm_channel_nr = rfcomm_event_incoming_connection_get_server_channel(packet);
|
||||
rfcomm_channel_id = rfcomm_event_incoming_connection_get_rfcomm_cid(packet);
|
||||
printf("RFCOMM channel %u requested for %s\n\r", rfcomm_channel_nr, bd_addr_to_str(remote));
|
||||
rfcomm_accept_connection(rfcomm_channel_id);
|
||||
break;
|
||||
|
||||
case RFCOMM_EVENT_CHANNEL_OPENED:
|
||||
// data: event(8), len(8), status (8), address (48), server channel(8), rfcomm_cid(16), max frame size(16)
|
||||
if (packet[2]) {
|
||||
printf("RFCOMM channel open failed, status %u\n\r", packet[2]);
|
||||
if (rfcomm_event_channel_opened_get_status(packet)) {
|
||||
printf("RFCOMM channel open failed, status %u\n\r", rfcomm_event_channel_opened_get_status(packet));
|
||||
} else {
|
||||
rfcomm_channel_id = little_endian_read_16(packet, 12);
|
||||
mtu = little_endian_read_16(packet, 14);
|
||||
rfcomm_channel_id = rfcomm_event_channel_opened_get_rfcomm_cid(packet);
|
||||
mtu = rfcomm_event_channel_opened_get_max_frame_size(packet);
|
||||
if (mtu > 60){
|
||||
printf("BTstack libusb hack: using reduced MTU for sending instead of %u\n", mtu);
|
||||
mtu = 60;
|
||||
|
Loading…
x
Reference in New Issue
Block a user