aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--qolab/hardware/lockin/__init__.py29
-rw-r--r--qolab/hardware/lockin/srs_sr865a.py25
2 files changed, 54 insertions, 0 deletions
diff --git a/qolab/hardware/lockin/__init__.py b/qolab/hardware/lockin/__init__.py
new file mode 100644
index 0000000..7c2f826
--- /dev/null
+++ b/qolab/hardware/lockin/__init__.py
@@ -0,0 +1,29 @@
+from qolab.hardware.scpi import SCPIinstr
+from qolab.hardware.basic import BasicInstrument
+
+class Lockin(BasicInstrument):
+ def __init__(self):
+ BasicInstrument.__init__(self)
+ self.config['Device type']='Lockin'
+ self.config['FnamePrefix'] = 'lockin'
+ self.deviceProperties = ['Freq'];
+ # Minimal set of methods to be implemented.
+ pass
+
+class LockinSCPI(SCPIinstr, Lockin):
+ """
+ Do not instantiate directly, use
+ rm = pyvisa.ResourceManager()
+ LockinSCPI(rm.open_resource('TCPIP::192.168.0.2::INSTR'))
+ """
+ pass
+ def __init__(self, resource):
+ SCPIinstr.__init__(self, resource)
+ Lockin.__init__(self)
+ self.config['DeviceId'] = str.strip(self.idn)
+ self.deviceProperties = ['FreqInt'];
+
+from .srs_sr865a import SRS_SR865A
+
+
+
diff --git a/qolab/hardware/lockin/srs_sr865a.py b/qolab/hardware/lockin/srs_sr865a.py
new file mode 100644
index 0000000..91e1978
--- /dev/null
+++ b/qolab/hardware/lockin/srs_sr865a.py
@@ -0,0 +1,25 @@
+from qolab.hardware.lockin import LockinSCPI
+
+from qolab.data.trace import Trace
+import re
+import numpy as np
+
+class SRS_SR865A(LockinSCPI):
+ """ SRS SR865A lockin """
+ def __init__(self, resource):
+ super().__init__(resource)
+ self.config['Device model']='SRS SR865A'
+ self.resource.read_termination='\n'
+
+ """ Note: Fixed frequency and Center frequency (of sweep) are different in this model """
+
+if __name__ == '__main__':
+ import pyvisa
+ print("testing")
+ rm = pyvisa.ResourceManager()
+ print(rm.list_resources())
+ instr=rm.open_resource('TCPIP::192.168.0.51::INSTR')
+ lockin = SRS_SR865A(instr)
+ print(str.join('\n', lockin.getHeader()))
+
+