send commands to printer and receive response
authorDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 15 Aug 2010 16:36:29 +0000 (18:36 +0200)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 15 Aug 2010 16:36:29 +0000 (18:36 +0200)
scripts/evolis-command.pl [new file with mode: 0755]

diff --git a/scripts/evolis-command.pl b/scripts/evolis-command.pl
new file mode 100755 (executable)
index 0000000..e8c30a3
--- /dev/null
@@ -0,0 +1,32 @@
+#!/usr/bin/perl
+
+use warnings;
+use strict;
+
+use POSIX;
+use Data::Dump qw(dump);
+
+my $dev = '/dev/usb/lp0';
+
+sysopen(my $parallel, $dev, O_RDWR | O_EXCL) || die "$dev: $!";
+
+$|=1;
+print "command> ";
+while(<STDIN>) {
+       chomp;
+       
+       my $send = "\e$_\r";
+       foreach my $byte ( split(//,$send) ) {
+               warn "#>> ",dump($byte),$/;
+               syswrite $parallel, $byte, 1;
+       }
+       my $response;
+       my $byte;
+       while( sysread $parallel, $byte, 1 ) {
+               $response .= $byte;
+               warn "#<< ",dump($byte),$/;
+       }
+       print "<answer ",dump($response),"\ncommand> ";
+}
+
+close($parallel);