Fix print completion flow for PT-P710BT and PT-P900W.
Align raster protocol bytes and print-end sequencing by printer family, add safer status polling/retry behavior, and document the changes with regression coverage to prevent protocol regressions. Made-with: Cursor
This commit is contained in:
@@ -171,8 +171,7 @@ libptouch_err_t libptouch_print_raster(libptouch_ctx *ctx,
|
||||
pos += sizeof(esc_ia);
|
||||
}
|
||||
|
||||
/* Chain printing off; safer default for 128-dot family as well. */
|
||||
static const uint8_t esc_ik[] = { 0x1B, 0x69, 0x4B, 0x08 };
|
||||
uint8_t esc_ik[] = { 0x1B, 0x69, 0x4B, ptouch_esc_ik_value(head_dots) };
|
||||
memcpy(head + pos, esc_ik, sizeof(esc_ik));
|
||||
pos += sizeof(esc_ik);
|
||||
|
||||
@@ -218,6 +217,21 @@ libptouch_err_t libptouch_print_raster(libptouch_ctx *ctx,
|
||||
}
|
||||
free(gbuf);
|
||||
|
||||
/*
|
||||
* Some 560-dot family devices are sensitive to end-of-page sequencing.
|
||||
* Send FF (0x0C) then Control-Z (0x1A) on that family to explicitly
|
||||
* terminate page and final feed/cut.
|
||||
*/
|
||||
if (head_dots > 128u) {
|
||||
static const uint8_t page_end[] = { 0x0C };
|
||||
v = ptouch_bulk_send_job(ctx, page_end, sizeof(page_end),
|
||||
"print page end");
|
||||
if (v != LIBPTOUCH_OK) {
|
||||
free(transposed);
|
||||
return v;
|
||||
}
|
||||
}
|
||||
|
||||
static const uint8_t print_end[] = { 0x1A };
|
||||
v = ptouch_bulk_send_job(ctx, print_end, sizeof(print_end), "print end");
|
||||
if (v != LIBPTOUCH_OK) {
|
||||
|
||||
Reference in New Issue
Block a user