print "\x1BMr;s\r";
print "\x1BPpws;1281732635\r";
-# SEQUENCE RECTO
+# FIXME load card into printer
print "\x1BSs\r";
print "\x1BSr\r";
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?
+}
+
my $page = 1;
+my $name = $ARGV[0] || 'page';
+
sub save_pbm;
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 .= <>;
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";
}
}