sub init {
my ($this, $str, @params) = @_;
$this->{DATA}{DEVICE} = "lp0"; # <---
$this->{DATA}{BASE} = linux_opendev($this->{DATA}{DEVICE});
...
####
#!/usr/bin/perl -w
use Device::ParallelPort;
my $port = Device::ParallelPort->new('linux');
if($port){
$port->set_data(chr(0));
$port->set_control(chr(0));
show("Data", $port->get_data());
show("Control", $port->get_control());
show("Status", $port->get_status());
print "set bit 0 to 0\n"; $port->set_bit(0, 0);
printf "read bit 0: %d\n", $port->get_bit(0);
print "set bit 0 to 1\n"; $port->set_bit(0, 1);
printf "read bit 0: %d\n", $port->get_bit(0);
print "set bit 0 to 0\n"; $port->set_bit(0, 0);
printf "read bit 0: %d\n", $port->get_bit(0);
print "set bit 2 to 1\n"; $port->set_bit(2, 1);
printf "read bit 2: %d\n", $port->get_bit(2);
show("Data", $port->get_data());
print "set data 'a' (0x61 01100001)\n";
$port->set_data('a');
show("Data", $port->get_data());
print "set control 4 (bit 2)\n";
$port->set_control(chr(4));
show("Control", $port->get_control());
show("Status", $port->get_status());
} else {
die "Errore sul driver\n";
}
sub show {
my $portname = shift;
my $val = ord shift;
printf "%-13s %02x %08b\n", "$portname port:", $val, $val;
}
####
Data port: 00 00000000
Control port: c0 11000000
Status port: 7f 01111111
set bit 0 to 0
read bit 0: 0
set bit 0 to 1
read bit 0: 1
set bit 0 to 0
read bit 0: 0
set bit 2 to 1
read bit 2: 1
Data port: 04 00000100
set data 'a' (0x61 01100001)
Data port: 61 01100001
set control 4 (bit 2)
Control port: c4 11000100
Status port: 7f 01111111