package GPIBDeviceObject @ISA = qw() sub BEGIN sub new my ($module, $interface, $devname, $timeout, $EOT, $EOS) = @_; return $this; sub DESTROY my $this = shift; sub GetFunctions return "|BaseObject|"; sub SetGPIB sub SetGPIB { my ($this,$g)= return $this->{GPIB} = $g; sub g return shift->{GPIB}; sub SetDeviceName sub SetDeviceName { my ($this,$name)= return $this->{DeviceName} = $name; sub DeviceName return shift->{DeviceName}; sub SetGPIBAddress sub SetGPIBAddress { my ($this,$addr)= return $this->{GPIBAddress} = $addr; sub GPIBAddress return shift->{GPIBAddress}; sub Open my ($this, $interface, $board, $name, $addr, $subaddr, $timeout, $EOT, $EOS) = @_; return 0 if(!defined $g); return $g; sub print my ($this, @a) = @_; return $this->g()->ibwrt($line); sub printf my ($this, $format, @a) = @_; return $this->g()->ibwrt($line); sub read my ($this, $bufferlength) = @_; return $response; sub PrintInfo my ($this) = @_; sub NotImplementedError my ($this, $FuncName) = @_; return undef; sub GetSCPIData my ($this, $command) = @_; return $this->read(); sub Initialize my ($this) = @_; sub Finish my ($this) = @_; sub Clear my ($this) = @_; sub Reset my ($this) = @_; sub GetIdentification my ($this) = @_; return "undefined"; return shift->GetSCPIData("*IDN?"); sub GetId return shift->GetIdentification(); sub FetchData my ($this) = @_; return $this->NotImplementedError("FetchData"); return shift->print(":FETCH?"); sub ReadData my ($this) = @_; return $this->NotImplementedError("ReadData"); return shift->print(":READ?"); sub InitDVM my ($this) = @_; return $this->NotImplementedError("InitDVM"); sub SetZeroCheckDVM my ($this, $mode) = @_; return $this->NotImplementedError("SetZeroCheckDVM"); sub SetZeroCheckDCM my ($this) = @_; return $this->NotImplementedError("SetZeroCheckDCM"); sub InitSource my ($this) = @_; return $this->NotImplementedError("InitSource"); sub ApplySource my ($this, $mode) = @_; return $this->NotImplementedError("ApplySource"); return $this->print(":OUTP:STAT $mode"); sub StopSource my ($this) = @_; return $this->NotImplementedError("StopSource"); return shift->ApplySource(0); sub SetSource my ($this, $val) = @_; return $this->NotImplementedError("SetSource"); return $this->print(":SOUR:VOLT $val"); sub SetVSourceOutput my ($this, $f) = @_; return $this->ApplySource($f); sub SetISourceOutput my ($this, $f) = @_; return $this->ApplySource($f); sub SetCurrentLimit my ($this, $I) = @_; return $this->NotImplementedError("SetCurrentLimit"); sub SetCurrent my ($this, $I) = @_; return $this->NotImplementedError("SetCurrent"); sub SetSourceCurrent my ($this, $I) = @_; return $this->SetCurrent($I); sub SetVoltageLimit my ($this, $V) = @_; sub SetVoltage my ($this, $V) = @_; return $this->NotImplementedError("SetVoltage"); sub SetSourceVoltage my ($this, $V) = @_; sub MeasureAveraged my ($this, $nAverage) = @_; return $this->NotImplementedError("MeasureAveraged"); sub Measure my ($this) = @_; return $this->NotImplementedError("Measure");