#!/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?"); my ($bytes, $buff, $reason) = $instr->vxi_read(); 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("myhandle"); for (my $i = 0; $i < 10000; $i++) { vxi_wait_for_interrupt(); } $instr->vxi_disable_srq(); $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();