File Coverage

blib/lib/Lab/XPRESS/Sweep/SignalRecoveryOscOut.pm
Criterion Covered Total %
statement 11 36 30.5
branch 0 4 0.0
condition 0 3 0.0
subroutine 4 11 36.3
pod 1 7 14.2
total 16 61 26.2


line stmt bran cond sub pod time code
1             package Lab::XPRESS::Sweep::SignalRecoveryOscOut;
2             $Lab::XPRESS::Sweep::SignalRecoveryOscOut::VERSION = '3.880';
3             #ABSTRACT: Signal recovery lock in oscillator output sweep
4              
5 1     1   1718 use v5.20;
  1         4  
6              
7 1     1   7 use Lab::XPRESS::Sweep;
  1         2  
  1         91  
8 1     1   9 use Time::HiRes qw/usleep/, qw/time/;
  1         4  
  1         6  
9 1     1   98 use strict;
  1         2  
  1         497  
10              
11             our @ISA = ('Lab::XPRESS::Sweep');
12              
13             sub new {
14 0     0 0   my $proto = shift;
15 0           my @args = @_;
16 0   0       my $class = ref($proto) || $proto;
17             my $self->{default_config} = {
18 0           id => 'Power_Sweep',
19             filename_extension => 'POW=',
20             interval => 1,
21             points => [],
22             rate => [1],
23             mode => 'step',
24             allowed_instruments => ['Lab::Instrument::SignalRecovery726x'],
25             allowed_sweep_modes => [ 'list', 'step' ],
26             number_of_points => [undef]
27             };
28              
29 0           $self = $class->SUPER::new( $self->{default_config}, @args );
30 0           bless( $self, $class );
31              
32 0           return $self;
33             }
34              
35             sub go_to_sweep_start {
36 0     0 0   my $self = shift;
37              
38             # go to start:
39             $self->{config}->{instrument}
40 0           ->set_osc( { value => @{ $self->{config}->{points} }[0] } );
  0            
41             }
42              
43             sub start_continuous_sweep {
44 0     0 0   my $self = shift;
45              
46 0           return;
47              
48             }
49              
50             sub go_to_next_step {
51 0     0 0   my $self = shift;
52              
53             $self->{config}->{instrument}->set_osc(
54 0           { value => @{ $self->{config}->{points} }[ $self->{iterator} ] } );
  0            
55              
56             }
57              
58             sub exit_loop {
59 0     0 0   my $self = shift;
60              
61 0 0         if ( $self->{config}->{mode} =~ /step|list/ ) {
62 0 0         if (
63             not
64 0           defined @{ $self->{config}->{points} }[ $self->{iterator} + 1 ] )
65             {
66 0           return 1;
67             }
68             else {
69 0           return 0;
70             }
71             }
72             }
73              
74             sub get_value {
75 0     0 1   my $self = shift;
76 0           return $self->{config}->{instrument}->get_osc();
77             }
78              
79             sub exit {
80 0     0 0   my $self = shift;
81 0           $self->{config}->{instrument}->abort();
82             }
83              
84             1;
85              
86             __END__
87              
88             =pod
89              
90             =encoding UTF-8
91              
92             =head1 NAME
93              
94             Lab::XPRESS::Sweep::SignalRecoveryOscOut - Signal recovery lock in oscillator output sweep
95              
96             =head1 VERSION
97              
98             version 3.880
99              
100             =head1 DESCRIPTION
101              
102             Parent: Lab::XPRESS::Sweep
103              
104             The Lab::XPRESS::Sweep::SignalRecoveryOscOut
105              
106             =head1 CAVEATS/BUGS
107              
108             probably none
109              
110             =head1 SEE ALSO
111              
112             =over 4
113              
114             =item L<Lab::XPRESS::Sweep>
115              
116             =back
117              
118             =head1 COPYRIGHT AND LICENSE
119              
120             This software is copyright (c) 2023 by the Lab::Measurement team; in detail:
121              
122             Copyright 2021 Simon Reinhardt
123              
124              
125             This is free software; you can redistribute it and/or modify it under
126             the same terms as the Perl 5 programming language system itself.
127              
128             =cut