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 )