#!/usr/bin/perl

use strict;
use warnings;

use VXI11::Client;

vxi_startinterruptserver();

my $instr = vxi_open("roi", 0);

$instr->vxi_lock(0);
$instr->vxi_write("*IDN?", -1, 0, 0);
my ($bytes, $buff, $reason) = $instr->vxi_read(256, 0, 0, 0);
print "got " . $bytes . ";" . $buff . " reason " . $reason ."\n";

my ($error, $statusbyte) = $instr->vxi_readstatusbyte(0);
printf "status byte is " . $statusbyte . "\n";

$instr->vxi_create_intr_chan();
$instr->vxi_enable_srq(1, "myhandle");
vxi_wait_for_interrupt();
$instr->vxi_enable_srq(0, "");
$instr->vxi_destroy_intr_chan();
$instr->vxi_abort();
$instr->vxi_clear(0);
$instr->vxi_trigger(0);
$instr->vxi_local(0);
$instr->vxi_remote(0);
$instr->vxi_unlock();

$instr->vxi_close();

vxi_stopinterruptserver();