mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-02-06 12:39:51 +00:00
hci_transport_h4: support ISO data packets
This commit is contained in:
parent
5027c49828
commit
0d5b1baf9a
@ -164,6 +164,7 @@ typedef enum {
|
||||
#define HCI_ACL_DATA_PACKET 0x02
|
||||
#define HCI_SCO_DATA_PACKET 0x03
|
||||
#define HCI_EVENT_PACKET 0x04
|
||||
#define HCI_ISO_DATA_PACKET 0x05
|
||||
|
||||
/**
|
||||
* HCI Layer
|
||||
|
@ -79,6 +79,7 @@ extern "C" {
|
||||
#define HCI_ACL_HEADER_SIZE 4
|
||||
#define HCI_SCO_HEADER_SIZE 3
|
||||
#define HCI_EVENT_HEADER_SIZE 2
|
||||
#define HCI_ISO_HEADER_SIZE 4
|
||||
|
||||
#define HCI_EVENT_PAYLOAD_SIZE 255
|
||||
#define HCI_CMD_PAYLOAD_SIZE 255
|
||||
|
@ -113,6 +113,7 @@ typedef enum {
|
||||
H4_W4_EVENT_HEADER,
|
||||
H4_W4_ACL_HEADER,
|
||||
H4_W4_SCO_HEADER,
|
||||
H4_W4_ISO_HEADER,
|
||||
H4_W4_PAYLOAD,
|
||||
} H4_STATE;
|
||||
|
||||
@ -243,6 +244,10 @@ static void hci_transport_h4_block_read(void){
|
||||
bytes_to_read = HCI_SCO_HEADER_SIZE;
|
||||
h4_state = H4_W4_SCO_HEADER;
|
||||
break;
|
||||
case HCI_ISO_DATA_PACKET:
|
||||
bytes_to_read = HCI_ISO_HEADER_SIZE;
|
||||
h4_state = H4_W4_SCO_HEADER;
|
||||
break;
|
||||
#ifdef ENABLE_EHCILL
|
||||
case EHCILL_GO_TO_SLEEP_IND:
|
||||
case EHCILL_GO_TO_SLEEP_ACK:
|
||||
@ -292,6 +297,17 @@ static void hci_transport_h4_block_read(void){
|
||||
h4_state = H4_W4_PAYLOAD;
|
||||
break;
|
||||
|
||||
case H4_W4_ISO_HEADER:
|
||||
bytes_to_read = little_endian_read_16( hci_packet, 3) & 0x3fff;
|
||||
// check ISO length
|
||||
if (bytes_to_read > (HCI_INCOMING_PACKET_BUFFER_SIZE - HCI_ACL_HEADER_SIZE)){
|
||||
log_error("hci_transport_h4: invalid ISO payload len %d - only space for %u", bytes_to_read, HCI_INCOMING_PACKET_BUFFER_SIZE - HCI_ISO_HEADER_SIZE);
|
||||
hci_transport_h4_reset_statemachine();
|
||||
break;
|
||||
}
|
||||
h4_state = H4_W4_PAYLOAD;
|
||||
break;
|
||||
|
||||
case H4_W4_PAYLOAD:
|
||||
hci_transport_h4_packet_complete();
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user