NAME

Lab::Bus::VISA - National Instruments VISA bus

VERSION

version 3.780

SYNOPSIS

This is the VISA bus class for the NI VISA library.

my $visa = new Lab::Bus::VISA();

or implicit through instrument creation:

my $instrument = new Lab::Instrument::HP34401A({
  BusType => 'VISA',
}

DESCRIPTION

soon

CONSTRUCTOR

new

my $bus = Lab::Bus::VISA({
 });

Return blessed $self, with @_ accessible through $self->config().

Options: none

Thrown Exceptions

Lab::Bus::VISA throws

Lab::Exception::VISAError
  fields:
  'status', the raw ibsta status byte received from linux-gpib

Lab::Exception::VISATimeout
  fields:
  'data', this is meant to contain the data that (maybe) has been read/obtained/generated despite and up to the timeout.
  ... and all the fields of Lab::Exception::GPIBError

METHODS

connection_new

$visa->connection_new({ resource_name => "GPIB0::14::INSTR" });

Creates a new instrument handle for this bus.

The handle is usually stored in an instrument object and given to connection_read, connection_write etc. to identify and handle the calling instrument:

$InstrumentHandle = $visa->connection_new({ resource_name => "GPIB0::14::INSTR" });
$result = $visa->connection_read($self->InstrumentHandle(), { options });

See Lab::Instrument::Read().

connection_write

$visa->connection_write( $InstrumentHandle, { command => $command, wait_status => $wait_status } );

Sends $command to the instrument specified by the handle, and waits $wait_status microseconds before evaluating the status.

connection_read

$visa->connection_read( $InstrumentHandle, { command => $command, read_length => $read_length, brutal => 0/1 } );

Sends $Command to the instrument specified by the handle. Reads back a maximum of $readlength bytes. If a timeout or an error occurs, Lab::Exception::VISAError or Lab::Exception::VISATimeout are thrown, respectively. The Timeout object carries the data received up to the timeout event, accessible through $Exception->Data().

Setting Brutal to a true value will result in timeouts being ignored, and the gathered data returned without error.

connection_query

$visa->connection_query( $InstrumentHandle, { command => $command, read_length => $read_length, wait_status => $wait_status, wait_query => $wait_query, brutal => 0/1 } );

Performs an connection_write followed by an connection_read, each given the supplied parameters. Waits $wait_query microseconds betweeen Write and Read.

CAVEATS/BUGS

Few. Not a lot to be done here.

SEE ALSO

COPYRIGHT AND LICENSE

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

Copyright 2010       Andreas K. Huettel
          2011       Andreas K. Huettel, Florian Olbrich
          2012       Alois Dirnaichner, Andreas K. Huettel, Florian Olbrich, Stefan Geissler
          2013       Andreas K. Huettel, Christian Butschkow
          2016       Simon Reinhardt
          2017       Andreas K. Huettel
          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.