File Coverage

blib/lib/BACnet/ServiceRequestSequences/SubscribeCOV.pm
Criterion Covered Total %
statement 12 12 100.0
branch 2 2 100.0
condition n/a
subroutine 4 4 100.0
pod 0 2 0.0
total 18 20 90.0


line stmt bran cond sub pod time code
1             #!/usr/bin/perl
2              
3             package BACnet::ServiceRequestSequences::SubscribeCOV;
4              
5 27     27   171 use warnings;
  27         54  
  27         1461  
6 27     27   142 use strict;
  27         52  
  27         11028  
7              
8             require BACnet::ServiceRequestSequences::Utils;
9              
10             require BACnet::DataTypes::Bool;
11             require BACnet::DataTypes::Enum;
12             require BACnet::DataTypes::Int;
13             require BACnet::DataTypes::ObjectIdentifier;
14             require BACnet::DataTypes::SequenceValue;
15             require BACnet::DataTypes::SequenceOfValues;
16             require BACnet::DataTypes::UnsignedInt;
17             require BACnet::DataTypes::DataType;
18              
19             require BACnet::DataTypes::Bone;
20              
21             our $request_skeleton = [
22             BACnet::DataTypes::Bone->construct(
23             tag => 0,
24             name => 'subscriber_process_identifier',
25             dt => 'BACnet::DataTypes::UnsignedInt'
26             ),
27             BACnet::DataTypes::Bone->construct(
28             tag => 1,
29             name => 'monitored_object_identifier',
30             dt => 'BACnet::DataTypes::ObjectIdentifier'
31             ),
32             BACnet::DataTypes::Bone->construct(
33             tag => 2,
34             name => 'issue_confirmed_notifications',
35             dt => 'BACnet::DataTypes::Bool'
36             ),
37             BACnet::DataTypes::Bone->construct(
38             tag => 3,
39             name => 'lifetime',
40             dt => 'BACnet::DataTypes::UnsignedInt'
41             ),
42             ];
43              
44             sub request {
45 2     2 0 238968 my %args = (
46             subscriber_process_identifier => undef,
47             monitored_object_identifier_type => undef,
48             monitored_object_identifier_instance => undef,
49             issue_confirmed_notifications => undef,
50             lifetime => undef,
51             @_,
52             );
53              
54             my $sequence_elements = [
55             [
56             'subscriber_process_identifier',
57             BACnet::DataTypes::UnsignedInt->construct(
58             $args{subscriber_process_identifier}, 0x00
59             )
60             ],
61             [
62             'monitored_object_identifier',
63             BACnet::DataTypes::ObjectIdentifier->construct(
64             $args{monitored_object_identifier_type},
65             $args{monitored_object_identifier_instance},
66 2         22 0x01
67             )
68             ],
69             ];
70              
71 2 100       9 if ( defined $args{issue_confirmed_notifications} ) {
72             push @$sequence_elements,
73             [
74             'issue_confirmed_notifications',
75             BACnet::DataTypes::Bool->construct(
76             $args{issue_confirmed_notifications}, 0x02
77             )
78             ],
79             [
80             'lifetime',
81 1         13 BACnet::DataTypes::UnsignedInt->construct( $args{lifetime}, 0x03 ),
82             ];
83             }
84              
85 2         17 return BACnet::DataTypes::SequenceValue->construct($sequence_elements);
86             }
87              
88             our $negative_response_skeleton =
89             $BACnet::ServiceRequestSequences::Utils::error_type_skeleton;
90              
91             sub negative_response {
92 1     1 0 5802 return BACnet::ServiceRequestSequences::Utils::_error_type(@_);
93             }
94             1;