diff options
Diffstat (limited to 'qolab/hardware')
-rw-r--r-- | qolab/hardware/basic.py | 33 |
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 + |