NAME

Lab::Moose - Convenient loaders and constructors for Lab::Moose::Instrument, Lab::Moose::Sweep, Lab::Moose::DataFolder and Lab::Moose::DataFile

VERSION

version 3.870

SYNOPSIS

use Lab::Moose;

my $vna = instrument(
    type => 'RS_ZVA',
    connection_type => 'LinuxGPIB',
    connection_options => {timeout => 2}
);

my $folder = datafolder();
my $file = datafile(
    type => 'Gnuplot',
    folder => $folder,
    filename => 'data.dat',
    columns => ['gate', 'bias', 'current'],
);

my $meta_file = datafile(
    type => 'Meta',
    folder => $folder,
    filename => 'file.yml'
);

my @points = linspace(from => -1, to => 1, step => 0.1);

SUBROUTINES

instrument

Load an instrument driver module and call the constructor.

Create instrument with new connection:

my $instr = instrument(
    type => 'RS_SMB',
    connection_type => 'VXI11',
    connection_options => {host => '192.168.2.23'},
    # other driver specific options
    foo => 'ON',
    bar => 'OFF',
);

Create instrument with existing connection:

my $instr = instrument(
    type => $type,
    connection => $connection_object,
    # driver specific options
    foo => 'ON',
    bar => 'OFF',
);

Creating a generic instrument driver

To create a generic instrument driver, leave the type attribute undefined. This can be useful when testing out new equipment before writing a new driver.

use Lab::Moose;

my $instrument = instrument(
    connection_type => 'USB',
    connection_options => {vid => 0x0957, pid => 0x0607}
);

# Use low-level methods provided by the connection: write, query, clear
print $instrument->query(command => "*IDN?");

datafolder

my $folder = datafolder(%args);

Create a new Lab::Moose::DataFolder.

datafile

my $file = datafile(type => $type, %args);

Load Lab::Moose::DataFile::$type and call it's new method with %args.

The default type is 'Gnuplot'.

linspace

# create array (-1, -0.9, ..., 0.9, 1)
my @points = linspace(from => -1, to => 1, step => 0.1);

# create array without first point (-0.9, ..., 1)
my @points = linspace(from => -1, to => 1, step => 0.1, exclude_from => 1);

sweep/sweep_datafile

These are described in a separate tutorial: Lab::Measurement::Tutorial.

COPYRIGHT AND LICENSE

This software is copyright (c) 2023 by the Lab::Measurement team; in detail:

Copyright 2016       Simon Reinhardt
          2017       Andreas K. Huettel, Simon Reinhardt
          2018-2019  Simon Reinhardt
          2020       Andreas K. Huettel
          2021       Fabian Weinelt

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.