package DeviceObject @ISA = qw() sub DeviceName return shift->ModuleName(); sub GetFunctions my ($this) = @_; return "GetFunctions: Not implemented for [$DeviceName]"; sub new my ($module, @args) = @_; return $this; sub DESTROY my $this = shift; sub GetId return shift->GetIdentification(); sub SetDCCurrentMode my ($this, $ZeroCheck) = @_; return $this->SetSourceDCCurrentMode(); sub SetACCurrentMode my ($this, $ZeroCheck) = @_; return $this->SetSourceACCurrentMode(); sub SeADCVoltageMode my ($this, $ZeroCheck) = @_; return $this->SetSourceACVoltageMode(); sub SetDCVoltageMode my ($this, $ZeroCheck) = @_; return $this->SetSourceDCVoltageMode(); sub SetVSourceIMeasureMode my ($this, $ZeroCheck) = @_; return $this->SetMeasureDCCurrentMode(); sub SetISourceVMeasureMode my ($this, $ZeroCheck) = @_; return $this->SetMeasureDCVoltageMode(); sub ApplySource my ($this, $mode) = @_; return $this->NotImplementedError("ApplySource"); sub StopSource my ($this) = @_; return $this->NotImplementedError("StopSource"); sub SetSource my ($this, $val) = @_; return $this->NotImplementedError("SetSource"); sub SetSourceCurrent my ($this, $I) = @_; return $this->SetISource($I); sub SetCurrent my ($this, $I) = @_; return $this->SetISource($I); sub SetVoltage my ($this, $V) = @_; sub SetSourceVoltage my ($this, $V) = @_; sub SetAutoRangeForCurrent my ($this, $f) = @_; return $this->NotImplementedError("SetAutoRangeForCurrent"); sub SetAutoRangeForVoltage my ($this, $f) = @_; return $this->NotImplementedError("SetAutoRangeForVoltage"); sub SetCurrentLimit my ($this, $limit) = @_; return $this->SetIMeasureLimit($limit); sub SetVoltageLimit my ($this, $limit) = @_; return $this->SetVMeasureLimit($limit); sub SetReadMode sub SetReadMode { my($this,$mode)= return $this->{CommObject}->SetReadMode($mode); sub ReadMode return shift->{CommObject}->ReadMode(); sub SetCommObject my ($this, $comm) = @_; return $this->{CommObject} = $comm; sub CommObject return shift->{CommObject}; sub read my ($this, @args) = @_; return if(!defined $this->{CommObject}); return $this->{CommObject}->read(@args); sub print my ($this, @args) = @_; return if(!defined $this->{CommObject}); return $this->{CommObject}->print(@args); sub printf my ($this, @args) = @_; return $this->{CommObject}->printf(@args); sub NotImplementedError my ($this, $FuncName) = @_; return undef; sub Initialize my ($this) = @_; sub Finish my ($this) = @_; sub Clear my ($this) = @_; sub Reset my ($this) = @_; sub PrintInfo my ($this) = @_; sub GetIdentification my ($this) = @_; return "undefined"; sub MeterConnect my ($this, $f) = @_; return $this->NotImplementedError("SetAutoRangeForCurrent"); sub InitSource my ($this) = @_; return $this->NotImplementedError("InitSource"); sub SetISourceOutput my ($this, $f) = @_; return $this->ApplySource($f); sub SetVSourceOutput my ($this, $f) = @_; return $this->ApplySource($f); sub SetISource my ($this, $I) = @_; return $this->NotImplementedError("SetISource"); sub SetVSource my ($this, $V) = @_; return $this->NotImplementedError("SetVSource"); sub SetZeroCheckDVM my ($this, $mode) = @_; return $this->NotImplementedError("SetZeroCheckDVM"); sub SetZeroCheckDCM my ($this) = @_; return $this->NotImplementedError("SetZeroCheckDCM"); sub SetCurrentRange my ($this, $I) = @_; return $this->SetAutoRangeForCurrent(); return $this->NotImplementedError("SetCurrentRange"); sub SetISourceLimit my ($this, $limit) = @_; return $this->NotImplementedError("SetISourceLimit"); sub SetIMeasureLimit my ($this, $limit) = @_; return $this->NotImplementedError("SetIMeasureLimit"); sub SetVoltageRange my ($this, $V) = @_; return $this->SetAutoRangeForVoltage(); return $this->NotImplementedError("SetVoltageRange"); sub SetVMeasureLimit my ($this, $limit) = @_; return $this->NotImplementedError("SetVMeasureLimit"); sub SetVSourceLimit my ($this, $limit) = @_; return $this->NotImplementedError("SetVSourceLimit"); sub SetSourceDCCurrentMode my ($this, $ZeroCheck) = @_; return $this->NotImplementedError("SetSourceDCCurrentMode"); sub SetMeasureDCCurrentMode my ($this, $ZeroCheck) = @_; return $this->NotImplementedError("SetMeasureDCCurrentMode"); sub SetSourceDCVoltageMode my ($this, $ZeroCheck) = @_; return $this->NotImplementedError("SetSourceDCVoltageMode"); sub SetMeasureDCVoltageMode my ($this, $ZeroCheck) = @_; return $this->NotImplementedError("SetMeasureDCVoltageMode"); sub SetIReference my ($this, $f) = @_; return $this->NotImplementedError("SetIReference"); sub SetVReference my ($this, $f) = @_; return $this->NotImplementedError("SetVReference"); sub Measure my ($this) = @_; return $this->NotImplementedError("Measure"); sub MeasureAveraged my ($this, $nAverage) = @_; return $this->{LastMeasureAveragedValue} = $avrI / $nAverage;