mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-02-04 06:39:53 +00:00
prepare for sending command_reject on le signaling channel
This commit is contained in:
parent
c61af878b4
commit
70efece186
25
src/l2cap.c
25
src/l2cap.c
@ -310,12 +310,31 @@ int l2cap_send_signaling_packet(hci_con_handle_t handle, L2CAP_SIGNALING_COMMAND
|
||||
uint8_t *acl_buffer = hci_get_outgoing_acl_packet_buffer();
|
||||
va_list argptr;
|
||||
va_start(argptr, identifier);
|
||||
uint16_t len = l2cap_create_signaling_internal(acl_buffer, handle, cmd, identifier, argptr);
|
||||
uint16_t len = l2cap_create_signaling_classic(acl_buffer, handle, cmd, identifier, argptr);
|
||||
va_end(argptr);
|
||||
// log_info("l2cap_send_signaling_packet con %u!\n", handle);
|
||||
return hci_send_acl_packet(acl_buffer, len);
|
||||
}
|
||||
|
||||
#ifdef HAVE_BLE
|
||||
int l2cap_send_le_signaling_packet(hci_con_handle_t handle, L2CAP_SIGNALING_COMMANDS cmd, uint8_t identifier, ...){
|
||||
|
||||
if (!hci_can_send_packet_now(HCI_ACL_DATA_PACKET)){
|
||||
log_info("l2cap_send_signaling_packet, cannot send\n");
|
||||
return BTSTACK_ACL_BUFFERS_FULL;
|
||||
}
|
||||
|
||||
// log_info("l2cap_send_signaling_packet type %u\n", cmd);
|
||||
uint8_t *acl_buffer = hci_get_outgoing_acl_packet_buffer();
|
||||
va_list argptr;
|
||||
va_start(argptr, identifier);
|
||||
uint16_t len = l2cap_create_signaling_le(acl_buffer, handle, cmd, identifier, argptr);
|
||||
va_end(argptr);
|
||||
// log_info("l2cap_send_signaling_packet con %u!\n", handle);
|
||||
return hci_send_acl_packet(acl_buffer, len);
|
||||
}
|
||||
#endif
|
||||
|
||||
uint8_t *l2cap_get_outgoing_buffer(void){
|
||||
return hci_get_outgoing_acl_packet_buffer() + COMPLETE_L2CAP_HEADER; // 8 bytes
|
||||
}
|
||||
@ -481,7 +500,11 @@ void l2cap_run(void){
|
||||
break;
|
||||
case COMMAND_REJECT:
|
||||
l2cap_send_signaling_packet(handle, COMMAND_REJECT, sig_id, result, 0, NULL);
|
||||
#ifdef HAVE_BLE
|
||||
case COMMAND_REJECT_LE:
|
||||
l2cap_send_le_signaling_packet(handle, COMMAND_REJECT, sig_id, result, 0, NULL);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
// should not happen
|
||||
break;
|
||||
|
@ -65,7 +65,8 @@ typedef enum {
|
||||
INFORMATION_REQUEST,
|
||||
INFORMATION_RESPONSE,
|
||||
CONNECTION_PARAMETER_UPDATE_REQUEST = 0x12,
|
||||
CONNECTION_PARAMETER_UPDATE_RESPONSE
|
||||
CONNECTION_PARAMETER_UPDATE_RESPONSE,
|
||||
COMMAND_REJECT_LE = 0x14, // internal to BTstack
|
||||
} L2CAP_SIGNALING_COMMANDS;
|
||||
|
||||
uint16_t l2cap_create_signaling_classic(uint8_t * acl_buffer,hci_con_handle_t handle, L2CAP_SIGNALING_COMMANDS cmd, uint8_t identifier, va_list argptr);
|
||||
|
Loading…
x
Reference in New Issue
Block a user