diff options
-rw-r--r-- | doc/architecture.drawio | 2 | ||||
-rw-r--r-- | src/lab-control/function_generator.py | 23 | ||||
-rw-r--r-- | src/lab-control/oscilloscope.py | 17 |
3 files changed, 41 insertions, 1 deletions
diff --git a/doc/architecture.drawio b/doc/architecture.drawio index 48dab57..cabb248 100644 --- a/doc/architecture.drawio +++ b/doc/architecture.drawio @@ -1 +1 @@ -<mxfile host="Electron" modified="2022-05-24T08:48:11.576Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/16.0.2 Chrome/96.0.4664.55 Electron/16.0.5 Safari/537.36" etag="_CPijQ-qYHoDfQwohGnk" version="16.0.2" type="device"><diagram id="Aw8Itl_1nmNhQKuLZfUh" name="Page-1">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</diagram></mxfile>
\ No newline at end of file +<mxfile host="Electron" modified="2022-05-24T09:05:22.591Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/16.0.2 Chrome/96.0.4664.55 Electron/16.0.5 Safari/537.36" etag="51U_tqLsFPTbi-FRZO5Z" version="16.0.2" type="device"><diagram id="Aw8Itl_1nmNhQKuLZfUh" name="Page-1">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</diagram></mxfile>
\ No newline at end of file diff --git a/src/lab-control/function_generator.py b/src/lab-control/function_generator.py new file mode 100644 index 0000000..b7b5266 --- /dev/null +++ b/src/lab-control/function_generator.py @@ -0,0 +1,23 @@ +class FunctionGenerator: + FUNCTION_SINE = 0 + FUNCTION_SQUARE = 1 + FUNCTION_SAWTOOTH = 2 + + def __init__(self): + raise Exception("This class should not be instantiated directly, please extend it instead") + + def setOn(self, channel: int) -> None: + pass + + def setOff(self, channel: int) -> None: + pass + + def setFrequency(self, channel: int, frequency: float) -> None: + pass + + def setAmplitude(self, channel: int, amplitude: float) -> None: + pass + + def setFunction(self, channel: int, function: int) -> None: + pass + diff --git a/src/lab-control/oscilloscope.py b/src/lab-control/oscilloscope.py new file mode 100644 index 0000000..a09f8a0 --- /dev/null +++ b/src/lab-control/oscilloscope.py @@ -0,0 +1,17 @@ +class Oscilloscope: + def __init__(self): + raise Exception("This class should not be instantiated directly, please extend it instead") + + def measureAmplitude(self, channel: int) -> float: + pass + + def measurePkToPk(self, channel: int) -> float: + pass + + def measureRMS(self, channel: int) -> float: + pass + + def measureFrequency(self, channel: int) -> float: + pass + + |