Commit Graph

97 Commits

Author SHA1 Message Date
Solomon Peachy 24c3550feb all: Ensure all malloc() failures are caught and logged. 2015-06-23 20:48:52 -04:00
Solomon Peachy 980fada366 dnpds40: Max printjob size was too small.
Resulted in 8x12 @600dpi prints failing to fully parse due to buffer overflows.

Also added a log message when we fail to read things.
2015-06-23 19:40:35 -04:00
Solomon Peachy 19ce36f65b dnpds40: Distinguish between soft (user-correctable) and fatal errors. 2015-06-23 19:25:23 -04:00
Solomon Peachy 476318bbec dnpds40: Don't repeat media query. 2015-06-22 23:55:48 -04:00
Solomon Peachy 189631d9b4 dnpds40: Add some #ifdefs 2015-06-22 23:51:17 -04:00
Solomon Peachy 2cce68aa81 dnpds40: Minor update. 2015-06-22 23:48:30 -04:00
Solomon Peachy 64a85a4a42 dnpds40: Push media query into early attachment code.
Also, move all sanity checks into the job parsing function, out of the
main loop.  Only stuff like remaining media, rewind, etc belong in the
main loop.
2015-06-22 23:32:48 -04:00
Solomon Peachy d63c075015 dnpds40: correct media offset. 2015-06-22 19:26:23 -04:00
Solomon Peachy a2bd3946d1 dnpds40: Display total media quantity *before* remaining prints. 2015-06-22 18:58:19 -04:00
Solomon Peachy f90f2ba558 dnpds40: Add support for 6x4.5 and 6x4.5*2 prints 2015-06-22 18:46:26 -04:00
Solomon Peachy 9f69513f8a dnpds40: DS620 bugfixes. Fix 6x9 detection, and color data checksum. 2015-06-21 13:49:28 -04:00
Solomon Peachy 7e56920868 dnpds40: Bugfixes. Typo in version checking. Double free in main
loop.  Log remaining prints on status page.  Multicut detection fixes.
2015-06-20 16:33:39 -04:00
Solomon Peachy b57b415bbe dnpds40: Add USB VID/PID for the DNP DS620
In theory, the DS620 is now fully supported.  Just needs some testing.
2015-06-19 13:47:43 -04:00
Solomon Peachy 3e08415a81 dnpds40: Disable PQTY query until we can figure out its use. 2015-06-17 22:59:01 -04:00
Solomon Peachy a2584443b5 dnpds40: Query serial number and version just once, at attachment time.
Also add disabled code that stores and restores the last matte status.
2015-06-17 22:57:31 -04:00
Solomon Peachy f5484d0573 dnpds40: Add standby mode set for DS620 printers. 2015-06-17 21:02:51 -04:00
Solomon Peachy 504ff4cd37 dnpds40: Decode the standby status code. 2015-06-17 20:55:29 -04:00
Solomon Peachy b1905b15ca dnpds40: Log when we detect the DS620 being in standby. 2015-06-17 20:53:22 -04:00
Solomon Peachy 68a64d544b dnpds80: Fix a couple of comments, and RX1 has its own type now. 2015-06-16 20:26:27 -04:00
Solomon Peachy df4437f275 dnpds40: Correct remaining print count. 2015-06-16 18:54:58 -04:00
Solomon Peachy 26bffc806c ... 2015-06-16 18:47:58 -04:00
Solomon Peachy c4a36dbc2f dnpds40: Add support for DS620-specific multicut-types 2015-06-16 18:47:12 -04:00
Solomon Peachy dc86a3a345 whitespace cleanup 2015-06-14 15:28:20 -04:00
Solomon Peachy e373d06760 dnpds40: Query remaining media to see if we can complete job
* This lets us properly halt the queue if the media has run out
 * Print a warning if we can start, but have insufficient media to finish
2015-06-14 11:33:08 -04:00
Solomon Peachy 7b8844daa9 dnpds40: Query DS620-specific configuration flags.
* Media end keep mode
 * Report serial number in USB descriptor
 * Standby delay time

Still need to allow them to be set
2015-06-14 09:23:02 -04:00
Solomon Peachy 15a8bd7761 dnpds40: Add Color data version/checksum fetches for DS620. 2015-06-14 09:15:24 -04:00
Solomon Peachy 9b52766140 dnpds40: Add support for DS620 media rewind

   * sanity-check FULL_CUTTER
   * detect standby support.

