e8c30a37cc9132ec178b9ded440d5badfe8f8bbf
[Printer-EVOLIS.git] / scripts / evolis-command.pl
1 #!/usr/bin/perl
2
3 use warnings;
4 use strict;
5
6 use POSIX;
7 use Data::Dump qw(dump);
8
9 my $dev = '/dev/usb/lp0';
10
11 sysopen(my $parallel, $dev, O_RDWR | O_EXCL) || die "$dev: $!";
12
13 $|=1;
14 print "command> ";
15 while(<STDIN>) {
16         chomp;
17         
18         my $send = "\e$_\r";
19         foreach my $byte ( split(//,$send) ) {
20                 warn "#>> ",dump($byte),$/;
21                 syswrite $parallel, $byte, 1;
22         }
23         my $response;
24         my $byte;
25         while( sysread $parallel, $byte, 1 ) {
26                 $response .= $byte;
27                 warn "#<< ",dump($byte),$/;
28         }
29         print "<answer ",dump($response),"\ncommand> ";
30 }
31
32 close($parallel);