selphy: Document additional error handling in the CP-series.

(from Ake Koomsin)

We don't actually do anything with this extra information yet, but
we can theoretically detect, and clear error states..
This commit is contained in:
Solomon Peachy 2013-05-03 07:24:58 -04:00
parent e771f001d3
commit ed27b59441
2 changed files with 11 additions and 1 deletions

View file

@ -309,6 +309,8 @@
Plane func: 40 01 00 [plane] [length, 32-bit LE] 00 00 00 00
End func: 00 00 00 00 # NOTE: CP900 only, and not necessary!
Error clear: 40 10 00 00 00 00 00 00 00 00 00 00 # CP800. Others?
plane codes are 0x00, 0x01, 0x02 for Y, M, and C, respectively.
'P' papers pgcode 0x01 plane length 2227456 bytes.
@ -332,7 +334,8 @@
[rr] is error code:
0x00 no error
0x01 paper out
0x08 when ribbon is depleted
0x04 ribbon problem
0x08 ribbon depleted
[ss] is either 0x00 or 0x70. Unsure as to its significance; perhaps it
means paper or ribbon is already set to go?

View file

@ -105,6 +105,7 @@ struct printer_data {
int16_t ready_m_readback[READBACK_LEN];
int16_t ready_c_readback[READBACK_LEN];
int16_t done_c_readback[READBACK_LEN];
int16_t clear_error[READBACK_LEN];
int16_t paper_codes[256];
int16_t pgcode_offset; /* Offset into printjob for paper type */
int16_t paper_code_offset; /* Offset in readback for paper type */
@ -132,6 +133,7 @@ struct printer_data printers[P_END] = {
.ready_m_readback = { 0x04, 0x00, 0x03, 0x00, 0x02, 0x01, -1, 0x01, 0x00, 0x00, 0x00, 0x00 },
.ready_c_readback = { 0x04, 0x00, 0x07, 0x00, 0x02, 0x01, -1, 0x01, 0x00, 0x00, 0x00, 0x00 },
.done_c_readback = { 0x04, 0x00, 0x00, 0x00, 0x02, 0x01, -1, 0x01, 0x00, 0x00, 0x00, 0x00 },
// .clear_error
// .paper_codes
.pgcode_offset = 3,
.paper_code_offset = 6,
@ -146,6 +148,7 @@ struct printer_data printers[P_END] = {
.ready_m_readback = { 0x06, 0x00, 0x03, 0x00, -1, 0x00, -1, -1, 0x00, 0x00, 0x00, 0x00 },
.ready_c_readback = { 0x09, 0x00, 0x07, 0x00, -1, 0x00, -1, -1, 0x00, 0x00, 0x00, 0x00 },
.done_c_readback = { 0x09, 0x00, 0x00, 0x00, -1, 0x00, -1, -1, 0x00, 0x00, 0x00, 0x00 },
// .clear_error
// .paper_codes
.pgcode_offset = 2,
.paper_code_offset = 4,
@ -160,6 +163,7 @@ struct printer_data printers[P_END] = {
.ready_m_readback = { 0x03, 0xff, 0x02, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 },
.ready_c_readback = { 0x05, 0xff, 0x03, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 },
.done_c_readback = { 0x00, 0xff, 0x10, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 },
// .clear_error
// .paper_codes
.pgcode_offset = 2,
.paper_code_offset = -1,
@ -174,6 +178,7 @@ struct printer_data printers[P_END] = {
.ready_m_readback = { 0x00, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -1 },
.ready_c_readback = { 0x00, 0x05, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -1 },
.done_c_readback = { 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -1 },
// .clear_error
// .paper_codes
.pgcode_offset = 2,
.paper_code_offset = 11,
@ -188,6 +193,7 @@ struct printer_data printers[P_END] = {
.ready_m_readback = { 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, -1, 0x00, 0x00, 0x00, 0x00, -1 },
.ready_c_readback = { 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, -1, 0x00, 0x00, 0x00, 0x00, -1 },
.done_c_readback = { 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, -1, 0x00, 0x00, 0x00, 0x00, -1 },
.clear_error = { 0x40, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
// .paper_codes
.pgcode_offset = 3,
.paper_code_offset = 6,
@ -203,6 +209,7 @@ struct printer_data printers[P_END] = {
.ready_c_readback = { 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
.done_c_readback = { 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
// .paper_codes
// .clear_error
.pgcode_offset = -1,
.paper_code_offset = -1,
.error_offset = 2,