L2CAP liegt unter RFCOMM und ist bei Bluetooth Low Energy der Träger des ATT-Protokolls — der Sprache, in der GATT-Clients und -Server miteinander reden.
Die Unit hat zwei Hälften: die Verbindungsebene (L2CapConnect, L2CapListen, L2CapSetMtu) und die ATT-Ebene darüber (AttSend, AttRecv, AttReadChar, AttWriteChar). Wer nur Werte lesen und schreiben will, nimmt bluetooth_gattc — dort ist das ATT-Protokoll bereits ausformuliert.
Der PSM (Protocol/Service Multiplexer) übernimmt die Rolle des Ports; für ATT ist er 0x001F. AttExchangeMtu handelt gleich zu Beginn die größte Paketgröße aus — ohne diesen Schritt bleibt es bei den voreingestellten 23 Byte, von denen nur 20 Nutzlast sind.
std.hardware.bluetooth — Übersicht · Bluetooth-Guide · Standard Library
| Signatur |
|---|
L2CapConnect(bdaddr: int64, psm: int64, addrType: int64): int64 |
L2CapListen(psm: int64, backlog: int64): int64 |
L2CapSetMtu(fd: int64, imtu: int64): int64 |
L2CapClose(fd: int64): int64 |
L2CapPoll(fd: int64, timeoutMs: int64): int64 |
AttSend(fd: int64, opcode: int64, payload: int64, payloadLen: int64): int64 |
AttRecv(fd: int64, opcodeOut: int64, dataBuf: int64, bufLen: int64): int64 |
AttExchangeMtu(fd: int64, clientMtu: int64): int64 |
AttReadChar(fd: int64, handle: int64, dataBuf: int64, bufLen: int64): int64 |
AttWriteChar(fd: int64, handle: int64, data: int64, dataLen: int64): int64 |
AttWriteCmd(fd: int64, handle: int64, data: int64, dataLen: int64): int64 |
AttRecvNotification(fd: int64, handleOut: int64, dataBuf: int64, bufLen: int64): int64 |
| Konstante | Wert | Bedeutung |
|---|---|---|
ATT_OP_ERROR_RSP | 1 | 0x01 |
ATT_OP_MTU_REQ | 2 | 0x02 |
ATT_OP_MTU_RSP | 3 | 0x03 |
ATT_OP_FIND_INFO_REQ | 4 | 0x04 |
ATT_OP_FIND_INFO_RSP | 5 | 0x05 |
ATT_OP_READ_BY_TYPE_REQ | 8 | 0x08 |
ATT_OP_READ_BY_TYPE_RSP | 9 | 0x09 |
ATT_OP_READ_REQ | 10 | 0x0A |
ATT_OP_READ_RSP | 11 | 0x0B |
ATT_OP_READ_BLOB_REQ | 12 | 0x0C |
ATT_OP_READ_BLOB_RSP | 13 | 0x0D |
ATT_OP_READ_BY_GROUP_TYPE_REQ | 16 | 0x10 |
ATT_OP_READ_BY_GROUP_TYPE_RSP | 17 | 0x11 |
ATT_OP_WRITE_REQ | 18 | 0x12 |
…sowie 14 weitere Konstanten in der Quelldatei std/hardware/bluetooth_l2cap.lyx.
Quelle: std/hardware/bluetooth_l2cap.lyx · geprüft mit lyxc 1.0.17E · Stand 2026-08-12