diff options
Diffstat (limited to 'qolab/hardware/rf_generator/agilent_e8257d.py')
-rw-r--r-- | qolab/hardware/rf_generator/agilent_e8257d.py | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/qolab/hardware/rf_generator/agilent_e8257d.py b/qolab/hardware/rf_generator/agilent_e8257d.py new file mode 100644 index 0000000..eef3c7a --- /dev/null +++ b/qolab/hardware/rf_generator/agilent_e8257d.py @@ -0,0 +1,57 @@ +from qolab.hardware.rf_generator import RFGeneratorSCPI +from qolab.data.trace import Trace +import re +import numpy as np + +class AgilentE8257D(RFGeneratorSCPI): + """ Agilent E8257D RF generator """ + def __init__(self, resource): + super().__init__(resource) + self.resource.read_termination='\n' + + """ Note: Fixed frequency and Center frequency (of sweep) are different in this model """ + + def getFreq(self): + qstr = f':FREQuency:Fixed?' + rstr = self.query(qstr) + return( float(rstr) ) + + def setFreq(self, freq): + cstr = f':FREQuency:FIXED {freq}Hz' + self.write(cstr) + + def getSweepCentralFreq(self): + qstr = f':FREQuency:CENTer?' + rstr = self.query(qstr) + return( float(rstr) ) + + def setSweepCentralFreq(self, cfreq): + cstr = f':FREQuency:CENTer {cfreq}Hz' + self.write(cstr) + + def getSweepSpan(self): + qstr = f':FREQuency:SPAN?' + rstr = self.query(qstr) + return( float(rstr) ) + + def setSweepSpan(self, span): + cstr = f':FREQuency:SPAN {span}Hz' + self.write(cstr) + + def setSweep(self, cfreq=None, span=None): + if cfreq is not None: + self.setSweepCentralFreq(cfreq) + if cfreq is not None: + self.setSweepSpan(span) + +if __name__ == '__main__': + import pyvisa + print("testing") + rm = pyvisa.ResourceManager() + print(rm.list_resources()) + instr=rm.open_resource('TCPIP::192.168.0.114::INSTR') + rfgen = AgilentE8257D(instr) + print(f'Fixed frequency: {rfgen.getFreq()}') + print(f'Sweep Central frequency: {rfgen.getSweepCentralFreq()}') + print(f'Sweep Span: {rfgen.getSweepSpan()}') + |