Commit d75ced68 authored by Mike Hibler's avatar Mike Hibler

Hack to get around apparent overrun of UART causing malformed commands to

the controller.
parent 0b016a54
...@@ -17,6 +17,7 @@ use Socket; ...@@ -17,6 +17,7 @@ use Socket;
use IO::Handle; use IO::Handle;
use lib "@prefix@/lib"; use lib "@prefix@/lib";
use libdb; use libdb;
use POSIX qw(strftime);
# A little perl module to power cycle something attached to an RPC27. # A little perl module to power cycle something attached to an RPC27.
# Thats a serially controlled, power controller. # Thats a serially controlled, power controller.
...@@ -53,6 +54,13 @@ sub rpc27ctrl { ...@@ -53,6 +54,13 @@ sub rpc27ctrl {
my($cmd, $controller, @outlets) = @_; my($cmd, $controller, @outlets) = @_;
my($TIP, $i, $insync); my($TIP, $i, $insync);
#
# Check parameters
#
if (!defined($RPC27_CMD{$cmd})) {
print STDERR "*** Undefined command: '$cmd'\n";
return 1;
}
if (grep {$_ < 1 || $_ > 20} @outlets) { if (grep {$_ < 1 || $_ > 20} @outlets) {
print STDERR "*** Invalid outlet '$outlet': Must be 1-20\n"; print STDERR "*** Invalid outlet '$outlet': Must be 1-20\n";
return 1; return 1;
...@@ -157,6 +165,17 @@ sub syncandsend($$) { ...@@ -157,6 +165,17 @@ sub syncandsend($$) {
return 1; return 1;
} }
#
# These things have an annoying tendency to fail sometimes by losing
# the command part of the string (e.g., "6" instead of "reboot 6").
# I think we are overrunning the UART with "\r\n" since we put out
# a pair after every line we read that is not a prompt and when the
# RPC puts out its banner, it is a good 10 lines before we see the
# prompt. So allow some time for the RPC to digest everything before
# we feed it the command.
#
sleep(1);
if ($debug) { if ($debug) {
print "Sending '$cmd' to $controller\n"; print "Sending '$cmd' to $controller\n";
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment