Acpi
view release on metacpan or search on metacpan
package Acpi::Battery;
use Acpi::Field;
use strict;
our $VERSION = '0.1';
my $rfield;
sub new{
my($class) = shift;
my($self) = {};
bless($self,$class);
$rfield = Acpi::Field->new;
return $self;
}
sub getBatteryInfo{
my($self,$what) = @_;
my(%value);
my($i) = 0;
my($numbatt) = $self->nbBattery;
for($i=1;$i<=$numbatt;$i++){
$value{"BAT".$i} = $rfield->getValueField("/proc/acpi/battery/BAT".$i."/info",$what);
}
return (%value);
}
sub getBatteryState{
my($self,$what)= @_;
my(%value);
my($i) = 0;
my($numbatt) = $self->nbBattery;
for($i=1;$i<=$numbatt;$i++){
$value{"BAT".$i} = $rfield->getValueField("/proc/acpi/battery/BAT".$i."/state",$what);
}
return (%value);
}
sub batteryOnLine{
my($self) = shift;
my($file) = "/proc/acpi/ac_adapter/ACAD/state";
if($rfield->getValueField($file,"state") eq "on-line"){
return -1;
}
else{
return 0;
}
}
sub nbBattery{
my($self) = shift;
my($dir) = "/proc/acpi/battery";
my($nb) = 0;
opendir(BATTERYDIR,$dir) || die "Impossible d'ouvrir $dir : $!";
while(readdir(BATTERYDIR)){
$nb++;
}
$nb -= 2; #SOUSTRACT "." and ".."
closedir(BATTERYDIR);
return $nb;
}
sub getLastFull{
( run in 2.457 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )