xref: /btstack/doc/manual/docs-template/appendix/events_errors.md (revision 503a627edab6ba8492c3d0cdd9ac598fe2b0f08a)
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