1503a627eSMilanka Ringwald# 2503a627eSMilanka Ringwald 3503a627eSMilanka Ringwald## L2CAP Events {#sec:eventsAndErrorsAppendix} 4503a627eSMilanka Ringwald 5503a627eSMilanka RingwaldL2CAP events and data packets are delivered to the packet handler 6503a627eSMilanka Ringwaldspecified by *l2cap_register_service* resp. 7503a627eSMilanka Ringwald*l2cap_create_channel*. Data packets have the 8503a627eSMilanka RingwaldL2CAP_DATA_PACKET packet type. L2CAP provides the following events: 9503a627eSMilanka Ringwald 10503a627eSMilanka Ringwald- L2CAP_EVENT_CHANNEL_OPENED - sent if channel establishment is 11503a627eSMilanka Ringwald done. Status not equal zero indicates an error. Possible errors: out 12503a627eSMilanka Ringwald of memory; connection terminated by local host, when the connection 13503a627eSMilanka Ringwald to remote device fails. 14503a627eSMilanka Ringwald 15503a627eSMilanka Ringwald- L2CAP_EVENT_CHANNEL_CLOSED - emitted when channel is closed. No 16503a627eSMilanka Ringwald status information is provided. 17503a627eSMilanka Ringwald 18503a627eSMilanka Ringwald- L2CAP_EVENT_INCOMING_CONNECTION - received when the connection is 19503a627eSMilanka Ringwald requested by remote. Connection accept and decline are performed 20503a627eSMilanka Ringwald with *l2cap_accept_connection* and *l2cap_decline_connecti-on* respectively. 21503a627eSMilanka Ringwald 22503a627eSMilanka Ringwald- L2CAP_EVENT_CAN_SEND_NOW - Indicates that an L2CAP data packet could 23503a627eSMilanka Ringwald be sent on the reported l2cap_cid. It is emitted after a call to 24*820e47d0SMilanka Ringwald *l2cap_request_can_send_now*. See [Sending L2CAP Data](../protocols/#sec:l2capSendProtocols) 25503a627eSMilanka Ringwald Please note that the guarantee that a packet can be sent is only valid when the event is received. 26503a627eSMilanka Ringwald After returning from the packet handler, BTstack might need to send itself. 27503a627eSMilanka Ringwald 28503a627eSMilanka RingwaldEvent | Event Code 29503a627eSMilanka Ringwald-----------|---------------------------------------- 30503a627eSMilanka RingwaldL2CAP_EVENT_CHANNEL_OPENED | 0x70 31503a627eSMilanka RingwaldL2CAP_EVENT_CHANNEL_CLOSED | 0x71 32503a627eSMilanka RingwaldL2CAP_EVENT_INCOMING_CONNECTION | 0x72 33503a627eSMilanka RingwaldL2CAP_EVENT_CAN_SEND_NOW | 0x78 34503a627eSMilanka Ringwald 35503a627eSMilanka RingwaldTable: L2CAP Events. {#tbl:l2capEvents} 36503a627eSMilanka Ringwald 37503a627eSMilanka RingwaldL2CAP event paramaters, with size in bits: 38503a627eSMilanka Ringwald 39503a627eSMilanka Ringwald- L2CAP_EVENT_CHANNEL_OPENED: 40503a627eSMilanka Ringwald - *event(8), len(8), status(8), address(48), handle(16), psm(16), local_cid(16), remote_cid(16), local_mtu(16), remote_mtu(16)* 41503a627eSMilanka Ringwald- L2CAP_EVENT_CHANNEL_CLOSED: 42503a627eSMilanka Ringwald - *event (8), len(8), channel(16)* 43503a627eSMilanka Ringwald- L2CAP_EVENT_INCOMING_CONNECTION: 44503a627eSMilanka Ringwald - *event(8), len(8), address(48), handle(16), psm (16), local_cid(16), remote_cid (16)* 45503a627eSMilanka Ringwald- L2CAP_EVENT_CAN_SEND_NOW: 46503a627eSMilanka Ringwald - *event(8), len(8), local_cid(16) 47503a627eSMilanka Ringwald 48503a627eSMilanka Ringwald## RFCOMM Events 49503a627eSMilanka Ringwald 50503a627eSMilanka RingwaldAll RFCOMM events and data packets are currently delivered to the packet 51503a627eSMilanka Ringwaldhandler specified by *rfcomm_register_packet_handler*. Data packets 52503a627eSMilanka Ringwaldhave the _DATA_PACKET packet type. Here is the list of events provided 53503a627eSMilanka Ringwaldby RFCOMM: 54503a627eSMilanka Ringwald 55503a627eSMilanka Ringwald- RFCOMM_EVENT_INCOMING_CONNECTION - received when the connection 56503a627eSMilanka Ringwald is requested by remote. Connection accept and decline are performed 57503a627eSMilanka Ringwald with *rfcomm_accept_connection* and 58503a627eSMilanka Ringwald *rfcomm_decline_connection* respectively. 59503a627eSMilanka Ringwald 60503a627eSMilanka Ringwald- RFCOMM_EVENT_CHANNEL_CLOSED - emitted when channel is closed. No 61503a627eSMilanka Ringwald status information is provided. 62503a627eSMilanka Ringwald 63503a627eSMilanka Ringwald- RFCOMM_EVENT_CHANNEL_OPENED - sent if channel 64503a627eSMilanka Ringwald establishment is done. Status not equal zero indicates an error. 65503a627eSMilanka Ringwald Possible errors: an L2CAP error, out of memory. 66503a627eSMilanka Ringwald 67503a627eSMilanka Ringwald- RFCOMM_EVENT_CAN_SEND_NOW - Indicates that an RFCOMM data packet could 68503a627eSMilanka Ringwald be sent on the reported rfcomm_cid. It is emitted after a call to 69*820e47d0SMilanka Ringwald *rfcomm_request_can_send_now*. See [Sending RFCOMM Data](../protocols/#sec:rfcommSendProtocols) 70503a627eSMilanka Ringwald Please note that the guarantee that a packet can be sent is only valid when the event is received. 71503a627eSMilanka Ringwald After returning from the packet handler, BTstack might need to send itself. 72503a627eSMilanka Ringwald 73503a627eSMilanka Ringwald 74503a627eSMilanka RingwaldEvent | Event Code 75503a627eSMilanka Ringwald-----------|----------------------------- 76503a627eSMilanka RingwaldRFCOMM_EVENT_CHANNEL_OPENED | 0x80 77503a627eSMilanka RingwaldRFCOMM_EVENT_CHANNEL_CLOSED | 0x81 78503a627eSMilanka RingwaldRFCOMM_EVENT_INCOMING_CONNECTION | 0x82 79503a627eSMilanka RingwaldRFCOMM_EVENT_CAN_SEND_NOW | 0x89 80503a627eSMilanka Ringwald 81503a627eSMilanka RingwaldTable: RFCOMM Events. {#tbl:rfcommEvents} 82503a627eSMilanka Ringwald 83503a627eSMilanka Ringwald 84503a627eSMilanka RingwaldRFCOMM event paramaters, with size in bits: 85503a627eSMilanka Ringwald 86503a627eSMilanka Ringwald- RFCOMM_EVENT_CHANNEL_OPENED: 87503a627eSMilanka Ringwald - *event(8), len(8), status(8), address(48), handle(16), server_channel(8), rfcomm_cid(16), max_frame_size(16)* 88503a627eSMilanka Ringwald- RFCOMM_EVENT_CHANNEL_CLOSED: 89503a627eSMilanka Ringwald - *event(8), len(8), rfcomm_cid(16)* 90503a627eSMilanka Ringwald- RFCOMM_EVENT_INCOMING_CONNECTION: 91503a627eSMilanka Ringwald - *event(8), len(8), address(48), channel (8), rfcomm_cid(16)* 92503a627eSMilanka Ringwald- RFCOMM_EVENT_CAN_SEND_NOW: 93503a627eSMilanka Ringwald - *event(8), len(8), rfcomm_cid(16) 94503a627eSMilanka Ringwald 95503a627eSMilanka Ringwald## Errors {#sec:errorsAppendix} 96503a627eSMilanka Ringwald 97503a627eSMilanka Ringwald 98503a627eSMilanka RingwaldError | Error Code 99503a627eSMilanka Ringwald------------------------------------------------------------------------|------------------- 100503a627eSMilanka RingwaldBTSTACK_MEMORY_ALLOC_FAILED | 0x56 101503a627eSMilanka RingwaldBTSTACK_ACL_BUFFERS_FULL | 0x57 102503a627eSMilanka RingwaldL2CAP_COMMAND_REJECT_REASON_COMMAND_NOT_UNDERSTOOD | 0x60 103503a627eSMilanka RingwaldL2CAP_COMMAND_REJECT_REASON_SIGNALING_MTU_EXCEEDED | 0x61 104503a627eSMilanka RingwaldL2CAP_COMMAND_REJECT_REASON_INVALID_CID_IN_REQUEST | 0x62 105503a627eSMilanka RingwaldL2CAP_CONNECTION_RESPONSE_RESULT_SUCCESSFUL | 0x63 106503a627eSMilanka RingwaldL2CAP_CONNECTION_RESPONSE_RESULT_PENDING | 0x64 107503a627eSMilanka RingwaldL2CAP_CONNECTION_RESPONSE_RESULT_REFUSED_PSM | 0x65 108503a627eSMilanka RingwaldL2CAP_CONNECTION_RESPONSE_RESULT_REFUSED_SECURITY | 0x66 109503a627eSMilanka RingwaldL2CAP_CONNECTION_RESPONSE_RESULT_REFUSED_RESOURCES | 0x65 110503a627eSMilanka RingwaldL2CAP_CONFIG_RESPONSE_RESULT_SUCCESSFUL | 0x66 111503a627eSMilanka RingwaldL2CAP_CONFIG_RESPONSE_RESULT_UNACCEPTABLE_PARAMS | 0x67 112503a627eSMilanka RingwaldL2CAP_CONFIG_RESPONSE_RESULT_REJECTED | 0x68 113503a627eSMilanka RingwaldL2CAP_CONFIG_RESPONSE_RESULT_UNKNOWN_OPTIONS | 0x69 114503a627eSMilanka RingwaldL2CAP_SERVICE_ALREADY_REGISTERED | 0x6a 115503a627eSMilanka RingwaldRFCOMM_MULTIPLEXER_STOPPED | 0x70 116503a627eSMilanka RingwaldRFCOMM_NO_OUTGOING_CREDITS | 0x72 117503a627eSMilanka RingwaldSDP_HANDLE_ALREADY_REGISTERED | 0x80 118503a627eSMilanka Ringwald 119503a627eSMilanka RingwaldTable: Errors. {#tbl:errors} 120503a627eSMilanka Ringwald 121