File Coverage

blib/lib/Lab/Instrument/OI_ILM210.pm
Criterion Covered Total %
statement 8 21 38.1
branch 0 2 0.0
condition 0 3 0.0
subroutine 3 5 60.0
pod 2 2 100.0
total 13 33 39.3


line stmt bran cond sub pod time code
1             package Lab::Instrument::OI_ILM210;
2             #ABSTRACT: Oxford Instruments ILM Intelligent Level Meter
3             $Lab::Instrument::OI_ILM210::VERSION = '3.881';
4 1     1   1730 use v5.20;
  1         4  
5              
6 1     1   22 use strict;
  1         3  
  1         26  
7 1     1   6 use Lab::Instrument;
  1         2  
  1         223  
8              
9             our @ISA = ("Lab::Instrument");
10              
11             our %fields = ( supported_connections => ['IsoBus'], );
12              
13             sub new {
14 0     0 1   my $proto = shift;
15 0   0       my $class = ref($proto) || $proto;
16 0           my $self = $class->SUPER::new(@_);
17 0           $self->${ \( __PACKAGE__ . '::_construct' ) }(__PACKAGE__);
  0            
18              
19 0           return $self;
20             }
21              
22             sub get_level {
23 0     0 1   my $self = shift;
24 0           my $channel = shift;
25 0 0         $channel = "1" unless defined($channel);
26              
27 0           my $level = $self->query("R$channel");
28 0           $level =~ s/^R//;
29 0           $level /= 10;
30 0           return $level;
31             }
32              
33             1;
34              
35             __END__
36              
37             =pod
38              
39             =encoding utf-8
40              
41             =head1 NAME
42              
43             Lab::Instrument::OI_ILM210 - Oxford Instruments ILM Intelligent Level Meter
44              
45             =head1 VERSION
46              
47             version 3.881
48              
49             =head1 SYNOPSIS
50              
51             use Lab::Instrument::OI_ILM210;
52            
53             my $ilm=new Lab::Instrument::OI_ILM210(
54             connection_type=>'IsoBus',
55             base_connection=>...,
56             isobus_address=>5,
57             );
58              
59             =head1 DESCRIPTION
60              
61             The Lab::Instrument::OI_ILM210 class implements an interface to the Oxford Instruments
62             ILM helium level meter (tested with the ILM210).
63              
64             =head1 CONSTRUCTOR
65              
66             my $ilm=new Lab::Instrument::OI_ILM210(
67             connection_type=>'IsoBus',
68             base_connection=> $iso,
69             isobus_address=> $addr,
70             );
71              
72             Instantiates a new ILM210 object, attached to the GPIB or RS232 connection
73             (of type C<Lab::Connection>) C<$iso>, with IsoBus address C<$addr>.
74              
75             =head1 METHODS
76              
77             =head2 get_level
78              
79             $perc=$ilm->get_level();
80             $perc=$ilm->get_level(1);
81              
82             Reads out the current helium level in percent. Note that this command does NOT trigger a measurement, but
83             only reads out the last value measured by the ILM. This means that in slow mode values may remain constant
84             for several minutes.
85              
86             As optional parameter a channel number can be provided. This defaults to 1.
87              
88             =head1 CAVEATS/BUGS
89              
90             probably many
91              
92             =head1 SEE ALSO
93              
94             =over 4
95              
96             =item L<Lab::Instrument>
97              
98             =back
99              
100             =head1 COPYRIGHT AND LICENSE
101              
102             This software is copyright (c) 2023 by the Lab::Measurement team; in detail:
103              
104             Copyright 2011 Andreas K. Huettel, Florian Olbrich
105             2012-2013 Andreas K. Huettel
106             2016 Simon Reinhardt
107             2017 Andreas K. Huettel
108             2020 Andreas K. Huettel
109              
110              
111             This is free software; you can redistribute it and/or modify it under
112             the same terms as the Perl 5 programming language system itself.
113              
114             =cut