Merge branch 'master' of t61p:/home/dpavlin/klin/Printer-EVOLIS/
authorDobrica Pavlinusic <dpavlin@rot13.org>
Sat, 14 Aug 2010 22:57:34 +0000 (00:57 +0200)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Sat, 14 Aug 2010 22:57:34 +0000 (00:57 +0200)
evolis-driver.pl
evolis-printer.pl
test-cups.sh [new file with mode: 0755]

index a574837..6d81d44 100755 (executable)
@@ -21,7 +21,7 @@ print "\x1BPdt;DU\r";
 print "\x1BMr;s\r";
 print "\x1BPpws;1281732635\r";
 
-# SEQUENCE RECTO
+# FIXME load card into printer
 print "\x1BSs\r";
 print "\x1BSr\r";
 
@@ -30,10 +30,21 @@ my $command_size = 11682
 print "\x1BDbc;k;2;11682;"; # bitmap data
 print "\r";
 
+# even page on two side-printing
 print "\x1BSv\r";
+
 print "\x1BPc;k;=;10\r";
 
 print "\x1BDbc;k;2;31744;"; # bitmap data
 print "\r";
 
-print "\x1BSe\r";
+# print "\033Ste\015"; # keep card after encoding
+print "\x1BSe\r"; # eject card
+print "\x00" x 64; # FIXME some padding?
+
+sub encoding {
+my $data = "1234567890"; # data for track
+print "\033Ss\015", $data;
+print "\033Smw\015"; # write?
+}
+       
index 697f01d..3347500 100755 (executable)
@@ -17,6 +17,8 @@ local $/ = "\r";
 
 my $page = 1;
 
+my $name = $ARGV[0] || 'page';
+
 sub save_pbm;
 
 while(<>) {
@@ -27,26 +29,37 @@ while(<>) {
        my $c = shift @a;
        if ( $c eq 'Pmi' ) {
                my $f = $a[0] || die 'missing feeder';
-               print "feeder $f | $feeder->{$f}\n";
+               print "$_ feeder: $feeder->{$f}\n";
                $a[1] eq 's' or die;
        } elsif ( $c eq 'Pc' ) {
                my $color = $a[0];
                $a[1] eq '=' or die;
                my $temperature = $a[2];
-               print "temperature $color = $temperature\n";
+               print "$_ temperature $color = $temperature\n";
+       } elsif ( $c eq 'Pl' ) {
+               $a[1] eq '=' or die;
+               print "$_ brightnes? $a[0] = $a[2]\n";
+       } elsif ( $c eq 'Ps' ) {
+               $a[0] eq 'k' or die;
+               $a[1] eq '=' or die;
+               print "$_ qualityK $a[0] = $a[2]\n";
        } elsif ( $c eq 'Pr' ) {
-               print "improve $a[0]\n";
-               # FIXME windows sends it, cups doesn't
+               print "$_ improve (not in cups)\n";
+       } elsif ( $c eq 'Ss' ) {
+               print "$_ encoding download",dump(@a),"\n";
        } elsif ( $c eq 'Sv' ) {
-               print "even page on duplex printing\n";
+               print "$_ even page on duplex printing\n";
+       } elsif ( $c eq 'Sr' ) {
+               print "$_ odd page\n";
        } elsif ( $c eq 'Db' ) { # XXX not in cups
                my ( $color, $two, $data ) = @a;
+               print "$c;$color;$two;... bitmap\n";
                $two eq '2' or die '2';
-               my $path = "page-Db-$color-$page.pbm";
-               $page++;
+               my $path = "$name-Db-$color-$page.pbm"; $page++;
                save_pbm $path, 648, 1015, $data;       # FIXME 1016?
        } elsif ( $c eq 'Dbc' ) { # XXX not in cups
                my ( $color, $line, $len, $comp ) = @a;
+               print "$c;$color;$line;$len;... FIXME bitmap - compressed?\n";
                while ( $len > length($comp) ) {
                        warn "# slurp more ",length($comp), " < $len\n";
                        $comp .= <>;
@@ -73,14 +86,16 @@ while(<>) {
 
                my $data = $comp;
 
-               my $path = "page-Dbc-$color-$page.pbm";
-               $page++;
-
+               my $path = "$name-Dbc-$color-$page.pbm"; $page++;
                my $h = int( $len / 128 );
                save_pbm $path, $w, $h, $data;
 
+       } elsif ( $c eq 'Se' ) {
+               my $zero = <>;
+               print "$_ slurping zero bytes at end ",dump($zero),"\n";
+               exit 0;
        } else {
-               warn "UNKNOWN: $c ", dump(@a);
+               print "FIXME: $_\n";
        }
 }
 
diff --git a/test-cups.sh b/test-cups.sh
new file mode 100755 (executable)
index 0000000..f24a616
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh -x
+
+ls test/*.pdf | xargs -i sh -c "./gs-cups-raster.sh < {} > {}.cups"
+ls test/*.cups | xargs -i sh -c "./cups-rastertoevolis.sh {} > {}.evolis"
+ls test/*.evolis | xargs -i ./evolis-printer.pl {}
+ls -al test/