7 use Data::Dump qw(dump);
11 my $port = '/dev/usb/lp0';
19 warn "# port $port debug $debug\n";
30 # XXX we need to reopen parallel port for each command
31 sysopen( $parallel, $port, O_RDWR | O_EXCL) || die "$port: $!";
33 foreach my $byte ( split(//,$send) ) {
34 warn "#>> ",dump($byte),$/ if $debug;
35 syswrite $parallel, $byte, 1;
39 # XXX and between send and receive
40 sysopen( $parallel, $port, O_RDWR | O_EXCL) || die "$port: $!";
43 while ( ! sysread $parallel, $response, 1 ) { sleep 0.1 }; # XXX wait for 1st char
45 while( sysread $parallel, $byte, 1 ) {
46 warn "#<< ",dump($byte),$/ if $debug;
47 last if $byte eq "\x00";
52 print "<answer ",dump($response),"\ncommand> ";