aboutsummaryrefslogtreecommitdiff
path: root/qolab
diff options
context:
space:
mode:
Diffstat (limited to 'qolab')
-rw-r--r--qolab/hardware/basic.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/qolab/hardware/basic.py b/qolab/hardware/basic.py
new file mode 100644
index 0000000..fa2ccb5
--- /dev/null
+++ b/qolab/hardware/basic.py
@@ -0,0 +1,33 @@
+import yaml
+
+class BasicInstrument:
+ def __init__(self):
+ self.config={}
+ self.config['Device type'] = 'Basic Instrument'
+ self.config['Device model'] = 'Model is unset'
+ self.config['FnamePrefix'] = 'basicInstrument'
+ self.config['SavePath'] = './data'
+ # deviceProperties must have 'get' and preferably 'set' methods available,
+ # i.e. 'SampleRate' needs getSampleRate() and love to have setSampleRate(value)
+ # they will be used to obtain config and set device according to it
+ # self.deviceProperties = ['SampleRate', 'TimePerDiv', 'TrigDelay', ];
+ self.deviceProperties = [];
+
+ def getConfig(self):
+ config = self.config.copy()
+ dconfig = {}
+ for p in self.deviceProperties:
+ getter = f'get{p}'
+ if not hasattr(self, getter):
+ print(f'warning no getter for {p}, i.e. {getter} is missing')
+ continue
+ res = getattr(self, getter)()
+ dconfig[p] = res
+ config['DeviceConfig'] = dconfig
+ return config
+
+ def getHeader(self):
+ header = yaml.dump(self.getConfig(), default_flow_style=False, sort_keys=False)
+ header = header.split('\n')
+ return header
+