hacky modifications to support KL-P350W printer
This commit is contained in:
parent
2411abc3f4
commit
efc8e52655
51
klg2.c
51
klg2.c
|
@ -27,7 +27,7 @@
|
|||
|
||||
/* USB constants */
|
||||
const uint16_t KLG2_VID = 0x07CF;
|
||||
const uint16_t KLG2_PID = 0x4112;
|
||||
const uint16_t KLG2_PID = 0x4204;
|
||||
const uint8_t KLG2_IFACE = 0;
|
||||
const uint8_t KLG2_EPOUT = 0x01;
|
||||
const uint8_t KLG2_EPIN = 0x82;
|
||||
|
@ -95,7 +95,7 @@ enum OPERMODE_T {
|
|||
libusb_device_handle *devhnd;
|
||||
|
||||
/* Image buffer */
|
||||
#define IMAGE_ROWS 128
|
||||
#define IMAGE_ROWS 32
|
||||
unsigned image_w;
|
||||
uint8_t *image_stripes[IMAGE_ROWS];
|
||||
|
||||
|
@ -191,7 +191,7 @@ int printer_check_status(void)
|
|||
return 1;
|
||||
}
|
||||
if (rsp[0] != PRINTER_STX || rsp[1] != 0x80 || rsp[2] != 0x02 ||
|
||||
rsp[3] != 0x00 || rsp[4] != 0x00 || rsp[5] != 0xa6) {
|
||||
rsp[3] != 0x00 || rsp[4] != 0x00 || rsp[5] != 0xc8) {
|
||||
fputs("Status response mismatch\n", stderr);
|
||||
return 1;
|
||||
}
|
||||
|
@ -274,45 +274,13 @@ int printer_cancel_job(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/*======================================================================
|
||||
Pre-print config (no idea of what it does)
|
||||
*/
|
||||
int printer_prejob(void)
|
||||
{
|
||||
static const uint8_t cfg1[] = {
|
||||
PRINTER_STX, 0x02, 0x04, 0x00, 0x00, 0x09, 0x09, 0x01
|
||||
};
|
||||
send_to_printer(cfg1, 8, EPSIZE_16);
|
||||
|
||||
if (printer_recv_ack("Prejob failed\n")) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
static const uint8_t cfg2[] = {
|
||||
PRINTER_STX, 0x82
|
||||
};
|
||||
send_to_printer(cfg2, 2, EPSIZE_16);
|
||||
uint8_t rsp[KLG2_EPSIZE];
|
||||
int rc = recv_from_printer(rsp);
|
||||
if (rc != 5) {
|
||||
fprintf(stderr, "Unexpected response length (%d)\n", rc);
|
||||
return 1;
|
||||
}
|
||||
if (rsp[0] != PRINTER_STX || rsp[1] != 0x80 || rsp[2] != 0x01 ||
|
||||
rsp[3] != 0x00 || rsp[4] != 0x01) {
|
||||
fputs("Response mismatch\n", stderr);
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*======================================================================
|
||||
Printer Speed Adjust
|
||||
*/
|
||||
int printer_set_speed(void)
|
||||
{
|
||||
static const uint8_t psa[] = {
|
||||
PRINTER_STX, 0x1C, 0x01, 0x00, 0x00
|
||||
PRINTER_STX, 0x1C, 0x01, 0x00, 0x01
|
||||
};
|
||||
send_to_printer(psa, 5, EPSIZE_16);
|
||||
return printer_recv_ack("Speed adjust failed\n");
|
||||
|
@ -340,7 +308,7 @@ int printer_check_tape(enum TAPECODE_T tapeid)
|
|||
int printer_set_margin(enum MARGINCODE_T marginid)
|
||||
{
|
||||
static uint8_t afs[] = {
|
||||
PRINTER_STX, 0x0d, 0x01, 0x00, 0x00
|
||||
PRINTER_STX, 0x0d, 0x01, 0x00, 0x40
|
||||
};
|
||||
afs[4] = marginid;
|
||||
send_to_printer(afs, 5, EPSIZE_16);
|
||||
|
@ -353,11 +321,10 @@ int printer_set_margin(enum MARGINCODE_T marginid)
|
|||
int printer_set_density(enum DENSITYCODE_T densityid)
|
||||
{
|
||||
static uint8_t dms[] = {
|
||||
PRINTER_STX, 0x09, 0x06, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
||||
PRINTER_STX, 0x09, 0x07, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
dms[8] = densityid;
|
||||
send_to_printer(dms, 10, EPSIZE_16);
|
||||
dms[8] = densityid; // ?
|
||||
send_to_printer(dms, 11, EPSIZE_16);
|
||||
return printer_recv_ack("Print density select failed\n");
|
||||
}
|
||||
|
||||
|
@ -718,8 +685,6 @@ int main(int argc, char **argv)
|
|||
if (rc)
|
||||
return 1;
|
||||
|
||||
if (!need_cancel)
|
||||
need_cancel = printer_prejob();
|
||||
if (!need_cancel)
|
||||
need_cancel = printer_check_tape(opt_tape);
|
||||
if (!need_cancel)
|
||||
|
|
Loading…
Reference in New Issue