NAME
Lab::Moose::Instrument::SpectrumAnalyzer - Role of Generic Spectrum Analyzer for Lab::Moose::Instrument
VERSION
version 3.851
DESCRIPTION
Basic commands to make functional basic spectrum analyzer
NAME
Lab::Moose::Instrument::SpectrumAnalyzer - Role of Generic Spectrum Analyzer
Hardware capabilities and presets attributes
Not all devices implemented full set of SCPI commands. With following we can mark what is available
capable_to_query_number_of_X_points_in_hardware
Can hardware report the number of points in a sweep. I.e. can it respont to analog of [:SENSe]:SWEep:POINts?
command.
Default is 1, i.e true.
capable_to_set_number_of_X_points_in_hardware
Can hardware set the number of points in a sweep. I.e. can it respont to analog of [:SENSe]:SWEep:POINts
command.
Default is 1, i.e true.
hardwired_number_of_X_points
Some hardware has fixed/unchangeable number of points in the sweep. So we can set it here to simplify the logic of some commands.
This is not set by default. Use has_hardwired_number_of_X_points
to check for its availability.
METHODS
Driver assuming this role must implements the following high-level method:
get_traceXY
$data = $sa->traceXY(timeout => 10, trace => 2);
Perform a single sweep and return the resulting spectrum as a 2D PDL:
[
[freq1, freq2, freq3, ..., freqN],
[power1, power2, power3, ..., powerN],
]
I.e. the first dimension runs over the sweep points.
This method accepts a hash with the following options:
- timeout
-
timeout for the sweep operation. If this is not given, use the connection's default timeout.
- trace
-
number of the trace (1..3). Defaults to 1.
get_StartX and get_StopX
Returns start and stop frequency
get_traceY
$data = $inst->get_traceY(timeout => 1, trace => 2, precision => 'single');
Return Y points of a given trace in a 1D PDL:
This implementation is SCPI friendly.
- timeout
-
timeout for the sweep operation. If this is not given, use the connection's default timeout.
- trace
-
number of the trace 1, 2, 3 and so on. Defaults to 1. It is hardware depended and validated by
validate_trace_papam
, which need to be implemented by a specific instrument driver. - precision
-
floating point type. Has to be 'single' or 'double'. Defaults to 'single'.
Required hardware dependent methods
validate_trace_param
Validates or applies hardware friendly aliases to trace parameter. Need to be implemented by the instrument driver. For example
sub validate_trace_param {
my ( $self, $trace ) = @_;
if ( $trace < 1 || $trace > 3 ) {
confess "trace has to be in (1..3)";
}
return $trace;
}
Use like this
$trace = $self->validate_trace_param( $trace );
COPYRIGHT AND LICENSE
This software is copyright (c) 2023 by the Lab::Measurement team; in detail:
Copyright 2018 Eugeniy E. Mikhailov
2020 Andreas K. Huettel
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.