Acpi-Class
view release on metacpan or search on metacpan
examples/Class.pl view on Meta::CPAN
use 5.010;
use strict;
use warnings;
use Acpi::Class;
#}}}
my $class = Acpi::Class->new;
my $classes = $class->g_classes;
my $number = @$classes;
say "In your system there is/are $number classes";
foreach (@$classes) { print " $_";}
print "\n";
say "-" x 50 . "\n The devices in class thermal are:";
$class->class('thermal');
my $elements = $class->g_devices;
foreach (@$elements) { print "$_ "; }
print "\n";
# All values of the devices in the class 'thermal'
$class->class('thermal');
say "-" x 50 ;
$class->p_class_values;
# All values of the device 'cooling_device0'
$class->device('cooling_device0');
say "-" x 50 ;
$class->p_device_values;
examples/Synopsis.pl view on Meta::CPAN
$class->device('ADP1');
my $ac_online = $class->g_values->{'online'};
$class->device('BAT1');
my $values = $class->g_values;
my $battery_present = $values->{'present'};
my $battery_energy_now = $values->{'energy_now'};
my $battery_capacity = $values->{'capacity'};
if ( $ac_online == 1 and $battery_present == 1 )
{
say "Ac on and battery in use ";
say "Energy now = ". $battery_energy_now ;
say "Capacity " . $battery_capacity ." %";
}
elsif ($battery_present)
{
say "Battery in use";
say "Energy now = ". $battery_energy_now ;
say "Capacity " . $battery_capacity ." %";
}
else
{
say "Battery not present";
}
# get all values of device BAT1
say "-" x 50;
$class->p_device_values;
say "-" x 50;
# get all values of class power_supply
$class->p_class_values;
lib/Acpi/Class.pm view on Meta::CPAN
my ($class, $device) = ($self->class, $self->device);
my $values = Acpi::Class::Attributes->new( 'path' => "/sys/class/$class/$device" )->attributes;
return $values;
}#}}}
sub p_device_values #{{{
{
my $self = shift;
my ($class, $device) = ($self->class, $self->device);
my $values = $self->g_values;
say "Device '$device': ";
foreach my $key (keys %$values)
{
my $value = $values->{$key};
say " ...$key = $value";
}
return 1
}#}}}
sub p_class_values #{{{
{
my $self = shift;
my $class = $self->class;
say "Class '$class': ";
my $all_devices = $self->g_devices;
foreach my $dev (@$all_devices)
{
$self->device($dev);
$self->p_device_values;
}
return 1
}#}}}
1;
lib/Acpi/Class.pm view on Meta::CPAN
$class->device('AC');
my $ac_online = $class->g_values->{'online'};
$class->device('BAT0');
my $values = $class->g_values;
my $battery_present = $values->{'present'};
my $battery_energy_now = $values->{'energy_now'};
my $battery_capacity = $values->{'capacity'};
if ( $ac_online == 1 and $battery_present == 1 )
{
say "Ac on and battery in use ";
say "Energy now = ". $battery_energy_now ;
say "Capacity " . $battery_capacity ." %";
}
elsif ($battery_present)
{
say "Battery in use";
say "Energy now = ". $battery_energy_now ;
say "Capacity " . $battery_capacity ." %";
}
else
{
say "Battery not present";
}
# get all values of device BAT1
say "-" x 50;
$class->p_device_values;
say "-" x 50;
# get all values of class power_supply
$class->p_class_values;
=head1 DESCRIPTION
Acpi::Class provides ACPI information from the directory F</sys/class>. It's specific for GNU/Linux.
=head1 ATTRIBUTES
L<Acpi::Class> implements the following attributes:
( run in 0.909 second using v1.01-cache-2.11-cpan-483215c6ad5 )