Note that Gutenprint still needs updating for DS620.
2015-06-14 09:05:55 -04:00
Solomon Peachy e635d804e9 dnpds40: Handle (and sanity-check) 3.5x5*2 prints.
still needs work on Gutenprint.
2015-06-13 22:34:54 -04:00
Solomon Peachy 000f6aa1cc dnpds40: Query firmware version, and sanity-check print job against it.
Error out if the firmware doesn't support requested job -- eg matte
printing, or 2x6 printing.  Also, only allow 2x6 cuts on 6x4 or 6x8
2015-06-13 17:20:19 -04:00
Solomon Peachy a53eb4c09d dnpds40: Validate horizontal size to determine if job is for DS80 or everything else. 2015-06-13 12:25:45 -04:00
Solomon Peachy c661edaff0 dnpds40: Don't perform job sanity checks if there is no job! 2015-06-13 12:06:33 -04:00
Solomon Peachy d7e2685a0f dnpds40: Be more flexible with the multicut validation.
It's primarily used for media/buffer validation and optimization, so if
it's missing use the most conservative settings and warn the user.

Newer gutenprint (5.2.11-pre) won't trigger this.
2015-06-13 12:01:08 -04:00
Solomon Peachy b6d6351bbd dnpds40: Improve error message WRT multicut. 2015-06-11 08:42:52 -04:00
Solomon Peachy 95651e7685 dnpds40: Handle the presence (or lack thereof) of the BUFFCNTRL
and QTY commands in the data stream.
2015-06-11 08:41:25 -04:00
Solomon Peachy 4e3282377f dnpds40: Start trying to tokenize the sensor data.
Also add placeholders for the DS80DX and DS620.
2015-06-10 23:37:27 -04:00
Solomon Peachy 8c4be91f64 dnpds40: Move the MULTICUT detection to earlier in the process.
Basically, we abort as soon as we know it's missing.
2015-06-09 08:33:13 -04:00
Solomon Peachy 338da49377 dnpds40: Media lot code is ASCII. 2015-06-08 23:45:06 -04:00
Solomon Peachy 5d376819d2 dnpds40: Update Media Lot Code query to reflect full data width. 2015-06-08 23:40:04 -04:00
Solomon Peachy 460cce639a dnpds40: Turn on resumption of print job when a soft error is resolved.
(ie when we run out of media, resume printing when we continue)

Also implement a couple of minor cleanups.

Still to come:  Query printer version, and sanity-check features.  Also
perhaps query the remaining media before a print?
2015-06-08 23:17:12 -04:00
Solomon Peachy 0edced1c9f dnpds40: Sanity-check printjob type against loaded media.
Also cleanly abort the job if the printer kicks back a data/mediatype
2015-06-08 08:06:18 -04:00
Solomon Peachy fbb4cdf441 dnpds40: Fix errors in the free buffer detection code.
Some other code rearrangements too.
2015-05-31 18:00:39 -04:00
Solomon Peachy b731dc04f8 Update copyright notice. 2015-01-05 21:39:22 -05:00
Solomon Peachy e84afdb816 dnpds40: Mitsubishi CP3800 uses the same VID/PID as the DNP DS80 2014-12-03 00:10:53 -05:00
Solomon Peachy 60540baf0e dnpds40: Get rid of the CW01/OP900 entries, it's not handled in this backend. 2014-10-29 22:11:46 -04:00
Solomon Peachy f77357977d dnpds40: Only error out if we get a non-idle/printing/cooling status. 2014-10-29 22:07:58 -04:00
Solomon Peachy aa236d1ae6 dnpds40: Log the status in raw form too, when we fail. 2014-10-29 22:02:11 -04:00
Solomon Peachy 325cf58e0d dnpds40: Fix a use-after-free. 2014-10-07 07:58:39 -04:00
Solomon Peachy 1f26903ffa dnpds40: Fix citizen cw-01 definition.
It almost certianly will *NOT* work with this backend.
2014-10-05 21:18:03 -04:00
Solomon Peachy d92bb77ced dnpds40: Add USB ID for Citizen CW-01. Experimental. 2014-10-05 18:57:26 -04:00
Solomon Peachy 0244c757db Udpate documentation, plus another shoutout to LiveLink for their
support in making this stuff possible.
2014-06-03 20:43:31 -04:00