File Coverage

blib/lib/Lab/Instrument/IPSWeissDilfridge.pm
Criterion Covered Total %
statement 8 22 36.3
branch 0 2 0.0
condition 0 3 0.0
subroutine 3 5 60.0
pod n/a
total 11 32 34.3


line stmt bran cond sub pod time code
1             package Lab::Instrument::IPSWeissDillFridge;
2             #ABSTRACT: Derived IPS instrument for the AG Weiss dilution refrigerator
3             $Lab::Instrument::IPSWeissDillFridge::VERSION = '3.881';
4 1     1   1638 use v5.20;
  1         4  
5              
6 1     1   5 use strict;
  1         2  
  1         24  
7 1     1   564 use Lab::Instrument::IPS;
  1         3  
  1         258  
8             our @ISA = ('Lab::Instrument::IPS');
9              
10             our %fields = (
11             supported_connections => [
12             'VISA', 'VISA_GPIB', 'GPIB', 'VISA_RS232', 'RS232', 'IsoBus', 'DEBUG'
13             ],
14              
15             # default settings for the supported connections
16             connection_settings => {
17             gpib_board => 0,
18             gpib_address => undef,
19             baudrate => 9600,
20             databits => 8,
21             stopbits => 2,
22             parity => 'none',
23             handshake => 'none',
24             termchar => "\r",
25             timeout => 2,
26              
27             },
28              
29             device_settings => { has_switchheater => 0 },
30              
31             device_cache => { id => "Weiss Dilution Fridge" }
32              
33             );
34              
35             sub new {
36 0     0     my $proto = shift;
37 0   0       my $class = ref($proto) || $proto;
38 0           my $self = $class->SUPER::new(@_);
39 0           $self->${ \( __PACKAGE__ . '::_construct' ) }(__PACKAGE__);
  0            
40              
41             $self->{LIMITS} = {
42 0           'magneticfield' => 17,
43             'field_intervall_limits' => [ 0, 10.99, 13.73, 16.48, 17 ],
44             'rate_intervall_limits' => [ 0.660, 0.552, 0.276, 0.138, 0.138 ]
45             };
46              
47 0           $self->connection()->Clear();
48 0           $self->check_magnet();
49              
50             #$self->_init_magnet();
51 0           $self->_device_init();
52              
53 0           return $self;
54             }
55              
56             sub check_magnet {
57 0     0     my $self = shift;
58              
59 0           my $version = $self->get_version();
60 0 0         if ( not( $version =~ /\b(IPS180)/ ) ) {
61 0           Lab::Exception::CorruptParameter->throw( error =>
62             "This Instrument driver is supposed to be used ONLY with LS Weiss Dilution Cryostat !\n"
63             );
64             }
65             }
66              
67              
68             1;
69              
70             __END__
71              
72             =pod
73              
74             =encoding UTF-8
75              
76             =head1 NAME
77              
78             Lab::Instrument::IPSWeissDillFridge - Derived IPS instrument for the AG Weiss dilution refrigerator
79              
80             =head1 VERSION
81              
82             version 3.881
83              
84             =head1 TO DO
85              
86             Move this module to a separate distribution with files specific for the
87             Regensburg labs.
88              
89             =head1 COPYRIGHT AND LICENSE
90              
91             This software is copyright (c) 2023 by the Lab::Measurement team; in detail:
92              
93             Copyright 2012 Christian Butschkow
94             2013 Andreas K. Huettel, Christian Butschkow
95             2017 Andreas K. Huettel, Simon Reinhardt
96             2020 Andreas K. Huettel
97              
98              
99             This is free software; you can redistribute it and/or modify it under
100             the same terms as the Perl 5 programming language system itself.
101              
102             =cut