File Coverage

blib/lib/HiPi/GPIO/Pin.pm
Criterion Covered Total %
statement 15 45 33.3
branch 0 4 0.0
condition n/a
subroutine 5 17 29.4
pod n/a
total 20 66 30.3


line stmt bran cond sub pod time code
1             #########################################################################################
2             # Package HiPi::GPIO::Pin
3             # Description: Pin
4             # Copyright : Copyright (c) 2017 Mark Dootson
5             # License : This is free software; you can redistribute it and/or modify it under
6             # the same terms as the Perl 5 programming language system itself.
7             #########################################################################################
8             package HiPi::GPIO::Pin;
9              
10             #########################################################################################
11              
12 1     1   1618 use strict;
  1         3  
  1         32  
13 1     1   9 use warnings;
  1         35  
  1         37  
14 1     1   6 use parent qw( HiPi::Pin );
  1         2  
  1         5  
15 1     1   128 use Carp;
  1         2  
  1         64  
16 1     1   8 use HiPi qw( :rpi );
  1         3  
  1         870  
17              
18             our $VERSION ='0.81';
19              
20             __PACKAGE__->create_accessors( );
21              
22             sub _open {
23 0     0     my ($class, %params) = @_;
24 0 0         defined($params{pinid}) or croak q(pinid not defined in parameters);
25            
26 0           my $self = $class->SUPER::_open(%params);
27 0           return $self;
28             }
29              
30             sub _do_getvalue {
31 0     0     my($self) = @_;
32 0           return HiPi::GPIO->pin_read( $self->pinid );
33             }
34              
35             sub _do_setvalue {
36 0     0     my( $self, $newval) = @_;
37 0           return HiPi::GPIO->pin_write( $self->pinid, $newval );
38             }
39              
40             sub _do_getmode {
41 0     0     my $self = shift;
42 0           return HiPi::GPIO->get_pin_mode( $self->pinid );
43             }
44              
45             sub _do_setmode {
46 0     0     my ($self, $newmode) = @_;
47 0           return HiPi::GPIO->set_pin_mode( $self->pinid, $newmode );
48             }
49              
50             sub _do_get_function_name {
51 0     0     my($self) = @_;
52 0           return HiPi::GPIO->get_pin_function( $self->pinid );
53             }
54              
55             sub _do_getinterrupt {
56 0     0     my ( $self ) = @_;
57 0           return HiPi::GPIO->get_pin_interrupt($self->pinid);
58             }
59              
60             sub _do_setinterrupt {
61 0     0     my ($self, $newedge) = @_;
62 0           return HiPi::GPIO->set_pin_interrupt($self->pinid, $newedge);
63             }
64              
65             sub _do_setpud {
66 0     0     my($self, $pudval) = @_;
67 0           return HiPi::GPIO->set_pin_pud($self->pinid, $pudval);
68             }
69              
70             sub _do_getpud {
71 0     0     my($self ) = @_;
72 0           return HiPi::GPIO->get_pin_pud($self->pinid);
73             }
74              
75             sub _do_get_interrupt_filepath {
76 0     0     my($self) = @_;
77 0           return HiPi::GPIO->get_pin_interrupt_filepath( $self->pinid );
78             }
79              
80             sub _do_activelow {
81 0     0     my($self, $newval) = @_;
82            
83 0           my $result = undef;
84            
85 0 0         if( defined( $newval ) ) {
86 0           $result = HiPi::GPIO->set_pin_activelow($self->pinid, $newval);
87             } else {
88 0           $result = HiPi::GPIO->get_pin_activelow($self->pinid);
89             }
90            
91 0           return $result;
92             }
93              
94             1;