"Destroying $self->{NAME}" at ... etc
####
sub DESTROY {
my $self = shift;
return unless (defined $self->{NAME});
if ($self->{"_DEBUG"}) {
carp "Destroying $self->{NAME}";
}
$self->close;
}
####
sub USB {
my $Q = shift;
my $arduino = Device::SerialPort->new("/dev/serial/by-id/usb-Arduino__www.arduino.cc__Arduino_Mega_2560_74136333033351011152-if00");
if ( defined( $arduino ) ) {
$arduino->baudrate(9600);
$arduino->parity("none");
$arduino->databits(8);
$arduino->stopbits(1);
$arduino->read_char_time(0);
$arduino->read_const_time(500);
$arduino->write_settings || undef $arduino;
writelog( "server:[portSet]" );
} else {
writelog( "server:[portSet]: failed" );
}
while( my $request = $Q->dequeue ) {
my $retQ = $Q->dequeue;
$arduino->write($cmd);
my $answer = getLineFromArduino()
$retQ->enqueue( $answer );
}
}
####
sub client {
my $client = shift;
my $usbQ = shift;
my $retQ = new Thread::Queue;
...
my $command = <$client>;
$usbQ->enqueue( $command, $retQ );
my $result = $retQ->dequeue;
print $client $result;
...
}