1*503a627eSMilanka Ringwald# 2*503a627eSMilanka Ringwald 3*503a627eSMilanka Ringwald## L2CAP Events {#sec:eventsAndErrorsAppendix} 4*503a627eSMilanka Ringwald 5*503a627eSMilanka RingwaldL2CAP events and data packets are delivered to the packet handler 6*503a627eSMilanka Ringwaldspecified by *l2cap_register_service* resp. 7*503a627eSMilanka Ringwald*l2cap_create_channel*. Data packets have the 8*503a627eSMilanka RingwaldL2CAP_DATA_PACKET packet type. L2CAP provides the following events: 9*503a627eSMilanka Ringwald 10*503a627eSMilanka Ringwald- L2CAP_EVENT_CHANNEL_OPENED - sent if channel establishment is 11*503a627eSMilanka Ringwald done. Status not equal zero indicates an error. Possible errors: out 12*503a627eSMilanka Ringwald of memory; connection terminated by local host, when the connection 13*503a627eSMilanka Ringwald to remote device fails. 14*503a627eSMilanka Ringwald 15*503a627eSMilanka Ringwald- L2CAP_EVENT_CHANNEL_CLOSED - emitted when channel is closed. No 16*503a627eSMilanka Ringwald status information is provided. 17*503a627eSMilanka Ringwald 18*503a627eSMilanka Ringwald- L2CAP_EVENT_INCOMING_CONNECTION - received when the connection is 19*503a627eSMilanka Ringwald requested by remote. Connection accept and decline are performed 20*503a627eSMilanka Ringwald with *l2cap_accept_connection* and *l2cap_decline_connecti-on* respectively. 21*503a627eSMilanka Ringwald 22*503a627eSMilanka Ringwald- L2CAP_EVENT_CAN_SEND_NOW - Indicates that an L2CAP data packet could 23*503a627eSMilanka Ringwald be sent on the reported l2cap_cid. It is emitted after a call to 24*503a627eSMilanka Ringwald *l2cap_request_can_send_now*. See [Sending L2CAP Data](protocols/#sec:l2capSendProtocols) 25*503a627eSMilanka Ringwald Please note that the guarantee that a packet can be sent is only valid when the event is received. 26*503a627eSMilanka Ringwald After returning from the packet handler, BTstack might need to send itself. 27*503a627eSMilanka Ringwald 28*503a627eSMilanka RingwaldEvent | Event Code 29*503a627eSMilanka Ringwald-----------|---------------------------------------- 30*503a627eSMilanka RingwaldL2CAP_EVENT_CHANNEL_OPENED | 0x70 31*503a627eSMilanka RingwaldL2CAP_EVENT_CHANNEL_CLOSED | 0x71 32*503a627eSMilanka RingwaldL2CAP_EVENT_INCOMING_CONNECTION | 0x72 33*503a627eSMilanka RingwaldL2CAP_EVENT_CAN_SEND_NOW | 0x78 34*503a627eSMilanka Ringwald 35*503a627eSMilanka RingwaldTable: L2CAP Events. {#tbl:l2capEvents} 36*503a627eSMilanka Ringwald 37*503a627eSMilanka RingwaldL2CAP event paramaters, with size in bits: 38*503a627eSMilanka Ringwald 39*503a627eSMilanka Ringwald- L2CAP_EVENT_CHANNEL_OPENED: 40*503a627eSMilanka 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)* 41*503a627eSMilanka Ringwald- L2CAP_EVENT_CHANNEL_CLOSED: 42*503a627eSMilanka Ringwald - *event (8), len(8), channel(16)* 43*503a627eSMilanka Ringwald- L2CAP_EVENT_INCOMING_CONNECTION: 44*503a627eSMilanka Ringwald - *event(8), len(8), address(48), handle(16), psm (16), local_cid(16), remote_cid (16)* 45*503a627eSMilanka Ringwald- L2CAP_EVENT_CAN_SEND_NOW: 46*503a627eSMilanka Ringwald - *event(8), len(8), local_cid(16) 47*503a627eSMilanka Ringwald 48*503a627eSMilanka Ringwald## RFCOMM Events 49*503a627eSMilanka Ringwald 50*503a627eSMilanka RingwaldAll RFCOMM events and data packets are currently delivered to the packet 51*503a627eSMilanka Ringwaldhandler specified by *rfcomm_register_packet_handler*. Data packets 52*503a627eSMilanka Ringwaldhave the _DATA_PACKET packet type. Here is the list of events provided 53*503a627eSMilanka Ringwaldby RFCOMM: 54*503a627eSMilanka Ringwald 55*503a627eSMilanka Ringwald- RFCOMM_EVENT_INCOMING_CONNECTION - received when the connection 56*503a627eSMilanka Ringwald is requested by remote. Connection accept and decline are performed 57*503a627eSMilanka Ringwald with *rfcomm_accept_connection* and 58*503a627eSMilanka Ringwald *rfcomm_decline_connection* respectively. 59*503a627eSMilanka Ringwald 60*503a627eSMilanka Ringwald- RFCOMM_EVENT_CHANNEL_CLOSED - emitted when channel is closed. No 61*503a627eSMilanka Ringwald status information is provided. 62*503a627eSMilanka Ringwald 63*503a627eSMilanka Ringwald- RFCOMM_EVENT_CHANNEL_OPENED - sent if channel 64*503a627eSMilanka Ringwald establishment is done. Status not equal zero indicates an error. 65*503a627eSMilanka Ringwald Possible errors: an L2CAP error, out of memory. 66*503a627eSMilanka Ringwald 67*503a627eSMilanka Ringwald- RFCOMM_EVENT_CAN_SEND_NOW - Indicates that an RFCOMM data packet could 68*503a627eSMilanka Ringwald be sent on the reported rfcomm_cid. It is emitted after a call to 69*503a627eSMilanka Ringwald *rfcomm_request_can_send_now*. See [Sending RFCOMM Data](protocols/#sec:rfcommSendProtocols) 70*503a627eSMilanka Ringwald Please note that the guarantee that a packet can be sent is only valid when the event is received. 71*503a627eSMilanka Ringwald After returning from the packet handler, BTstack might need to send itself. 72*503a627eSMilanka Ringwald 73*503a627eSMilanka Ringwald 74*503a627eSMilanka RingwaldEvent | Event Code 75*503a627eSMilanka Ringwald-----------|----------------------------- 76*503a627eSMilanka RingwaldRFCOMM_EVENT_CHANNEL_OPENED | 0x80 77*503a627eSMilanka RingwaldRFCOMM_EVENT_CHANNEL_CLOSED | 0x81 78*503a627eSMilanka RingwaldRFCOMM_EVENT_INCOMING_CONNECTION | 0x82 79*503a627eSMilanka RingwaldRFCOMM_EVENT_CAN_SEND_NOW | 0x89 80*503a627eSMilanka Ringwald 81*503a627eSMilanka RingwaldTable: RFCOMM Events. {#tbl:rfcommEvents} 82*503a627eSMilanka Ringwald 83*503a627eSMilanka Ringwald 84*503a627eSMilanka RingwaldRFCOMM event paramaters, with size in bits: 85*503a627eSMilanka Ringwald 86*503a627eSMilanka Ringwald- RFCOMM_EVENT_CHANNEL_OPENED: 87*503a627eSMilanka Ringwald - *event(8), len(8), status(8), address(48), handle(16), server_channel(8), rfcomm_cid(16), max_frame_size(16)* 88*503a627eSMilanka Ringwald- RFCOMM_EVENT_CHANNEL_CLOSED: 89*503a627eSMilanka Ringwald - *event(8), len(8), rfcomm_cid(16)* 90*503a627eSMilanka Ringwald- RFCOMM_EVENT_INCOMING_CONNECTION: 91*503a627eSMilanka Ringwald - *event(8), len(8), address(48), channel (8), rfcomm_cid(16)* 92*503a627eSMilanka Ringwald- RFCOMM_EVENT_CAN_SEND_NOW: 93*503a627eSMilanka Ringwald - *event(8), len(8), rfcomm_cid(16) 94*503a627eSMilanka Ringwald 95*503a627eSMilanka Ringwald## Errors {#sec:errorsAppendix} 96*503a627eSMilanka Ringwald 97*503a627eSMilanka Ringwald 98*503a627eSMilanka RingwaldError | Error Code 99*503a627eSMilanka Ringwald------------------------------------------------------------------------|------------------- 100*503a627eSMilanka RingwaldBTSTACK_MEMORY_ALLOC_FAILED | 0x56 101*503a627eSMilanka RingwaldBTSTACK_ACL_BUFFERS_FULL | 0x57 102*503a627eSMilanka RingwaldL2CAP_COMMAND_REJECT_REASON_COMMAND_NOT_UNDERSTOOD | 0x60 103*503a627eSMilanka RingwaldL2CAP_COMMAND_REJECT_REASON_SIGNALING_MTU_EXCEEDED | 0x61 104*503a627eSMilanka RingwaldL2CAP_COMMAND_REJECT_REASON_INVALID_CID_IN_REQUEST | 0x62 105*503a627eSMilanka RingwaldL2CAP_CONNECTION_RESPONSE_RESULT_SUCCESSFUL | 0x63 106*503a627eSMilanka RingwaldL2CAP_CONNECTION_RESPONSE_RESULT_PENDING | 0x64 107*503a627eSMilanka RingwaldL2CAP_CONNECTION_RESPONSE_RESULT_REFUSED_PSM | 0x65 108*503a627eSMilanka RingwaldL2CAP_CONNECTION_RESPONSE_RESULT_REFUSED_SECURITY | 0x66 109*503a627eSMilanka RingwaldL2CAP_CONNECTION_RESPONSE_RESULT_REFUSED_RESOURCES | 0x65 110*503a627eSMilanka RingwaldL2CAP_CONFIG_RESPONSE_RESULT_SUCCESSFUL | 0x66 111*503a627eSMilanka RingwaldL2CAP_CONFIG_RESPONSE_RESULT_UNACCEPTABLE_PARAMS | 0x67 112*503a627eSMilanka RingwaldL2CAP_CONFIG_RESPONSE_RESULT_REJECTED | 0x68 113*503a627eSMilanka RingwaldL2CAP_CONFIG_RESPONSE_RESULT_UNKNOWN_OPTIONS | 0x69 114*503a627eSMilanka RingwaldL2CAP_SERVICE_ALREADY_REGISTERED | 0x6a 115*503a627eSMilanka RingwaldRFCOMM_MULTIPLEXER_STOPPED | 0x70 116*503a627eSMilanka RingwaldRFCOMM_NO_OUTGOING_CREDITS | 0x72 117*503a627eSMilanka RingwaldSDP_HANDLE_ALREADY_REGISTERED | 0x80 118*503a627eSMilanka Ringwald 119*503a627eSMilanka RingwaldTable: Errors. {#tbl:errors} 120*503a627eSMilanka Ringwald 121