$Lab::Moose::Instrument::HP33120A::VERSION
=
'3.930'
;
use
Moose;
validated_getter
validated_setter
validated_no_param_setter
setter_params
/
;
has
[
qw/max_units_per_second max_units_per_step min_units max_units/
] =>
(
is
=>
'ro'
,
isa
=>
'Num'
,
required
=> 1 );
has
source_level_timestamp
=> (
is
=>
'rw'
,
isa
=>
'Num'
,
init_arg
=>
undef
,
);
has
verbose
=> (
is
=>
'ro'
,
isa
=>
'Bool'
,
default
=> 1
);
sub
BUILD {
my
$self
=
shift
;
$self
->get_id();
}
sub
get_id {
my
$self
=
shift
;
return
$self
->query(
command
=>
sprintf
(
"*IDN?"
) );
}
sub
reset
{
my
$self
=
shift
;
$self
->
write
(
command
=>
sprintf
(
"*RST"
) );
}
sub
set_frq {
my
(
$self
,
$value
,
%args
) = validated_setter( \
@_
,
value
=> {
isa
=>
'Num'
},
);
$self
->
write
(
command
=>
sprintf
(
"FREQuency %d Hz"
,
$value
),
%args
);
}
sub
get_frq {
my
$self
=
shift
;
return
$self
->query(
command
=>
sprintf
(
"FREQuency?"
) );
}
sub
set_amplitude {
my
(
$self
,
$value
,
%args
) = validated_setter( \
@_
,
value
=> {
isa
=>
'Num'
},
);
$self
->
write
(
command
=>
sprintf
(
"VOLTage %e V"
,
$value
) );
}
sub
get_amplitude {
my
$self
=
shift
;
return
$self
->query(
command
=>
sprintf
(
"VOLTage?"
) );
}
sub
set_offset {
my
(
$self
,
$value
,
%args
) = validated_setter( \
@_
,
value
=> {
isa
=>
'Num'
},
);
$self
->
write
(
command
=>
sprintf
(
"VOLTage:OFFSet %e V"
,
$value
) );
}
sub
get_offset {
my
$self
=
shift
;
return
$self
->query(
command
=>
"VOLTage:OFFSet?"
);
}
cache
source_level
=> (
getter
=>
'source_level_query'
);
sub
source_level_query {
my
(
$self
,
%args
) = validated_getter( \
@_
);
return
$self
->cached_source_level(
$self
->get_offset()
);
}
sub
source_level {
my
(
$self
,
$value
,
%args
) = validated_setter(
\
@_
,
value
=> {
isa
=>
'Num'
}
);
$self
->set_offset(
value
=>
$value
,
%args
);
$self
->cached_source_level(
$value
);
}
sub
set_level {
my
(
$self
,
$value
,
%args
) = validated_setter(
\
@_
,
value
=> {
isa
=>
'Num'
},
);
return
$self
->linear_step_sweep(
to
=>
$value
,
verbose
=>
$self
->verbose,
%args
);
}
sub
cached_level {
my
$self
=
shift
;
return
$self
->cached_source_level(
@_
);
}
sub
get_level {
my
$self
=
shift
;
return
$self
->source_level_query(
@_
);
}
sub
selftest {
my
$self
=
shift
;
return
$self
->query(
command
=>
sprintf
(
"*TST?"
) );
}
sub
display_on {
my
$self
=
shift
;
$self
->
write
(
command
=>
sprintf
(
"DISPlay ON"
) );
}
sub
display_off {
my
$self
=
shift
;
$self
->
write
(
command
=>
sprintf
(
"DISPlay OFF"
) );
}
sub
set_shape {
my
(
$self
,
$value
,
%args
) = validated_setter( \
@_
,
value
=> {
isa
=>
'Str'
},
);
$self
->
write
(
command
=>
'FUNCtion:SHAPe '
.
$value
);
}
sub
get_shape {
my
$self
=
shift
;
return
$self
->query(
command
=>
'FUNCtion:SHAPe?'
);
}
with
qw(
Lab::Moose::Instrument::SCPI::Source::Function
Lab::Moose::Instrument::LinearStepSweep
)
;
1;