Skip to content

marklife


marklife / web/src / MarklifeBleTransport

Class: MarklifeBleTransport

Implements

Properties

profileId

readonly profileId: MarklifeBleProfileId

Which GATT profile resolved — surfaced for triage reports.

Accessors

connected

Get Signature

get connected(): boolean

Whether the transport is currently connected.

Returns

boolean

Implementation of

Transport.connected

Methods

close()

close(): Promise<void>

Close the connection.

Always safe to call multiple times. Always await the result.

Returns

Promise<void>

Implementation of

Transport.close


read()

read(length, timeout?): Promise<Uint8Array>

Read bytes from the printer.

Buffers until length bytes are available or the timeout fires.

BLE implementations: there is no "read N bytes" primitive in BLE. Implementations must buffer incoming GATT notifications internally and satisfy read() calls from that buffer. Document this in your transport class — every BLE implementation must handle buffering consistently so drivers get the same pull-based API on every transport.

Parameters

length

number

timeout?

number

Returns

Promise<Uint8Array>

Throws

TransportTimeoutError on timeout.

Throws

TransportClosedError if the transport is closed mid-read.

Implementation of

Transport.read


write()

write(data): Promise<void>

Send bytes to the printer.

Parameters

data

Uint8Array

Returns

Promise<void>

Implementation of

Transport.write


open()

static open(device, resolved, maxPacket?): Promise<MarklifeBleTransport>

Wrap a probed profile on an already-connected device, starting notifications on RX (and on the credit channel when present).

Parameters

device

BluetoothDevice

resolved

ResolvedProfile

maxPacket?

number = DEFAULT_MAX_PACKET

— the registry's bluetooth-gatt.mtu, the firmware's packet ceiling.

Returns

Promise<MarklifeBleTransport>