from lab_control.function_generator import FunctionGenerator from lab_control.oscilloscope import Oscilloscope from lab_control.measurement import Measurement, getLinearRange class FrequencyResponseMeasurement(Measurement): def __init__(self): self.minFrequency = 20e0 self.maxFrequency = 16e3 self.steps = 50 self.functionGeneratorChannel = 1 self.oscilloscopeChannel = 1 self.measurementDone = False self.data = None def measure(self, osc: Oscilloscope, fg: FunctionGenerator) -> None: frequencies = getLinearRange(self.minFrequency, self.maxFrequency, self.steps) self.data = [] for f in frequencies: fg.setFrequency(self.functionGeneratorChannel, f) response = osc.measureAmplitude(self.oscilloscopeChannel) self.data.append((f, response)) self.measurementDone = True def saveToCSV(self, path: str) -> None: pass