aboutsummaryrefslogtreecommitdiff
path: root/examples/grab_eit_shapes.py
diff options
context:
space:
mode:
authorEugeniy E. Mikhailov <evgmik@gmail.com>2024-07-14 01:31:14 -0400
committerEugeniy E. Mikhailov <evgmik@gmail.com>2024-07-14 01:31:14 -0400
commit4da1432479022c9f1c8c2d7cccb5a39410ce496c (patch)
tree8f87df297b0cca685e92d3cef61307946120c44c /examples/grab_eit_shapes.py
parent3a64947ece9ebba1e6bf8ecef25d0b035a782d33 (diff)
downloadqolab-4da1432479022c9f1c8c2d7cccb5a39410ce496c.tar.gz
qolab-4da1432479022c9f1c8c2d7cccb5a39410ce496c.zip
black formatter
Diffstat (limited to 'examples/grab_eit_shapes.py')
-rw-r--r--examples/grab_eit_shapes.py148
1 files changed, 88 insertions, 60 deletions
diff --git a/examples/grab_eit_shapes.py b/examples/grab_eit_shapes.py
index 11689fb..47458f2 100644
--- a/examples/grab_eit_shapes.py
+++ b/examples/grab_eit_shapes.py
@@ -1,7 +1,10 @@
-
import logging
+
# this should be done before justpy is called or log formatter does not work
-logging.basicConfig(format='%(asctime)s %(levelname)8s %(name)s: %(message)s', datefmt='%m/%d/%Y %H:%M:%S')
+logging.basicConfig(
+ format="%(asctime)s %(levelname)8s %(name)s: %(message)s",
+ datefmt="%m/%d/%Y %H:%M:%S",
+)
# import justpy as jp
import pyvisa
@@ -22,20 +25,22 @@ from qolab.feedback import PID
from qolab.data import TraceSetSameX, TraceXY, Trace
from qolab.hardware.i_server import I800
-l = logging.getLogger('qolab.gui.web')
+l = logging.getLogger("qolab.gui.web")
l.setLevel(logging.INFO)
-l = logging.getLogger('qolab.tsdb')
+l = logging.getLogger("qolab.tsdb")
l.setLevel(logging.INFO)
-logger = logging.getLogger('Magnetometer')
+logger = logging.getLogger("Magnetometer")
logger.setLevel(logging.INFO)
+
def getConfig(apparatus):
config = apparatus.config.copy()
ai = apparatus.instruments
for n, i in ai.items():
- config[n]=i.getConfig()
+ config[n] = i.getConfig()
return config
+
class Apparatus(BasicInstrument):
def __init__(self, *args, **kwds):
super().__init__(*args, **kwds)
@@ -43,133 +48,156 @@ class Apparatus(BasicInstrument):
@BasicInstrument.tsdb_append
def getBCurrent(self):
- scope = self.instruments['scope.monitor']
- ch=scope.getTrace(2, decimate=False)
- bCurrent = np.mean(ch.y.values); # mV -> mA
+ scope = self.instruments["scope.monitor"]
+ ch = scope.getTrace(2, decimate=False)
+ bCurrent = np.mean(ch.y.values)
+ # mV -> mA
return bCurrent
def getErrAndEit(self):
- scope = self.instruments['scope.feedback']
+ scope = self.instruments["scope.feedback"]
# we need to freeze scope since this two values are taken on the same scope
trg_mode = scope.getTriggerMode()
- scope.setTriggerMode('STOP')
+ scope.setTriggerMode("STOP")
err = self.getErr()
eit = self.getEIT()
scope.setTriggerMode(trg_mode)
- return(err,eit)
-
-
+ return (err, eit)
@BasicInstrument.tsdb_append
def getErr(self):
- scope = self.instruments['scope.feedback']
- ch1=scope.getTrace(1, decimate=False)
+ scope = self.instruments["scope.feedback"]
+ ch1 = scope.getTrace(1, decimate=False)
err = np.mean(ch1.y.values)
return err
@BasicInstrument.tsdb_append
def getEIT(self):
- scope = self.instruments['scope.feedback']
- ch3=scope.getTrace(3, decimate=False)
+ scope = self.instruments["scope.feedback"]
+ ch3 = scope.getTrace(3, decimate=False)
eit = np.mean(ch3.y.values)
return eit
@BasicInstrument.tsdb_append
def setFeefback(self, val):
freq0 = self.getRFreq()
- self.setRFreq(freq0+val)
+ self.setRFreq(freq0 + val)
@BasicInstrument.tsdb_append
def getRFreq(self):
- rfgen = self.instruments['rfgen']
+ rfgen = self.instruments["rfgen"]
return rfgen.getFreqFixed()
@BasicInstrument.tsdb_append
- def setRFreq(self,val):
- rfgen = self.instruments['rfgen']
+ def setRFreq(self, val):
+ rfgen = self.instruments["rfgen"]
rfgen.setFreqFixed(val)
@BasicInstrument.tsdb_append
def getRFAmplitude(self):
- rfgen = self.instruments['rfgen']
+ rfgen = self.instruments["rfgen"]
return rfgen.getRFAmplitude()
@BasicInstrument.tsdb_append
def setRFAmplitude(self, val):
- rfgen = self.instruments['rfgen']
+ rfgen = self.instruments["rfgen"]
return rfgen.setRFAmplitude(val)
@BasicInstrument.tsdb_append
def setLockinSlope(self, val):
- self.lockin_slope=val
+ self.lockin_slope = val
-if __name__ == '__main__':
+if __name__ == "__main__":
# TSDB logger setting
- tsdb_client = tsdb.Client('influx', 'http://lumus.physics.wm.edu:8428', database='qolab')
- tsdb_ingester = tsdb.Ingester(tsdb_client, batch=11, measurement_prefix='VAMPIRE.HighPower')
+ tsdb_client = tsdb.Client(
+ "influx", "http://lumus.physics.wm.edu:8428", database="qolab"
+ )
+ tsdb_ingester = tsdb.Ingester(
+ tsdb_client, batch=11, measurement_prefix="VAMPIRE.HighPower"
+ )
# creating Apparatus with all instruments to be logged
- apparatus = Apparatus(tsdb_ingester=tsdb_ingester, device_nickname='magnetometer',)
- apparatus.config['Device type'] = 'QOL VAMPIRE HighPower magnetometer'
- apparatus.config['Device model'] = 'v0.1'
- apparatus.config['FnamePrefix'] = 'magnetometer_eit'
- apparatus.config['SavePath'] = '/mnt/qol_grp_data/data.VAMPIRE.HighPower'
+ apparatus = Apparatus(
+ tsdb_ingester=tsdb_ingester,
+ device_nickname="magnetometer",
+ )
+ apparatus.config["Device type"] = "QOL VAMPIRE HighPower magnetometer"
+ apparatus.config["Device model"] = "v0.1"
+ apparatus.config["FnamePrefix"] = "magnetometer_eit"
+ apparatus.config["SavePath"] = "/mnt/qol_grp_data/data.VAMPIRE.HighPower"
- app_nickname=apparatus.config['DeviceNickname']
+ app_nickname = apparatus.config["DeviceNickname"]
logger.info("Accessing hardware")
rm = pyvisa.ResourceManager()
- instr_scope=rm.open_resource('TCPIP::192.168.0.61::INSTR')
- scope_fdbk = SDS1104X(instr_scope, device_nickname='.'.join([app_nickname, 'scope.feedback']), tsdb_ingester=tsdb_ingester)
- instr_scope=rm.open_resource('TCPIP::192.168.0.62::INSTR')
- scope_mon = SDS1104X(instr_scope, device_nickname='.'.join([app_nickname, 'scope.monitor']), tsdb_ingester=tsdb_ingester)
- instr_rfgen=rm.open_resource('TCPIP::192.168.0.114::INSTR')
- rfgen = AgilentE8257D(instr_rfgen, device_nickname='.'.join([app_nickname, 'rfgen']), tsdb_ingester=tsdb_ingester)
- instr_lockin=rm.open_resource('TCPIP::192.168.0.51::INSTR')
- lockin = SRS_SR865A(instr_lockin, device_nickname='.'.join([app_nickname, 'lockin']), tsdb_ingester=tsdb_ingester)
+ instr_scope = rm.open_resource("TCPIP::192.168.0.61::INSTR")
+ scope_fdbk = SDS1104X(
+ instr_scope,
+ device_nickname=".".join([app_nickname, "scope.feedback"]),
+ tsdb_ingester=tsdb_ingester,
+ )
+ instr_scope = rm.open_resource("TCPIP::192.168.0.62::INSTR")
+ scope_mon = SDS1104X(
+ instr_scope,
+ device_nickname=".".join([app_nickname, "scope.monitor"]),
+ tsdb_ingester=tsdb_ingester,
+ )
+ instr_rfgen = rm.open_resource("TCPIP::192.168.0.114::INSTR")
+ rfgen = AgilentE8257D(
+ instr_rfgen,
+ device_nickname=".".join([app_nickname, "rfgen"]),
+ tsdb_ingester=tsdb_ingester,
+ )
+ instr_lockin = rm.open_resource("TCPIP::192.168.0.51::INSTR")
+ lockin = SRS_SR865A(
+ instr_lockin,
+ device_nickname=".".join([app_nickname, "lockin"]),
+ tsdb_ingester=tsdb_ingester,
+ )
# adding instruments to apparatus
- apparatus.instruments={}
+ apparatus.instruments = {}
ai = apparatus.instruments
- ai['rfgen'] = rfgen
- ai['lockin'] = lockin
- ai['cellTemperatureController'] = I800(device_nickname='.'.join([app_nickname, 'cellTemperatureController']), tsdb_ingester=tsdb_ingester)
+ ai["rfgen"] = rfgen
+ ai["lockin"] = lockin
+ ai["cellTemperatureController"] = I800(
+ device_nickname=".".join([app_nickname, "cellTemperatureController"]),
+ tsdb_ingester=tsdb_ingester,
+ )
# Do not add scope.feedback to apparatus.instruments it will create recursive loop
# in the saved data file
# ai['scope.feedback'] = scope_fdbk
- scope_fdbk.config['SavePath'] = '/mnt/qol_grp_data/data.VAMPIRE.HighPower'
- scope_fdbk.config['FnamePrefix'] = 'scope_eit'
+ scope_fdbk.config["SavePath"] = "/mnt/qol_grp_data/data.VAMPIRE.HighPower"
+ scope_fdbk.config["FnamePrefix"] = "scope_eit"
# scope_fdbk.setRoll(False)
# scope_fdbk.setRun(True)
# scope_fdbk.setTimePerDiv(0.0005)
# scope_fdbk.setChanVoltsPerDiv(1, 0.02)
# scope_fdbk.setChanVoltsPerDiv(3, 0.02)
- ai['scope.monitor'] = scope_mon
+ ai["scope.monitor"] = scope_mon
# scope_mon.setRoll(False)
# scope_mon.setRun(True)
# scope_mon.setTimePerDiv(0.0005)
# scope_mon.setChanVoltsPerDiv(2, 0.002)
# scope_mon.setChanVoltageOffset(2, -0.0726)
- scope_fdbk.config['tags'] = {}
+ scope_fdbk.config["tags"] = {}
cfFreq = [6_833_980_000, 6_834_686_000, 6_835_393_000]
- m = [-2, 0, 2]
- #rfgen.setSweepCentralFreq(6_833_980_000)
+ m = [-2, 0, 2]
+ # rfgen.setSweepCentralFreq(6_833_980_000)
rfgen.setSweepCentralFreq(6_834_686_000)
- #rfgen.setSweepCentralFreq(6_835_393_000)
+ # rfgen.setSweepCentralFreq(6_835_393_000)
- for fr,m in zip(cfFreq, m):
+ for fr, m in zip(cfFreq, m):
rfgen.setSweepCentralFreq(fr)
- print(f'time to settle for {m=} with {fr=}')
+ print(f"time to settle for {m=} with {fr=}")
time.sleep(10)
- print('settling done')
+ print("settling done")
# if we want to save new set of traces repeat this two commands
- scope_fdbk.config['tags']['apparatus']=getConfig(apparatus)
- scope_fdbk.save( maxRequiredPoints=1000 )
+ scope_fdbk.config["tags"]["apparatus"] = getConfig(apparatus)
+ scope_fdbk.save(maxRequiredPoints=1000)
tsdb_ingester.commit()
-
-