Source code for HP

[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