bath/data/ea_control.py

61 lines
1.4 KiB
Python

from labcontrol.ea import EA_PS8080
from labcontrol.ea import EA_EL9080
from labcontrol.ea import EA_interface
import time
def identify(devlist):
for dev in devlist:
devid = EA_interface(dev).write(12, 0, [])
if devid[1] == []:
devid = EA_interface(dev).write(15, 0, [])
devtype = "el"
else:
devtype = "ps"
outdict[devtype] = {"id":devid, "address":dev, "type":devtype}
return outdict
def init(tree):
for dev, dat in tree:
if dat['type'] == "el":
devobj = EA_EL9080(dev)
else:
devobj = EA_PS8080(dev)
tree[dev]['dev'] = devobj
tree[dev]['dev'].remote(True)
def deinit(tree):
for dev, dat intree:
tree[dev]['dev'].remote(False)
tree[dev]['dev'].close()
starttime = time.time()
devicetree = identify(["/dev/ttyUSB0","/dev/ttyUSB1"])
init(devicetree)
devicetree['ps']['dev'].set_current(0)
devicetree['ps']['dev'].set_voltage(48)
devicetree['ps']['dev'].output(True)
log_str = "{time},{set_vals},{actual_ps},{actual_el}\n"
for i in range(0, 10, 2):
log += log_str
log.format(
time=time.time()-starttime,
set_vals={'i':i, 'v':48.0},
actual_ps=devicetree['ps']['dev'].get_actual_values(),
actual_el=devicetree['el']['dev'].get_actual_values()
)
with open('./log.csv', 'w') as f:
f.write(log)
devicetree['ps']['dev'].output(False)
deinit(devicetree)