diff options
Diffstat (limited to 'lab_control/test/mock_lab.py')
-rw-r--r-- | lab_control/test/mock_lab.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/lab_control/test/mock_lab.py b/lab_control/test/mock_lab.py new file mode 100644 index 0000000..718f319 --- /dev/null +++ b/lab_control/test/mock_lab.py @@ -0,0 +1,54 @@ +from collections.abc import Callable + +from lab_control.function_generator import FunctionGenerator +from lab_control.oscilloscope import Oscilloscope + +class MockLab(FunctionGenerator, Oscilloscope): + class FGChannelState: + def __init__(self): + self.on = False + self.frequency = None + self.amplitude = None + + class OscChannelState: + def __init__(self): + self.amplitudeFunction = None + self.fgChannel = None + + def __init__(self): + self.fgChannels = [MockLab.FGChannelState() for i in range(0, 2)] + self.oscChannels = [MockLab.OscChannelState() for i in range(0, 4)] + + def setOn(self, channel: int) -> None: + self.fgChannels[channel - 1].on = True + + def setOff(self, channel: int) -> None: + self.fgChannels[channel - 1].on = False + + def setFrequency(self, channel: int, frequency: float) -> None: + self.fgChannels[channel - 1].frequency = frequency + + def setAmplitude(self, channel: int, amplitude: float) -> None: + self.fgChannels[channel - 1].amplitude = amplitude + + def setFunction(self, channel: int, function: int) -> None: + pass + + def measureAmplitude(self, channel: int) -> float: + fgChannel = self.oscChannels[channel - 1].fgChannel + return self.oscChannels[channel - 1].amplitudeFunction(self.fgChannels[fgChannel].frequency) + + def measurePeakToPeak(self, channel: int) -> float: + pass + + def measureRMS(self, channel: int) -> float: + pass + + def measureFrequency(self, channel: int) -> float: + pass + + def setAmplitudeFunction(self, channel: int, f: Callable[[float], float]) -> None: + self.oscChannels[channel - 1].amplitudeFunction = f + + def connectChannels(self, fg: int, osc: int) -> None: + self.oscChannels[osc - 1].fgChannel = fg - 1 |