====== 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 [[lyx_-_programmiersprache:units:hardware:bluetooth_gattc|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. [[lyx_-_programmiersprache:units:hardware:bluetooth|std.hardware.bluetooth — Übersicht]] · [[lyx_-_programmiersprache:guides:bluetooth|Bluetooth-Guide]] · [[lyx_-_programmiersprache:units|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