[docs]
class HP83752A():
def __init__(self, rm, address):
self.device = rm.open_resource(address)
self.freqRange = (0.01,20)
self.powerRange = (-80,20)
self.timeRange = (0,100)
[docs]
def setupSweep(self, min, max, time):
self.device.write("FREQ:MODE SWE")
self.device.write(f"FREQ:STAR {min} GHZ")
self.device.write(f"FREQ:STOP {max} GHZ")
self.device.write(f"SWE:TIME {time} s")
[docs]
def readSweepParams(self):
start = float(self.device.query("FREQ:STAR?"))/1e9
end = float(self.device.query("FREQ:STOP?"))/1e9
time = float(self.device.query("SWE:TIME?"))
return (start, end, time)
[docs]
def readSweepTime(self):
return float(self.device.query("SWE:TIME?"))
[docs]
def resetMarkers(self):
self.device.write("MARK:AOFF")
[docs]
def setMarker(self, markNum, freq):
self.device.write(f"MARK{markNum}:STATE ON; FREQ {freq} GHz")
[docs]
def setPowerLevel(self, level):
self.device.write(f"POWER:LEV {level} DBM")
[docs]
def readPowerLevel(self):
return float(self.device.query("POWER:LEV?"))
[docs]
def powerOn(self):
self.device.write("POW:STATE ON")
[docs]
def powerOff(self):
self.device.write("POW:STATE OFF")
[docs]
def setContSweep(self, cont):
if cont:
self.device.write("INIT:CONT ON")
else:
self.device.write("INIT:CONT OFF")
[docs]
def startSweep(self):
self.device.write("INIT:IMM;*TRG")
[docs]
def stopSweep(self):
self.device.write("ABORT")
[docs]
def getCW(self):
resp = self.device.query("FREQ:CW?")
return float(resp)
[docs]
def setCW(self, freq_GHz):
resp = self.device.write(f"FREQ:CW {freq_GHz} GHz")
return float(resp)
model = "HP83752A"
# TODO: implement the other models we have as well with inheritance