#!/usr/local/bin/perl -w
###########################################
# relay - Switch an Arduino relay on/off
# Mike Schilli, 2013 (m@perlmeister.com)
###########################################
use strict;
use Device::SerialPort;
use Pod::Usage;
use Log::Log4perl qw(:easy);
Log::Log4perl->easy_init($DEBUG);

my( $cmd ) = @ARGV;

if( !defined $cmd ) {
    pod2usage();
} 

my $byte;

if( $cmd eq "on" ) {
    $byte = "1";
} elsif( $cmd eq "off" ) {
    $byte = "0";
} else {
    pod2usage();
}

my $dev = Device::SerialPort->new(
   "/dev/ttyACM0",
  1,
);

{
    DEBUG "Writing ...";
    $dev->write( $byte );

    DEBUG "Reading ...";
    my $bytes = 2;
    my( $count, $data ) = $dev->read( $bytes );

    DEBUG "Got $count bytes";

    if( $count != $bytes ) {
        sleep 1;
        redo;
    }
    DEBUG "Received: \"$data\"\n";
}

$dev->close();

__END__

=head1 NAME

    relay - Switch relay on and off

=head1 SYNOPSIS

    relay on|off

=head1 AUTHOR

2013, Mike Schilli <m@perlmeister.com>
