#!/usr/bin/perl use constant STATE802 => '/proc/driver/aironet/eth1/Status'; $| = 1; my (@spinner) = qw(- \ | /); my $spin = 0; while (1) { my $state802 = &getACPIInfo(STATE802) || die "Couldn't open ".STATE802; system(clear); print "$$state802{'Manufacturer'} $$state802{'Device'} $$state802{'Firmware Version'}, mode $$state802{'Mode'} ". '['.$spinner[$spin].']'. "\n\n". "Rate : $$state802{'BitRate'}\n". 'Signal Strength : '. (sprintf "%3d", $$state802{'Signal Strength'}).' '. ('#' x ($$state802{'Signal Strength'} / 2)). "\n". 'Signal Quality : '. (sprintf "%3d", $$state802{'Signal Quality'}).' '. ('#' x (($$state802{'Signal Quality'} * (5/6)) * 10)). "\n". ' '. ('-' x 50). "\n"; $spin++; $spin = 0 if ($spin == 4); sleep 1; } sub getACPIInfo ($) { my ($interface) = @_; if (-e $interface) { if (open (INTERFACE, $interface)) { my %info; while () { my ($label,$value) = (m/^([^:]+):\s+(.+)$/); # $value =~ s/\D//g if ($value =~ /^\d/); $info{$label} = $value; } close (INTERFACE); return (\%info); } } return undef; }