File Coverage

blib/lib/BACnet/DataTypes/Real.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::Real;
4              
5 27     27   165 use warnings;
  27         51  
  27         1535  
6 27     27   134 use strict;
  27         74  
  27         763  
7              
8 27     27   178 use BACnet::DataTypes::Utils;
  27         66  
  27         904  
9              
10 27     27   119 use parent 'BACnet::DataTypes::DataType';
  27         41  
  27         125  
11              
12 27     27   2102 use constant { LENGTH => 0x04 };
  27         86  
  27         7718  
13              
14             sub construct {
15 52     52 0 386290 my ( $class, $input_real, $modified_tag ) = @_;
16              
17 52         210 my $self = {
18             data => BACnet::DataTypes::Utils::_construct_head(
19             BACnet::DataTypes::Utils::REAL_TAG,
20             $modified_tag, LENGTH )
21             . pack( 'f>', $input_real ),
22             val => $input_real,
23             };
24              
25 52         220 return bless $self, $class;
26             }
27              
28             sub parse {
29 52     52 0 115 my ( $class, $data_in ) = @_;
30              
31 52         125 my $self = bless { data => $data_in, }, $class;
32              
33 52         155 my $headache = BACnet::DataTypes::Utils::_correct_head(
34             data_in => $data_in,
35             expected_tag => BACnet::DataTypes::Utils::REAL_TAG,
36             expected_length => LENGTH,
37             );
38              
39 52 50       131 if ( $headache ne "" ) {
40 0         0 $self->{error} = "Real: $headache";
41 0         0 return $self;
42             }
43              
44 52         123 $self->{val} = unpack( 'f>',
45             substr( $data_in, BACnet::DataTypes::Utils::_get_head_length($data_in) )
46             );
47              
48 52         229 return $self;
49             }
50              
51             1;