NAME
Lab::Bus::VISA - National Instruments VISA bus
VERSION
version 3.851
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
and many more...
COPYRIGHT AND LICENSE
This software is copyright (c) 2023 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.