std.hardware.bluetooth_l2cap

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


Schnittstelle

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