From 1be81346731b2d71f16b1846f068e02ede164d77 Mon Sep 17 00:00:00 2001 From: rezaxdi Date: Sun, 11 Sep 2022 18:02:35 +0430 Subject: [PATCH 1/2] Update prn_lbp2900.c Added extra command for LBP6000 support --- src/prn_lbp2900.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/src/prn_lbp2900.c b/src/prn_lbp2900.c index 183db4c..d232541 100644 --- a/src/prn_lbp2900.c +++ b/src/prn_lbp2900.c @@ -78,6 +78,10 @@ static const uint8_t lbp3010_gpio_init[] = { 0x00, 0x00, /* S7 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; +static const uint8_t lbp6000_init[] = { + 0x01, 0x00, +}; + static const struct capt_status_s *lbp2900_get_status(const struct printer_ops_s *ops) { const struct lbp2900_ops_s *lops = container_of(ops, struct lbp2900_ops_s, ops); @@ -186,6 +190,31 @@ static void lbp3010_job_prologue(struct printer_state_s *state) lbp2900_wait_ready(state->ops); } +static void lbp6000_job_prologue(struct printer_state_s *state) +{ + (void) state; + uint8_t buf[8]; + size_t size; + + capt_sendrecv(CAPT_IDENT, NULL, 0, NULL, 0); + sleep(1); + capt_init_status(); + lbp2900_get_status(state->ops); + + capt_sendrecv(CAPT_START_0, NULL, 0, NULL, 0); + capt_sendrecv(CAPT_JOB_BEGIN, magicbuf_0, ARRAY_SIZE(magicbuf_0), buf, &size); + job=WORD(buf[2], buf[3]); + + capt_sendrecv(CAPT_GPIO, lbp3010_gpio_init, ARRAY_SIZE(lbp3010_gpio_init), NULL, 0); + lbp2900_wait_ready(state->ops); + + capt_sendrecv(CAPT3_UNK_0, lbp6000_init, ARRAY_SIZE(lbp6000_init), NULL, 0); + lbp2900_wait_ready(state->ops); + + send_job_start(1, 0); + lbp2900_wait_ready(state->ops); +} + static bool lbp2900_page_prologue(struct printer_state_s *state, const struct page_dims_s *dims) { const struct capt_status_s *status; @@ -493,6 +522,27 @@ static struct lbp2900_ops_s lbp3010_ops = { .get_status = capt_get_xstatus_only, .wait_ready = capt_wait_xready_only, }; + +static struct lbp2900_ops_s lbp6000_ops = { + .ops = { + .job_prologue = lbp6000_job_prologue, + .job_epilogue = lbp2900_job_epilogue, + .page_setup = lbp2900_page_setup, + .page_prologue = lbp2900_page_prologue, + .page_epilogue = lbp2900_page_epilogue, + .compress_band = ops_compress_band_hiscoa, + .send_band = ops_send_band_hiscoa, + .cancel_cleanup = lbp3010_cancel_cleanup, + .wait_user = lbp3010_wait_user, + }, + .gpio = { + .init = lbp3010_gpio_init, + .blink = lbp3010_gpio_blink, + }, + .get_status = capt_get_xstatus_only, + .wait_ready = capt_wait_xready_only, +}; + register_printer("LBP3010/LBP3018/LBP3050", lbp3010_ops.ops, WORKS); register_printer("LBP3100/LBP3108/LBP3150", lbp3010_ops.ops, EXPERIMENTAL); -register_printer("LBP6000/LBP6018", lbp3010_ops.ops, EXPERIMENTAL); +register_printer("LBP6000/LBP6018", lbp6000_ops.ops, EXPERIMENTAL); From b6de597f9a15e8d72d5706c3a88d1af2b3f045e7 Mon Sep 17 00:00:00 2001 From: rezaxdi Date: Sun, 11 Sep 2022 18:03:52 +0430 Subject: [PATCH 2/2] Update capt-command.h Added extra command for LBP6000 support --- src/capt-command.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/capt-command.h b/src/capt-command.h index 1ca8f5a..0b4c029 100644 --- a/src/capt-command.h +++ b/src/capt-command.h @@ -52,6 +52,7 @@ enum capt_command { CAPT_JOB_SETUP = 0xE1A1, CAPT_GPIO = 0xE1A2, + CAPT3_UNK_0 = 0xE0BA, };