GattConnection
One device's GATT surface. Every fallible op suspends until the stack acknowledges it (suspend-ack model). Characteristic identifiers are the UUID strings from GattUuids.
Attribute ops (read, readTimed, write, setNotify) and cancellation: an op called from a cancelled coroutine throws kotlinx.coroutines.CancellationException without reaching the device, and an op already issued is never abandoned — it finishes (answered, failed, or timed out by the implementation's own bound) before its caller's cancellation is delivered. Abandoning one in flight leaves the platform's GATT client busy, so the ops after it fail. Teardown writes from a cancelled coroutine therefore need NonCancellable.
Properties
Functions
Whether characteristic was discovered on this device. Optional services (device info, firmware update) vary by model/firmware; callers gate on this instead of catching reads.
Stream of notification payloads for characteristic.
read with the host clock stamped around the radio exchange, for clock synchronization (the time-sync characteristic, see TimeSync): TimedRead.sentNs when the request leaves for the device, TimedRead.receivedNs when its reply arrives, both System.nanoTime().
Best-effort link-throughput tuning (connection priority / preferred PHY). High-rate models (MAXI: 32 ch, ~14 kB/s) sit near the default connection parameters' budget; this adds headroom for retransmissions. Implementations MUST swallow unsupported-stack failures; default is a no-op.
Request an MTU; returns the granted MTU.
Enable/disable notifications (writes the CCCD) for characteristic.