From: Dobrica Pavlinusic Date: Sun, 15 Aug 2010 16:42:40 +0000 (+0200) Subject: reopen parallel port for each command X-Git-Tag: Printer-EVOLIS-0.01~30 X-Git-Url: http://git.rot13.org/?p=Printer-EVOLIS.git;a=commitdiff_plain;h=ceb4ba13f19afbf632b3e2d0cf5f39359386656d reopen parallel port for each command --- diff --git a/scripts/evolis-command.pl b/scripts/evolis-command.pl index 353e7ed..75bcbbd 100755 --- a/scripts/evolis-command.pl +++ b/scripts/evolis-command.pl @@ -9,25 +9,32 @@ use Data::Dump qw(dump); my $dev = '/dev/usb/lp0'; my $debug = 0; -sysopen(my $parallel, $dev, O_RDWR | O_EXCL) || die "$dev: $!"; +my $parallel; $|=1; print "command> "; while() { chomp; - + my $send = "\e$_\r"; + + # XXX we need to reopen parallel port for each command + sysopen( my $parallel, $dev, O_RDWR | O_EXCL) || die "$dev: $!"; + foreach my $byte ( split(//,$send) ) { warn "#>> ",dump($byte),$/ if $debug; syswrite $parallel, $byte, 1; } + my $response; my $byte; while( sysread $parallel, $byte, 1 ) { $response .= $byte; warn "#<< ",dump($byte),$/ if $debug; } + close($parallel); + print " "; + } -close($parallel);