v1.1.0 - Continuous multi-label batch printing
Continuous multi-label batch printing (B1 Pro / protocol V4)
Multi-label batches now print as a single continuous job. Previously each
label ran as its own full job, so the printer stopped, fed the label out, and
retracted the paper before every next label - slow and unlike the Niimbot
app. Now the job is opened once, all pages stream through, and it closes once.
Fixed
- No more retract between labels. The per-label
PrintEnd(0xF3) - which
triggers the B1 Pro end-of-job feed-out + paper retract - now runs exactly
once at the end of the batch instead of after every label. - No stop between labels. Pages are pipelined with a 2-page look-ahead:
the next page(s) are queued while the current one prints, throttled by the
0xA3->0xB3page counter so a long or dense batch still cannot overrun the
printer line buffer.
Changed
- Print sequence refactored into
beginJob/sendPagePacked/waitPage/
endJob.PrintStartnow declares the total page count (16-bit BE) up front;
each page sends 1 copy viaSetPageSize.waitPagecompares the cumulative
page counter against the running page index rather than a fixed1.
Demo
- Added "3-label batch", "3 dense labels" and "5 dense labels" stress buttons,
plus a dependency-free static server (demo/serve.mjs) for local Web
Bluetooth testing overlocalhost.
Verified
Tested on real B1 Pro hardware: no retract, continuous flow, and no
corruption at 5x worst-case (random-noise) label density. A minor, bounded gap
can remain only at maximum density; real-world labels (which compress under
run-length encoding) stream cleanly.
Note: maximum print width / page buffering is firmware-dependent; very dense
labels at the largest size are where any residual gap would appear.