Here are some general guidelines of the general direction we'd like to take with the code.
In the long run, escputil isn't looking like the best tool for the job. What we'd like to do is change Stylus Toolbox from using escputil to directly using libgutenprint. Performance and memory usage would likely improve as a result. One of the reasons we separated the GUI code from the backend code was so that we could have our choice of backends, so it may be possible to use more than one backend, such using libinklevel for the ink levels and using libgutenprint for everything else. It may also be possible to add support for additional printers in this way, as libinklevel also supports reading inklevels for Canon and HP printers.
What this would entail is creating Python bindings for libgutenprint. Python bindings already exist for libinklevel, so we wouldn't need to do that work if we used libinklevel to get the ink levels. Once we have Python bindings for libgutenprint, then it's a just matter of sending the appropriate sequences to the printer and then parsing the results.
On balance, using libgutenprint would still give us support for any Epson printer supported by Gutenprint, and possibly some other printers as well, if we can get information for them. Using libinklevel gives us support for printers other than Epson for at least reading ink levels and it gives us an alternative to Gutenprint for Epson printers.
At the end of the day, it looks like the best thing we can do to get alignment working for all printers is to rewrite the alignment code and have it use Gutenprint. We'll need some kind of data file that contains all of the information needed to perform head alignment for all of the printers, including the number of alignment passes Maybe we could use a Berkely DB/Sleepycat database. Or an XML file. Or maybe just a CSV file.
We now have developer documentation generated by HappyDoc. This documentation represents the latest code in CVS.
Our CVS repository is generously hosted by Sourceforge. You'll find the new code under the module "Stylus Toolbox". The old code is under "stylus-toolbox'. If you would like developer (read/write, as opposed to read only) access to CVS, please join the stylus-toolbox-devel list to get involved.
Entire website Copyright © 2006-2008 Rob A. Shinn. Licensed under the GNU Free Documentation License