File Coverage

blib/lib/BACnet/DataTypes/Double.pm
Criterion Covered Total %
statement 24 26 92.3
branch 1 2 50.0
condition n/a
subroutine 7 7 100.0
pod 0 2 0.0
total 32 37 86.4


line stmt bran cond sub pod time code
1             #!/usr/bin/perl
2              
3             package BACnet::DataTypes::Double;
4              
5 27     27   210 use warnings;
  27         53  
  27         1593  
6 27     27   175 use strict;
  27         47  
  27         688  
7              
8 27     27   105 use BACnet::DataTypes::Utils;
  27         60  
  27         783  
9              
10 27     27   106 use parent 'BACnet::DataTypes::DataType';
  27         44  
  27         123  
11              
12 27     27   1885 use constant { LENGTH => 8, };
  27         108  
  27         9429  
13              
14             sub construct {
15 6     6 0 305497 my ( $class, $input_double, $modified_tag ) = @_;
16              
17 6         27 my $self = {
18             data => BACnet::DataTypes::Utils::_construct_head(
19             BACnet::DataTypes::Utils::DOUBLE_TAG,
20             $modified_tag, LENGTH )
21             . pack( 'd>', $input_double ),
22             val => $input_double,
23             };
24              
25 6         27 return bless $self, $class;
26             }
27              
28             sub parse {
29 6     6 0 18 my ( $class, $data_in ) = @_;
30              
31 6         19 my $self = bless { data => $data_in, }, $class;
32              
33 6         26 my $headache = BACnet::DataTypes::Utils::_correct_head(
34             data_in => $data_in,
35             expected_tag => BACnet::DataTypes::Utils::DOUBLE_TAG,
36             expected_length => LENGTH,
37             );
38              
39 6 50       19 if ( !$headache eq '' ) {
40 0         0 $self->{error} = "Double: $headache";
41 0         0 return $self;
42             }
43              
44 6         34 $self->{val} = unpack(
45             'd>',
46             substr(
47             $data_in, BACnet::DataTypes::Utils::_get_head_length($data_in),
48             LENGTH
49             )
50             );
51              
52 6         23 return $self;
53             }
54              
55             1;