File Coverage

blib/lib/Device/WebIO/Device/TempSensor.pm
Criterion Covered Total %
statement 9 17 52.9
branch n/a
condition n/a
subroutine 4 8 50.0
pod n/a
total 13 25 52.0


line stmt bran cond sub pod time code
1             # Copyright (c) 2014 Timm Murray
2             # All rights reserved.
3             #
4             # Redistribution and use in source and binary forms, with or without
5             # modification, are permitted provided that the following conditions are met:
6             #
7             # * Redistributions of source code must retain the above copyright notice,
8             # this list of conditions and the following disclaimer.
9             # * Redistributions in binary form must reproduce the above copyright
10             # notice, this list of conditions and the following disclaimer in the
11             # documentation and/or other materials provided with the distribution.
12             #
13             # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
14             # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15             # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16             # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
17             # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18             # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19             # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20             # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21             # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22             # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
23             # POSSIBILITY OF SUCH DAMAGE.
24             package Device::WebIO::Device::TempSensor;
25             $Device::WebIO::Device::TempSensor::VERSION = '0.022';
26 1     1   10248 use v5.12;
  1         3  
27 1     1   6 use Moo::Role;
  1         2  
  1         5  
28              
29             with 'Device::WebIO::Device';
30             requires 'temp_kelvins';
31             requires 'temp_celsius';
32             requires 'temp_fahrenheit';
33              
34              
35             sub _convert_c_to_k
36             {
37 2     2   11 my ($self, $val) = @_;
38 2         9 return $val + 273.15
39             }
40              
41             sub _convert_c_to_f
42             {
43 2     2   11 my ($self, $val) = @_;
44 2         9 return (9/5) * $val + 32;
45             }
46              
47             sub _convert_f_to_k
48             {
49 0     0     my ($self, $val) = @_;
50 0           return $self->_convert_c_to_k(
51             $self->_convert_f_to_c( $val )
52             );
53             }
54              
55             sub _convert_f_to_c
56             {
57 0     0     my ($self, $val) = @_;
58 0           return (5/9) * ($val - 32);
59             }
60              
61             sub _convert_k_to_c
62             {
63 0     0     my ($self, $val) = @_;
64 0           return $val - 273.15;
65             }
66              
67             sub _convert_k_to_f
68             {
69 0     0     my ($self, $val) = @_;
70 0           return $self->_convert_c_to_f(
71             $self->_convert_k_to_c( $val )
72             );
73             }
74              
75              
76              
77             1;
78             __END__