#1/usr/local/bin/perl

print "Sup?\n";

$first = "drinkhall.txt";

print "loading hall files... ";
open (HALLF, $first) or die "whoops, problem with $first";
@currhall = <HALLF>;
print "done!\n";

print "initializing sonar... ";
@sonars = (0, 0, 0, 0);
@lastSonars = (0, 0, 0, 0);
@twoSonarsAgo = (0, 0, 0, 0);

getSonars();
getSonars();
getSonars();

@avgSonars = (0, 0, 0, 0);

print "done!\n";


#print "Sonars: ";
#for $val (@sonars) {
#	print "$val, ";
#}
#print "\nLast Sonars: ";
#for $val (@lastsonars) {
#	print "$val, ";
#}

print "Normalizing sonar inputs... ";
#(if not inf) avg the last three sonar readings
for ($i=0; $i < 4; $i++)
{
	@avgSonars[$i] = (@twoSonarsAgo[$i] + @lastSonars[$i] + @twoSonarsAgo[$i])/3
}
print "done!\n";

print "Welcome to CARPET v0.1, the HEROIN command module.";

while(true) {
	print "\n>";
	$comm = <>;
	chop($comm);
	print "--$comm--\n";
	
	
	if ($comm =~ /sonar/) {
		print "\nSonars read: ";
		for $val (@avgSonars) {
			print "$val, ";
		}
	} elsif ($comm =~ /help/) {
		print "Availabe commands: sonar, readnew, help, exit\n";
	} elsif ($comm =~ /readnew/) {
		getSonars();
		for ($i=0; $i < 4; $i++)
		{
			@avgSonars[$i] = (@sonars[$i] + @lastSonars[$i] + @twoSonarsAgo[$i])/3
		}
		print "Sonar data uploaded."
	} elsif ($comm =~ /exit/) {
		print "Shutting down..."
		break;
	} else {
		print "Invalid command.";
	}
}

print "Shutting down...\n";


sub getSonars {
	@twoSonarsAgo = @lastSonars;
	@lastsonars = @sonars;
	@sonars[0] = getLSonar();
	@sonars[1] = getRSonar();
	@sonars[2] = getFSonar();
	@sonars[3] = getASonar();
}



sub getLSonar {
	return int(rand(30)) + 1;
}

sub getRSonar {
	return int(rand(30)) + 1;
}

sub getFSonar {
	return int(rand(30)) + 1;
}

sub getASonar {
	return int(rand(30)) + 1;
}
