Compare commits
1 Commits
wip
...
hot_lakesh
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aa64a48ec5 |
@@ -24,14 +24,12 @@
|
||||
|
||||
import sys
|
||||
import argparse
|
||||
import socket
|
||||
from pathlib import Path
|
||||
|
||||
# Add import path for inplace usage
|
||||
sys.path.insert(0, str(Path(__file__).absolute().parents[1]))
|
||||
|
||||
from frappy.client.interactive import init, run, clientenv, interact
|
||||
from frappy.protocol.discovery import scan
|
||||
|
||||
|
||||
def parseArgv(argv):
|
||||
@@ -39,9 +37,6 @@ def parseArgv(argv):
|
||||
parser.add_argument('-i', '--include',
|
||||
help='file to execute after connecting to the clients', metavar='file',
|
||||
type=Path, action='append', default=[])
|
||||
parser.add_argument('-s', '--scan',
|
||||
help='hosts to scan for (-s subnet for all nodes in subnet)',
|
||||
action='append', default=[])
|
||||
parser.add_argument('-o', '--only-execute',
|
||||
help='Do not go into interactive mode after executing files. \
|
||||
Has no effect without --include.', action='store_true')
|
||||
@@ -51,38 +46,9 @@ def parseArgv(argv):
|
||||
return parser.parse_args(argv)
|
||||
|
||||
|
||||
def own_ip():
|
||||
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||
s.settimeout(0)
|
||||
try:
|
||||
# doesn't even have to be reachable
|
||||
s.connect(('10.254.254.254', 1))
|
||||
return s.getsockname()[0]
|
||||
except Exception:
|
||||
return '127.0.0.1'
|
||||
finally:
|
||||
s.close()
|
||||
|
||||
|
||||
args = parseArgv(sys.argv[1:])
|
||||
|
||||
nodes = args.node
|
||||
hosts = args.scan
|
||||
if not nodes and not hosts:
|
||||
hosts = ['localhost']
|
||||
if hosts:
|
||||
answers = []
|
||||
for host in hosts:
|
||||
ans = scan()
|
||||
if host == 'subnet': # all in subnet
|
||||
answers.extend(ans)
|
||||
else: # filter by ip
|
||||
ip = socket.gethostbyname(host)
|
||||
if ip == '127.0.0.1':
|
||||
ip = own_ip()
|
||||
answers.extend(a for a in ans if a.address == ip)
|
||||
nodes.extend(f'{h.hostname}:{h.port}' for h in answers)
|
||||
success = init(*nodes)
|
||||
success = init(*args.node)
|
||||
|
||||
run_error = ''
|
||||
file_success = False
|
||||
|
||||
@@ -23,12 +23,12 @@
|
||||
|
||||
import sys
|
||||
from pathlib import Path
|
||||
from frappy.lib import generalConfig
|
||||
from frappy.logging import logger
|
||||
|
||||
# Add import path for inplace usage
|
||||
sys.path.insert(0, str(Path(__file__).absolute().parents[1]))
|
||||
|
||||
from frappy.lib import generalConfig
|
||||
from frappy.logging import logger
|
||||
from frappy.client.interactive import Console
|
||||
from frappy.playground import play, USAGE
|
||||
|
||||
|
||||
101
bin/frappy-scan
101
bin/frappy-scan
@@ -23,39 +23,106 @@
|
||||
"""SEC node autodiscovery tool."""
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import os
|
||||
import select
|
||||
import socket
|
||||
import sys
|
||||
from pathlib import Path
|
||||
# Add import path for inplace usage
|
||||
sys.path.append(str(Path(__file__).absolute().parents[1]))
|
||||
from frappy.protocol.discovery import scan, listen
|
||||
from collections import namedtuple
|
||||
from time import time as currenttime
|
||||
|
||||
UDP_PORT = 10767
|
||||
|
||||
Answer = namedtuple('Answer',
|
||||
'address, port, equipment_id, firmware, description')
|
||||
|
||||
|
||||
def decode(msg, addr):
|
||||
msg = msg.decode('utf-8')
|
||||
try:
|
||||
data = json.loads(msg)
|
||||
except Exception:
|
||||
return None
|
||||
if not isinstance(data, dict):
|
||||
return None
|
||||
if data.get('SECoP') != 'node':
|
||||
return None
|
||||
try:
|
||||
eq_id = data['equipment_id']
|
||||
fw = data['firmware']
|
||||
desc = data['description']
|
||||
port = data['port']
|
||||
except KeyError:
|
||||
return None
|
||||
addr, _scanport = addr
|
||||
return Answer(addr, port, eq_id, fw, desc)
|
||||
|
||||
|
||||
def print_answer(answer, *, short=False):
|
||||
if short:
|
||||
# NOTE: keep this easily parseable!
|
||||
print(f'{answer.equipment_id} {answer.hostname}:{answer.port}')
|
||||
print(f'{answer.equipment_id} {answer.address}:{answer.port}')
|
||||
return
|
||||
numeric = f' ({answer.address})' if answer.address == answer.hostname else ''
|
||||
print(f'Found {answer.equipment_id} at {answer.hostname}{numeric}:')
|
||||
print(f'Found {answer.equipment_id} at {answer.address}:')
|
||||
print(f' Port: {answer.port}')
|
||||
print(f' Firmware: {answer.firmware}')
|
||||
desc = answer.description.replace('\n', '\n ')
|
||||
print(f' Node description: {desc}')
|
||||
print('-' * 80)
|
||||
print()
|
||||
|
||||
|
||||
def scan(max_wait=1.0):
|
||||
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
|
||||
# send a general broadcast
|
||||
try:
|
||||
s.sendto(json.dumps(dict(SECoP='discover')).encode('utf-8'),
|
||||
('255.255.255.255', UDP_PORT))
|
||||
except OSError as e:
|
||||
print('could not send the broadcast:', e)
|
||||
# we still keep listening for self-announcements
|
||||
start = currenttime()
|
||||
seen = set()
|
||||
while currenttime() < start + max_wait:
|
||||
res = select.select([s], [], [], 0.1)
|
||||
if res[0]:
|
||||
try:
|
||||
msg, addr = s.recvfrom(1024)
|
||||
except socket.error: # pragma: no cover
|
||||
continue
|
||||
answer = decode(msg, addr)
|
||||
if answer is None:
|
||||
continue
|
||||
if (answer.address, answer.equipment_id, answer.port) in seen:
|
||||
continue
|
||||
seen.add((answer.address, answer.equipment_id, answer.port))
|
||||
yield answer
|
||||
|
||||
|
||||
def listen(*, short=False):
|
||||
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||
if os.name == 'nt':
|
||||
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
||||
else:
|
||||
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
|
||||
s.bind(('0.0.0.0', UDP_PORT))
|
||||
while True:
|
||||
try:
|
||||
msg, addr = s.recvfrom(1024)
|
||||
except KeyboardInterrupt:
|
||||
break
|
||||
answer = decode(msg, addr)
|
||||
if answer:
|
||||
print_answer(answer, short=short)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('-l', '--listen', action='store_true',
|
||||
help='Keep listening after the broadcast.')
|
||||
parser.add_argument('-s', '--short', action='store_true',
|
||||
help='Print short info (always on when listen).')
|
||||
help='Print short info. '
|
||||
'Keep listening after the broadcast.')
|
||||
args = parser.parse_args(sys.argv[1:])
|
||||
short = args.listen or args.short
|
||||
if not short:
|
||||
print('-' * 80)
|
||||
for answer in scan():
|
||||
print_answer(answer, short=short)
|
||||
print_answer(answer, short=args.listen)
|
||||
if args.listen:
|
||||
for answer in listen():
|
||||
print_answer(short=short)
|
||||
listen(short=args.listen)
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
import sys
|
||||
from pathlib import Path
|
||||
# Add import path for inplace usage
|
||||
sys.path.insert(0, str(Path(__file__).absolute().parents[1]))
|
||||
|
||||
from frappy.client.interactive import Client
|
||||
from frappy_psi.iqplot import Plot
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
|
||||
if len(sys.argv) < 2:
|
||||
print('Usage: peus-plot <maxY>')
|
||||
|
||||
|
||||
def get_modules(name):
|
||||
return list(filter(None, (globals().get(name % i) for i in range(10))))
|
||||
|
||||
|
||||
secnode = Client('pc13252:5000')
|
||||
time_size = {'time', 'size'}
|
||||
int_mods = [u] + get_modules('roi%d')
|
||||
t_rois = get_modules('roi%d')
|
||||
i_rois = get_modules('roi%di')
|
||||
q_rois = get_modules('roi%dq')
|
||||
|
||||
maxx = None
|
||||
if len(sys.argv) > 1:
|
||||
maxy = float(sys.argv[1])
|
||||
if len(sys.argv) > 2:
|
||||
maxx = float(sys.argv[2])
|
||||
else:
|
||||
maxy = 0.02
|
||||
|
||||
|
||||
iqplot = Plot(maxy, maxx)
|
||||
|
||||
for i in range(99):
|
||||
pass
|
||||
|
||||
try:
|
||||
while True:
|
||||
curves = np.array(u.get_curves())
|
||||
iqplot.plot(curves,
|
||||
rois=[(r.time - r.size * 0.5, r.time + r.size * 0.5) for r in int_mods],
|
||||
average=([r.time for r in t_rois],
|
||||
[r.value for r in i_rois],
|
||||
[r.value for r in q_rois]))
|
||||
if not iqplot.pause(0.5):
|
||||
break
|
||||
except KeyboardInterrupt:
|
||||
iqplot.close()
|
||||
65
bin/us-plot
65
bin/us-plot
@@ -1,65 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
import sys
|
||||
from pathlib import Path
|
||||
# Add import path for inplace usage
|
||||
sys.path.insert(0, str(Path(__file__).absolute().parents[1]))
|
||||
|
||||
from frappy.client.interactive import Client
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
from frappy_psi.iqplot import Pause
|
||||
|
||||
|
||||
if len(sys.argv) < 2:
|
||||
print("""
|
||||
Usage:
|
||||
|
||||
us-plot <end> [<start> [<npoints>]]
|
||||
|
||||
end: end of window [ns]
|
||||
start: start of window [n2], default: 0
|
||||
npoints: number fo points (default 1000)
|
||||
""")
|
||||
sys.exit(0)
|
||||
|
||||
Client('pc13252:5000')
|
||||
|
||||
|
||||
def plot(array, ax, style, xs):
|
||||
xaxis = np.arange(len(array)) * xs
|
||||
return ax.plot(xaxis, array, style)[0]
|
||||
|
||||
|
||||
def update(array, line, xs):
|
||||
xaxis = np.arange(len(array)) * xs
|
||||
line.set_data(np.array([xaxis, array]))
|
||||
|
||||
def on_close(event):
|
||||
sys.exit(0)
|
||||
|
||||
start = 0
|
||||
end = float(sys.argv[1])
|
||||
npoints = 1000
|
||||
if len(sys.argv) > 2:
|
||||
start = float(sys.argv[2])
|
||||
if len(sys.argv) > 3:
|
||||
npoints = float(sys.argv[3])
|
||||
|
||||
fig, ax = plt.subplots(figsize=(15,3))
|
||||
pause = Pause(fig)
|
||||
try:
|
||||
get_signal = iq.get_signal
|
||||
print('plotting RUS signal')
|
||||
except NameError:
|
||||
get_signal = u.get_signal
|
||||
print('plotting PE signal')
|
||||
|
||||
xs, signal = get_signal(start, end, npoints)
|
||||
|
||||
lines = [plot(s, ax, '-', xs) for s in signal]
|
||||
|
||||
while pause(0.5):
|
||||
plt.draw()
|
||||
xs, signal = get_signal(start, end, npoints)
|
||||
for line, sig in zip(lines, signal):
|
||||
update(sig, line, xs)
|
||||
67
cfg/PEUS.py
Normal file
67
cfg/PEUS.py
Normal file
@@ -0,0 +1,67 @@
|
||||
Node(equipment_id = 'pe_ultrasound.psi.ch',
|
||||
description = 'pulse echo ultra sound setup',
|
||||
interface = 'tcp://5000',
|
||||
)
|
||||
|
||||
Mod('f',
|
||||
cls = 'frappy_psi.ultrasound.Frequency',
|
||||
description = 'ultrasound frequency and acquisition loop',
|
||||
uri = 'serial:///dev/ttyS1',
|
||||
pars = 'pars',
|
||||
pollinterval = 0.1,
|
||||
time = 900, # start time
|
||||
size = 5000,
|
||||
freq = 1.17568e+06,
|
||||
basefreq = 4.14902e+07,
|
||||
control = False,
|
||||
rusmode = False,
|
||||
amp = 5.0,
|
||||
nr = 1000, #500 #300 #100 #50 #30 #10 #5 #3 #1 #1000 #500 #300 #100 #50 #30 #10 #5 #3 #1 #500
|
||||
sr = 32768, #16384
|
||||
plot = True,
|
||||
maxstep = 100000,
|
||||
bw = 10E6, #butter worth filter bandwidth
|
||||
maxy = 0.7, # y scale for plot
|
||||
curves = 'curves', # module to transmit curves:
|
||||
)
|
||||
|
||||
Mod('curves',
|
||||
cls = 'frappy_psi.ultrasound.Curves',
|
||||
description = 't, I, Q and pulse arrays for plot',
|
||||
)
|
||||
|
||||
Mod('delay',
|
||||
cls = 'frappy__psi.dg645.Delay',
|
||||
description = 'delay line with 2 channels',
|
||||
uri = 'serial:///dev/ttyS2',
|
||||
on1 = 1e-9,
|
||||
on2 = 1E-9,
|
||||
off1 = 400e-9,
|
||||
off2 = 600e-9,
|
||||
)
|
||||
|
||||
Mod('pars',
|
||||
cls = 'frappy_psi.ultrasound.Pars',
|
||||
description = 'SEA parameters',
|
||||
)
|
||||
|
||||
def roi(nr, time=None, size=300):
|
||||
Mod(f'roi{nr}',
|
||||
cls = 'frappy_psi.ultrasound.Roi',
|
||||
description = f'I/Q of region {nr}',
|
||||
main = 'f',
|
||||
time=time or 4000,
|
||||
size=size,
|
||||
enable=time is not None,
|
||||
)
|
||||
|
||||
roi(0, 2450) # you may add size as argument if not default
|
||||
roi(1, 5950)
|
||||
roi(2, 9475)
|
||||
roi(3, 12900)
|
||||
roi(4, 16100)
|
||||
roi(5) # disabled
|
||||
roi(6)
|
||||
roi(7)
|
||||
roi(8)
|
||||
roi(9)
|
||||
@@ -1,87 +0,0 @@
|
||||
Node('PEUS.psi.ch',
|
||||
'ultrasound, pulse_echo configuration',
|
||||
interface='5000',
|
||||
)
|
||||
|
||||
Mod('u',
|
||||
'frappy_psi.ultrasound.PulseEcho',
|
||||
'ultrasound acquisition loop',
|
||||
freq='f',
|
||||
# pollinterval=0.1,
|
||||
time=900.0,
|
||||
size=5000.0,
|
||||
nr=500,
|
||||
sr=32768,
|
||||
bw=1e7,
|
||||
)
|
||||
|
||||
Mod('fio',
|
||||
'frappy_psi.ultrasound.FreqStringIO', '',
|
||||
uri='serial:///dev/ttyS1?baudrate=57600',
|
||||
)
|
||||
|
||||
Mod('f',
|
||||
'frappy_psi.ultrasound.Frequency',
|
||||
'writable for frequency',
|
||||
output='R', # L for LF (bnc), R for RF (type N)
|
||||
io='fio',
|
||||
amp=0.5, # VPP
|
||||
)
|
||||
|
||||
Mod('fdif',
|
||||
'frappy_psi.ultrasound.FrequencyDif',
|
||||
'writable for frequency minus base frequency',
|
||||
freq='f',
|
||||
base=41490200.0,
|
||||
)
|
||||
|
||||
# Mod('curves',
|
||||
# 'frappy_psi.ultrasound.Curves',
|
||||
# 't, I, Q and pulse arrays for plot',
|
||||
# )
|
||||
|
||||
def roi(name, time, size, components='iqpa', enable=True, control=False, freq=None, **kwds):
|
||||
description = 'I/Q of region {name}'
|
||||
if freq:
|
||||
kwds.update(cls='frappy_psi.ultrasound.ControlRoi',
|
||||
description=f'{description} as control loop',
|
||||
freq=freq, **kwds)
|
||||
else:
|
||||
kwds.update(cls='frappy_psi.ultrasound.Roi',
|
||||
description=description, **kwds)
|
||||
kwds.update({c: name + c for c in components})
|
||||
Mod(name,
|
||||
main='u',
|
||||
time=time,
|
||||
size=size,
|
||||
enable=enable,
|
||||
**kwds,
|
||||
)
|
||||
for c in components:
|
||||
Mod(name + c,
|
||||
'frappy.modules.Readable',
|
||||
f'{name}{c} component',
|
||||
)
|
||||
|
||||
# control loop
|
||||
roi('roi0', 2450, 300, freq='f', maxstep=100000, minstep=4000)
|
||||
# other rois
|
||||
roi('roi1', 5950, 300)
|
||||
roi('roi2', 9475, 300)
|
||||
roi('roi3', 12900, 300)
|
||||
#roi('roi4', 400, 30, False)
|
||||
#roi('roi5', 400, 30, False)
|
||||
#roi('roi6', 400, 30, False)
|
||||
#roi('roi7', 400, 30, False)
|
||||
#roi('roi8', 400, 30, False)
|
||||
#roi('roi9', 400, 30, False)
|
||||
|
||||
Mod('delay',
|
||||
'frappy_psi.dg645.Delay',
|
||||
'delay line with 2 channels',
|
||||
uri='serial:///dev/ttyS2',
|
||||
on1=1e-09,
|
||||
on2=1e-09,
|
||||
off1=4e-07,
|
||||
off2=6e-07,
|
||||
)
|
||||
62
cfg/RUS.py
Normal file
62
cfg/RUS.py
Normal file
@@ -0,0 +1,62 @@
|
||||
Node(equipment_id = 'r_ultrasound.psi.ch',
|
||||
description = 'resonant ultra sound setup',
|
||||
interface = 'tcp://5000',
|
||||
)
|
||||
|
||||
Mod('f',
|
||||
cls = 'frappy_psi.ultrasound.Frequency',
|
||||
description = 'ultrasound frequency and acquisition loop',
|
||||
uri = 'serial:///dev/ttyS1',
|
||||
pars = 'pars',
|
||||
pollinterval = 0.1,
|
||||
time = 900, # start time
|
||||
size = 5000,
|
||||
freq = 1.e+03,
|
||||
basefreq = 1.E+3,
|
||||
control = False,
|
||||
rusmode = False,
|
||||
amp = 2.5,
|
||||
nr = 1, #500 #300 #100 #50 #30 #10 #5 #3 #1 #1000 #500 #300 #100 #50 #30 #10 #5 #3 #1 #500
|
||||
sr = 1E8, #16384
|
||||
plot = True,
|
||||
maxstep = 100000,
|
||||
bw = 10E6, #butter worth filter bandwidth
|
||||
maxy = 0.7, # y scale for plot
|
||||
curves = 'curves', # module to transmit curves:
|
||||
)
|
||||
|
||||
Mod('curves',
|
||||
cls = 'frappy_psi.ultrasound.Curves',
|
||||
description = 't, I, Q and pulse arrays for plot',
|
||||
)
|
||||
|
||||
Mod('roi0',
|
||||
cls = 'frappy_psi.ultrasound.Roi',
|
||||
description = 'I/Q of region in the control loop',
|
||||
time = 300, # this is the center of roi:
|
||||
size = 5000,
|
||||
main = f,
|
||||
)
|
||||
|
||||
Mod('roi1',
|
||||
cls = 'frappy_psi.ultrasound.Roi',
|
||||
description = 'I/Q of region 1',
|
||||
time = 100, # this is the center of roi:
|
||||
size = 300,
|
||||
main = f,
|
||||
)
|
||||
|
||||
Mod('delay',
|
||||
cls = 'frappy__psi.dg645.Delay',
|
||||
description = 'delay line with 2 channels',
|
||||
uri = 'serial:///dev/ttyS2',
|
||||
on1 = 1e-9,
|
||||
on2 = 1E-9,
|
||||
off1 = 400e-9,
|
||||
off2 = 600e-9,
|
||||
)
|
||||
|
||||
Mod('pars',
|
||||
cls = 'frappy_psi.ultrasound.Pars',
|
||||
description = 'SEA parameters',
|
||||
)
|
||||
@@ -1,39 +0,0 @@
|
||||
Node(equipment_id = 'r_ultrasound.psi.ch',
|
||||
description = 'resonant ultra sound setup',
|
||||
interface = 'tcp://5000',
|
||||
)
|
||||
|
||||
Mod('iq',
|
||||
cls = 'frappy_psi.ultrasound.RUS',
|
||||
description = 'ultrasound iq mesurement',
|
||||
imod = 'i',
|
||||
qmod = 'q',
|
||||
freq='f',
|
||||
input_range=10, # VPP
|
||||
input_delay = 0,
|
||||
periods = 163,
|
||||
)
|
||||
|
||||
Mod('freqio',
|
||||
'frappy_psi.ultrasound.FreqStringIO',
|
||||
' ',
|
||||
uri = 'serial:///dev/ttyS1?baudrate=57600',
|
||||
)
|
||||
|
||||
Mod('f',
|
||||
cls = 'frappy_psi.ultrasound.Frequency',
|
||||
description = 'ultrasound frequency',
|
||||
io='freqio',
|
||||
output='L', # L for LF (bnc), R for RF (type N)
|
||||
target=10000,
|
||||
)
|
||||
|
||||
Mod('i',
|
||||
cls='frappy.modules.Readable',
|
||||
description='I component',
|
||||
)
|
||||
|
||||
Mod('q',
|
||||
cls='frappy.modules.Readable',
|
||||
description='Q component',
|
||||
)
|
||||
@@ -1,40 +0,0 @@
|
||||
Node('measure.frappy.demo',
|
||||
'''Measureable demo''',
|
||||
'tcp://10770',
|
||||
)
|
||||
Mod('control',
|
||||
'frappy_demo.acquisition.Controller',
|
||||
'simple demo controller',
|
||||
channels = {'first': 'chan1', 'second': 'chan2', 'third': 'chan3'},
|
||||
pollinterval = 1,
|
||||
)
|
||||
Mod('chan1',
|
||||
'frappy_demo.acquisition.Channel',
|
||||
'simple channel demo',
|
||||
goal = 50,
|
||||
goal_enable = True,
|
||||
pollinterval = 1,
|
||||
)
|
||||
Mod('chan2',
|
||||
'frappy_demo.acquisition.Channel',
|
||||
'simple channel demo',
|
||||
pollinterval = 1,
|
||||
)
|
||||
Mod('chan3',
|
||||
'frappy_demo.acquisition.Channel',
|
||||
'simple channel demo',
|
||||
pollinterval = 1,
|
||||
)
|
||||
Mod('single',
|
||||
'frappy_demo.acquisition.SimpleAcquisition',
|
||||
'Acquisition demo',
|
||||
pollinterval = 1,
|
||||
goal = 20,
|
||||
goal_enable=True,
|
||||
acquisition_key='single',
|
||||
)
|
||||
Mod('ng',
|
||||
'frappy_demo.acquisition.NoGoalAcquisition',
|
||||
'Acquisition demo',
|
||||
pollinterval = 5,
|
||||
)
|
||||
13
cfg/addons/ah2700_cfg.py
Executable file → Normal file
13
cfg/addons/ah2700_cfg.py
Executable file → Normal file
@@ -2,17 +2,8 @@ Node('ah2700.frappy.psi.ch',
|
||||
'Andeen Hagerlin 2700 Capacitance Bridge',
|
||||
)
|
||||
|
||||
Mod('cap_io',
|
||||
'frappy_psi.ahcapbridge.IO', '',
|
||||
uri='linse-leiden-ts:3002'
|
||||
)
|
||||
|
||||
Mod('cap',
|
||||
'frappy_psi.ahcapbridge.AH2700',
|
||||
'frappy_psi.ah2700.Capacitance',
|
||||
'capacitance',
|
||||
io='cap_io',
|
||||
loss_module = 'loss',
|
||||
freq_module = 'freq',
|
||||
uri='dil4-ts.psi.ch:3008',
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
Node('ah2700.frappy.psi.ch',
|
||||
'Andeen Hagerlin 2700 Capacitance Bridge',
|
||||
)
|
||||
|
||||
Mod('cap_io',
|
||||
'frappy_psi.ah2700.Ah2700IO',
|
||||
'',
|
||||
uri='linse-leiden-ts:3002',
|
||||
timeout=60,
|
||||
)
|
||||
|
||||
# this creates also cap_freq and cap_loss
|
||||
Mod('cap',
|
||||
'frappy_psi.ah2700.Capacitance',
|
||||
'capacitance',
|
||||
io = 'cap_io',
|
||||
loss_name='loss',
|
||||
freq_name='freq',
|
||||
)
|
||||
|
||||
@@ -16,7 +16,7 @@ Mod('ah',
|
||||
'frappy_psi.sea.SeaReadable', '',
|
||||
io='sea_addons',
|
||||
sea_object='cap',
|
||||
extra_modules = ['cap', 'loss', 'freq']
|
||||
extra_modules = ['cap', 'loss']
|
||||
)
|
||||
|
||||
Mod('cap',
|
||||
@@ -32,12 +32,6 @@ Mod('loss',
|
||||
single_module='ah.loss',
|
||||
)
|
||||
|
||||
Mod('freq',
|
||||
'frappy_psi.sea.SeaWritable', '',
|
||||
io='sea_addons',
|
||||
single_module='ah.freq',
|
||||
)
|
||||
|
||||
Mod('capslope',
|
||||
'frappy_psi.sea.SeaReadable', '',
|
||||
io='sea_addons',
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
Node('ahtwo.frappy.psi.ch',
|
||||
'Andeen Hagerlin 2700 and 2550 Capacitance Bridges',
|
||||
)
|
||||
|
||||
# TODO: adapt names (cap, cap2) to your experiment
|
||||
|
||||
Mod('cap_io',
|
||||
'frappy_psi.ahcapbridge.IO', '',
|
||||
uri='linse-leiden-ts:3002'
|
||||
)
|
||||
|
||||
Mod('cap',
|
||||
'frappy_psi.ahcapbridge.AH2700',
|
||||
'capacitance',
|
||||
io='cap_io',
|
||||
loss_module = 'loss',
|
||||
freq_module = 'freq',
|
||||
)
|
||||
|
||||
Mod('cap2_io',
|
||||
'frappy_psi.ahcapbridge.IO', '',
|
||||
uri='linse-leiden-ts:3001'
|
||||
)
|
||||
|
||||
Mod('cap2',
|
||||
'frappy_psi.ahcapbridge.AH2550',
|
||||
'capacitance',
|
||||
io='cap2_io',
|
||||
loss_module = 'loss2',
|
||||
)
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
Node('haake.frappy.psi.ch',
|
||||
'additional haake waterbath',
|
||||
)
|
||||
|
||||
Mod('haake_io',
|
||||
'frappy_psi.haake.HaakeIO',
|
||||
'',
|
||||
uri='sans-sample-ts:3006',
|
||||
)
|
||||
|
||||
Mod('T2',
|
||||
'frappy_psi.haake.TemperatureLoop',
|
||||
'second haake',
|
||||
io = 'haake_io',
|
||||
)
|
||||
@@ -1,22 +0,0 @@
|
||||
Node('pdld_laser.psi.ch',
|
||||
'PDLD laser',
|
||||
interface = 'tcp://5000',
|
||||
)
|
||||
|
||||
Mod('laser_io',
|
||||
'frappy_psi.pdld.IO',
|
||||
'laser IO',
|
||||
uri='serial:///dev/ttyUSB0?baudrate=9600',
|
||||
)
|
||||
|
||||
Mod('laser',
|
||||
'frappy_psi.pdld.Laser',
|
||||
'laser switch',
|
||||
io='laser_io',
|
||||
)
|
||||
|
||||
Mod('laser_power',
|
||||
'frappy_psi.pdld.LaserPower',
|
||||
'laser power',
|
||||
io='laser_io',
|
||||
)
|
||||
@@ -1,28 +0,0 @@
|
||||
Node('srs830.ppms.psi.ch',
|
||||
'',
|
||||
interface='tcp://5000',
|
||||
)
|
||||
Mod('b',
|
||||
'frappy_psi.SR830.XY',
|
||||
'signal from Stanford Rasearch lockin',
|
||||
uri='linse-976d-ts:3002',
|
||||
)
|
||||
Mod('bx',
|
||||
'frappy_psi.parmod.Comp',
|
||||
'x-comp',
|
||||
read='b.value[0]',
|
||||
unit='V',
|
||||
)
|
||||
Mod('by',
|
||||
'frappy_psi.parmod.Comp',
|
||||
'y-comp',
|
||||
read='b.value[1]',
|
||||
unit='V',
|
||||
)
|
||||
Mod('bf',
|
||||
'frappy_psi.parmod.Par',
|
||||
'lockin frequency',
|
||||
read='b.freq',
|
||||
unit='Hz',
|
||||
)
|
||||
|
||||
@@ -3,15 +3,8 @@ Node('AH2700Test.psi.ch',
|
||||
'tcp://5000',
|
||||
)
|
||||
|
||||
Mod('io',
|
||||
'frappy_psi.ahcapbridge.IO', '',
|
||||
uri='linse-leiden-ts:3002'
|
||||
)
|
||||
|
||||
Mod('cap',
|
||||
'frappy_psi.ahcapbridge.AH2700',
|
||||
'frappy_psi.ah2700.Capacitance',
|
||||
'capacitance',
|
||||
io='io',
|
||||
loss_module = 'loss',
|
||||
freq_module = 'freq',
|
||||
uri='ldmse3-ts:3015',
|
||||
)
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
Node('bronkhorsttest.psi.ch',
|
||||
'bronkhorst test',
|
||||
'tcp://5000',
|
||||
)
|
||||
|
||||
Mod('io',
|
||||
'frappy_psi.bronkhorst.IO',
|
||||
'bronkhorst communication',
|
||||
uri='tcp://localhost:3005',
|
||||
)
|
||||
|
||||
Mod('p',
|
||||
'frappy_psi.bronkhorst.Controller',
|
||||
'pressure controller',
|
||||
io='io',
|
||||
adr=128,
|
||||
scale=18,
|
||||
value=Param(unit='mbar')
|
||||
)
|
||||
341
cfg/dil5_cfg.py
341
cfg/dil5_cfg.py
@@ -1,341 +0,0 @@
|
||||
# by id (independent of plug location, but may not neccessarly be unique)
|
||||
# to verify just do:
|
||||
# ls /dev/serial/by-id
|
||||
turbo_uri = '/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A601PCGF-if00-port0'
|
||||
press_uri = '/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AH07445U-if00-port0'
|
||||
itc_uri = '/dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller_D-if00-port0'
|
||||
lsc_uri = '192.168.1.2:7777'
|
||||
logo_ip = '192.168.0.3'
|
||||
# by plug location would also be possible (/dev/serial/by-path)
|
||||
|
||||
|
||||
Node('dil5.psi.ch',
|
||||
'dil5 on linse-dil5',
|
||||
interface='tcp://5000',
|
||||
secondary = ['ws://8010']
|
||||
)
|
||||
|
||||
Mod('logo',
|
||||
'frappy_psi.logo.IO',
|
||||
'',
|
||||
ip_address = logo_ip,
|
||||
tcap_client = 0x3000,
|
||||
tsap_server = 0x2000
|
||||
)
|
||||
|
||||
Mod('V1',
|
||||
'frappy_psi.logo.DigitalActuator',
|
||||
'Valves',
|
||||
io = 'logo',
|
||||
feedback_addr ="V1025.0",
|
||||
output_addr ="V1064.3"
|
||||
)
|
||||
|
||||
Mod('V2',
|
||||
'frappy_psi.logo.DigitalActuator',
|
||||
'dil bypass',
|
||||
io = 'logo',
|
||||
feedback_addr ="V1024.2",
|
||||
output_addr ="V1064.0",
|
||||
)
|
||||
|
||||
Mod('V4',
|
||||
'frappy_psi.logo.DigitalActuator',
|
||||
'compressor to dump',
|
||||
io = 'logo',
|
||||
# feedback seems not to work
|
||||
output_addr ="V1064.7",
|
||||
target_addr ="V404.1",
|
||||
)
|
||||
|
||||
Mod('V5',
|
||||
'frappy_psi.logo.DigitalActuator',
|
||||
'compressor input',
|
||||
io = 'logo',
|
||||
feedback_addr ="V1024.4",
|
||||
output_addr ="V1064.2",
|
||||
)
|
||||
|
||||
Mod('V9',
|
||||
'frappy_psi.logo.DelayedActuator',
|
||||
'dump output',
|
||||
io = 'logo',
|
||||
delay_addr = 'VW24',
|
||||
feedback_addr ="V1024.3",
|
||||
output_addr ="V1064.5",
|
||||
target_addr ="V404.3",
|
||||
)
|
||||
|
||||
Mod('forepump',
|
||||
'frappy_psi.logo.DigitalActuator',
|
||||
'forepump',
|
||||
io = 'logo',
|
||||
output_addr ="V1064.6",
|
||||
target_addr ="V404.4",
|
||||
)
|
||||
|
||||
Mod('compressor',
|
||||
'frappy_psi.logo.DigitalActuator',
|
||||
'',
|
||||
io = 'logo',
|
||||
output_addr ="V1064.4",
|
||||
target_addr ="V404.2",
|
||||
)
|
||||
|
||||
Mod('p2',
|
||||
'frappy_psi.logo.Value',
|
||||
'pressure after compressor',
|
||||
io = 'logo',
|
||||
addr ="VW0",
|
||||
value = Param(unit='mbar'),
|
||||
)
|
||||
|
||||
Mod('p1',
|
||||
'frappy_psi.logo.Value',
|
||||
'dump pressure',
|
||||
io = 'logo',
|
||||
addr ="VW28",
|
||||
value = Param(unit='mbar'),
|
||||
)
|
||||
|
||||
Mod('p5',
|
||||
'frappy_psi.logo.Value',
|
||||
'pressure after forepump',
|
||||
io = 'logo',
|
||||
addr ="VW4",
|
||||
value = Param(unit='mbar'),
|
||||
)
|
||||
|
||||
Mod('airpressure',
|
||||
'frappy_psi.logo.DigitalValue',
|
||||
'Airpressure state',
|
||||
io = 'logo',
|
||||
addr ="V1024.7",
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
Mod('io_pfeiffer',
|
||||
'frappy_psi.pfeiffer_new.PfeifferProtocol',
|
||||
'',
|
||||
uri=f'serial://{press_uri}?baudrate=9600+parity=none+bytesize=8+stopbits=1',
|
||||
)
|
||||
|
||||
Mod('io_turbo',
|
||||
'frappy_psi.pfeiffer_new.PfeifferProtocol',
|
||||
'',
|
||||
uri=f'serial://{turbo_uri}?baudrate=9600+parity=none+bytesize=8+stopbits=1',
|
||||
)
|
||||
|
||||
Mod('p3',
|
||||
'frappy_psi.pfeiffer_new.RPT200',
|
||||
'Pressure in HPa',
|
||||
io = 'io_pfeiffer',
|
||||
address= 2,
|
||||
)
|
||||
|
||||
Mod('p4',
|
||||
'frappy_psi.pfeiffer_new.RPT200',
|
||||
'Pressure in HPa',
|
||||
io = 'io_pfeiffer',
|
||||
address= 4
|
||||
)
|
||||
|
||||
Mod('turbopump',
|
||||
'frappy_psi.pfeiffer_new.TCP400',
|
||||
'Pfeiffer Turbopump',
|
||||
io = 'io_turbo',
|
||||
address= 1
|
||||
)
|
||||
|
||||
Mod('MV10',
|
||||
'frappy_psi.manual_valves.ManualValve',
|
||||
'Manual Valve MV10'
|
||||
)
|
||||
|
||||
Mod('MV13',
|
||||
'frappy_psi.manual_valves.ManualValve',
|
||||
'Manual Valve MV13'
|
||||
)
|
||||
|
||||
Mod('MV8',
|
||||
'frappy_psi.manual_valves.ManualValve',
|
||||
'Manual Valve MV8'
|
||||
)
|
||||
|
||||
Mod('MVB',
|
||||
'frappy_psi.manual_valves.ManualValve',
|
||||
'Manual Valve MVB'
|
||||
)
|
||||
|
||||
Mod('MV2',
|
||||
'frappy_psi.manual_valves.ManualValve',
|
||||
'Manual Valve MV2'
|
||||
)
|
||||
|
||||
Mod('MV1',
|
||||
'frappy_psi.manual_valves.ManualValve',
|
||||
'Manual Valve MV1'
|
||||
)
|
||||
|
||||
|
||||
Mod('MV3a',
|
||||
'frappy_psi.manual_valves.ManualValve',
|
||||
'Manual Valve MV3a'
|
||||
)
|
||||
|
||||
Mod('MV3b',
|
||||
'frappy_psi.manual_valves.ManualValve',
|
||||
'Manual Valve MV3b'
|
||||
)
|
||||
|
||||
Mod('GV1',
|
||||
'frappy_psi.manual_valves.ManualValve',
|
||||
'Manual Valve GV1'
|
||||
)
|
||||
|
||||
Mod('GV2',
|
||||
'frappy_psi.manual_valves.ManualValve',
|
||||
'Manual Valve GV2'
|
||||
)
|
||||
|
||||
Mod('MV14',
|
||||
'frappy_psi.manual_valves.ManualValve',
|
||||
'Manual Valve MV14'
|
||||
)
|
||||
|
||||
Mod('MV12',
|
||||
'frappy_psi.manual_valves.ManualValve',
|
||||
'Manual Valve MV12'
|
||||
)
|
||||
|
||||
Mod('MV11',
|
||||
|
||||
'frappy_psi.manual_valves.ManualValve',
|
||||
'Manual Valve MV11'
|
||||
)
|
||||
|
||||
Mod('MV9',
|
||||
'frappy_psi.manual_valves.ManualValve',
|
||||
'Manual Valve MV9'
|
||||
)
|
||||
|
||||
Mod('itc',
|
||||
'frappy_psi.mercury.IO',
|
||||
'connection to MercuryiTC',
|
||||
uri=f'serial://{itc_uri}?baudrate=115200+parity=none+bytesize=8+stopbits=1',
|
||||
)
|
||||
|
||||
Mod('T_still_wup',
|
||||
'frappy_psi.mercury.TemperatureLoop',
|
||||
'still warmup temperature',
|
||||
slot='MB1.T1',
|
||||
io='itc',
|
||||
)
|
||||
|
||||
Mod('T_one_K',
|
||||
'frappy_psi.mercury.TemperatureLoop',
|
||||
'1 K plate warmup temperature',
|
||||
slot='DB5.T1',
|
||||
io='itc',
|
||||
)
|
||||
|
||||
Mod('T_mix_wup',
|
||||
'frappy_psi.mercury.TemperatureLoop',
|
||||
'mix. chamber warmup temperature',
|
||||
slot='DB6.T1',
|
||||
io='itc',
|
||||
)
|
||||
|
||||
Mod('T_ivc_wup',
|
||||
'frappy_psi.mercury.TemperatureLoop',
|
||||
'IVC warmup temperature',
|
||||
slot='DB7.T1',
|
||||
io='itc',
|
||||
)
|
||||
|
||||
Mod('T_cond',
|
||||
'frappy_psi.mercury.TemperatureLoop',
|
||||
'condenser temperature',
|
||||
slot='DB8.T1',
|
||||
io='itc',
|
||||
)
|
||||
|
||||
Mod('safety',
|
||||
'frappy_psi.dilution.Interlock',
|
||||
'interlock mechanism',
|
||||
io='logo',
|
||||
dil='dil',
|
||||
)
|
||||
|
||||
Mod('dil',
|
||||
'frappy_psi.dilution.DIL5',
|
||||
'dilution state machine and parameters',
|
||||
|
||||
condenseline_pressure = "p2",
|
||||
condense_valve = "V9",
|
||||
dump_valve = "V4",
|
||||
forepump = "forepump",
|
||||
compressor = "compressor",
|
||||
|
||||
turbopump = "turbopump",
|
||||
condenseline_valve = "V1",
|
||||
circuitshort_valve = "V2",
|
||||
still_pressure = "p4",
|
||||
still_pressure_turbo = "p3",
|
||||
#ls372 = "res1",
|
||||
dump_pressure = "p1",
|
||||
condensing_p_low = 1200,
|
||||
condensing_p_high = 1500,
|
||||
)
|
||||
|
||||
## Dilution lakeshore Temperature controller
|
||||
|
||||
Mod('io_ls273',
|
||||
'frappy_psi.ls372.StringIO',
|
||||
'io for Ls372',
|
||||
uri=lsc_uri,
|
||||
)
|
||||
|
||||
Mod('sw',
|
||||
'frappy_psi.ls372.Switcher',
|
||||
'channel switcher',
|
||||
io = 'io_ls273',
|
||||
)
|
||||
|
||||
Mod('T_ivc',
|
||||
'frappy_psi.ls372.TemperatureChannel',
|
||||
'mix temperature chan 2',
|
||||
channel = 2,
|
||||
switcher = 'sw',
|
||||
)
|
||||
|
||||
Mod('T_still',
|
||||
'frappy_psi.ls372.TemperatureChannel',
|
||||
'mix temperature chan 3',
|
||||
channel = 3,
|
||||
switcher = 'sw',
|
||||
)
|
||||
|
||||
Mod('T_sorb',
|
||||
'frappy_psi.ls372.TemperatureChannel',
|
||||
'mix temperature chan 1',
|
||||
channel = 1,
|
||||
switcher = 'sw',
|
||||
)
|
||||
|
||||
Mod('T_cp',
|
||||
'frappy_psi.ls372.TemperatureChannel',
|
||||
'mix temperature chan 4',
|
||||
channel = 4,
|
||||
switcher = 'sw',
|
||||
)
|
||||
|
||||
Mod('T_mix',
|
||||
'frappy_psi.ls372.TemperatureLoop',
|
||||
'mix temperature chan 5',
|
||||
channel = 5,
|
||||
htrrng = '1mA',
|
||||
switcher = 'sw',
|
||||
)
|
||||
@@ -1,16 +0,0 @@
|
||||
Node('dilhtrtest.psi.ch',
|
||||
'dilhtr test',
|
||||
'tcp://5000',
|
||||
)
|
||||
|
||||
Mod('io',
|
||||
'frappy_psi.dilhtr.IO',
|
||||
'dilhtr communication',
|
||||
uri='serial:///dev/tty.usbserial-21440?baudrate=9600',
|
||||
)
|
||||
|
||||
Mod('heater',
|
||||
'frappy_psi.dilhtr.Heater',
|
||||
'dilhtr box',
|
||||
io='io',
|
||||
)
|
||||
136
cfg/dummy_cfg.py
136
cfg/dummy_cfg.py
@@ -1,136 +0,0 @@
|
||||
Node('test.config.frappy.demo',
|
||||
'''short description of the testing sec-node
|
||||
|
||||
This description for the node can be as long as you need if you use a multiline string.
|
||||
|
||||
Very long!
|
||||
The needed fields are Equipment id (1st argument), description (this)
|
||||
and the main interface of the node (3rd arg)
|
||||
''',
|
||||
'tcp://5000',
|
||||
)
|
||||
|
||||
Mod('attachtest',
|
||||
'frappy_demo.test.WithAtt',
|
||||
'test attached',
|
||||
att = 'LN2',
|
||||
)
|
||||
|
||||
Mod('pinata',
|
||||
'frappy_demo.test.Pin',
|
||||
'scan test',
|
||||
)
|
||||
|
||||
Mod('recursive',
|
||||
'frappy_demo.test.RecPin',
|
||||
'scan test',
|
||||
)
|
||||
|
||||
Mod('LN2',
|
||||
'frappy_demo.test.LN2',
|
||||
'random value between 0..100%',
|
||||
value = Param(default = 0, unit = '%'),
|
||||
)
|
||||
|
||||
Mod('heater',
|
||||
'frappy_demo.test.Heater',
|
||||
'some heater',
|
||||
maxheaterpower = 10,
|
||||
)
|
||||
|
||||
Mod('T1',
|
||||
'frappy_demo.test.Temp',
|
||||
'some temperature',
|
||||
sensor = 'X34598T7',
|
||||
)
|
||||
|
||||
Mod('T2',
|
||||
'frappy_demo.test.Temp',
|
||||
'some temperature',
|
||||
sensor = 'X34598T8',
|
||||
)
|
||||
|
||||
Mod('T3',
|
||||
'frappy_demo.test.Temp',
|
||||
'some temperature',
|
||||
sensor = 'X34598T9',
|
||||
)
|
||||
|
||||
Mod('Lower',
|
||||
'frappy_demo.test.Lower',
|
||||
'something else',
|
||||
)
|
||||
|
||||
Mod('Decision',
|
||||
'frappy_demo.test.Mapped',
|
||||
'Random value from configured property choices. Config accepts anything ' \
|
||||
'that can be converted to a list',
|
||||
choices = ['Yes', 'Maybe', 'No'],
|
||||
)
|
||||
|
||||
Mod('c',
|
||||
'frappy_demo.test.Commands',
|
||||
'a command test',
|
||||
)
|
||||
|
||||
Mod('cryo',
|
||||
'frappy_demo.cryo.Cryostat',
|
||||
'A simulated cc cryostat with heat-load, specific heat for the sample and a '
|
||||
'temperature dependent heat-link between sample and regulation.',
|
||||
group='very important/stuff',
|
||||
jitter=0.1,
|
||||
T_start=10.0,
|
||||
target=10.0,
|
||||
looptime=1,
|
||||
ramp=6,
|
||||
maxpower=20.0,
|
||||
heater=4.1,
|
||||
mode='pid',
|
||||
tolerance=0.1,
|
||||
window=30,
|
||||
timeout=900,
|
||||
p = Param(40, unit='%/K'), # in case 'default' is the first arg, we can omit 'default='
|
||||
i = 10,
|
||||
d = 2,
|
||||
pid = Group('p', 'i', 'd'),
|
||||
pollinterval = Param(export=False),
|
||||
value = Param(unit = 'K', test = 'customized value'),
|
||||
)
|
||||
|
||||
Mod('heatswitch',
|
||||
'frappy_demo.modules.Switch',
|
||||
'Heatswitch for `mf` device',
|
||||
switch_on_time = 5,
|
||||
switch_off_time = 10,
|
||||
)
|
||||
|
||||
Mod('bool',
|
||||
'frappy_demo.modules.BoolWritable',
|
||||
'boolean writable test',
|
||||
)
|
||||
|
||||
Mod('lscom',
|
||||
'frappy_psi.ls370sim.Ls370Sim',
|
||||
'simulated serial communicator to a LS 370',
|
||||
visibility = 3
|
||||
)
|
||||
|
||||
Mod('sw',
|
||||
'frappy_psi.ls370res.Switcher',
|
||||
'channel switcher for Lsc controller',
|
||||
io = 'lscom',
|
||||
)
|
||||
|
||||
Mod('a',
|
||||
'frappy_psi.ls370res.ResChannel',
|
||||
'resistivity',
|
||||
channel = 1,
|
||||
switcher = 'sw',
|
||||
)
|
||||
|
||||
Mod('b',
|
||||
'frappy_psi.ls370res.ResChannel',
|
||||
'resistivity',
|
||||
channel = 3,
|
||||
switcher = 'sw',
|
||||
)
|
||||
100
cfg/fi2_cfg.py
100
cfg/fi2_cfg.py
@@ -1,100 +0,0 @@
|
||||
Node('fi2.psi.ch',
|
||||
'vacuum furnace ILL Type',
|
||||
'tcp://5000',
|
||||
)
|
||||
|
||||
Mod('htr_io',
|
||||
'frappy_psi.tdkpower.IO',
|
||||
'powersupply communicator',
|
||||
uri = 'serial:///dev/ttyUSB0',
|
||||
)
|
||||
|
||||
Mod('htr',
|
||||
'frappy_psi.tdkpower.Power',
|
||||
'heater power',
|
||||
io= 'htr_io',
|
||||
)
|
||||
|
||||
Mod('out',
|
||||
'frappy_psi.tdkpower.Output',
|
||||
'heater output',
|
||||
io = 'htr_io',
|
||||
maxvolt = 5,
|
||||
maxcurrent = 25,
|
||||
)
|
||||
|
||||
Mod('relais',
|
||||
'frappy_psi.ionopimax.DigitalOutput',
|
||||
'relais for power output',
|
||||
addr = 'o2',
|
||||
)
|
||||
|
||||
Mod('T_main',
|
||||
'frappy_psi.ionopimax.CurrentInput',
|
||||
'sample temperature',
|
||||
addr = 'ai4',
|
||||
valuerange = (0, 1372),
|
||||
value = Param(unit='degC'),
|
||||
)
|
||||
|
||||
|
||||
Mod('T_extra',
|
||||
'frappy_psi.ionopimax.CurrentInput',
|
||||
'extra temperature',
|
||||
addr = 'ai3',
|
||||
valuerange = (0, 1372),
|
||||
value = Param(unit='degC'),
|
||||
|
||||
)
|
||||
|
||||
Mod('T_htr',
|
||||
'frappy_psi.ionopimax.CurrentInput',
|
||||
'heater temperature',
|
||||
addr = 'ai2',
|
||||
valuerange = (0, 1372),
|
||||
value = Param(unit='degC'),
|
||||
)
|
||||
|
||||
Mod('T_wall',
|
||||
'frappy_psi.ionopimax.VoltageInput',
|
||||
'furnace wall temperature',
|
||||
addr = 'av2',
|
||||
rawrange = (0, 1.5),
|
||||
valuerange = (0, 150),
|
||||
value = Param(unit='degC'),
|
||||
)
|
||||
|
||||
Mod('T',
|
||||
'frappy_psi.picontrol.PI',
|
||||
'controlled Temperature',
|
||||
input = 'T_htr',
|
||||
output = 'out',
|
||||
relais = 'relais',
|
||||
p = 2,
|
||||
i = 0.01,
|
||||
)
|
||||
|
||||
Mod('interlocks',
|
||||
'frappy_psi.furnace.Interlocks',
|
||||
'interlock parameters',
|
||||
input = 'T_htr',
|
||||
wall_T = 'T_wall',
|
||||
vacuum = 'p',
|
||||
relais = 'relais',
|
||||
control = 'T',
|
||||
wall_limit = 50,
|
||||
vacuum_limit = 0.1,
|
||||
)
|
||||
|
||||
Mod('p_io',
|
||||
'frappy_psi.pfeiffer.IO',
|
||||
'pressure io',
|
||||
uri='serial:///dev/ttyUSBlower',
|
||||
)
|
||||
|
||||
Mod('p',
|
||||
'frappy_psi.pfeiffer.Pressure',
|
||||
'pressure reading',
|
||||
io = 'p_io',
|
||||
)
|
||||
|
||||
116
cfg/fi_cfg.py
116
cfg/fi_cfg.py
@@ -1,116 +0,0 @@
|
||||
Node('fi.psi.ch',
|
||||
'ILL furnace',
|
||||
'tcp://5000',
|
||||
)
|
||||
|
||||
Mod('T_main',
|
||||
'frappy_psi.furnace.PRtransmitter',
|
||||
'sample temperature',
|
||||
addr='ai2',
|
||||
valuerange=(0, 2300),
|
||||
value=Param(unit='degC'),
|
||||
)
|
||||
|
||||
Mod('T_extra',
|
||||
'frappy_psi.furnace.PRtransmitter',
|
||||
'extra temperature',
|
||||
addr='ai1',
|
||||
valuerange=(0, 2300),
|
||||
value=Param(unit='degC'),
|
||||
)
|
||||
|
||||
Mod('T_wall',
|
||||
'frappy_psi.ionopimax.VoltageInput',
|
||||
'furnace wall temperature',
|
||||
addr='av2',
|
||||
rawrange=(0, 1.5),
|
||||
valuerange=(0, 150),
|
||||
value=Param(unit='degC'),
|
||||
)
|
||||
|
||||
Mod('T3',
|
||||
'frappy_psi.furnace.PRtransmitter',
|
||||
'extra temperature',
|
||||
addr='ai3',
|
||||
valuerange=(0, 1372),
|
||||
value=Param(unit='degC'),
|
||||
)
|
||||
|
||||
Mod('T4',
|
||||
'frappy_psi.furnace.PRtransmitter',
|
||||
'extra temperature',
|
||||
addr='ai4',
|
||||
valuerange=(0, 1372),
|
||||
value=Param(unit='degC'),
|
||||
)
|
||||
|
||||
Mod('T',
|
||||
'frappy_psi.furnace.PIctrl',
|
||||
'controlled temperature ',
|
||||
value = Param(unit='degC'),
|
||||
input_module = 'T_htr',
|
||||
output_module = 't_out',
|
||||
output_min = 0,
|
||||
output_max = 100,
|
||||
p = 1,
|
||||
i = 0.01,
|
||||
)
|
||||
|
||||
Mod('htr_io',
|
||||
'frappy_psi.tdkpower.IO',
|
||||
'powersupply communicator',
|
||||
uri='serial:///dev/ttyUSB0?baudrate=9600',
|
||||
)
|
||||
|
||||
Mod('htr_power',
|
||||
'frappy_psi.tdkpower.Power',
|
||||
'heater power',
|
||||
io='htr_io',
|
||||
)
|
||||
|
||||
Mod('htr',
|
||||
'frappy_psi.furnace.TdkOutput',
|
||||
'heater output',
|
||||
io='htr_io',
|
||||
maxvolt=8,
|
||||
maxcurrent=200,
|
||||
)
|
||||
|
||||
Mod('flowswitch',
|
||||
'frappy_psi.ionopimax.DigitalInput',
|
||||
'flow switch',
|
||||
addr='dt2',
|
||||
true_level='low',
|
||||
)
|
||||
|
||||
Mod('interlock',
|
||||
'frappy_psi.furnace.Interlocks',
|
||||
'interlock parameters',
|
||||
main_T='T_main',
|
||||
extra_T='T_extra',
|
||||
wall_T='T_wall',
|
||||
vacuum='p',
|
||||
control='T',
|
||||
htr='htr',
|
||||
flowswitch='flowswitch',
|
||||
wall_limit=50,
|
||||
main_T_limit = 1400,
|
||||
extra_T_limit = 1400,
|
||||
vacuum_limit=0.001,
|
||||
)
|
||||
|
||||
Mod('p',
|
||||
'frappy_psi.furnace.PKRgauge',
|
||||
'pressure reading',
|
||||
addr = 'av1',
|
||||
rawrange = (1.82, 8.6),
|
||||
valuerange = (5e-9, 1000),
|
||||
value = Param(unit='mbar'),
|
||||
)
|
||||
|
||||
Mod('vso',
|
||||
'frappy_psi.ionopimax.VoltagePower',
|
||||
'voltage power output',
|
||||
target = 24,
|
||||
export = False,
|
||||
)
|
||||
132
cfg/fs_cfg.py
132
cfg/fs_cfg.py
@@ -1,132 +0,0 @@
|
||||
Node('fs.psi.ch',
|
||||
'small vacuum furnace',
|
||||
'tcp://5000',
|
||||
)
|
||||
|
||||
Mod('T',
|
||||
'frappy_psi.furnace.PI2',
|
||||
'controlled Temperature on sample (2nd loop)',
|
||||
value = Param(unit='degC'),
|
||||
meaning = ['temperature', 30],
|
||||
input_module = 'T_sam',
|
||||
output_module = 'T_reg',
|
||||
p = 1.2,
|
||||
i = 0.005,
|
||||
)
|
||||
|
||||
Mod('T_reg',
|
||||
'frappy_psi.furnace.PIctrl',
|
||||
'controlled Temperature on heater',
|
||||
value = Param(unit='degC'),
|
||||
input_module = 'T_htr',
|
||||
output_module = 't_out',
|
||||
output_min = 0,
|
||||
output_max = 100,
|
||||
p = 1,
|
||||
i = 0.003,
|
||||
)
|
||||
|
||||
#Mod('p_reg',
|
||||
# 'frappy_psi.furnace.PI',
|
||||
# 'controlled pressure',
|
||||
# input_module = 'p',
|
||||
# output_module = 't_out',
|
||||
# p = 1,
|
||||
# i = 0.005,
|
||||
# )
|
||||
|
||||
Mod('T_htr',
|
||||
'frappy_psi.furnace.PRtransmitter',
|
||||
'heater temperature',
|
||||
addr = 'ai4',
|
||||
valuerange = (0, 1372),
|
||||
value = Param(unit='degC'),
|
||||
)
|
||||
|
||||
|
||||
Mod('T_sam',
|
||||
'frappy_psi.furnace.PRtransmitter',
|
||||
'sample temperature',
|
||||
addr = 'ai2',
|
||||
valuerange = (0, 1372),
|
||||
value = Param(unit='degC'),
|
||||
|
||||
)
|
||||
|
||||
Mod('T_extra',
|
||||
'frappy_psi.furnace.PRtransmitter',
|
||||
'extra temperature',
|
||||
addr = 'ai3',
|
||||
valuerange = (0, 1372),
|
||||
value = Param(unit='degC'),
|
||||
)
|
||||
|
||||
Mod('T_wall',
|
||||
'frappy_psi.ionopimax.VoltageInput',
|
||||
'furnace wall temperature',
|
||||
addr = 'av2',
|
||||
rawrange = (0, 1.5),
|
||||
valuerange = (0, 150),
|
||||
value = Param(unit='degC'),
|
||||
)
|
||||
|
||||
Mod('htr_io',
|
||||
'frappy_psi.bkpower.IO',
|
||||
'powersupply communicator',
|
||||
uri = 'serial:///dev/ttyUSBupper',
|
||||
)
|
||||
|
||||
Mod('htr',
|
||||
'frappy_psi.bkpower.Power',
|
||||
'heater power',
|
||||
io= 'htr_io',
|
||||
)
|
||||
|
||||
Mod('t_out',
|
||||
'frappy_psi.bkpower.Output',
|
||||
'heater output',
|
||||
# p_value = 'p_out',
|
||||
io = 'htr_io',
|
||||
maxvolt = 50,
|
||||
maxcurrent = 2,
|
||||
)
|
||||
|
||||
Mod('relay',
|
||||
'frappy_psi.ionopimax.DigitalOutput',
|
||||
'relais for power output',
|
||||
addr = 'o2',
|
||||
)
|
||||
|
||||
Mod('interlock',
|
||||
'frappy_psi.furnace.Interlocks',
|
||||
'interlock parameters',
|
||||
input = 'T_htr',
|
||||
wall_T = 'T_wall',
|
||||
htr_T = 'T_htr',
|
||||
main_T = 'T_sam',
|
||||
reg_T = 'T_reg',
|
||||
extra_T = 'T_extra',
|
||||
htr = 't_out',
|
||||
vacuum = 'p',
|
||||
relay = 'relay',
|
||||
control = 'T',
|
||||
wall_limit = 60,
|
||||
vacuum_limit = 0.001,
|
||||
disabled_checks = 'T_extra',
|
||||
)
|
||||
|
||||
Mod('p',
|
||||
'frappy_psi.furnace.PKRgauge',
|
||||
'pressure reading',
|
||||
addr = 'av1',
|
||||
rawrange = (1.82, 8.6),
|
||||
valuerange = (5e-9, 1000),
|
||||
value = Param(unit='mbar'),
|
||||
)
|
||||
|
||||
Mod('vso',
|
||||
'frappy_psi.ionopimax.VoltagePower',
|
||||
'voltage power output',
|
||||
target = 24,
|
||||
export = False,
|
||||
)
|
||||
@@ -4,4 +4,4 @@ logdir = ./log
|
||||
piddir = ./pid
|
||||
confdir = ./cfg
|
||||
comlog = True
|
||||
omit_unchanged_within = 60
|
||||
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
Node('hcptest.psi.ch',
|
||||
'high voltage supply test',
|
||||
'tcp://5000',
|
||||
)
|
||||
|
||||
Mod('io',
|
||||
'frappy_psi.hcp.IO',
|
||||
'hcp communication',
|
||||
uri='serial:///dev/tty.usbserial-21440?baudrate=9600',
|
||||
)
|
||||
|
||||
Mod('voltage',
|
||||
'frappy_psi.hcp.Voltage',
|
||||
'fug hcp 14-6500 voltage',
|
||||
io='io',
|
||||
)
|
||||
@@ -6,8 +6,7 @@ Node('LscSIM.psi.ch',
|
||||
Mod('io',
|
||||
'frappy_psi.ls370res.StringIO',
|
||||
'io for Ls370',
|
||||
# uri = 'localhost:2089',
|
||||
uri = 'linse-976d-ts:3007',
|
||||
uri = 'localhost:2089',
|
||||
)
|
||||
Mod('sw',
|
||||
'frappy_psi.ls370res.Switcher',
|
||||
@@ -18,7 +17,7 @@ Mod('res1',
|
||||
'frappy_psi.ls370res.ResChannel',
|
||||
'resistivity chan 1',
|
||||
vexc = '2mV',
|
||||
channel = 2,
|
||||
channel = 1,
|
||||
switcher = 'sw',
|
||||
)
|
||||
Mod('res2',
|
||||
|
||||
@@ -10,6 +10,7 @@ Mod('sea_main',
|
||||
Mod('te',
|
||||
'frappy_psi.sea.SeaDrivable', '',
|
||||
io = 'sea_main',
|
||||
meaning=['temperature', 20],
|
||||
sea_object = 'te',
|
||||
meaning=('temperature', 11),
|
||||
)
|
||||
|
||||
@@ -1,15 +1,21 @@
|
||||
Node('haake.frappy.psi.ch',
|
||||
'additional haake waterbath',
|
||||
Node('haakeuro.config.sea.psi.ch',
|
||||
'Haake thermostat + Eurotherm controller',
|
||||
)
|
||||
|
||||
Mod('haake_io',
|
||||
'frappy_psi.haake.HaakeIO',
|
||||
'',
|
||||
uri='sans-sample-ts:3006',
|
||||
Mod('sea_main',
|
||||
'frappy_psi.sea.SeaClient',
|
||||
'main sea connection for haakeuro.config',
|
||||
config = 'haake.config',
|
||||
service = 'main',
|
||||
)
|
||||
|
||||
Mod('T2',
|
||||
'frappy_psi.haake.TemperatureLoop',
|
||||
'second haake',
|
||||
io = 'haake_io',
|
||||
Mod('th',
|
||||
'frappy_psi.sea.SeaDrivable', '',
|
||||
meaning = ('temperature', 10),
|
||||
io = 'sea_main',
|
||||
sea_object = 'th',
|
||||
extra_modules=['t2'],
|
||||
)
|
||||
Mod('ts',
|
||||
'frappy_psi.sea.SeaReadable', '',
|
||||
io='sea_main',
|
||||
single_module='th.t2',
|
||||
)
|
||||
|
||||
@@ -10,12 +10,11 @@ Mod('sea_main',
|
||||
)
|
||||
|
||||
Mod('tt',
|
||||
'frappy_psi.sea.LscDrivable', '',
|
||||
'frappy_psi.sea.SeaDrivable', '',
|
||||
io='sea_main',
|
||||
meaning=['temperature_regulation', 27],
|
||||
sea_object='tt',
|
||||
sensor_path='tm',
|
||||
set_path='set',
|
||||
rel_paths=['tm', '.', 'set', 'dblctrl'],
|
||||
)
|
||||
|
||||
Mod('cc',
|
||||
|
||||
@@ -10,12 +10,11 @@ Mod('sea_main',
|
||||
)
|
||||
|
||||
Mod('tt',
|
||||
'frappy_psi.sea.LscDrivable', '',
|
||||
'frappy_psi.sea.SeaDrivable', '',
|
||||
io='sea_main',
|
||||
meaning=['temperature_regulation', 27],
|
||||
sea_object='tt',
|
||||
sensor_path='tm',
|
||||
set_path='set',
|
||||
rel_paths=['tm', '.', 'set', 'dblctrl'],
|
||||
)
|
||||
|
||||
Mod('cc',
|
||||
|
||||
@@ -10,12 +10,11 @@ Mod('sea_main',
|
||||
)
|
||||
|
||||
Mod('tt',
|
||||
'frappy_psi.sea.LscDrivable', '',
|
||||
'frappy_psi.sea.SeaDrivable', '',
|
||||
io='sea_main',
|
||||
meaning=['temperature_regulation', 27],
|
||||
sea_object='tt',
|
||||
sensor_path='tm',
|
||||
set_path='set',
|
||||
rel_paths=['tm', '.', 'set', 'dblctrl'],
|
||||
)
|
||||
|
||||
Mod('cc',
|
||||
|
||||
@@ -10,12 +10,11 @@ Mod('sea_main',
|
||||
)
|
||||
|
||||
Mod('tt',
|
||||
'frappy_psi.sea.LscDrivable', '',
|
||||
'frappy_psi.sea.SeaDrivable', '',
|
||||
io='sea_main',
|
||||
meaning=['temperature_regulation', 27],
|
||||
sea_object='tt',
|
||||
sensor_path='tm',
|
||||
set_path='set',
|
||||
rel_paths=['tm', '.', 'set', 'dblctrl'],
|
||||
)
|
||||
|
||||
Mod('cc',
|
||||
|
||||
@@ -10,12 +10,11 @@ Mod('sea_main',
|
||||
)
|
||||
|
||||
Mod('tt',
|
||||
'frappy_psi.sea.LscDrivable', '',
|
||||
'frappy_psi.sea.SeaDrivable', '',
|
||||
io='sea_main',
|
||||
meaning=['temperature_regulation', 27],
|
||||
sea_object='tt',
|
||||
sensor_path='tm',
|
||||
set_path='set',
|
||||
rel_paths=['tm', '.', 'set', 'dblctrl'],
|
||||
)
|
||||
|
||||
Mod('cc',
|
||||
|
||||
@@ -10,12 +10,11 @@ Mod('sea_main',
|
||||
)
|
||||
|
||||
Mod('tt',
|
||||
'frappy_psi.sea.LscDrivable', '',
|
||||
'frappy_psi.sea.SeaDrivable', '',
|
||||
io='sea_main',
|
||||
meaning=['temperature_regulation', 27],
|
||||
sea_object='tt',
|
||||
sensor_path='tm',
|
||||
set_path='set',
|
||||
rel_paths=['tm', '.', 'set', 'dblctrl'],
|
||||
)
|
||||
|
||||
Mod('pauto',
|
||||
|
||||
@@ -14,8 +14,7 @@ Mod('tt',
|
||||
io='sea_main',
|
||||
meaning=['temperature_regulation', 27],
|
||||
sea_object='tt',
|
||||
rel_paths=['main', '.', 'set'],
|
||||
value=Param(unit='K'),
|
||||
rel_paths=['tt', 'set'],
|
||||
)
|
||||
|
||||
Mod('T_ccr',
|
||||
@@ -23,7 +22,6 @@ Mod('T_ccr',
|
||||
io='sea_main',
|
||||
sea_object='tt',
|
||||
rel_paths=['ccr'],
|
||||
value=Param(unit='K'),
|
||||
)
|
||||
|
||||
Mod('jtccr',
|
||||
@@ -103,35 +101,30 @@ Mod('p1',
|
||||
'frappy_psi.sea.SeaReadable', '',
|
||||
io='sea_main',
|
||||
sea_object='p1',
|
||||
value=Param(unit='mbar'),
|
||||
)
|
||||
|
||||
Mod('p2',
|
||||
'frappy_psi.sea.SeaReadable', '',
|
||||
io='sea_main',
|
||||
sea_object='p2',
|
||||
value=Param(unit='mbar'),
|
||||
)
|
||||
|
||||
Mod('p3',
|
||||
'frappy_psi.sea.SeaReadable', '',
|
||||
io='sea_main',
|
||||
sea_object='p3',
|
||||
value=Param(unit='mbar'),
|
||||
)
|
||||
|
||||
Mod('p4',
|
||||
'frappy_psi.sea.SeaReadable', '',
|
||||
io='sea_main',
|
||||
sea_object='p4',
|
||||
value=Param(unit='mbar'),
|
||||
)
|
||||
|
||||
Mod('pressreg',
|
||||
'frappy_psi.sea.SeaReadable', '',
|
||||
io='sea_main',
|
||||
sea_object='pressreg',
|
||||
value=Param(unit='mbar'),
|
||||
)
|
||||
|
||||
Mod('epc',
|
||||
|
||||
@@ -1,224 +0,0 @@
|
||||
Node('leiden.psi.ch',
|
||||
'''Leiden Dilution''',
|
||||
)
|
||||
|
||||
ah2700_uri = 'linse-leiden-ts:3002' # used in cfg/addons/ahtwo_cfg.pt
|
||||
ls370_uri = 'linse-leiden-ts:3004' # used in ~/sea/tcl/leiden.config
|
||||
tcs_uri = 'linse-leiden-ts:3005'
|
||||
#nanov_uri = 'linse-leiden-ts:3006' # used in ~/sea/tcl/leiden.config
|
||||
k2601b_uri = 'linse-leiden-ts:3006' # used for HC experiment as heater
|
||||
dilhtr_uri = 'linse-leiden-ts:3007'
|
||||
srbridge_uri = 'linse-leiden-ts:3008'
|
||||
|
||||
Mod('sea_main',
|
||||
'frappy_psi.sea.SeaClient',
|
||||
'main sea connection for leiden.config',
|
||||
config = 'leiden.config',
|
||||
service = 'main',
|
||||
)
|
||||
|
||||
for name in ['T3K', 'Tstill', 'T50mK', 'Tmxlow', 'Tmxhigh', 'Tmxcx', 'Tblueo',
|
||||
'Tpt50', 'Tpt3high', 'Tpt3low', 'Twhite', 'Tgreen']:
|
||||
mname = name.replace('T','T_')
|
||||
Mod(mname,
|
||||
'frappy_psi.sea.SeaReadable', '',
|
||||
io='sea_main',
|
||||
sea_object='tt',
|
||||
rel_paths=[name],
|
||||
value=Param(unit='K'),
|
||||
extra_modules = ['raw'],
|
||||
)
|
||||
Mod(name.replace('T', 'R_'),
|
||||
'frappy_psi.sea.SeaReadable', '',
|
||||
io='sea_main',
|
||||
value=Param(unit='Ohm'),
|
||||
single_module=f'{mname}.raw'
|
||||
)
|
||||
|
||||
#Mod('cmn',
|
||||
# 'frappy_psi.sea.SeaReadable', '',
|
||||
# io = 'sea_main',
|
||||
# sea_object = 'cmn',
|
||||
# extra_modules = ['u1', 'u2', 'temp'],
|
||||
#)
|
||||
|
||||
#Mod('T_cmn',
|
||||
# 'frappy_psi.sea.SeaReadable', '',
|
||||
# io='sea_main',
|
||||
# value=Param(unit='K'),
|
||||
# single_module='cmn.temp',
|
||||
#)
|
||||
|
||||
#Mod('V_fixp',
|
||||
# 'frappy_psi.sea.SeaReadable', '',
|
||||
# io='sea_main',
|
||||
# value=Param(unit='V'),
|
||||
# single_module='cmn.u2',
|
||||
#)
|
||||
|
||||
#Mod('V_cmn',
|
||||
# 'frappy_psi.sea.SeaReadable', '',
|
||||
# io='sea_main',
|
||||
# value=Param(unit='V'),
|
||||
# single_module='cmn.u1',
|
||||
#)
|
||||
|
||||
|
||||
Mod('tcs_io',
|
||||
'frappy_psi.tcs.IO',
|
||||
'tcs communication',
|
||||
uri=tcs_uri,
|
||||
)
|
||||
|
||||
Mod('still_htr',
|
||||
'frappy_psi.tcs.Heater',
|
||||
'still heater',
|
||||
io='tcs_io',
|
||||
channel=2,
|
||||
)
|
||||
|
||||
Mod('mix_io',
|
||||
'frappy_psi.dilhtr.IO',
|
||||
'dilhtr communication',
|
||||
uri=dilhtr_uri,
|
||||
)
|
||||
|
||||
Mod('mix_htr',
|
||||
'frappy_psi.dilhtr.WrappedHeater',
|
||||
'mixing chamber heater',
|
||||
io='mix_io',
|
||||
)
|
||||
|
||||
Mod('drive_mix',
|
||||
'frappy_psi.picontrol.PIctrl',
|
||||
'controlled mix ch. temperature',
|
||||
input_module = 'T_mxlow',
|
||||
output_module = 'mix_htr',
|
||||
output_min = 0,
|
||||
output_max = 0.02,
|
||||
p = 5,
|
||||
itime = 60,
|
||||
)
|
||||
|
||||
#Mod('drive_cmn',
|
||||
# 'frappy_psi.picontrol.PIctrl',
|
||||
# 'controlled cmn temperature',
|
||||
# input_module = 'T_cmn',
|
||||
# output_module = 'mix_htr',
|
||||
# output_min = 0,
|
||||
# output_max = 3e-2,
|
||||
# p = 2,
|
||||
# itime = 120,
|
||||
# )
|
||||
|
||||
#Mod('drive_fixp',
|
||||
# 'frappy_psi.picontrol.PI',
|
||||
# 'controlled fixpoint voltage',
|
||||
# value=Param(unit='V'),
|
||||
# input_module = 'V_fixp',
|
||||
# output_module = 'drive_mix',
|
||||
# output_min = 0.0,
|
||||
# output_max = 0.01,
|
||||
# p = 1,
|
||||
# itime = 120,
|
||||
# )
|
||||
|
||||
Mod('simio',
|
||||
'frappy_psi.bridge.BridgeIO',
|
||||
'communication to sim900',
|
||||
uri=srbridge_uri,
|
||||
)
|
||||
|
||||
Mod('res1',
|
||||
'frappy_psi.bridge.Resistance',
|
||||
'please add description',
|
||||
io='simio',
|
||||
port=1,
|
||||
)
|
||||
|
||||
Mod('res2',
|
||||
'frappy_psi.bridge.Resistance',
|
||||
'please add description',
|
||||
io='simio',
|
||||
port=3,
|
||||
)
|
||||
|
||||
Mod('phase1',
|
||||
'frappy_psi.bridge.Phase',
|
||||
'please add description',
|
||||
resistance='res1',
|
||||
)
|
||||
|
||||
Mod('phase2',
|
||||
'frappy_psi.bridge.Phase',
|
||||
'please add description',
|
||||
resistance='res2',
|
||||
)
|
||||
|
||||
|
||||
Mod('dev1',
|
||||
'frappy_psi.bridge.Deviation',
|
||||
'please add description',
|
||||
resistance='res1',
|
||||
)
|
||||
|
||||
Mod('dev2',
|
||||
'frappy_psi.bridge.Deviation',
|
||||
'please add description',
|
||||
resistance='res2',
|
||||
)
|
||||
|
||||
|
||||
Mod('vsource_io',
|
||||
'frappy_psi.k2601b.K2601bIO',
|
||||
'source meter',
|
||||
# uri = '129.129.156.90:5025',
|
||||
uri = k2601b_uri,
|
||||
)
|
||||
|
||||
|
||||
Mod('source',
|
||||
'frappy_psi.k2601b.SourceMeter'
|
||||
'',
|
||||
description = "keithley sourcemeter",
|
||||
mode = 2,
|
||||
vlimit = 0.5,
|
||||
ilimit = .0005,
|
||||
io = 'vsource_io',
|
||||
)
|
||||
|
||||
Mod('hvolt',
|
||||
'frappy_psi.k2601b.Voltage'
|
||||
'',
|
||||
description = "Heater Voltage",
|
||||
active = False,
|
||||
limit = 1.0,
|
||||
target = 0.0,
|
||||
sourcemeter = 'source',
|
||||
io = 'vsource_io',
|
||||
)
|
||||
|
||||
Mod('hcur',
|
||||
'frappy_psi.k2601b.Current'
|
||||
'',
|
||||
description = "Heater Current Source",
|
||||
active = True,
|
||||
limit = 0.0001,
|
||||
target = 0.0,
|
||||
sourcemeter = 'source',
|
||||
io = 'vsource_io',
|
||||
)
|
||||
|
||||
Mod('hres',
|
||||
'frappy_psi.k2601b.Resistivity'
|
||||
'',
|
||||
description = "Heater Resistance",
|
||||
io = 'vsource_io',
|
||||
)
|
||||
|
||||
Mod('hpow',
|
||||
'frappy_psi.k2601b.Power'
|
||||
'',
|
||||
description = "Heater Power",
|
||||
io = 'vsource_io',
|
||||
)
|
||||
@@ -10,12 +10,11 @@ Mod('sea_main',
|
||||
)
|
||||
|
||||
Mod('tt',
|
||||
'frappy_psi.sea.LscDrivable', '',
|
||||
'frappy_psi.sea.SeaDrivable', '',
|
||||
io='sea_main',
|
||||
meaning=['temperature_regulation', 27],
|
||||
sea_object='tt',
|
||||
sensor_path='tm',
|
||||
set_path='set',
|
||||
rel_paths=['tm', '.', 'set', 'dblctrl'],
|
||||
)
|
||||
|
||||
Mod('cc',
|
||||
|
||||
@@ -10,12 +10,11 @@ Mod('sea_main',
|
||||
)
|
||||
|
||||
Mod('tt',
|
||||
'frappy_psi.sea.LscDrivable', '',
|
||||
'frappy_psi.sea.SeaDrivable', '',
|
||||
io='sea_main',
|
||||
meaning=['temperature_regulation', 27],
|
||||
sea_object='tt',
|
||||
sensor_path='tm',
|
||||
set_path='set',
|
||||
rel_paths=['tm', '.', 'set', 'dblctrl'],
|
||||
)
|
||||
|
||||
Mod('cc',
|
||||
|
||||
@@ -10,12 +10,11 @@ Mod('sea_main',
|
||||
)
|
||||
|
||||
Mod('tt',
|
||||
'frappy_psi.sea.LscDrivable', '',
|
||||
'frappy_psi.sea.SeaDrivable', '',
|
||||
io='sea_main',
|
||||
meaning=['temperature_regulation', 27],
|
||||
sea_object='tt',
|
||||
sensor_path='tm',
|
||||
set_path='set',
|
||||
rel_paths=['tm', '.', 'set', 'dblctrl'],
|
||||
)
|
||||
|
||||
Mod('cc',
|
||||
|
||||
@@ -8,12 +8,11 @@ Mod('sea_main',
|
||||
service = 'main',
|
||||
)
|
||||
Mod('tt',
|
||||
'frappy_psi.sea.LscDrivable', '',
|
||||
io='sea_main',
|
||||
'frappy_psi.sea.SeaDrivable', '',
|
||||
io = 'sea_main',
|
||||
meaning=['temperature_regulation', 27],
|
||||
sea_object='tt',
|
||||
sensor_path='tm',
|
||||
set_path='set',
|
||||
sea_object = 'tt',
|
||||
rel_paths=['tm', '.', 'set', 'dblctrl'],
|
||||
)
|
||||
Mod('cc',
|
||||
'frappy_psi.sea.SeaReadable', '',
|
||||
|
||||
@@ -10,12 +10,11 @@ Mod('sea_main',
|
||||
)
|
||||
|
||||
Mod('tt',
|
||||
'frappy_psi.sea.LscDrivable', '',
|
||||
'frappy_psi.sea.SeaDrivable', '',
|
||||
io='sea_main',
|
||||
meaning=['temperature_regulation', 27],
|
||||
sea_object='tt',
|
||||
sensor_path='tm',
|
||||
set_path='set',
|
||||
rel_paths=['tm', '.', 'set', 'dblctrl'],
|
||||
)
|
||||
|
||||
Mod('cc',
|
||||
|
||||
@@ -10,12 +10,11 @@ Mod('sea_main',
|
||||
)
|
||||
|
||||
Mod('tt',
|
||||
'frappy_psi.sea.LscDrivable', '',
|
||||
'frappy_psi.sea.SeaDrivable', '',
|
||||
io='sea_main',
|
||||
meaning=['temperature_regulation', 27],
|
||||
sea_object='tt',
|
||||
sensor_path='tm',
|
||||
set_path='set',
|
||||
rel_paths=['tm', '.', 'set', 'dblctrl'],
|
||||
)
|
||||
|
||||
Mod('th',
|
||||
|
||||
@@ -10,13 +10,12 @@ Mod('sea_main',
|
||||
)
|
||||
|
||||
Mod('tt',
|
||||
'frappy_psi.sea.LscDrivable', '',
|
||||
'frappy_psi.sea.SeaDrivable', '',
|
||||
io='sea_main',
|
||||
meaning=['temperature_regulation', 27],
|
||||
sea_object='tt',
|
||||
sensor_path='tm',
|
||||
set_path='set',
|
||||
)
|
||||
rel_paths=['tm', '.', 'set', 'dblctrl'],
|
||||
)
|
||||
|
||||
Mod('th',
|
||||
'frappy_psi.sea.SeaReadable',
|
||||
|
||||
@@ -15,12 +15,11 @@ Mod('sea_main',
|
||||
#)
|
||||
|
||||
Mod('tt',
|
||||
'frappy_psi.sea.LscDrivable', '',
|
||||
io='sea_main',
|
||||
'frappy_psi.sea.SeaDrivable', '',
|
||||
meaning=['temperature_regulation', 27],
|
||||
io='sea_main',
|
||||
sea_object='tt',
|
||||
sensor_path='tm',
|
||||
set_path='set',
|
||||
rel_paths=['tm', '.', 'set', 'dblctrl'],
|
||||
)
|
||||
|
||||
Mod('th',
|
||||
@@ -35,8 +34,8 @@ Mod('ts',
|
||||
'frappy_psi.parmod.Converging',
|
||||
'test for parmod',
|
||||
unit='K',
|
||||
read='th.value',
|
||||
write='th.setsamp',
|
||||
value_param='th.value',
|
||||
target_param='th.setsamp',
|
||||
meaning=['temperature', 20],
|
||||
settling_time=20,
|
||||
tolerance=1,
|
||||
|
||||
@@ -10,12 +10,11 @@ Mod('sea_main',
|
||||
)
|
||||
|
||||
Mod('tt',
|
||||
'frappy_psi.sea.LscDrivable', '',
|
||||
'frappy_psi.sea.SeaDrivable', '',
|
||||
io='sea_main',
|
||||
meaning=['temperature_regulation', 27],
|
||||
sea_object='tt',
|
||||
sensor_path='tm',
|
||||
set_path='set',
|
||||
rel_paths=['tm', '.', 'set', 'dblctrl'],
|
||||
)
|
||||
|
||||
Mod('cc',
|
||||
|
||||
@@ -2,6 +2,8 @@ Node('mb11.psi.ch',
|
||||
'MB11 11 Tesla - 100 mm cryomagnet',
|
||||
)
|
||||
|
||||
sea_cfg = 'mb11.config'
|
||||
|
||||
Mod('itc1',
|
||||
'frappy_psi.mercury.IO',
|
||||
'ITC for heat exchanger and pressures',
|
||||
|
||||
228
cfg/main/mb11std_cfg.py
Normal file
228
cfg/main/mb11std_cfg.py
Normal file
@@ -0,0 +1,228 @@
|
||||
Node('mb11.psi.ch',
|
||||
'MB11 11 Tesla - 100 mm cryomagnet',
|
||||
)
|
||||
|
||||
Mod('itc1',
|
||||
'frappy_psi.mercury.IO',
|
||||
'ITC for heat exchanger and pressures',
|
||||
uri='mb11-ts:3001',
|
||||
)
|
||||
|
||||
Mod('itc2',
|
||||
'frappy_psi.mercury.IO',
|
||||
'ITC for neck and nv heaters',
|
||||
uri='mb11-ts:3002',
|
||||
)
|
||||
|
||||
Mod('ips',
|
||||
'frappy_psi.mercury.IO',
|
||||
'IPS for magnet and levels',
|
||||
uri='mb11-ts:3003',
|
||||
)
|
||||
|
||||
Mod('T_stat',
|
||||
'frappy_psi.mercury.TemperatureAutoFlow',
|
||||
'static heat exchanger temperature',
|
||||
meaning=['temperature_regulation', 27],
|
||||
output_module='htr_stat',
|
||||
needle_valve='p_stat',
|
||||
slot='DB6.T1',
|
||||
io='itc1',
|
||||
tolerance=0.1,
|
||||
flowpars=((1,5), (2, 20)),
|
||||
)
|
||||
|
||||
Mod('htr_stat',
|
||||
'frappy_psi.mercury.HeaterOutput',
|
||||
'static heat exchanger heater',
|
||||
slot='DB1.H1',
|
||||
io='itc1',
|
||||
)
|
||||
|
||||
Mod('ts',
|
||||
'frappy_psi.mercury.TemperatureLoop',
|
||||
'sample temperature',
|
||||
output_module='htr_sample',
|
||||
slot='MB1.T1',
|
||||
io='itc1',
|
||||
tolerance=1.0,
|
||||
visibility='expert',
|
||||
)
|
||||
|
||||
Mod('htr_sample',
|
||||
'frappy_psi.mercury.HeaterOutput',
|
||||
'sample stick heater power',
|
||||
slot='MB0.H1',
|
||||
io='itc1',
|
||||
)
|
||||
|
||||
Mod('p_stat',
|
||||
'frappy_psi.mercury.PressureLoop',
|
||||
'static needle valve pressure',
|
||||
output_module='pos_stat',
|
||||
settling_time=60.0,
|
||||
slot='DB5.P1',
|
||||
io='itc1',
|
||||
tolerance=1.0,
|
||||
value=Param(
|
||||
unit='mbar_flow',
|
||||
),
|
||||
)
|
||||
|
||||
Mod('pos_stat',
|
||||
'frappy_psi.mercury.ValvePos',
|
||||
'static needle valve position',
|
||||
slot='DB5.P1,DB3.G1',
|
||||
io='itc1',
|
||||
)
|
||||
|
||||
Mod('T_dyn',
|
||||
'frappy_psi.mercury.TemperatureAutoFlow',
|
||||
'dynamic heat exchanger temperature',
|
||||
output_module='htr_dyn',
|
||||
needle_valve='p_dyn',
|
||||
slot='DB7.T1',
|
||||
io='itc1',
|
||||
tolerance=0.1,
|
||||
)
|
||||
|
||||
Mod('htr_dyn',
|
||||
'frappy_psi.mercury.HeaterOutput',
|
||||
'dynamic heat exchanger heater',
|
||||
slot='DB2.H1',
|
||||
io='itc1',
|
||||
)
|
||||
|
||||
Mod('p_dyn',
|
||||
'frappy_psi.mercury.PressureLoop',
|
||||
'dynamic needle valve pressure',
|
||||
output_module='pos_dyn',
|
||||
settling_time=60.0,
|
||||
slot='DB8.P1',
|
||||
io='itc1',
|
||||
tolerance=1.0,
|
||||
value=Param(
|
||||
unit='mbar_flow',
|
||||
),
|
||||
)
|
||||
|
||||
Mod('pos_dyn',
|
||||
'frappy_psi.mercury.ValvePos',
|
||||
'dynamic needle valve position',
|
||||
slot='DB8.P1,DB4.G1',
|
||||
io='itc1',
|
||||
)
|
||||
|
||||
Mod('mf',
|
||||
'frappy_psi.ips_mercury.Field',
|
||||
'magnetic field',
|
||||
slot='GRPZ',
|
||||
io='ips',
|
||||
tolerance=0.001,
|
||||
wait_stable_field=60.0,
|
||||
target=Param(
|
||||
max=11.0,
|
||||
),
|
||||
persistent_limit=11.1,
|
||||
)
|
||||
|
||||
Mod('lev',
|
||||
'frappy_psi.mercury.HeLevel',
|
||||
'LHe level',
|
||||
slot='DB1.L1',
|
||||
io='ips',
|
||||
)
|
||||
|
||||
Mod('n2lev',
|
||||
'frappy_psi.mercury.N2Level',
|
||||
'LN2 level',
|
||||
slot='DB1.L1',
|
||||
io='ips',
|
||||
)
|
||||
|
||||
Mod('T_neck1',
|
||||
'frappy_psi.mercury.TemperatureLoop',
|
||||
'neck heater 1 temperature',
|
||||
output_module='htr_neck1',
|
||||
slot='MB1.T1',
|
||||
io='itc2',
|
||||
tolerance=1.0,
|
||||
)
|
||||
|
||||
Mod('htr_neck1',
|
||||
'frappy_psi.mercury.HeaterOutput',
|
||||
'neck heater 1 power',
|
||||
slot='MB0.H1',
|
||||
io='itc2',
|
||||
)
|
||||
|
||||
Mod('T_neck2',
|
||||
'frappy_psi.mercury.TemperatureLoop',
|
||||
'neck heater 2 temperature',
|
||||
output_module='htr_neck2',
|
||||
slot='DB6.T1',
|
||||
io='itc2',
|
||||
tolerance=1.0,
|
||||
)
|
||||
|
||||
Mod('htr_neck2',
|
||||
'frappy_psi.mercury.HeaterOutput',
|
||||
'neck heater 2 power',
|
||||
slot='DB1.H1',
|
||||
io='itc2',
|
||||
)
|
||||
|
||||
Mod('T_nvs',
|
||||
'frappy_psi.mercury.TemperatureLoop',
|
||||
'static needle valve temperature',
|
||||
output_module='htr_nvs',
|
||||
slot='DB7.T1',
|
||||
io='itc2',
|
||||
tolerance=0.1,
|
||||
)
|
||||
|
||||
Mod('htr_nvs',
|
||||
'frappy_psi.mercury.HeaterOutput',
|
||||
'static needle valve heater power',
|
||||
slot='DB2.H1',
|
||||
io='itc2',
|
||||
)
|
||||
|
||||
Mod('T_nvd',
|
||||
'frappy_psi.mercury.TemperatureLoop',
|
||||
'dynamic needle valve heater temperature',
|
||||
output_module='htr_nvd',
|
||||
slot='DB8.T1',
|
||||
io='itc2',
|
||||
tolerance=0.1,
|
||||
)
|
||||
|
||||
Mod('htr_nvd',
|
||||
'frappy_psi.mercury.HeaterOutput',
|
||||
'dynamic needle valve heater power',
|
||||
slot='DB3.H1',
|
||||
io='itc2',
|
||||
)
|
||||
|
||||
Mod('T_coil',
|
||||
'frappy_psi.mercury.TemperatureSensor',
|
||||
'coil temperature',
|
||||
slot='MB1.T1',
|
||||
io='ips',
|
||||
)
|
||||
|
||||
Mod('om_io',
|
||||
'frappy_psi.phytron.PhytronIO',
|
||||
'dom motor IO',
|
||||
uri='mb11-ts.psi.ch:3004',
|
||||
)
|
||||
|
||||
Mod('om',
|
||||
'frappy_psi.phytron.Motor',
|
||||
'stick rotation, typically used for omega',
|
||||
io='om_io',
|
||||
target_min=-360,
|
||||
target_max=360,
|
||||
encoder_mode='NO',
|
||||
target=Param(min=-360, max=360),
|
||||
)
|
||||
@@ -10,12 +10,11 @@ Mod('sea_main',
|
||||
)
|
||||
|
||||
Mod('tt',
|
||||
'frappy_psi.sea.LscDrivable', '',
|
||||
'frappy_psi.sea.SeaDrivable', '',
|
||||
io='sea_main',
|
||||
meaning=['temperature_regulation', 27],
|
||||
sea_object='tt',
|
||||
sensor_path='tm',
|
||||
set_path='set',
|
||||
rel_paths=['tm', '.', 'set', 'dblctrl'],
|
||||
)
|
||||
|
||||
Mod('cc',
|
||||
|
||||
@@ -10,12 +10,11 @@ Mod('sea_main',
|
||||
)
|
||||
|
||||
Mod('tt',
|
||||
'frappy_psi.sea.LscDrivable', '',
|
||||
'frappy_psi.sea.SeaDrivable', '',
|
||||
io='sea_main',
|
||||
meaning=['temperature_regulation', 27],
|
||||
sea_object='tt',
|
||||
sensor_path='tm',
|
||||
set_path='set',
|
||||
rel_paths=['tm', '.', 'set', 'dblctrl'],
|
||||
)
|
||||
|
||||
Mod('cc',
|
||||
|
||||
@@ -10,12 +10,11 @@ Mod('sea_main',
|
||||
)
|
||||
|
||||
Mod('tt',
|
||||
'frappy_psi.sea.LscDrivable', '',
|
||||
'frappy_psi.sea.SeaDrivable', '',
|
||||
io='sea_main',
|
||||
meaning=['temperature_regulation', 27],
|
||||
sea_object='tt',
|
||||
sensor_path='tm',
|
||||
set_path='set',
|
||||
rel_paths=['tm', '.', 'set', 'dblctrl'],
|
||||
)
|
||||
|
||||
Mod('cc',
|
||||
|
||||
@@ -10,12 +10,11 @@ Mod('sea_main',
|
||||
)
|
||||
|
||||
Mod('tt',
|
||||
'frappy_psi.sea.LscDrivable', '',
|
||||
'frappy_psi.sea.SeaDrivable', '',
|
||||
io='sea_main',
|
||||
meaning=['temperature_regulation', 27],
|
||||
sea_object='tt',
|
||||
sensor_path='tm',
|
||||
set_path='set',
|
||||
rel_paths=['tm', '.', 'set', 'dblctrl'],
|
||||
)
|
||||
|
||||
Mod('cc',
|
||||
|
||||
@@ -10,12 +10,11 @@ Mod('sea_main',
|
||||
)
|
||||
|
||||
Mod('tt',
|
||||
'frappy_psi.sea.LscDrivable', '',
|
||||
io='sea_main',
|
||||
'frappy_psi.sea.SeaDrivable', '',
|
||||
io = 'sea_main',
|
||||
meaning=['temperature_regulation', 27],
|
||||
sea_object='tt',
|
||||
sensor_path='tm',
|
||||
set_path='set',
|
||||
sea_object = 'tt',
|
||||
rel_paths=['tm', '.', 'set', 'dblctrl'],
|
||||
)
|
||||
|
||||
Mod('cc',
|
||||
|
||||
17
cfg/main/ori7test_cfg.py
Normal file
17
cfg/main/ori7test_cfg.py
Normal file
@@ -0,0 +1,17 @@
|
||||
from frappy_psi.ccracks import Rack
|
||||
|
||||
Node('ori7test.psi.ch',
|
||||
'ORI7 test',
|
||||
'tcp://5000'
|
||||
)
|
||||
|
||||
rack = Rack(Mod)
|
||||
|
||||
with rack.lakeshore() as ls:
|
||||
ls.sensor('Ts', channel='C', calcurve='x186350')
|
||||
ls.loop('T', channel='B', calcurve='x174786')
|
||||
ls.heater('htr', '100W', 100)
|
||||
|
||||
rack.ccu(he=True, n2=True)
|
||||
|
||||
rack.hepump()
|
||||
@@ -1,20 +0,0 @@
|
||||
Node('TFA10.psi.ch',
|
||||
'thermofisher water bath',
|
||||
'tcp://5000',
|
||||
)
|
||||
|
||||
Mod('io',
|
||||
'frappy_psi.thermofisher.ThermFishIO',
|
||||
'connection for ThermoFisher A10',
|
||||
uri='tcp://ldm-fi-ts:3002',
|
||||
)
|
||||
|
||||
Mod('T',
|
||||
'frappy_psi.thermofisher.TemperatureLoopA10',
|
||||
'holder temperature',
|
||||
io='io',
|
||||
meaning=['temperature', 20],
|
||||
target=Param(max=100),
|
||||
tolerance=0.5,
|
||||
settling_time=20,
|
||||
)
|
||||
@@ -10,12 +10,11 @@ Mod('sea_main',
|
||||
)
|
||||
|
||||
Mod('tt',
|
||||
'frappy_psi.sea.LscDrivable', '',
|
||||
'frappy_psi.sea.SeaDrivable', '',
|
||||
io='sea_main',
|
||||
meaning=['temperature_regulation', 27],
|
||||
sea_object='tt',
|
||||
sensor_path='tm',
|
||||
set_path='set',
|
||||
rel_paths=['tm', '.', 'set', 'dblctrl'],
|
||||
)
|
||||
|
||||
Mod('cc',
|
||||
|
||||
@@ -170,20 +170,18 @@ Mod('htr_nvd',
|
||||
|
||||
# Motor controller is not yet available!
|
||||
#
|
||||
'''
|
||||
Mod('om_io',
|
||||
'frappy_psi.phytron.PhytronIO',
|
||||
'dom motor IO',
|
||||
uri='mb11-ts.psi.ch:3004',
|
||||
)
|
||||
#Mod('om_io',
|
||||
# 'frappy_psi.phytron.PhytronIO',
|
||||
# 'dom motor IO',
|
||||
# uri='mb11-ts.psi.ch:3004',
|
||||
#)
|
||||
|
||||
Mod('om',
|
||||
'frappy_psi.phytron.Motor',
|
||||
'stick rotation, typically used for omega',
|
||||
io='om_io',
|
||||
target_min=-180,
|
||||
target_max=360,
|
||||
encoder_mode='NO',
|
||||
target=Param(min=-180, max=360)
|
||||
)
|
||||
'''
|
||||
#Mod('om',
|
||||
# 'frappy_psi.phytron.Motor',
|
||||
# 'stick rotation, typically used for omega',
|
||||
# io='om_io',
|
||||
# target_min=-180,
|
||||
# target_max=360,
|
||||
# encoder_mode='NO',
|
||||
# target=Param(min=-180, max=360)
|
||||
#)
|
||||
|
||||
@@ -1,100 +0,0 @@
|
||||
Node('muwaba.psi.ch',
|
||||
'multi waterbath',
|
||||
'tcp://5000',
|
||||
)
|
||||
|
||||
Mod('wio_1',
|
||||
'frappy_psi.thermofisher.ThermFishIO',
|
||||
'connection for water bath',
|
||||
uri='serial:///dev/ttyUSB0?baudrate=19200', # 3001 = Port 1, 3002 = Port 2 ...
|
||||
)
|
||||
|
||||
Mod('wio_2',
|
||||
'frappy_psi.thermofisher.ThermFishIO',
|
||||
'connection for water bath',
|
||||
uri='serial:///dev/ttyUSB1?baudrate=19200', # 3001 = Port 1, 3002 = Port 2 ...
|
||||
)
|
||||
|
||||
Mod('wio_3',
|
||||
'frappy_psi.thermofisher.ThermFishIO',
|
||||
'connection for water bath',
|
||||
uri='serial:///dev/ttyUSB2?baudrate=19200', # 3001 = Port 1, 3002 = Port 2 ...
|
||||
)
|
||||
|
||||
Mod('Tbath_1',
|
||||
'frappy_psi.thermofisher.TemperatureLoopA10',
|
||||
'water_bath_1',
|
||||
io='wio_1',
|
||||
control_active=0,
|
||||
target=25,
|
||||
tolerance=0.1,
|
||||
settling_time=20,
|
||||
)
|
||||
|
||||
Mod('Tbath_2',
|
||||
'frappy_psi.thermofisher.TemperatureLoopA10',
|
||||
'water_bath_2',
|
||||
io='wio_2',
|
||||
control_active=0,
|
||||
target=25,
|
||||
tolerance=0.1,
|
||||
settling_time=20,
|
||||
)
|
||||
|
||||
Mod('Tbath_3',
|
||||
'frappy_psi.thermofisher.TemperatureLoopA10',
|
||||
'water_bath_3',
|
||||
io='wio_3',
|
||||
control_active=0,
|
||||
target=25,
|
||||
tolerance=0.1,
|
||||
settling_time=20,
|
||||
)
|
||||
|
||||
Mod('valve_1',
|
||||
'frappy_psi.ionopimax.DigitalOutput',
|
||||
'valve_for_fast_water_temperature_changing',
|
||||
addr = 'o1',
|
||||
target = 0,
|
||||
)
|
||||
|
||||
Mod('valve_2',
|
||||
'frappy_psi.ionopimax.DigitalOutput',
|
||||
'valve_for_fast_water_temperature_changing',
|
||||
addr = 'o2',
|
||||
target = 0,
|
||||
)
|
||||
|
||||
Mod('valve_3',
|
||||
'frappy_psi.ionopimax.DigitalOutput',
|
||||
'valve_for_fast_water_temperature_changing',
|
||||
addr = 'o3',
|
||||
target = 0,
|
||||
)
|
||||
|
||||
Mod('temp_sensor_tc',
|
||||
'frappy_psi.ionopimax.SimpleVoltageInput',
|
||||
'temperatur_sensor_sample',
|
||||
rawrange = (0.0, 10.0),
|
||||
valuerange = (5.0, 90.0),
|
||||
addr = 'ai1_mv',
|
||||
meaning = ['temperature', 20],
|
||||
value = Param(unit='degC'),
|
||||
)
|
||||
|
||||
Mod('temp_sensor_pt1000',
|
||||
'frappy_psi.ionopimax.SimpleVoltageInput',
|
||||
'temperatur_sensor_sample',
|
||||
rawrange = (0.0, 10.0),
|
||||
valuerange = (5.0, 90.0),
|
||||
value = Param(unit='degC'),
|
||||
addr = 'ai2_mv',
|
||||
)
|
||||
|
||||
Mod('switcher',
|
||||
'frappy_psi.muwaba.Switcher',
|
||||
'waterbath switcher',
|
||||
valve1 = 'valve_1',
|
||||
valve2 = 'valve_2',
|
||||
valve3 = 'valve_3',
|
||||
)
|
||||
@@ -1,23 +0,0 @@
|
||||
Node('haake2.config.sea.psi.ch',
|
||||
'Haake thermostat + Eurotherm controller',
|
||||
)
|
||||
Mod('sea_main',
|
||||
'frappy_psi.sea.SeaClient',
|
||||
'main sea connection for haakeuro.config',
|
||||
config = 'haake2.config',
|
||||
service = 'main',
|
||||
)
|
||||
Mod('th',
|
||||
'frappy_psi.sea.SeaDrivable', '',
|
||||
meaning = ('temperature', 10),
|
||||
io = 'sea_main',
|
||||
sea_object = 'th',
|
||||
extra_modules=['t2'],
|
||||
value=Param(unit='degC'),
|
||||
)
|
||||
Mod('ts',
|
||||
'frappy_psi.sea.SeaReadable', '',
|
||||
io='sea_main',
|
||||
single_module='th.t2',
|
||||
value=Param(unit='degC'),
|
||||
)
|
||||
@@ -1,17 +0,0 @@
|
||||
Node('haake.config.sea.psi.ch',
|
||||
'Haake thermostat',
|
||||
)
|
||||
Mod('sea_main',
|
||||
'frappy_psi.sea.SeaClient',
|
||||
'main sea connection for haakeuro.config',
|
||||
config = 'haake.config',
|
||||
service = 'main',
|
||||
)
|
||||
Mod('th',
|
||||
'frappy_psi.sea.SeaDrivable', '',
|
||||
meaning = ('temperature', 10),
|
||||
io = 'sea_main',
|
||||
sea_object = 'th',
|
||||
extra_modules=['t2'],
|
||||
value=Param(unit='degC'),
|
||||
)
|
||||
@@ -1,21 +1,14 @@
|
||||
{"capff": {"base": "/capff", "params": [
|
||||
{"path": "", "type": "none", "kids": 7},
|
||||
{"path": "send", "type": "text", "readonly": false, "cmd": "capff send", "visibility": 3},
|
||||
{"cap": {"base": "/cap", "params": [{"path": "", "type": "none", "kids": 8},
|
||||
{"path": "send", "type": "text", "readonly": false, "cmd": "cap send", "visibility": 3},
|
||||
{"path": "status", "type": "text", "visibility": 3},
|
||||
{"path": "cap", "type": "float"},
|
||||
{"path": "loss", "type": "float"},
|
||||
{"path": "period", "type": "float", "readonly": false, "cmd": "capff period"},
|
||||
{"path": "V", "type": "float", "readonly": false, "cmd": "capff V"},
|
||||
{"path": "average", "type": "int", "readonly": false, "cmd": "capff average"}]},
|
||||
|
||||
"capslopeff": {"base": "/capslopeff", "params": [
|
||||
{"path": "", "type": "float", "kids": 6},
|
||||
{"path": "send", "type": "text", "readonly": false, "cmd": "capslopeff send", "visibility": 3},
|
||||
{"path": "period", "type": "float", "readonly": false, "cmd": "cap period"},
|
||||
{"path": "V", "type": "float", "readonly": false, "cmd": "cap V"},
|
||||
{"path": "average", "type": "int", "readonly": false, "cmd": "cap average"}]}, "capslope": {"base": "/capslope", "params": [{"path": "", "type": "float", "kids": 6},
|
||||
{"path": "send", "type": "text", "readonly": false, "cmd": "capslope send", "visibility": 3},
|
||||
{"path": "status", "type": "text", "visibility": 3},
|
||||
{"path": "node", "type": "text", "readonly": false, "cmd": "capslopeff node"},
|
||||
{"path": "unit", "type": "float", "readonly": false, "cmd": "capslopeff unit", "description": "unit=60: mainunits/minutes, unit=1: mainunits/sec"},
|
||||
{"path": "ref", "type": "float", "readonly": false, "cmd": "capslopeff ref"},
|
||||
{"path": "bufperiod", "type": "float", "readonly": false, "cmd": "capslopeff bufperiod"}]},
|
||||
|
||||
"addonlock_ah2550": {"base": "/addonlock_ah2550", "params": [
|
||||
{"path": "", "type": "text", "readonly": false, "cmd": "addonlock_ah2550 = "}]}}
|
||||
{"path": "node", "type": "text", "readonly": false, "cmd": "capslope node"},
|
||||
{"path": "unit", "type": "float", "readonly": false, "cmd": "capslope unit", "description": "unit=60: mainunits/minutes, unit=1: mainunits/sec"},
|
||||
{"path": "ref", "type": "float", "readonly": false, "cmd": "capslope ref"},
|
||||
{"path": "buffersize", "type": "float", "readonly": false, "cmd": "capslope buffersize"}]}}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{"cap": {"base": "/cap", "params": [
|
||||
{"path": "", "type": "none", "kids": 8},
|
||||
{"cap": {"base": "/cap", "params": [{"path": "", "type": "none", "kids": 8},
|
||||
{"path": "send", "type": "text", "readonly": false, "cmd": "cap send", "visibility": 3},
|
||||
{"path": "status", "type": "text", "visibility": 3},
|
||||
{"path": "cap", "type": "float"},
|
||||
@@ -7,16 +6,10 @@
|
||||
{"path": "period", "type": "float", "readonly": false, "cmd": "cap period"},
|
||||
{"path": "freq", "type": "float", "readonly": false, "cmd": "cap freq"},
|
||||
{"path": "V", "type": "float", "readonly": false, "cmd": "cap V"},
|
||||
{"path": "average", "type": "int", "readonly": false, "cmd": "cap average"}]},
|
||||
|
||||
"capslope": {"base": "/capslope", "params": [
|
||||
{"path": "", "type": "float", "kids": 6},
|
||||
{"path": "average", "type": "int", "readonly": false, "cmd": "cap average"}]}, "capslope": {"base": "/capslope", "params": [{"path": "", "type": "float", "kids": 6},
|
||||
{"path": "send", "type": "text", "readonly": false, "cmd": "capslope send", "visibility": 3},
|
||||
{"path": "status", "type": "text", "visibility": 3},
|
||||
{"path": "node", "type": "text", "readonly": false, "cmd": "capslope node"},
|
||||
{"path": "unit", "type": "float", "readonly": false, "cmd": "capslope unit", "description": "unit=60: mainunits/minutes, unit=1: mainunits/sec"},
|
||||
{"path": "ref", "type": "float", "readonly": false, "cmd": "capslope ref"},
|
||||
{"path": "bufperiod", "type": "float", "readonly": false, "cmd": "capslope bufperiod"}]},
|
||||
|
||||
"addonlock_ah2700": {"base": "/addonlock_ah2700", "params": [
|
||||
{"path": "", "type": "text", "readonly": false, "cmd": "addonlock_ah2700 = "}]}}
|
||||
{"path": "buffersize", "type": "float", "readonly": false, "cmd": "capslope buffersize"}]}}
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
{"cp2800": {"base": "/cp2800", "params": [
|
||||
{"path": "", "type": "bool", "readonly": false, "cmd": "cp2800", "kids": 27},
|
||||
{"path": "send", "type": "text", "readonly": false, "cmd": "cp2800 send", "visibility": 3},
|
||||
{"path": "status", "type": "text", "visibility": 3},
|
||||
{"path": "comp_running_hrs", "type": "float"},
|
||||
{"path": "cpu_t", "type": "float"},
|
||||
{"path": "motor_current_a", "type": "float"},
|
||||
{"path": "inp_water_t", "type": "float"},
|
||||
{"path": "inp_water_t_min", "type": "float"},
|
||||
{"path": "inp_water_t_max", "type": "float"},
|
||||
{"path": "out_water_t", "type": "float"},
|
||||
{"path": "out_water_t_min", "type": "float"},
|
||||
{"path": "out_water_t_max", "type": "float"},
|
||||
{"path": "helium_t", "type": "float"},
|
||||
{"path": "helium_t_min", "type": "float"},
|
||||
{"path": "helium_t_max", "type": "float"},
|
||||
{"path": "oil_t", "type": "float"},
|
||||
{"path": "oil_t_min", "type": "float"},
|
||||
{"path": "oil_t_max", "type": "float"},
|
||||
{"path": "high_side_p", "type": "float"},
|
||||
{"path": "high_side_p_min", "type": "float"},
|
||||
{"path": "high_side_p_max", "type": "float"},
|
||||
{"path": "high_side_p_avg", "type": "float"},
|
||||
{"path": "low_side_p", "type": "float"},
|
||||
{"path": "low_side_p_min", "type": "float"},
|
||||
{"path": "low_side_p_max", "type": "float"},
|
||||
{"path": "low_side_p_avg", "type": "float"},
|
||||
{"path": "high_side_delta_p_avg", "type": "float"},
|
||||
{"path": "high_side_bounce", "type": "float"}]}}
|
||||
@@ -1,14 +0,0 @@
|
||||
Node('cp1000.addon.sea.psi.ch',
|
||||
'''dry system''',
|
||||
)
|
||||
Mod('sea_addons',
|
||||
'frappy_psi.sea.SeaClient',
|
||||
'addons sea connection for cp1000.addon',
|
||||
config = 'cp1000.addon',
|
||||
service = 'addons',
|
||||
)
|
||||
Mod('cp2800',
|
||||
'frappy_psi.sea.SeaWritable', '',
|
||||
io = 'sea_addons',
|
||||
sea_object = 'cp2800',
|
||||
)
|
||||
@@ -18,7 +18,7 @@
|
||||
{"path": "heaterselect", "type": "enum", "enum": {"sample": 0, "mix": 1, "mix(temporarely)": 2}, "readonly": false, "cmd": "ts heaterselect"},
|
||||
{"path": "control", "type": "enum", "enum": {"off": 0, "sample": 6, "mix": 5, "samplehtr": 8}, "readonly": false, "cmd": "ts control", "description": "click off to reload list"},
|
||||
{"path": "heatermode", "type": "enum", "enum": {"disabled": -1, "off": 0, "on": 1}, "readonly": false, "cmd": "ts heatermode"},
|
||||
{"path": "heaterrange", "type": "enum", "enum": {"off": 0, "2uW": 1, "20uW": 2, "200uW": 3, "2mW": 4, "20mW": 5}, "readonly": false, "cmd": "ts heaterrange"},
|
||||
{"path": "heaterrange", "type": "enum", "enum": {"2uW": 1, "20uW": 2, "200uW": 3, "2mW": 4, "20mW": 5}, "readonly": false, "cmd": "ts heaterrange"},
|
||||
{"path": "autoheater", "type": "bool", "readonly": false, "cmd": "ts autoheater", "description": "automatic heater range", "kids": 12},
|
||||
{"path": "autoheater/wlp0", "type": "float", "readonly": false, "cmd": "ts autoheater/wlp0", "description": "weak link base temperature (used for auto heater)"},
|
||||
{"path": "autoheater/wlp1", "type": "float", "readonly": false, "cmd": "ts autoheater/wlp1", "description": "weak link temperature at 1 uW (used for auto heater)"},
|
||||
@@ -292,7 +292,7 @@
|
||||
{"path": "V3A", "type": "int", "readonly": false, "cmd": "dil V3A", "visibility": 3},
|
||||
{"path": "Roots", "type": "int", "readonly": false, "cmd": "dil Roots", "visibility": 3},
|
||||
{"path": "Aux", "type": "int", "readonly": false, "cmd": "dil Aux", "visibility": 3},
|
||||
{"path": "He3", "type": "int", "readonly": false, "cmd": "dil He3"},
|
||||
{"path": "He3", "type": "int", "readonly": false, "cmd": "dil He3", "visibility": 3},
|
||||
{"path": "closedelay", "type": "float", "readonly": false, "cmd": "dil closedelay", "visibility": 3},
|
||||
{"path": "extVersion", "type": "int", "readonly": false, "cmd": "dil extVersion", "visibility": 3},
|
||||
{"path": "pumpoff", "type": "int"},
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
{"path": "heaterselect", "type": "enum", "enum": {"sample": 0, "mix": 1, "mix(temporarely)": 2}, "readonly": false, "cmd": "ts heaterselect"},
|
||||
{"path": "control", "type": "enum", "enum": {"off": 0, "sample": 6, "mix": 5, "samplehtr": 8}, "readonly": false, "cmd": "ts control", "description": "click off to reload list"},
|
||||
{"path": "heatermode", "type": "enum", "enum": {"disabled": -1, "off": 0, "on": 1}, "readonly": false, "cmd": "ts heatermode"},
|
||||
{"path": "heaterrange", "type": "enum", "enum": {"off": 0, "2uW": 1, "20uW": 2, "200uW": 3, "2mW": 4, "20mW": 5}, "readonly": false, "cmd": "ts heaterrange"},
|
||||
{"path": "heaterrange", "type": "enum", "enum": {"2uW": 1, "20uW": 2, "200uW": 3, "2mW": 4, "20mW": 5}, "readonly": false, "cmd": "ts heaterrange"},
|
||||
{"path": "autoheater", "type": "bool", "readonly": false, "cmd": "ts autoheater", "description": "automatic heater range", "kids": 12},
|
||||
{"path": "autoheater/wlp0", "type": "float", "readonly": false, "cmd": "ts autoheater/wlp0", "description": "weak link base temperature (used for auto heater)"},
|
||||
{"path": "autoheater/wlp1", "type": "float", "readonly": false, "cmd": "ts autoheater/wlp1", "description": "weak link temperature at 1 uW (used for auto heater)"},
|
||||
@@ -292,7 +292,7 @@
|
||||
{"path": "V3A", "type": "int", "readonly": false, "cmd": "dil V3A", "visibility": 3},
|
||||
{"path": "Roots", "type": "int", "readonly": false, "cmd": "dil Roots", "visibility": 3},
|
||||
{"path": "Aux", "type": "int", "readonly": false, "cmd": "dil Aux", "visibility": 3},
|
||||
{"path": "He3", "type": "int", "readonly": false, "cmd": "dil He3"},
|
||||
{"path": "He3", "type": "int", "readonly": false, "cmd": "dil He3", "visibility": 3},
|
||||
{"path": "closedelay", "type": "float", "readonly": false, "cmd": "dil closedelay", "visibility": 3},
|
||||
{"path": "extVersion", "type": "int", "readonly": false, "cmd": "dil extVersion", "visibility": 3},
|
||||
{"path": "pumpoff", "type": "int"},
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
{"path": "heaterselect", "type": "enum", "enum": {"sample": 0, "mix": 1, "mix(temporarely)": 2}, "readonly": false, "cmd": "ts heaterselect"},
|
||||
{"path": "control", "type": "enum", "enum": {"off": 0, "sample": 6, "mix": 5, "samplehtr": 8}, "readonly": false, "cmd": "ts control", "description": "click off to reload list"},
|
||||
{"path": "heatermode", "type": "enum", "enum": {"disabled": -1, "off": 0, "on": 1}, "readonly": false, "cmd": "ts heatermode"},
|
||||
{"path": "heaterrange", "type": "enum", "enum": {"off": 0, "2uW": 1, "20uW": 2, "200uW": 3, "2mW": 4, "20mW": 5}, "readonly": false, "cmd": "ts heaterrange"},
|
||||
{"path": "heaterrange", "type": "enum", "enum": {"2uW": 1, "20uW": 2, "200uW": 3, "2mW": 4, "20mW": 5}, "readonly": false, "cmd": "ts heaterrange"},
|
||||
{"path": "autoheater", "type": "bool", "readonly": false, "cmd": "ts autoheater", "description": "automatic heater range", "kids": 12},
|
||||
{"path": "autoheater/wlp0", "type": "float", "readonly": false, "cmd": "ts autoheater/wlp0", "description": "weak link base temperature (used for auto heater)"},
|
||||
{"path": "autoheater/wlp1", "type": "float", "readonly": false, "cmd": "ts autoheater/wlp1", "description": "weak link temperature at 1 uW (used for auto heater)"},
|
||||
@@ -292,7 +292,7 @@
|
||||
{"path": "V3A", "type": "int", "readonly": false, "cmd": "dil V3A", "visibility": 3},
|
||||
{"path": "Roots", "type": "int", "readonly": false, "cmd": "dil Roots", "visibility": 3},
|
||||
{"path": "Aux", "type": "int", "readonly": false, "cmd": "dil Aux", "visibility": 3},
|
||||
{"path": "He3", "type": "int", "readonly": false, "cmd": "dil He3"},
|
||||
{"path": "He3", "type": "int", "readonly": false, "cmd": "dil He3", "visibility": 3},
|
||||
{"path": "closedelay", "type": "float", "readonly": false, "cmd": "dil closedelay", "visibility": 3},
|
||||
{"path": "extVersion", "type": "int", "readonly": false, "cmd": "dil extVersion", "visibility": 3},
|
||||
{"path": "pumpoff", "type": "int"},
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
{"path": "unit", "type": "text", "readonly": false, "cmd": "th unit", "visibility": 3},
|
||||
{"path": "t2", "type": "float"},
|
||||
{"path": "set", "type": "float"},
|
||||
{"path": "pumprunning", "type": "int", "readonly": false, "cmd": "th pumprunning"},
|
||||
{"path": "running", "type": "int", "readonly": false, "cmd": "th running", "visibility": 3},
|
||||
{"path": "extcontrol", "type": "int", "readonly": false, "cmd": "th extcontrol", "visibility": 3},
|
||||
{"path": "relais", "type": "int", "visibility": 3},
|
||||
{"path": "overtemp", "type": "int", "visibility": 3},
|
||||
|
||||
@@ -1,160 +0,0 @@
|
||||
{"th": {"base": "/th", "params": [
|
||||
{"path": "", "type": "float", "readonly": false, "cmd": "run th", "kids": 26},
|
||||
{"path": "unit", "type": "text", "readonly": false, "cmd": "th unit", "visibility": 3},
|
||||
{"path": "t2", "type": "float"},
|
||||
{"path": "set", "type": "float"},
|
||||
{"path": "pumprunning", "type": "int", "readonly": false, "cmd": "th pumprunning"},
|
||||
{"path": "extcontrol", "type": "int", "readonly": false, "cmd": "th extcontrol", "visibility": 3},
|
||||
{"path": "relais", "type": "int", "visibility": 3},
|
||||
{"path": "overtemp", "type": "int", "visibility": 3},
|
||||
{"path": "lowlevel", "type": "int", "visibility": 3},
|
||||
{"path": "pumpalarm", "type": "int", "visibility": 3},
|
||||
{"path": "externalarm", "type": "int", "visibility": 3},
|
||||
{"path": "coolalarm", "type": "int", "visibility": 3},
|
||||
{"path": "sensor1alarm", "type": "int", "visibility": 3},
|
||||
{"path": "sensor2alarm", "type": "int", "visibility": 3},
|
||||
{"path": "reset", "type": "int", "readonly": false, "cmd": "th reset", "visibility": 3},
|
||||
{"path": "with2sensors", "type": "int", "readonly": false, "cmd": "th with2sensors", "visibility": 3},
|
||||
{"path": "upperLimit", "type": "float", "readonly": false, "cmd": "th upperLimit"},
|
||||
{"path": "lowerLimit", "type": "float", "readonly": false, "cmd": "th lowerLimit"},
|
||||
{"path": "tolerance", "type": "float", "readonly": false, "cmd": "th tolerance"},
|
||||
{"path": "maxwait", "type": "int", "readonly": false, "cmd": "th maxwait"},
|
||||
{"path": "settle", "type": "int", "readonly": false, "cmd": "th settle"},
|
||||
{"path": "targetValue", "type": "float"},
|
||||
{"path": "is_running", "type": "int", "visibility": 3},
|
||||
{"path": "verbose", "type": "int", "readonly": false, "cmd": "th verbose", "visibility": 3},
|
||||
{"path": "driver", "type": "text", "visibility": 3},
|
||||
{"path": "creationCmd", "type": "text", "visibility": 3},
|
||||
{"path": "status", "type": "text", "readonly": false, "cmd": "th status"}]},
|
||||
|
||||
"te": {"base": "/te", "params": [
|
||||
{"path": "", "type": "float", "readonly": false, "cmd": "run te", "kids": 30},
|
||||
{"path": "unit", "type": "text", "readonly": false, "cmd": "te unit", "visibility": 3},
|
||||
{"path": "mode", "type": "int", "readonly": false, "cmd": "te mode"},
|
||||
{"path": "model", "type": "text", "visibility": 3},
|
||||
{"path": "pbPow", "type": "float", "visibility": 3},
|
||||
{"path": "pbMin", "type": "float", "visibility": 3},
|
||||
{"path": "pbScl", "type": "float", "visibility": 3},
|
||||
{"path": "output", "type": "float"},
|
||||
{"path": "position", "type": "float", "readonly": false, "cmd": "te position"},
|
||||
{"path": "asymmetry", "type": "float", "readonly": false, "cmd": "te asymmetry", "visibility": 3},
|
||||
{"path": "range", "type": "float", "readonly": false, "cmd": "te range", "visibility": 3},
|
||||
{"path": "set", "type": "float", "readonly": false, "cmd": "te set"},
|
||||
{"path": "rdonly", "type": "int", "readonly": false, "cmd": "te rdonly", "visibility": 3},
|
||||
{"path": "task", "type": "text", "readonly": false, "cmd": "te task"},
|
||||
{"path": "upperLimit", "type": "float", "readonly": false, "cmd": "te upperLimit"},
|
||||
{"path": "lowerLimit", "type": "float", "readonly": false, "cmd": "te lowerLimit", "visibility": 3},
|
||||
{"path": "tolerance", "type": "float", "readonly": false, "cmd": "te tolerance"},
|
||||
{"path": "maxwait", "type": "int", "readonly": false, "cmd": "te maxwait"},
|
||||
{"path": "settle", "type": "int", "readonly": false, "cmd": "te settle"},
|
||||
{"path": "targetValue", "type": "float"},
|
||||
{"path": "is_running", "type": "int", "visibility": 3},
|
||||
{"path": "verbose", "type": "int", "readonly": false, "cmd": "te verbose", "visibility": 3},
|
||||
{"path": "driver", "type": "text", "visibility": 3},
|
||||
{"path": "creationCmd", "type": "text", "visibility": 3},
|
||||
{"path": "status", "type": "text", "readonly": false, "cmd": "te status"},
|
||||
{"path": "pb", "type": "float", "readonly": false, "cmd": "te pb"},
|
||||
{"path": "ti", "type": "float", "readonly": false, "cmd": "te ti"},
|
||||
{"path": "td", "type": "float", "readonly": false, "cmd": "te td"},
|
||||
{"path": "manual", "type": "float", "readonly": false, "cmd": "te manual"},
|
||||
{"path": "rate", "type": "float", "readonly": false, "cmd": "te rate"},
|
||||
{"path": "workset", "type": "float", "readonly": false, "cmd": "te workset"}]},
|
||||
|
||||
"cc": {"base": "/cc", "params": [
|
||||
{"path": "", "type": "bool", "kids": 96},
|
||||
{"path": "send", "type": "text", "readonly": false, "cmd": "cc send", "visibility": 3},
|
||||
{"path": "status", "type": "text", "visibility": 3},
|
||||
{"path": "autodevice", "type": "bool", "readonly": false, "cmd": "cc autodevice"},
|
||||
{"path": "fav", "type": "bool", "readonly": false, "cmd": "cc fav"},
|
||||
{"path": "f", "type": "float", "visibility": 3},
|
||||
{"path": "fs", "type": "enum", "enum": {"ok": 0, "no_sens": 1}, "readonly": false, "cmd": "cc fs", "visibility": 3},
|
||||
{"path": "mav", "type": "bool", "readonly": false, "cmd": "cc mav"},
|
||||
{"path": "fm", "type": "enum", "enum": {"idle": 0, "opening": 1, "closing": 2, "opened": 3, "closed": 4, "no_motor": 5}, "visibility": 3},
|
||||
{"path": "fa", "type": "enum", "enum": {"fixed": 0, "controlled": 1, "automatic": 2, "offline": 3}, "readonly": false, "cmd": "cc fa", "visibility": 3},
|
||||
{"path": "mp", "type": "float", "readonly": false, "cmd": "cc mp", "visibility": 3},
|
||||
{"path": "msp", "type": "float", "visibility": 3},
|
||||
{"path": "mmp", "type": "float", "visibility": 3},
|
||||
{"path": "mc", "type": "float", "readonly": false, "cmd": "cc mc", "visibility": 3},
|
||||
{"path": "mfc", "type": "float", "readonly": false, "cmd": "cc mfc", "visibility": 3},
|
||||
{"path": "moc", "type": "float", "readonly": false, "cmd": "cc moc", "visibility": 3},
|
||||
{"path": "mtc", "type": "float", "readonly": false, "cmd": "cc mtc", "visibility": 3},
|
||||
{"path": "mtl", "type": "float", "visibility": 3},
|
||||
{"path": "mft", "type": "float", "readonly": false, "cmd": "cc mft", "visibility": 3},
|
||||
{"path": "mt", "type": "float", "visibility": 3},
|
||||
{"path": "mo", "type": "float", "visibility": 3},
|
||||
{"path": "mcr", "type": "float", "visibility": 3},
|
||||
{"path": "mot", "type": "float", "visibility": 3},
|
||||
{"path": "mw", "type": "float", "readonly": false, "cmd": "cc mw", "description": "correction pulse after automatic open", "visibility": 3},
|
||||
{"path": "hav", "type": "enum", "type": "enum", "enum": {"none": 0, "int": 1, "ext": 2}, "readonly": false, "cmd": "cc hav"},
|
||||
{"path": "h", "type": "float", "visibility": 3},
|
||||
{"path": "hr", "type": "float", "visibility": 3},
|
||||
{"path": "hc", "type": "float", "visibility": 3},
|
||||
{"path": "hu", "type": "float", "visibility": 3},
|
||||
{"path": "hh", "type": "float", "readonly": false, "cmd": "cc hh", "visibility": 3},
|
||||
{"path": "hl", "type": "float", "readonly": false, "cmd": "cc hl", "visibility": 3},
|
||||
{"path": "htf", "type": "float", "readonly": false, "cmd": "cc htf", "description": "meas. period in fast mode", "visibility": 3},
|
||||
{"path": "hts", "type": "float", "readonly": false, "cmd": "cc hts", "description": "meas. period in slow mode", "visibility": 3},
|
||||
{"path": "hd", "type": "float", "readonly": false, "cmd": "cc hd", "visibility": 3},
|
||||
{"path": "hwr", "type": "float", "readonly": false, "cmd": "cc hwr", "visibility": 3},
|
||||
{"path": "hem", "type": "float", "readonly": false, "cmd": "cc hem", "description": "sensor length in mm from top to empty pos.", "visibility": 3},
|
||||
{"path": "hfu", "type": "float", "readonly": false, "cmd": "cc hfu", "description": "sensor length in mm from top to full pos.", "visibility": 3},
|
||||
{"path": "hcd", "type": "enum", "enum": {"stop": 0, "fill": 1, "off": 2, "auto": 3, "manual": 7}, "readonly": false, "cmd": "cc hcd", "visibility": 3},
|
||||
{"path": "hv", "type": "enum", "enum": {"fill_valve_off": 0, "filling": 1, "no_fill_valve": 2, "timeout": 3, "timeout1": 4}, "visibility": 3},
|
||||
{"path": "hsf", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
|
||||
{"path": "ha", "type": "bool", "readonly": false, "cmd": "cc ha", "visibility": 3},
|
||||
{"path": "hm", "type": "bool", "visibility": 3},
|
||||
{"path": "hf", "type": "enum", "enum": {"slow": 0, "fast": 1}, "readonly": false, "cmd": "cc hf", "visibility": 3},
|
||||
{"path": "hbe", "type": "bool", "readonly": false, "cmd": "cc hbe", "visibility": 3},
|
||||
{"path": "hmf", "type": "float", "visibility": 3},
|
||||
{"path": "hms", "type": "float", "visibility": 3},
|
||||
{"path": "hit", "type": "float", "readonly": false, "cmd": "cc hit", "visibility": 3},
|
||||
{"path": "hft", "type": "int", "readonly": false, "cmd": "cc hft", "visibility": 3},
|
||||
{"path": "hea", "type": "enum", "enum": {"0": 0, "1": 1, "6": 6}, "readonly": false, "cmd": "cc hea"},
|
||||
{"path": "hch", "type": "int", "readonly": false, "cmd": "cc hch", "visibility": 3},
|
||||
{"path": "hwr0", "type": "float", "readonly": false, "cmd": "cc hwr0", "visibility": 3},
|
||||
{"path": "hem0", "type": "float", "readonly": false, "cmd": "cc hem0", "description": "sensor length in mm from top to empty pos.", "visibility": 3},
|
||||
{"path": "hfu0", "type": "float", "readonly": false, "cmd": "cc hfu0", "description": "sensor length in mm from top to full pos.", "visibility": 3},
|
||||
{"path": "hd0", "type": "float", "readonly": false, "cmd": "cc hd0", "description": "external sensor drive current (mA)", "visibility": 3},
|
||||
{"path": "h0", "type": "float", "visibility": 3},
|
||||
{"path": "hs0", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
|
||||
{"path": "h1", "type": "float", "visibility": 3},
|
||||
{"path": "hs1", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
|
||||
{"path": "h2", "type": "float", "visibility": 3},
|
||||
{"path": "hs2", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
|
||||
{"path": "h3", "type": "float", "visibility": 3},
|
||||
{"path": "hs3", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
|
||||
{"path": "h4", "type": "float", "visibility": 3},
|
||||
{"path": "hs4", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
|
||||
{"path": "h5", "type": "float", "visibility": 3},
|
||||
{"path": "hs5", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
|
||||
{"path": "hfb", "type": "float", "visibility": 3},
|
||||
{"path": "nav", "type": "enum", "type": "enum", "enum": {"none": 0, "int": 1, "ext": 2}, "readonly": false, "cmd": "cc nav"},
|
||||
{"path": "nu", "type": "float", "visibility": 3},
|
||||
{"path": "nl", "type": "float", "visibility": 3},
|
||||
{"path": "nth", "type": "float", "readonly": false, "cmd": "cc nth", "visibility": 3},
|
||||
{"path": "ntc", "type": "float", "readonly": false, "cmd": "cc ntc", "visibility": 3},
|
||||
{"path": "ntm", "type": "float", "readonly": false, "cmd": "cc ntm", "visibility": 3},
|
||||
{"path": "ns", "type": "enum", "enum": {"sens_ok": 0, "no_sens": 1, "short_circuit": 2, "upside_down": 3, "sens_warm": 4, "empty": 5}, "visibility": 3},
|
||||
{"path": "na", "type": "bool", "readonly": false, "cmd": "cc na", "visibility": 3},
|
||||
{"path": "nv", "type": "enum", "enum": {"fill_valve_off": 0, "filling": 1, "no_fill_valve": 2, "timeout": 3, "timeout1": 4, "boost": 5}, "visibility": 3},
|
||||
{"path": "nc", "type": "enum", "enum": {"stop": 0, "fill": 1, "off": 2, "auto": 3}, "readonly": false, "cmd": "cc nc", "visibility": 3},
|
||||
{"path": "nfb", "type": "float", "visibility": 3},
|
||||
{"path": "cda", "type": "float"},
|
||||
{"path": "cdb", "type": "float"},
|
||||
{"path": "cba", "type": "float"},
|
||||
{"path": "cbb", "type": "float"},
|
||||
{"path": "cvs", "type": "int"},
|
||||
{"path": "csp", "type": "int"},
|
||||
{"path": "cdv", "type": "text", "readonly": false, "cmd": "cc cdv"},
|
||||
{"path": "cic", "type": "text", "readonly": false, "cmd": "cc cic"},
|
||||
{"path": "cin", "type": "text"},
|
||||
{"path": "cds", "type": "enum", "enum": {"local": 0, "remote": 1, "loading": 2, "by_code": 3, "by_touch": 4}, "readonly": false, "cmd": "cc cds"},
|
||||
{"path": "timing", "type": "bool", "readonly": false, "cmd": "cc timing"},
|
||||
{"path": "tc", "type": "float", "visibility": 3},
|
||||
{"path": "tn", "type": "float", "visibility": 3},
|
||||
{"path": "th", "type": "float", "visibility": 3},
|
||||
{"path": "tf", "type": "float", "visibility": 3},
|
||||
{"path": "tm", "type": "float", "visibility": 3},
|
||||
{"path": "tv", "type": "float", "visibility": 3},
|
||||
{"path": "tq", "type": "float", "visibility": 3},
|
||||
{"path": "bdl", "type": "float", "readonly": false, "cmd": "cc bdl"}]}}
|
||||
@@ -1,213 +0,0 @@
|
||||
{"tt": {"base": "/tt", "params": [
|
||||
{"path": "", "type": "int", "kids": 18},
|
||||
{"path": "send", "type": "text", "readonly": false, "cmd": "tt send", "visibility": 3},
|
||||
{"path": "status", "type": "text", "visibility": 3},
|
||||
{"path": "autoscan", "type": "bool", "readonly": false, "cmd": "tt autoscan", "kids": 4},
|
||||
{"path": "autoscan/synchronized", "type": "bool", "readonly": false, "cmd": "tt autoscan/synchronized"},
|
||||
{"path": "autoscan/interval", "type": "text", "readonly": false, "cmd": "tt autoscan/interval"},
|
||||
{"path": "autoscan/pause", "type": "text", "readonly": false, "cmd": "tt autoscan/pause"},
|
||||
{"path": "autoscan/dwell", "type": "text", "readonly": false, "cmd": "tt autoscan/dwell"},
|
||||
{"path": "T3K", "type": "float", "kids": 14},
|
||||
{"path": "T3K/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tt T3K/active"},
|
||||
{"path": "T3K/autorange", "type": "bool", "readonly": false, "cmd": "tt T3K/autorange", "description": "autorange (common for all channels)"},
|
||||
{"path": "T3K/range", "type": "text", "readonly": false, "cmd": "tt T3K/range", "description": "resistance range in Ohm"},
|
||||
{"path": "T3K/range_num", "type": "int"},
|
||||
{"path": "T3K/excitation", "type": "text", "readonly": false, "cmd": "tt T3K/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
|
||||
{"path": "T3K/excitation_num", "type": "int"},
|
||||
{"path": "T3K/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
|
||||
{"path": "T3K/pause", "type": "int", "readonly": false, "cmd": "tt T3K/pause", "description": "pause time [sec] after channel change"},
|
||||
{"path": "T3K/filter", "type": "int", "readonly": false, "cmd": "tt T3K/filter", "description": "filter average time [sec]"},
|
||||
{"path": "T3K/dwell", "type": "int", "readonly": false, "cmd": "tt T3K/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
|
||||
{"path": "T3K/status", "type": "text"},
|
||||
{"path": "T3K/curve", "type": "text", "readonly": false, "cmd": "tt T3K/curve", "kids": 1},
|
||||
{"path": "T3K/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt T3K/curve/points", "visibility": 3},
|
||||
{"path": "T3K/alarm", "type": "float", "readonly": false, "cmd": "tt T3K/alarm"},
|
||||
{"path": "T3K/raw", "type": "float"},
|
||||
{"path": "Tstill", "type": "float", "kids": 14},
|
||||
{"path": "Tstill/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tt Tstill/active"},
|
||||
{"path": "Tstill/autorange", "type": "bool", "readonly": false, "cmd": "tt Tstill/autorange", "description": "autorange (common for all channels)"},
|
||||
{"path": "Tstill/range", "type": "text", "readonly": false, "cmd": "tt Tstill/range", "description": "resistance range in Ohm"},
|
||||
{"path": "Tstill/range_num", "type": "int"},
|
||||
{"path": "Tstill/excitation", "type": "text", "readonly": false, "cmd": "tt Tstill/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
|
||||
{"path": "Tstill/excitation_num", "type": "int"},
|
||||
{"path": "Tstill/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
|
||||
{"path": "Tstill/pause", "type": "int", "readonly": false, "cmd": "tt Tstill/pause", "description": "pause time [sec] after channel change"},
|
||||
{"path": "Tstill/filter", "type": "int", "readonly": false, "cmd": "tt Tstill/filter", "description": "filter average time [sec]"},
|
||||
{"path": "Tstill/dwell", "type": "int", "readonly": false, "cmd": "tt Tstill/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
|
||||
{"path": "Tstill/status", "type": "text"},
|
||||
{"path": "Tstill/curve", "type": "text", "readonly": false, "cmd": "tt Tstill/curve", "kids": 1},
|
||||
{"path": "Tstill/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt Tstill/curve/points", "visibility": 3},
|
||||
{"path": "Tstill/alarm", "type": "float", "readonly": false, "cmd": "tt Tstill/alarm"},
|
||||
{"path": "Tstill/raw", "type": "float"},
|
||||
{"path": "T50mK", "type": "float", "kids": 14},
|
||||
{"path": "T50mK/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tt T50mK/active"},
|
||||
{"path": "T50mK/autorange", "type": "bool", "readonly": false, "cmd": "tt T50mK/autorange", "description": "autorange (common for all channels)"},
|
||||
{"path": "T50mK/range", "type": "text", "readonly": false, "cmd": "tt T50mK/range", "description": "resistance range in Ohm"},
|
||||
{"path": "T50mK/range_num", "type": "int"},
|
||||
{"path": "T50mK/excitation", "type": "text", "readonly": false, "cmd": "tt T50mK/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
|
||||
{"path": "T50mK/excitation_num", "type": "int"},
|
||||
{"path": "T50mK/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
|
||||
{"path": "T50mK/pause", "type": "int", "readonly": false, "cmd": "tt T50mK/pause", "description": "pause time [sec] after channel change"},
|
||||
{"path": "T50mK/filter", "type": "int", "readonly": false, "cmd": "tt T50mK/filter", "description": "filter average time [sec]"},
|
||||
{"path": "T50mK/dwell", "type": "int", "readonly": false, "cmd": "tt T50mK/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
|
||||
{"path": "T50mK/status", "type": "text"},
|
||||
{"path": "T50mK/curve", "type": "text", "readonly": false, "cmd": "tt T50mK/curve", "kids": 1},
|
||||
{"path": "T50mK/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt T50mK/curve/points", "visibility": 3},
|
||||
{"path": "T50mK/alarm", "type": "float", "readonly": false, "cmd": "tt T50mK/alarm"},
|
||||
{"path": "T50mK/raw", "type": "float"},
|
||||
{"path": "Tmxlow", "type": "float", "kids": 14},
|
||||
{"path": "Tmxlow/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tt Tmxlow/active"},
|
||||
{"path": "Tmxlow/autorange", "type": "bool", "readonly": false, "cmd": "tt Tmxlow/autorange", "description": "autorange (common for all channels)"},
|
||||
{"path": "Tmxlow/range", "type": "text", "readonly": false, "cmd": "tt Tmxlow/range", "description": "resistance range in Ohm"},
|
||||
{"path": "Tmxlow/range_num", "type": "int"},
|
||||
{"path": "Tmxlow/excitation", "type": "text", "readonly": false, "cmd": "tt Tmxlow/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
|
||||
{"path": "Tmxlow/excitation_num", "type": "int"},
|
||||
{"path": "Tmxlow/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
|
||||
{"path": "Tmxlow/pause", "type": "int", "readonly": false, "cmd": "tt Tmxlow/pause", "description": "pause time [sec] after channel change"},
|
||||
{"path": "Tmxlow/filter", "type": "int", "readonly": false, "cmd": "tt Tmxlow/filter", "description": "filter average time [sec]"},
|
||||
{"path": "Tmxlow/dwell", "type": "int", "readonly": false, "cmd": "tt Tmxlow/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
|
||||
{"path": "Tmxlow/status", "type": "text"},
|
||||
{"path": "Tmxlow/curve", "type": "text", "readonly": false, "cmd": "tt Tmxlow/curve", "kids": 1},
|
||||
{"path": "Tmxlow/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt Tmxlow/curve/points", "visibility": 3},
|
||||
{"path": "Tmxlow/alarm", "type": "float", "readonly": false, "cmd": "tt Tmxlow/alarm"},
|
||||
{"path": "Tmxlow/raw", "type": "float"},
|
||||
{"path": "Tmxhigh", "type": "float", "kids": 14},
|
||||
{"path": "Tmxhigh/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tt Tmxhigh/active"},
|
||||
{"path": "Tmxhigh/autorange", "type": "bool", "readonly": false, "cmd": "tt Tmxhigh/autorange", "description": "autorange (common for all channels)"},
|
||||
{"path": "Tmxhigh/range", "type": "text", "readonly": false, "cmd": "tt Tmxhigh/range", "description": "resistance range in Ohm"},
|
||||
{"path": "Tmxhigh/range_num", "type": "int"},
|
||||
{"path": "Tmxhigh/excitation", "type": "text", "readonly": false, "cmd": "tt Tmxhigh/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
|
||||
{"path": "Tmxhigh/excitation_num", "type": "int"},
|
||||
{"path": "Tmxhigh/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
|
||||
{"path": "Tmxhigh/pause", "type": "int", "readonly": false, "cmd": "tt Tmxhigh/pause", "description": "pause time [sec] after channel change"},
|
||||
{"path": "Tmxhigh/filter", "type": "int", "readonly": false, "cmd": "tt Tmxhigh/filter", "description": "filter average time [sec]"},
|
||||
{"path": "Tmxhigh/dwell", "type": "int", "readonly": false, "cmd": "tt Tmxhigh/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
|
||||
{"path": "Tmxhigh/status", "type": "text"},
|
||||
{"path": "Tmxhigh/curve", "type": "text", "readonly": false, "cmd": "tt Tmxhigh/curve", "kids": 1},
|
||||
{"path": "Tmxhigh/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt Tmxhigh/curve/points", "visibility": 3},
|
||||
{"path": "Tmxhigh/alarm", "type": "float", "readonly": false, "cmd": "tt Tmxhigh/alarm"},
|
||||
{"path": "Tmxhigh/raw", "type": "float"},
|
||||
{"path": "Tmxcx", "type": "float", "kids": 14},
|
||||
{"path": "Tmxcx/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tt Tmxcx/active"},
|
||||
{"path": "Tmxcx/autorange", "type": "bool", "readonly": false, "cmd": "tt Tmxcx/autorange", "description": "autorange (common for all channels)"},
|
||||
{"path": "Tmxcx/range", "type": "text", "readonly": false, "cmd": "tt Tmxcx/range", "description": "resistance range in Ohm"},
|
||||
{"path": "Tmxcx/range_num", "type": "int"},
|
||||
{"path": "Tmxcx/excitation", "type": "text", "readonly": false, "cmd": "tt Tmxcx/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
|
||||
{"path": "Tmxcx/excitation_num", "type": "int"},
|
||||
{"path": "Tmxcx/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
|
||||
{"path": "Tmxcx/pause", "type": "int", "readonly": false, "cmd": "tt Tmxcx/pause", "description": "pause time [sec] after channel change"},
|
||||
{"path": "Tmxcx/filter", "type": "int", "readonly": false, "cmd": "tt Tmxcx/filter", "description": "filter average time [sec]"},
|
||||
{"path": "Tmxcx/dwell", "type": "int", "readonly": false, "cmd": "tt Tmxcx/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
|
||||
{"path": "Tmxcx/status", "type": "text"},
|
||||
{"path": "Tmxcx/curve", "type": "text", "readonly": false, "cmd": "tt Tmxcx/curve", "kids": 1},
|
||||
{"path": "Tmxcx/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt Tmxcx/curve/points", "visibility": 3},
|
||||
{"path": "Tmxcx/alarm", "type": "float", "readonly": false, "cmd": "tt Tmxcx/alarm"},
|
||||
{"path": "Tmxcx/raw", "type": "float"},
|
||||
{"path": "Tblueo", "type": "float", "kids": 14},
|
||||
{"path": "Tblueo/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tt Tblueo/active"},
|
||||
{"path": "Tblueo/autorange", "type": "bool", "readonly": false, "cmd": "tt Tblueo/autorange", "description": "autorange (common for all channels)"},
|
||||
{"path": "Tblueo/range", "type": "text", "readonly": false, "cmd": "tt Tblueo/range", "description": "resistance range in Ohm"},
|
||||
{"path": "Tblueo/range_num", "type": "int"},
|
||||
{"path": "Tblueo/excitation", "type": "text", "readonly": false, "cmd": "tt Tblueo/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
|
||||
{"path": "Tblueo/excitation_num", "type": "int"},
|
||||
{"path": "Tblueo/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
|
||||
{"path": "Tblueo/pause", "type": "int", "readonly": false, "cmd": "tt Tblueo/pause", "description": "pause time [sec] after channel change"},
|
||||
{"path": "Tblueo/filter", "type": "int", "readonly": false, "cmd": "tt Tblueo/filter", "description": "filter average time [sec]"},
|
||||
{"path": "Tblueo/dwell", "type": "int", "readonly": false, "cmd": "tt Tblueo/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
|
||||
{"path": "Tblueo/status", "type": "text"},
|
||||
{"path": "Tblueo/curve", "type": "text", "readonly": false, "cmd": "tt Tblueo/curve", "kids": 1},
|
||||
{"path": "Tblueo/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt Tblueo/curve/points", "visibility": 3},
|
||||
{"path": "Tblueo/alarm", "type": "float", "readonly": false, "cmd": "tt Tblueo/alarm"},
|
||||
{"path": "Tblueo/raw", "type": "float"},
|
||||
{"path": "Tpt50", "type": "float", "kids": 14},
|
||||
{"path": "Tpt50/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tt Tpt50/active"},
|
||||
{"path": "Tpt50/autorange", "type": "bool", "readonly": false, "cmd": "tt Tpt50/autorange", "description": "autorange (common for all channels)"},
|
||||
{"path": "Tpt50/range", "type": "text", "readonly": false, "cmd": "tt Tpt50/range", "description": "resistance range in Ohm"},
|
||||
{"path": "Tpt50/range_num", "type": "int"},
|
||||
{"path": "Tpt50/excitation", "type": "text", "readonly": false, "cmd": "tt Tpt50/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
|
||||
{"path": "Tpt50/excitation_num", "type": "int"},
|
||||
{"path": "Tpt50/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
|
||||
{"path": "Tpt50/pause", "type": "int", "readonly": false, "cmd": "tt Tpt50/pause", "description": "pause time [sec] after channel change"},
|
||||
{"path": "Tpt50/filter", "type": "int", "readonly": false, "cmd": "tt Tpt50/filter", "description": "filter average time [sec]"},
|
||||
{"path": "Tpt50/dwell", "type": "int", "readonly": false, "cmd": "tt Tpt50/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
|
||||
{"path": "Tpt50/status", "type": "text"},
|
||||
{"path": "Tpt50/curve", "type": "text", "readonly": false, "cmd": "tt Tpt50/curve", "kids": 1},
|
||||
{"path": "Tpt50/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt Tpt50/curve/points", "visibility": 3},
|
||||
{"path": "Tpt50/alarm", "type": "float", "readonly": false, "cmd": "tt Tpt50/alarm"},
|
||||
{"path": "Tpt50/raw", "type": "float"},
|
||||
{"path": "Tpt3high", "type": "float", "kids": 14},
|
||||
{"path": "Tpt3high/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tt Tpt3high/active"},
|
||||
{"path": "Tpt3high/autorange", "type": "bool", "readonly": false, "cmd": "tt Tpt3high/autorange", "description": "autorange (common for all channels)"},
|
||||
{"path": "Tpt3high/range", "type": "text", "readonly": false, "cmd": "tt Tpt3high/range", "description": "resistance range in Ohm"},
|
||||
{"path": "Tpt3high/range_num", "type": "int"},
|
||||
{"path": "Tpt3high/excitation", "type": "text", "readonly": false, "cmd": "tt Tpt3high/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
|
||||
{"path": "Tpt3high/excitation_num", "type": "int"},
|
||||
{"path": "Tpt3high/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
|
||||
{"path": "Tpt3high/pause", "type": "int", "readonly": false, "cmd": "tt Tpt3high/pause", "description": "pause time [sec] after channel change"},
|
||||
{"path": "Tpt3high/filter", "type": "int", "readonly": false, "cmd": "tt Tpt3high/filter", "description": "filter average time [sec]"},
|
||||
{"path": "Tpt3high/dwell", "type": "int", "readonly": false, "cmd": "tt Tpt3high/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
|
||||
{"path": "Tpt3high/status", "type": "text"},
|
||||
{"path": "Tpt3high/curve", "type": "text", "readonly": false, "cmd": "tt Tpt3high/curve", "kids": 1},
|
||||
{"path": "Tpt3high/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt Tpt3high/curve/points", "visibility": 3},
|
||||
{"path": "Tpt3high/alarm", "type": "float", "readonly": false, "cmd": "tt Tpt3high/alarm"},
|
||||
{"path": "Tpt3high/raw", "type": "float"},
|
||||
{"path": "Tpt3low", "type": "float", "kids": 14},
|
||||
{"path": "Tpt3low/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tt Tpt3low/active"},
|
||||
{"path": "Tpt3low/autorange", "type": "bool", "readonly": false, "cmd": "tt Tpt3low/autorange", "description": "autorange (common for all channels)"},
|
||||
{"path": "Tpt3low/range", "type": "text", "readonly": false, "cmd": "tt Tpt3low/range", "description": "resistance range in Ohm"},
|
||||
{"path": "Tpt3low/range_num", "type": "int"},
|
||||
{"path": "Tpt3low/excitation", "type": "text", "readonly": false, "cmd": "tt Tpt3low/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
|
||||
{"path": "Tpt3low/excitation_num", "type": "int"},
|
||||
{"path": "Tpt3low/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
|
||||
{"path": "Tpt3low/pause", "type": "int", "readonly": false, "cmd": "tt Tpt3low/pause", "description": "pause time [sec] after channel change"},
|
||||
{"path": "Tpt3low/filter", "type": "int", "readonly": false, "cmd": "tt Tpt3low/filter", "description": "filter average time [sec]"},
|
||||
{"path": "Tpt3low/dwell", "type": "int", "readonly": false, "cmd": "tt Tpt3low/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
|
||||
{"path": "Tpt3low/status", "type": "text"},
|
||||
{"path": "Tpt3low/curve", "type": "text", "readonly": false, "cmd": "tt Tpt3low/curve", "kids": 1},
|
||||
{"path": "Tpt3low/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt Tpt3low/curve/points", "visibility": 3},
|
||||
{"path": "Tpt3low/alarm", "type": "float", "readonly": false, "cmd": "tt Tpt3low/alarm"},
|
||||
{"path": "Tpt3low/raw", "type": "float"},
|
||||
{"path": "Twhite", "type": "float", "kids": 14},
|
||||
{"path": "Twhite/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tt Twhite/active"},
|
||||
{"path": "Twhite/autorange", "type": "bool", "readonly": false, "cmd": "tt Twhite/autorange", "description": "autorange (common for all channels)"},
|
||||
{"path": "Twhite/range", "type": "text", "readonly": false, "cmd": "tt Twhite/range", "description": "resistance range in Ohm"},
|
||||
{"path": "Twhite/range_num", "type": "int"},
|
||||
{"path": "Twhite/excitation", "type": "text", "readonly": false, "cmd": "tt Twhite/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
|
||||
{"path": "Twhite/excitation_num", "type": "int"},
|
||||
{"path": "Twhite/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
|
||||
{"path": "Twhite/pause", "type": "int", "readonly": false, "cmd": "tt Twhite/pause", "description": "pause time [sec] after channel change"},
|
||||
{"path": "Twhite/filter", "type": "int", "readonly": false, "cmd": "tt Twhite/filter", "description": "filter average time [sec]"},
|
||||
{"path": "Twhite/dwell", "type": "int", "readonly": false, "cmd": "tt Twhite/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
|
||||
{"path": "Twhite/status", "type": "text"},
|
||||
{"path": "Twhite/curve", "type": "text", "readonly": false, "cmd": "tt Twhite/curve", "kids": 1},
|
||||
{"path": "Twhite/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt Twhite/curve/points", "visibility": 3},
|
||||
{"path": "Twhite/alarm", "type": "float", "readonly": false, "cmd": "tt Twhite/alarm"},
|
||||
{"path": "Twhite/raw", "type": "float"},
|
||||
{"path": "Tgreen", "type": "float", "kids": 14},
|
||||
{"path": "Tgreen/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tt Tgreen/active"},
|
||||
{"path": "Tgreen/autorange", "type": "bool", "readonly": false, "cmd": "tt Tgreen/autorange", "description": "autorange (common for all channels)"},
|
||||
{"path": "Tgreen/range", "type": "text", "readonly": false, "cmd": "tt Tgreen/range", "description": "resistance range in Ohm"},
|
||||
{"path": "Tgreen/range_num", "type": "int"},
|
||||
{"path": "Tgreen/excitation", "type": "text", "readonly": false, "cmd": "tt Tgreen/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
|
||||
{"path": "Tgreen/excitation_num", "type": "int"},
|
||||
{"path": "Tgreen/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
|
||||
{"path": "Tgreen/pause", "type": "int", "readonly": false, "cmd": "tt Tgreen/pause", "description": "pause time [sec] after channel change"},
|
||||
{"path": "Tgreen/filter", "type": "int", "readonly": false, "cmd": "tt Tgreen/filter", "description": "filter average time [sec]"},
|
||||
{"path": "Tgreen/dwell", "type": "int", "readonly": false, "cmd": "tt Tgreen/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
|
||||
{"path": "Tgreen/status", "type": "text"},
|
||||
{"path": "Tgreen/curve", "type": "text", "readonly": false, "cmd": "tt Tgreen/curve", "kids": 1},
|
||||
{"path": "Tgreen/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt Tgreen/curve/points", "visibility": 3},
|
||||
{"path": "Tgreen/alarm", "type": "float", "readonly": false, "cmd": "tt Tgreen/alarm"},
|
||||
{"path": "Tgreen/raw", "type": "float"},
|
||||
{"path": "analog2", "type": "float", "readonly": false, "cmd": "tt analog2"},
|
||||
{"path": "remote", "type": "bool"},
|
||||
{"path": "display", "type": "text", "readonly": false, "cmd": "tt display"}]},
|
||||
|
||||
"cmn": {"base": "/cmn", "params": [
|
||||
{"path": "", "type": "none", "kids": 6},
|
||||
{"path": "send", "type": "text", "readonly": false, "cmd": "cmn send", "visibility": 3},
|
||||
{"path": "status", "type": "text", "visibility": 3},
|
||||
{"path": "u1", "type": "float"},
|
||||
{"path": "temp", "type": "float"},
|
||||
{"path": "u2", "type": "float"},
|
||||
{"path": "chan", "type": "enum", "enum": {"auto": 0, "chan1": 1, "chan2": 2}, "readonly": false, "cmd": "cmn chan"}]}}
|
||||
@@ -1,213 +0,0 @@
|
||||
{"tt": {"base": "/tt", "params": [
|
||||
{"path": "", "type": "int", "kids": 18},
|
||||
{"path": "send", "type": "text", "readonly": false, "cmd": "tt send", "visibility": 3},
|
||||
{"path": "status", "type": "text", "visibility": 3},
|
||||
{"path": "autoscan", "type": "bool", "readonly": false, "cmd": "tt autoscan", "kids": 4},
|
||||
{"path": "autoscan/synchronized", "type": "bool", "readonly": false, "cmd": "tt autoscan/synchronized"},
|
||||
{"path": "autoscan/interval", "type": "text", "readonly": false, "cmd": "tt autoscan/interval"},
|
||||
{"path": "autoscan/pause", "type": "text", "readonly": false, "cmd": "tt autoscan/pause"},
|
||||
{"path": "autoscan/dwell", "type": "text", "readonly": false, "cmd": "tt autoscan/dwell"},
|
||||
{"path": "T3K", "type": "float", "kids": 14},
|
||||
{"path": "T3K/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tt T3K/active"},
|
||||
{"path": "T3K/autorange", "type": "bool", "readonly": false, "cmd": "tt T3K/autorange", "description": "autorange (common for all channels)"},
|
||||
{"path": "T3K/range", "type": "text", "readonly": false, "cmd": "tt T3K/range", "description": "resistance range in Ohm"},
|
||||
{"path": "T3K/range_num", "type": "int"},
|
||||
{"path": "T3K/excitation", "type": "text", "readonly": false, "cmd": "tt T3K/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
|
||||
{"path": "T3K/excitation_num", "type": "int"},
|
||||
{"path": "T3K/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
|
||||
{"path": "T3K/pause", "type": "int", "readonly": false, "cmd": "tt T3K/pause", "description": "pause time [sec] after channel change"},
|
||||
{"path": "T3K/filter", "type": "int", "readonly": false, "cmd": "tt T3K/filter", "description": "filter average time [sec]"},
|
||||
{"path": "T3K/dwell", "type": "int", "readonly": false, "cmd": "tt T3K/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
|
||||
{"path": "T3K/status", "type": "text"},
|
||||
{"path": "T3K/curve", "type": "text", "readonly": false, "cmd": "tt T3K/curve", "kids": 1},
|
||||
{"path": "T3K/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt T3K/curve/points", "visibility": 3},
|
||||
{"path": "T3K/alarm", "type": "float", "readonly": false, "cmd": "tt T3K/alarm"},
|
||||
{"path": "T3K/raw", "type": "float"},
|
||||
{"path": "Tstill", "type": "float", "kids": 14},
|
||||
{"path": "Tstill/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tt Tstill/active"},
|
||||
{"path": "Tstill/autorange", "type": "bool", "readonly": false, "cmd": "tt Tstill/autorange", "description": "autorange (common for all channels)"},
|
||||
{"path": "Tstill/range", "type": "text", "readonly": false, "cmd": "tt Tstill/range", "description": "resistance range in Ohm"},
|
||||
{"path": "Tstill/range_num", "type": "int"},
|
||||
{"path": "Tstill/excitation", "type": "text", "readonly": false, "cmd": "tt Tstill/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
|
||||
{"path": "Tstill/excitation_num", "type": "int"},
|
||||
{"path": "Tstill/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
|
||||
{"path": "Tstill/pause", "type": "int", "readonly": false, "cmd": "tt Tstill/pause", "description": "pause time [sec] after channel change"},
|
||||
{"path": "Tstill/filter", "type": "int", "readonly": false, "cmd": "tt Tstill/filter", "description": "filter average time [sec]"},
|
||||
{"path": "Tstill/dwell", "type": "int", "readonly": false, "cmd": "tt Tstill/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
|
||||
{"path": "Tstill/status", "type": "text"},
|
||||
{"path": "Tstill/curve", "type": "text", "readonly": false, "cmd": "tt Tstill/curve", "kids": 1},
|
||||
{"path": "Tstill/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt Tstill/curve/points", "visibility": 3},
|
||||
{"path": "Tstill/alarm", "type": "float", "readonly": false, "cmd": "tt Tstill/alarm"},
|
||||
{"path": "Tstill/raw", "type": "float"},
|
||||
{"path": "T50mK", "type": "float", "kids": 14},
|
||||
{"path": "T50mK/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tt T50mK/active"},
|
||||
{"path": "T50mK/autorange", "type": "bool", "readonly": false, "cmd": "tt T50mK/autorange", "description": "autorange (common for all channels)"},
|
||||
{"path": "T50mK/range", "type": "text", "readonly": false, "cmd": "tt T50mK/range", "description": "resistance range in Ohm"},
|
||||
{"path": "T50mK/range_num", "type": "int"},
|
||||
{"path": "T50mK/excitation", "type": "text", "readonly": false, "cmd": "tt T50mK/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
|
||||
{"path": "T50mK/excitation_num", "type": "int"},
|
||||
{"path": "T50mK/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
|
||||
{"path": "T50mK/pause", "type": "int", "readonly": false, "cmd": "tt T50mK/pause", "description": "pause time [sec] after channel change"},
|
||||
{"path": "T50mK/filter", "type": "int", "readonly": false, "cmd": "tt T50mK/filter", "description": "filter average time [sec]"},
|
||||
{"path": "T50mK/dwell", "type": "int", "readonly": false, "cmd": "tt T50mK/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
|
||||
{"path": "T50mK/status", "type": "text"},
|
||||
{"path": "T50mK/curve", "type": "text", "readonly": false, "cmd": "tt T50mK/curve", "kids": 1},
|
||||
{"path": "T50mK/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt T50mK/curve/points", "visibility": 3},
|
||||
{"path": "T50mK/alarm", "type": "float", "readonly": false, "cmd": "tt T50mK/alarm"},
|
||||
{"path": "T50mK/raw", "type": "float"},
|
||||
{"path": "Tmxlow", "type": "float", "kids": 14},
|
||||
{"path": "Tmxlow/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tt Tmxlow/active"},
|
||||
{"path": "Tmxlow/autorange", "type": "bool", "readonly": false, "cmd": "tt Tmxlow/autorange", "description": "autorange (common for all channels)"},
|
||||
{"path": "Tmxlow/range", "type": "text", "readonly": false, "cmd": "tt Tmxlow/range", "description": "resistance range in Ohm"},
|
||||
{"path": "Tmxlow/range_num", "type": "int"},
|
||||
{"path": "Tmxlow/excitation", "type": "text", "readonly": false, "cmd": "tt Tmxlow/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
|
||||
{"path": "Tmxlow/excitation_num", "type": "int"},
|
||||
{"path": "Tmxlow/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
|
||||
{"path": "Tmxlow/pause", "type": "int", "readonly": false, "cmd": "tt Tmxlow/pause", "description": "pause time [sec] after channel change"},
|
||||
{"path": "Tmxlow/filter", "type": "int", "readonly": false, "cmd": "tt Tmxlow/filter", "description": "filter average time [sec]"},
|
||||
{"path": "Tmxlow/dwell", "type": "int", "readonly": false, "cmd": "tt Tmxlow/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
|
||||
{"path": "Tmxlow/status", "type": "text"},
|
||||
{"path": "Tmxlow/curve", "type": "text", "readonly": false, "cmd": "tt Tmxlow/curve", "kids": 1},
|
||||
{"path": "Tmxlow/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt Tmxlow/curve/points", "visibility": 3},
|
||||
{"path": "Tmxlow/alarm", "type": "float", "readonly": false, "cmd": "tt Tmxlow/alarm"},
|
||||
{"path": "Tmxlow/raw", "type": "float"},
|
||||
{"path": "Tmxhigh", "type": "float", "kids": 14},
|
||||
{"path": "Tmxhigh/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tt Tmxhigh/active"},
|
||||
{"path": "Tmxhigh/autorange", "type": "bool", "readonly": false, "cmd": "tt Tmxhigh/autorange", "description": "autorange (common for all channels)"},
|
||||
{"path": "Tmxhigh/range", "type": "text", "readonly": false, "cmd": "tt Tmxhigh/range", "description": "resistance range in Ohm"},
|
||||
{"path": "Tmxhigh/range_num", "type": "int"},
|
||||
{"path": "Tmxhigh/excitation", "type": "text", "readonly": false, "cmd": "tt Tmxhigh/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
|
||||
{"path": "Tmxhigh/excitation_num", "type": "int"},
|
||||
{"path": "Tmxhigh/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
|
||||
{"path": "Tmxhigh/pause", "type": "int", "readonly": false, "cmd": "tt Tmxhigh/pause", "description": "pause time [sec] after channel change"},
|
||||
{"path": "Tmxhigh/filter", "type": "int", "readonly": false, "cmd": "tt Tmxhigh/filter", "description": "filter average time [sec]"},
|
||||
{"path": "Tmxhigh/dwell", "type": "int", "readonly": false, "cmd": "tt Tmxhigh/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
|
||||
{"path": "Tmxhigh/status", "type": "text"},
|
||||
{"path": "Tmxhigh/curve", "type": "text", "readonly": false, "cmd": "tt Tmxhigh/curve", "kids": 1},
|
||||
{"path": "Tmxhigh/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt Tmxhigh/curve/points", "visibility": 3},
|
||||
{"path": "Tmxhigh/alarm", "type": "float", "readonly": false, "cmd": "tt Tmxhigh/alarm"},
|
||||
{"path": "Tmxhigh/raw", "type": "float"},
|
||||
{"path": "Tmxcx", "type": "float", "kids": 14},
|
||||
{"path": "Tmxcx/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tt Tmxcx/active"},
|
||||
{"path": "Tmxcx/autorange", "type": "bool", "readonly": false, "cmd": "tt Tmxcx/autorange", "description": "autorange (common for all channels)"},
|
||||
{"path": "Tmxcx/range", "type": "text", "readonly": false, "cmd": "tt Tmxcx/range", "description": "resistance range in Ohm"},
|
||||
{"path": "Tmxcx/range_num", "type": "int"},
|
||||
{"path": "Tmxcx/excitation", "type": "text", "readonly": false, "cmd": "tt Tmxcx/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
|
||||
{"path": "Tmxcx/excitation_num", "type": "int"},
|
||||
{"path": "Tmxcx/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
|
||||
{"path": "Tmxcx/pause", "type": "int", "readonly": false, "cmd": "tt Tmxcx/pause", "description": "pause time [sec] after channel change"},
|
||||
{"path": "Tmxcx/filter", "type": "int", "readonly": false, "cmd": "tt Tmxcx/filter", "description": "filter average time [sec]"},
|
||||
{"path": "Tmxcx/dwell", "type": "int", "readonly": false, "cmd": "tt Tmxcx/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
|
||||
{"path": "Tmxcx/status", "type": "text"},
|
||||
{"path": "Tmxcx/curve", "type": "text", "readonly": false, "cmd": "tt Tmxcx/curve", "kids": 1},
|
||||
{"path": "Tmxcx/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt Tmxcx/curve/points", "visibility": 3},
|
||||
{"path": "Tmxcx/alarm", "type": "float", "readonly": false, "cmd": "tt Tmxcx/alarm"},
|
||||
{"path": "Tmxcx/raw", "type": "float"},
|
||||
{"path": "Tblueo", "type": "float", "kids": 14},
|
||||
{"path": "Tblueo/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tt Tblueo/active"},
|
||||
{"path": "Tblueo/autorange", "type": "bool", "readonly": false, "cmd": "tt Tblueo/autorange", "description": "autorange (common for all channels)"},
|
||||
{"path": "Tblueo/range", "type": "text", "readonly": false, "cmd": "tt Tblueo/range", "description": "resistance range in Ohm"},
|
||||
{"path": "Tblueo/range_num", "type": "int"},
|
||||
{"path": "Tblueo/excitation", "type": "text", "readonly": false, "cmd": "tt Tblueo/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
|
||||
{"path": "Tblueo/excitation_num", "type": "int"},
|
||||
{"path": "Tblueo/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
|
||||
{"path": "Tblueo/pause", "type": "int", "readonly": false, "cmd": "tt Tblueo/pause", "description": "pause time [sec] after channel change"},
|
||||
{"path": "Tblueo/filter", "type": "int", "readonly": false, "cmd": "tt Tblueo/filter", "description": "filter average time [sec]"},
|
||||
{"path": "Tblueo/dwell", "type": "int", "readonly": false, "cmd": "tt Tblueo/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
|
||||
{"path": "Tblueo/status", "type": "text"},
|
||||
{"path": "Tblueo/curve", "type": "text", "readonly": false, "cmd": "tt Tblueo/curve", "kids": 1},
|
||||
{"path": "Tblueo/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt Tblueo/curve/points", "visibility": 3},
|
||||
{"path": "Tblueo/alarm", "type": "float", "readonly": false, "cmd": "tt Tblueo/alarm"},
|
||||
{"path": "Tblueo/raw", "type": "float"},
|
||||
{"path": "Tpt50", "type": "float", "kids": 14},
|
||||
{"path": "Tpt50/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tt Tpt50/active"},
|
||||
{"path": "Tpt50/autorange", "type": "bool", "readonly": false, "cmd": "tt Tpt50/autorange", "description": "autorange (common for all channels)"},
|
||||
{"path": "Tpt50/range", "type": "text", "readonly": false, "cmd": "tt Tpt50/range", "description": "resistance range in Ohm"},
|
||||
{"path": "Tpt50/range_num", "type": "int"},
|
||||
{"path": "Tpt50/excitation", "type": "text", "readonly": false, "cmd": "tt Tpt50/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
|
||||
{"path": "Tpt50/excitation_num", "type": "int"},
|
||||
{"path": "Tpt50/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
|
||||
{"path": "Tpt50/pause", "type": "int", "readonly": false, "cmd": "tt Tpt50/pause", "description": "pause time [sec] after channel change"},
|
||||
{"path": "Tpt50/filter", "type": "int", "readonly": false, "cmd": "tt Tpt50/filter", "description": "filter average time [sec]"},
|
||||
{"path": "Tpt50/dwell", "type": "int", "readonly": false, "cmd": "tt Tpt50/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
|
||||
{"path": "Tpt50/status", "type": "text"},
|
||||
{"path": "Tpt50/curve", "type": "text", "readonly": false, "cmd": "tt Tpt50/curve", "kids": 1},
|
||||
{"path": "Tpt50/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt Tpt50/curve/points", "visibility": 3},
|
||||
{"path": "Tpt50/alarm", "type": "float", "readonly": false, "cmd": "tt Tpt50/alarm"},
|
||||
{"path": "Tpt50/raw", "type": "float"},
|
||||
{"path": "Tpt3high", "type": "float", "kids": 14},
|
||||
{"path": "Tpt3high/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tt Tpt3high/active"},
|
||||
{"path": "Tpt3high/autorange", "type": "bool", "readonly": false, "cmd": "tt Tpt3high/autorange", "description": "autorange (common for all channels)"},
|
||||
{"path": "Tpt3high/range", "type": "text", "readonly": false, "cmd": "tt Tpt3high/range", "description": "resistance range in Ohm"},
|
||||
{"path": "Tpt3high/range_num", "type": "int"},
|
||||
{"path": "Tpt3high/excitation", "type": "text", "readonly": false, "cmd": "tt Tpt3high/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
|
||||
{"path": "Tpt3high/excitation_num", "type": "int"},
|
||||
{"path": "Tpt3high/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
|
||||
{"path": "Tpt3high/pause", "type": "int", "readonly": false, "cmd": "tt Tpt3high/pause", "description": "pause time [sec] after channel change"},
|
||||
{"path": "Tpt3high/filter", "type": "int", "readonly": false, "cmd": "tt Tpt3high/filter", "description": "filter average time [sec]"},
|
||||
{"path": "Tpt3high/dwell", "type": "int", "readonly": false, "cmd": "tt Tpt3high/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
|
||||
{"path": "Tpt3high/status", "type": "text"},
|
||||
{"path": "Tpt3high/curve", "type": "text", "readonly": false, "cmd": "tt Tpt3high/curve", "kids": 1},
|
||||
{"path": "Tpt3high/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt Tpt3high/curve/points", "visibility": 3},
|
||||
{"path": "Tpt3high/alarm", "type": "float", "readonly": false, "cmd": "tt Tpt3high/alarm"},
|
||||
{"path": "Tpt3high/raw", "type": "float"},
|
||||
{"path": "Tpt3low", "type": "float", "kids": 14},
|
||||
{"path": "Tpt3low/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tt Tpt3low/active"},
|
||||
{"path": "Tpt3low/autorange", "type": "bool", "readonly": false, "cmd": "tt Tpt3low/autorange", "description": "autorange (common for all channels)"},
|
||||
{"path": "Tpt3low/range", "type": "text", "readonly": false, "cmd": "tt Tpt3low/range", "description": "resistance range in Ohm"},
|
||||
{"path": "Tpt3low/range_num", "type": "int"},
|
||||
{"path": "Tpt3low/excitation", "type": "text", "readonly": false, "cmd": "tt Tpt3low/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
|
||||
{"path": "Tpt3low/excitation_num", "type": "int"},
|
||||
{"path": "Tpt3low/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
|
||||
{"path": "Tpt3low/pause", "type": "int", "readonly": false, "cmd": "tt Tpt3low/pause", "description": "pause time [sec] after channel change"},
|
||||
{"path": "Tpt3low/filter", "type": "int", "readonly": false, "cmd": "tt Tpt3low/filter", "description": "filter average time [sec]"},
|
||||
{"path": "Tpt3low/dwell", "type": "int", "readonly": false, "cmd": "tt Tpt3low/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
|
||||
{"path": "Tpt3low/status", "type": "text"},
|
||||
{"path": "Tpt3low/curve", "type": "text", "readonly": false, "cmd": "tt Tpt3low/curve", "kids": 1},
|
||||
{"path": "Tpt3low/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt Tpt3low/curve/points", "visibility": 3},
|
||||
{"path": "Tpt3low/alarm", "type": "float", "readonly": false, "cmd": "tt Tpt3low/alarm"},
|
||||
{"path": "Tpt3low/raw", "type": "float"},
|
||||
{"path": "Twhite", "type": "float", "kids": 14},
|
||||
{"path": "Twhite/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tt Twhite/active"},
|
||||
{"path": "Twhite/autorange", "type": "bool", "readonly": false, "cmd": "tt Twhite/autorange", "description": "autorange (common for all channels)"},
|
||||
{"path": "Twhite/range", "type": "text", "readonly": false, "cmd": "tt Twhite/range", "description": "resistance range in Ohm"},
|
||||
{"path": "Twhite/range_num", "type": "int"},
|
||||
{"path": "Twhite/excitation", "type": "text", "readonly": false, "cmd": "tt Twhite/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
|
||||
{"path": "Twhite/excitation_num", "type": "int"},
|
||||
{"path": "Twhite/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
|
||||
{"path": "Twhite/pause", "type": "int", "readonly": false, "cmd": "tt Twhite/pause", "description": "pause time [sec] after channel change"},
|
||||
{"path": "Twhite/filter", "type": "int", "readonly": false, "cmd": "tt Twhite/filter", "description": "filter average time [sec]"},
|
||||
{"path": "Twhite/dwell", "type": "int", "readonly": false, "cmd": "tt Twhite/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
|
||||
{"path": "Twhite/status", "type": "text"},
|
||||
{"path": "Twhite/curve", "type": "text", "readonly": false, "cmd": "tt Twhite/curve", "kids": 1},
|
||||
{"path": "Twhite/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt Twhite/curve/points", "visibility": 3},
|
||||
{"path": "Twhite/alarm", "type": "float", "readonly": false, "cmd": "tt Twhite/alarm"},
|
||||
{"path": "Twhite/raw", "type": "float"},
|
||||
{"path": "Tgreen", "type": "float", "kids": 14},
|
||||
{"path": "Tgreen/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tt Tgreen/active"},
|
||||
{"path": "Tgreen/autorange", "type": "bool", "readonly": false, "cmd": "tt Tgreen/autorange", "description": "autorange (common for all channels)"},
|
||||
{"path": "Tgreen/range", "type": "text", "readonly": false, "cmd": "tt Tgreen/range", "description": "resistance range in Ohm"},
|
||||
{"path": "Tgreen/range_num", "type": "int"},
|
||||
{"path": "Tgreen/excitation", "type": "text", "readonly": false, "cmd": "tt Tgreen/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
|
||||
{"path": "Tgreen/excitation_num", "type": "int"},
|
||||
{"path": "Tgreen/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
|
||||
{"path": "Tgreen/pause", "type": "int", "readonly": false, "cmd": "tt Tgreen/pause", "description": "pause time [sec] after channel change"},
|
||||
{"path": "Tgreen/filter", "type": "int", "readonly": false, "cmd": "tt Tgreen/filter", "description": "filter average time [sec]"},
|
||||
{"path": "Tgreen/dwell", "type": "int", "readonly": false, "cmd": "tt Tgreen/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
|
||||
{"path": "Tgreen/status", "type": "text"},
|
||||
{"path": "Tgreen/curve", "type": "text", "readonly": false, "cmd": "tt Tgreen/curve", "kids": 1},
|
||||
{"path": "Tgreen/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt Tgreen/curve/points", "visibility": 3},
|
||||
{"path": "Tgreen/alarm", "type": "float", "readonly": false, "cmd": "tt Tgreen/alarm"},
|
||||
{"path": "Tgreen/raw", "type": "float"},
|
||||
{"path": "analog2", "type": "float", "readonly": false, "cmd": "tt analog2"},
|
||||
{"path": "remote", "type": "bool"},
|
||||
{"path": "display", "type": "text", "readonly": false, "cmd": "tt display"}]},
|
||||
|
||||
"cmn": {"base": "/cmn", "params": [
|
||||
{"path": "", "type": "none", "kids": 6},
|
||||
{"path": "send", "type": "text", "readonly": false, "cmd": "cmn send", "visibility": 3},
|
||||
{"path": "status", "type": "text", "visibility": 3},
|
||||
{"path": "u1", "type": "float"},
|
||||
{"path": "temp", "type": "float"},
|
||||
{"path": "u2", "type": "float"},
|
||||
{"path": "chan", "type": "enum", "enum": {"auto": 0, "chan1": 1, "chan2": 2}, "readonly": false, "cmd": "cmn chan"}]}}
|
||||
@@ -284,8 +284,8 @@
|
||||
{"path": "eeprom", "type": "enum", "enum": {"ok": 0, "dirty": 1, "save": 2, "load": 3}, "readonly": false, "cmd": "hemot eeprom"},
|
||||
{"path": "customadr", "type": "text", "readonly": false, "cmd": "hemot customadr"},
|
||||
{"path": "custompar", "type": "float", "readonly": false, "cmd": "hemot custompar"}]},
|
||||
|
||||
"ln2fill": {"base": "/ln2fill", "params": [
|
||||
"
|
||||
ln2fill": {"base": "/ln2fill", "params": [
|
||||
{"path": "", "type": "enum", "enum": {"watching": 0, "fill": 1, "inactive": 2}, "readonly": false, "cmd": "ln2fill", "kids": 14},
|
||||
{"path": "send", "type": "text", "readonly": false, "cmd": "ln2fill send", "visibility": 3},
|
||||
{"path": "status", "type": "text", "visibility": 3},
|
||||
|
||||
@@ -1,50 +1,50 @@
|
||||
{"tt": {"base": "/tt", "params": [
|
||||
{"path": "", "type": "float", "readonly": false, "cmd": "run tt", "description": "tt", "kids": 18},
|
||||
{"path": "send", "type": "text", "readonly": false, "cmd": "tt send", "visibility": 3},
|
||||
{"path": "status", "type": "text", "visibility": 3},
|
||||
{"path": "status", "type": "text", "readonly": false, "cmd": "run tt", "visibility": 3},
|
||||
{"path": "is_running", "type": "int", "readonly": false, "cmd": "tt is_running", "visibility": 3},
|
||||
{"path": "mainloop", "type": "text", "readonly": false, "cmd": "tt mainloop", "visibility": 3},
|
||||
{"path": "target", "type": "float"},
|
||||
{"path": "running", "type": "int"},
|
||||
{"path": "target", "type": "float", "readonly": false, "cmd": "run tt"},
|
||||
{"path": "running", "type": "int", "readonly": false, "cmd": "run tt"},
|
||||
{"path": "tolerance", "type": "float", "readonly": false, "cmd": "tt tolerance"},
|
||||
{"path": "maxwait", "type": "float", "readonly": false, "cmd": "tt maxwait"},
|
||||
{"path": "settle", "type": "float", "readonly": false, "cmd": "tt settle"},
|
||||
{"path": "log", "type": "text", "readonly": false, "cmd": "tt log", "visibility": 3, "kids": 4},
|
||||
{"path": "log/mean", "type": "float", "visibility": 3},
|
||||
{"path": "log/m2", "type": "float", "visibility": 3},
|
||||
{"path": "log/stddev", "type": "float", "visibility": 3},
|
||||
{"path": "log/n", "type": "float", "visibility": 3},
|
||||
{"path": "log/mean", "type": "float", "readonly": false, "cmd": "run tt", "visibility": 3},
|
||||
{"path": "log/m2", "type": "float", "readonly": false, "cmd": "run tt", "visibility": 3},
|
||||
{"path": "log/stddev", "type": "float", "readonly": false, "cmd": "run tt", "visibility": 3},
|
||||
{"path": "log/n", "type": "float", "readonly": false, "cmd": "run tt", "visibility": 3},
|
||||
{"path": "dblctrl", "type": "bool", "readonly": false, "cmd": "tt dblctrl", "kids": 9},
|
||||
{"path": "dblctrl/tshift", "type": "float", "readonly": false, "cmd": "tt dblctrl/tshift"},
|
||||
{"path": "dblctrl/mode", "type": "enum", "enum": {"disabled": -1, "inactive": 0, "stable": 1, "up": 2, "down": 3}, "readonly": false, "cmd": "tt dblctrl/mode"},
|
||||
{"path": "dblctrl/shift_up", "type": "float"},
|
||||
{"path": "dblctrl/shift_lo", "type": "float"},
|
||||
{"path": "dblctrl/t_min", "type": "float"},
|
||||
{"path": "dblctrl/t_max", "type": "float"},
|
||||
{"path": "dblctrl/shift_up", "type": "float", "readonly": false, "cmd": "run tt"},
|
||||
{"path": "dblctrl/shift_lo", "type": "float", "readonly": false, "cmd": "run tt"},
|
||||
{"path": "dblctrl/t_min", "type": "float", "readonly": false, "cmd": "run tt"},
|
||||
{"path": "dblctrl/t_max", "type": "float", "readonly": false, "cmd": "run tt"},
|
||||
{"path": "dblctrl/int2", "type": "float", "readonly": false, "cmd": "tt dblctrl/int2"},
|
||||
{"path": "dblctrl/prop_up", "type": "float", "readonly": false, "cmd": "tt dblctrl/prop_up"},
|
||||
{"path": "dblctrl/prop_lo", "type": "float", "readonly": false, "cmd": "tt dblctrl/prop_lo"},
|
||||
{"path": "tm", "type": "float", "kids": 4},
|
||||
{"path": "tm", "type": "float", "readonly": false, "cmd": "run tt", "kids": 4},
|
||||
{"path": "tm/curve", "type": "text", "readonly": false, "cmd": "tt tm/curve", "kids": 1},
|
||||
{"path": "tm/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt tm/curve/points", "visibility": 3},
|
||||
{"path": "tm/alarm", "type": "float", "readonly": false, "cmd": "tt tm/alarm"},
|
||||
{"path": "tm/stddev", "type": "float"},
|
||||
{"path": "tm/raw", "type": "float"},
|
||||
{"path": "ts", "type": "float", "kids": 4},
|
||||
{"path": "tm/stddev", "type": "float", "readonly": false, "cmd": "run tt"},
|
||||
{"path": "tm/raw", "type": "float", "readonly": false, "cmd": "run tt"},
|
||||
{"path": "ts", "type": "float", "readonly": false, "cmd": "run tt", "kids": 4},
|
||||
{"path": "ts/curve", "type": "text", "readonly": false, "cmd": "tt ts/curve", "kids": 1},
|
||||
{"path": "ts/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt ts/curve/points", "visibility": 3},
|
||||
{"path": "ts/alarm", "type": "float", "readonly": false, "cmd": "tt ts/alarm"},
|
||||
{"path": "ts/stddev", "type": "float"},
|
||||
{"path": "ts/raw", "type": "float"},
|
||||
{"path": "ts_2", "type": "float", "visibility": 3, "kids": 4},
|
||||
{"path": "ts_2/curve", "type": "text", "readonly": false, "cmd": "tt ts_2/curve", "visibility": 3, "kids": 1},
|
||||
{"path": "ts/stddev", "type": "float", "readonly": false, "cmd": "run tt"},
|
||||
{"path": "ts/raw", "type": "float", "readonly": false, "cmd": "run tt"},
|
||||
{"path": "ts_2", "type": "float", "readonly": false, "cmd": "run tt", "kids": 4},
|
||||
{"path": "ts_2/curve", "type": "text", "readonly": false, "cmd": "tt ts_2/curve", "kids": 1},
|
||||
{"path": "ts_2/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt ts_2/curve/points", "visibility": 3},
|
||||
{"path": "ts_2/alarm", "type": "float", "readonly": false, "cmd": "tt ts_2/alarm", "visibility": 3},
|
||||
{"path": "ts_2/stddev", "type": "float", "visibility": 3},
|
||||
{"path": "ts_2/raw", "type": "float", "visibility": 3},
|
||||
{"path": "ts_2/alarm", "type": "float", "readonly": false, "cmd": "tt ts_2/alarm"},
|
||||
{"path": "ts_2/stddev", "type": "float", "readonly": false, "cmd": "run tt"},
|
||||
{"path": "ts_2/raw", "type": "float", "readonly": false, "cmd": "run tt"},
|
||||
{"path": "set", "type": "float", "readonly": false, "cmd": "tt set", "kids": 18},
|
||||
{"path": "set/mode", "type": "enum", "enum": {"disabled": -1, "off": 0, "controlling": 1, "manual": 2}, "readonly": false, "cmd": "tt set/mode"},
|
||||
{"path": "set/reg", "type": "float"},
|
||||
{"path": "set/reg", "type": "float", "readonly": false, "cmd": "run tt"},
|
||||
{"path": "set/ramp", "type": "float", "readonly": false, "cmd": "tt set/ramp", "description": "maximum ramp in K/min (0: ramp off)"},
|
||||
{"path": "set/wramp", "type": "float", "readonly": false, "cmd": "tt set/wramp"},
|
||||
{"path": "set/smooth", "type": "float", "readonly": false, "cmd": "tt set/smooth", "description": "smooth time (minutes)"},
|
||||
@@ -53,17 +53,17 @@
|
||||
{"path": "set/resist", "type": "float", "readonly": false, "cmd": "tt set/resist"},
|
||||
{"path": "set/maxheater", "type": "text", "readonly": false, "cmd": "tt set/maxheater", "description": "maximum heater limit, units should be given without space: W, mW, A, mA"},
|
||||
{"path": "set/linearpower", "type": "float", "readonly": false, "cmd": "tt set/linearpower", "description": "when not 0, it is the maximum effective power, and the power is linear to the heater output"},
|
||||
{"path": "set/maxpowerlim", "type": "float", "description": "the maximum power limit (before any booster or converter)"},
|
||||
{"path": "set/maxpowerlim", "type": "float", "readonly": false, "cmd": "run tt", "description": "the maximum power limit (before any booster or converter)"},
|
||||
{"path": "set/maxpower", "type": "float", "readonly": false, "cmd": "tt set/maxpower", "description": "maximum power [W]"},
|
||||
{"path": "set/maxcurrent", "type": "float", "description": "the maximum current before any booster or converter"},
|
||||
{"path": "set/maxcurrent", "type": "float", "readonly": false, "cmd": "run tt", "description": "the maximum current before any booster or converter"},
|
||||
{"path": "set/manualpower", "type": "float", "readonly": false, "cmd": "tt set/manualpower"},
|
||||
{"path": "set/power", "type": "float"},
|
||||
{"path": "set/power", "type": "float", "readonly": false, "cmd": "run tt"},
|
||||
{"path": "set/prop", "type": "float", "readonly": false, "cmd": "tt set/prop", "description": "bigger means more gain"},
|
||||
{"path": "set/integ", "type": "float", "readonly": false, "cmd": "tt set/integ", "description": "bigger means faster"},
|
||||
{"path": "set/deriv", "type": "float", "readonly": false, "cmd": "tt set/deriv"},
|
||||
{"path": "setsamp", "type": "float", "readonly": false, "cmd": "tt setsamp", "kids": 18},
|
||||
{"path": "setsamp/mode", "type": "enum", "enum": {"disabled": -1, "off": 0, "controlling": 1, "manual": 2}, "readonly": false, "cmd": "tt setsamp/mode"},
|
||||
{"path": "setsamp/reg", "type": "float"},
|
||||
{"path": "setsamp/reg", "type": "float", "readonly": false, "cmd": "run tt"},
|
||||
{"path": "setsamp/ramp", "type": "float", "readonly": false, "cmd": "tt setsamp/ramp", "description": "maximum ramp in K/min (0: ramp off)"},
|
||||
{"path": "setsamp/wramp", "type": "float", "readonly": false, "cmd": "tt setsamp/wramp"},
|
||||
{"path": "setsamp/smooth", "type": "float", "readonly": false, "cmd": "tt setsamp/smooth", "description": "smooth time (minutes)"},
|
||||
@@ -72,16 +72,16 @@
|
||||
{"path": "setsamp/resist", "type": "float", "readonly": false, "cmd": "tt setsamp/resist"},
|
||||
{"path": "setsamp/maxheater", "type": "text", "readonly": false, "cmd": "tt setsamp/maxheater", "description": "maximum heater limit, units should be given without space: W, mW, A, mA"},
|
||||
{"path": "setsamp/linearpower", "type": "float", "readonly": false, "cmd": "tt setsamp/linearpower", "description": "when not 0, it is the maximum effective power, and the power is linear to the heater output"},
|
||||
{"path": "setsamp/maxpowerlim", "type": "float", "description": "the maximum power limit (before any booster or converter)"},
|
||||
{"path": "setsamp/maxpowerlim", "type": "float", "readonly": false, "cmd": "run tt", "description": "the maximum power limit (before any booster or converter)"},
|
||||
{"path": "setsamp/maxpower", "type": "float", "readonly": false, "cmd": "tt setsamp/maxpower", "description": "maximum power [W]"},
|
||||
{"path": "setsamp/maxcurrent", "type": "float", "description": "the maximum current before any booster or converter"},
|
||||
{"path": "setsamp/maxcurrent", "type": "float", "readonly": false, "cmd": "run tt", "description": "the maximum current before any booster or converter"},
|
||||
{"path": "setsamp/manualpower", "type": "float", "readonly": false, "cmd": "tt setsamp/manualpower"},
|
||||
{"path": "setsamp/power", "type": "float"},
|
||||
{"path": "setsamp/power", "type": "float", "readonly": false, "cmd": "run tt"},
|
||||
{"path": "setsamp/prop", "type": "float", "readonly": false, "cmd": "tt setsamp/prop", "description": "bigger means more gain"},
|
||||
{"path": "setsamp/integ", "type": "float", "readonly": false, "cmd": "tt setsamp/integ", "description": "bigger means faster"},
|
||||
{"path": "setsamp/deriv", "type": "float", "readonly": false, "cmd": "tt setsamp/deriv"},
|
||||
{"path": "display", "type": "text", "readonly": false, "cmd": "tt display"},
|
||||
{"path": "remote", "type": "bool"}]},
|
||||
{"path": "remote", "type": "bool", "readonly": false, "cmd": "run tt"}]},
|
||||
|
||||
"cc": {"base": "/cc", "params": [
|
||||
{"path": "", "type": "bool", "kids": 96},
|
||||
@@ -108,7 +108,7 @@
|
||||
{"path": "mcr", "type": "float"},
|
||||
{"path": "mot", "type": "float"},
|
||||
{"path": "mw", "type": "float", "readonly": false, "cmd": "cc mw", "description": "correction pulse after automatic open"},
|
||||
{"path": "hav", "type": "enum", "enum": {"none": 0, "int": 1, "ext": 2}, "readonly": false, "cmd": "cc hav"},
|
||||
{"path": "hav", "type": "enum", "type": "enum", "enum": {"none": 0, "int": 1, "ext": 2}, "readonly": false, "cmd": "cc hav"},
|
||||
{"path": "h", "type": "float"},
|
||||
{"path": "hr", "type": "float"},
|
||||
{"path": "hc", "type": "float"},
|
||||
@@ -132,26 +132,26 @@
|
||||
{"path": "hms", "type": "float"},
|
||||
{"path": "hit", "type": "float", "readonly": false, "cmd": "cc hit"},
|
||||
{"path": "hft", "type": "int", "readonly": false, "cmd": "cc hft"},
|
||||
{"path": "hea", "type": "enum", "enum": {"0": 0, "1": 1, "6": 6}, "readonly": false, "cmd": "cc hea"},
|
||||
{"path": "hch", "type": "int", "readonly": false, "cmd": "cc hch"},
|
||||
{"path": "hwr0", "type": "float", "readonly": false, "cmd": "cc hwr0"},
|
||||
{"path": "hem0", "type": "float", "readonly": false, "cmd": "cc hem0", "description": "sensor length in mm from top to empty pos."},
|
||||
{"path": "hfu0", "type": "float", "readonly": false, "cmd": "cc hfu0", "description": "sensor length in mm from top to full pos."},
|
||||
{"path": "hd0", "type": "float", "readonly": false, "cmd": "cc hd0", "description": "external sensor drive current (mA)"},
|
||||
{"path": "h0", "type": "float"},
|
||||
{"path": "hs0", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}},
|
||||
{"path": "h1", "type": "float"},
|
||||
{"path": "hs1", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}},
|
||||
{"path": "h2", "type": "float"},
|
||||
{"path": "hs2", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}},
|
||||
{"path": "h3", "type": "float"},
|
||||
{"path": "hs3", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}},
|
||||
{"path": "h4", "type": "float"},
|
||||
{"path": "hs4", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}},
|
||||
{"path": "h5", "type": "float"},
|
||||
{"path": "hs5", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}},
|
||||
{"path": "hea", "type": "enum", "enum": {"0": 0, "1": 1, "6": 2}, "readonly": false, "cmd": "cc hea"},
|
||||
{"path": "hch", "type": "int", "readonly": false, "cmd": "cc hch", "visibility": 3},
|
||||
{"path": "hwr0", "type": "float", "readonly": false, "cmd": "cc hwr0", "visibility": 3},
|
||||
{"path": "hem0", "type": "float", "readonly": false, "cmd": "cc hem0", "description": "sensor length in mm from top to empty pos.", "visibility": 3},
|
||||
{"path": "hfu0", "type": "float", "readonly": false, "cmd": "cc hfu0", "description": "sensor length in mm from top to full pos.", "visibility": 3},
|
||||
{"path": "hd0", "type": "float", "readonly": false, "cmd": "cc hd0", "description": "external sensor drive current (mA)", "visibility": 3},
|
||||
{"path": "h0", "type": "float", "visibility": 3},
|
||||
{"path": "hs0", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
|
||||
{"path": "h1", "type": "float", "visibility": 3},
|
||||
{"path": "hs1", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
|
||||
{"path": "h2", "type": "float", "visibility": 3},
|
||||
{"path": "hs2", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
|
||||
{"path": "h3", "type": "float", "visibility": 3},
|
||||
{"path": "hs3", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
|
||||
{"path": "h4", "type": "float", "visibility": 3},
|
||||
{"path": "hs4", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
|
||||
{"path": "h5", "type": "float", "visibility": 3},
|
||||
{"path": "hs5", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
|
||||
{"path": "hfb", "type": "float"},
|
||||
{"path": "nav", "type": "bool", "readonly": false, "cmd": "cc nav"},
|
||||
{"path": "nav", "type": "enum", "type": "enum", "enum": {"none": 0, "int": 1, "ext": 2}, "readonly": false, "cmd": "cc nav"},
|
||||
{"path": "nu", "type": "float"},
|
||||
{"path": "nl", "type": "float"},
|
||||
{"path": "nth", "type": "float", "readonly": false, "cmd": "cc nth"},
|
||||
@@ -183,16 +183,15 @@
|
||||
{"path": "bdl", "type": "float", "readonly": false, "cmd": "cc bdl"}]},
|
||||
|
||||
"nv": {"base": "/nv", "params": [
|
||||
{"path": "", "type": "enum", "enum": {"fixed": 0, "controlled": 1, "automatic": 2, "close": 3, "open": 4}, "readonly": false, "cmd": "nv", "kids": 12},
|
||||
{"path": "", "type": "enum", "enum": {"fixed": 0, "controlled": 1, "automatic": 2, "close": 3, "open": 4}, "readonly": false, "cmd": "nv", "kids": 11},
|
||||
{"path": "send", "type": "text", "readonly": false, "cmd": "nv send", "visibility": 3},
|
||||
{"path": "status", "type": "text", "visibility": 3},
|
||||
{"path": "motstat", "type": "enum", "enum": {"idle": 0, "opening": 1, "closing": 2, "opened": 3, "closed": 4, "no_motor": 5}},
|
||||
{"path": "flow", "type": "float"},
|
||||
{"path": "set", "type": "float", "readonly": false, "cmd": "nv set"},
|
||||
{"path": "flowmax", "type": "float", "readonly": false, "cmd": "nv flowmax"},
|
||||
{"path": "flowp", "type": "float", "description": "flow calculated from pressure before pump"},
|
||||
{"path": "flowp", "type": "float"},
|
||||
{"path": "span", "type": "float"},
|
||||
{"path": "use_pressure", "type": "bool", "readonly": false, "cmd": "nv use_pressure", "description": "use pressure instead of flow meter for control"},
|
||||
{"path": "ctrl", "type": "none", "kids": 13},
|
||||
{"path": "ctrl/regtext", "type": "text"},
|
||||
{"path": "ctrl/prop_o", "type": "float", "readonly": false, "cmd": "nv ctrl/prop_o", "description": "prop [sec/mbar] when opening. above 4 mbar a 10 times lower value is used"},
|
||||
@@ -236,34 +235,15 @@
|
||||
{"path": "calib/ln_per_min_per_mbar", "type": "float", "readonly": false, "cmd": "nv calib/ln_per_min_per_mbar"},
|
||||
{"path": "calib/mbar_offset", "type": "float", "readonly": false, "cmd": "nv calib/mbar_offset"}]},
|
||||
|
||||
"hefill": {"base": "/hefill", "params": [
|
||||
{"path": "", "type": "enum", "enum": {"watching": 0, "filling": 1, "inactive": 2, "manualfill": 3}, "readonly": false, "cmd": "hefill", "kids": 16},
|
||||
{"path": "send", "type": "text", "readonly": false, "cmd": "hefill send", "visibility": 3},
|
||||
{"path": "status", "type": "text", "visibility": 3},
|
||||
{"path": "state", "type": "text"},
|
||||
{"path": "readpath", "type": "text", "readonly": false, "cmd": "hefill readpath", "visibility": 3},
|
||||
{"path": "lowlevel", "type": "float", "readonly": false, "cmd": "hefill lowlevel"},
|
||||
{"path": "highlevel", "type": "float", "readonly": false, "cmd": "hefill highlevel"},
|
||||
{"path": "smooth", "type": "float"},
|
||||
{"path": "minfillminutes", "type": "float", "readonly": false, "cmd": "hefill minfillminutes"},
|
||||
{"path": "maxfillminutes", "type": "float", "readonly": false, "cmd": "hefill maxfillminutes"},
|
||||
{"path": "minholdhours", "type": "float", "readonly": false, "cmd": "hefill minholdhours"},
|
||||
{"path": "maxholdhours", "type": "float", "readonly": false, "cmd": "hefill maxholdhours"},
|
||||
{"path": "tolerance", "type": "float", "readonly": false, "cmd": "hefill tolerance"},
|
||||
{"path": "badreadingminutes", "type": "float", "readonly": false, "cmd": "hefill badreadingminutes"},
|
||||
{"path": "tubecoolingminutes", "type": "float", "readonly": false, "cmd": "hefill tubecoolingminutes"},
|
||||
{"path": "vessellimit", "type": "float", "readonly": false, "cmd": "hefill vessellimit"},
|
||||
{"path": "vext", "type": "float"}]},
|
||||
|
||||
"hepump": {"base": "/hepump", "params": [
|
||||
{"path": "", "type": "enum", "enum": {"neodry": 8, "xds35_auto": 0, "xds35_manual": 1, "sv65": 2, "other": 3, "no": -1}, "readonly": false, "cmd": "hepump", "description": "xds35: scroll pump, sv65: leybold", "kids": 10},
|
||||
{"path": "send", "type": "text", "readonly": false, "cmd": "hepump send", "visibility": 3},
|
||||
{"path": "status", "type": "text", "visibility": 3},
|
||||
{"path": "running", "type": "bool", "readonly": false, "cmd": "hepump running"},
|
||||
{"path": "eco", "type": "bool", "readonly": false, "cmd": "hepump eco", "visibility": 3},
|
||||
{"path": "auto", "type": "bool", "readonly": false, "cmd": "hepump auto", "visibility": 3},
|
||||
{"path": "eco", "type": "bool", "readonly": false, "cmd": "hepump eco"},
|
||||
{"path": "auto", "type": "bool", "readonly": false, "cmd": "hepump auto"},
|
||||
{"path": "valve", "type": "enum", "enum": {"closed": 0, "closing": 1, "opening": 2, "opened": 3, "undefined": 4}, "readonly": false, "cmd": "hepump valve"},
|
||||
{"path": "eco_t_lim", "type": "float", "readonly": false, "cmd": "hepump eco_t_lim", "description": "switch off eco mode when T_set < eco_t_lim and T < eco_t_lim * 2", "visibility": 3},
|
||||
{"path": "eco_t_lim", "type": "float", "readonly": false, "cmd": "hepump eco_t_lim", "description": "switch off eco mode when T_set < eco_t_lim and T < eco_t_lim * 2"},
|
||||
{"path": "calib", "type": "float", "readonly": false, "cmd": "hepump calib", "visibility": 3},
|
||||
{"path": "health", "type": "float"}]},
|
||||
|
||||
@@ -311,11 +291,11 @@
|
||||
{"path": "save", "type": "bool", "readonly": false, "cmd": "nvflow save", "description": "unchecked: current calib is not saved. set checked: save calib"}]},
|
||||
|
||||
"ln2fill": {"base": "/ln2fill", "params": [
|
||||
{"path": "", "type": "enum", "enum": {"watching": 0, "filling": 1, "inactive": 2, "manualfill": 3}, "readonly": false, "cmd": "ln2fill", "kids": 14},
|
||||
{"path": "", "type": "enum", "enum": {"watching": 0, "fill": 1, "inactive": 2}, "readonly": false, "cmd": "ln2fill", "kids": 14},
|
||||
{"path": "send", "type": "text", "readonly": false, "cmd": "ln2fill send", "visibility": 3},
|
||||
{"path": "status", "type": "text", "visibility": 3},
|
||||
{"path": "state", "type": "text"},
|
||||
{"path": "readpath", "type": "text", "readonly": false, "cmd": "ln2fill readpath", "visibility": 3},
|
||||
{"path": "readlevel", "type": "text", "readonly": false, "cmd": "ln2fill readlevel", "visibility": 3},
|
||||
{"path": "lowlevel", "type": "float", "readonly": false, "cmd": "ln2fill lowlevel"},
|
||||
{"path": "highlevel", "type": "float", "readonly": false, "cmd": "ln2fill highlevel"},
|
||||
{"path": "smooth", "type": "float"},
|
||||
@@ -327,33 +307,52 @@
|
||||
{"path": "badreadingminutes", "type": "float", "readonly": false, "cmd": "ln2fill badreadingminutes"},
|
||||
{"path": "tubecoolingminutes", "type": "float", "readonly": false, "cmd": "ln2fill tubecoolingminutes"}]},
|
||||
|
||||
"hefill": {"base": "/hefill", "params": [
|
||||
{"path": "", "type": "enum", "enum": {"watching": 0, "fill": 1, "inactive": 2}, "readonly": false, "cmd": "hefill", "kids": 16},
|
||||
{"path": "send", "type": "text", "readonly": false, "cmd": "hefill send", "visibility": 3},
|
||||
{"path": "status", "type": "text", "visibility": 3},
|
||||
{"path": "state", "type": "text"},
|
||||
{"path": "readlevel", "type": "text", "readonly": false, "cmd": "hefill readlevel", "visibility": 3},
|
||||
{"path": "lowlevel", "type": "float", "readonly": false, "cmd": "hefill lowlevel"},
|
||||
{"path": "highlevel", "type": "float", "readonly": false, "cmd": "hefill highlevel"},
|
||||
{"path": "smooth", "type": "float"},
|
||||
{"path": "minfillminutes", "type": "float", "readonly": false, "cmd": "hefill minfillminutes"},
|
||||
{"path": "maxfillminutes", "type": "float", "readonly": false, "cmd": "hefill maxfillminutes"},
|
||||
{"path": "minholdhours", "type": "float", "readonly": false, "cmd": "hefill minholdhours"},
|
||||
{"path": "maxholdhours", "type": "float", "readonly": false, "cmd": "hefill maxholdhours"},
|
||||
{"path": "tolerance", "type": "float", "readonly": false, "cmd": "hefill tolerance"},
|
||||
{"path": "badreadingminutes", "type": "float", "readonly": false, "cmd": "hefill badreadingminutes"},
|
||||
{"path": "tubecoolingminutes", "type": "float", "readonly": false, "cmd": "hefill tubecoolingminutes"},
|
||||
{"path": "vessellimit", "type": "float", "readonly": false, "cmd": "hefill vessellimit"},
|
||||
{"path": "vext", "type": "float"}]},
|
||||
|
||||
"mf": {"base": "/mf", "params": [
|
||||
{"path": "", "type": "float", "readonly": false, "cmd": "run mf", "kids": 26},
|
||||
{"path": "persmode", "type": "int", "readonly": false, "cmd": "mf persmode"},
|
||||
{"path": "perswitch", "type": "int"},
|
||||
{"path": "perswitch", "type": "int", "readonly": false, "cmd": "run mf"},
|
||||
{"path": "nowait", "type": "int", "readonly": false, "cmd": "mf nowait"},
|
||||
{"path": "maxlimit", "type": "float", "visibility": 3},
|
||||
{"path": "maxlimit", "type": "float", "readonly": false, "cmd": "run mf", "visibility": 3},
|
||||
{"path": "limit", "type": "float", "readonly": false, "cmd": "mf limit"},
|
||||
{"path": "ramp", "type": "float", "readonly": false, "cmd": "mf ramp"},
|
||||
{"path": "perscurrent", "type": "float", "readonly": false, "cmd": "mf perscurrent"},
|
||||
{"path": "perslimit", "type": "float", "readonly": false, "cmd": "mf perslimit"},
|
||||
{"path": "perswait", "type": "int", "readonly": false, "cmd": "mf perswait"},
|
||||
{"path": "persdelay", "type": "int", "readonly": false, "cmd": "mf persdelay"},
|
||||
{"path": "current", "type": "float"},
|
||||
{"path": "measured", "type": "float"},
|
||||
{"path": "voltage", "type": "float"},
|
||||
{"path": "lastfield", "type": "float", "visibility": 3},
|
||||
{"path": "ampRamp", "type": "float", "visibility": 3},
|
||||
{"path": "inductance", "type": "float", "visibility": 3},
|
||||
{"path": "current", "type": "float", "readonly": false, "cmd": "run mf"},
|
||||
{"path": "measured", "type": "float", "readonly": false, "cmd": "run mf"},
|
||||
{"path": "voltage", "type": "float", "readonly": false, "cmd": "run mf"},
|
||||
{"path": "lastfield", "type": "float", "readonly": false, "cmd": "run mf", "visibility": 3},
|
||||
{"path": "ampRamp", "type": "float", "readonly": false, "cmd": "run mf", "visibility": 3},
|
||||
{"path": "inductance", "type": "float", "readonly": false, "cmd": "run mf", "visibility": 3},
|
||||
{"path": "trainedTo", "type": "float", "readonly": false, "cmd": "mf trainedTo"},
|
||||
{"path": "trainMode", "type": "int"},
|
||||
{"path": "trainMode", "type": "int", "readonly": false, "cmd": "run mf"},
|
||||
{"path": "external", "type": "int", "readonly": false, "cmd": "mf external"},
|
||||
{"path": "startScript", "type": "text", "readonly": false, "cmd": "mf startScript", "visibility": 3},
|
||||
{"path": "is_running", "type": "int", "readonly": false, "cmd": "mf is_running", "visibility": 3},
|
||||
{"path": "is_running", "type": "int", "readonly": false, "cmd": "run mf", "visibility": 3},
|
||||
{"path": "verbose", "type": "int", "readonly": false, "cmd": "mf verbose", "visibility": 3},
|
||||
{"path": "driver", "type": "text", "visibility": 3},
|
||||
{"path": "creationCmd", "type": "text", "visibility": 3},
|
||||
{"path": "targetValue", "type": "float"},
|
||||
{"path": "driver", "type": "text", "readonly": false, "cmd": "run mf", "visibility": 3},
|
||||
{"path": "creationCmd", "type": "text", "readonly": false, "cmd": "run mf", "visibility": 3},
|
||||
{"path": "targetValue", "type": "float", "readonly": false, "cmd": "run mf"},
|
||||
{"path": "status", "type": "text", "readonly": false, "cmd": "mf status", "visibility": 3}]},
|
||||
|
||||
"lev": {"base": "/lev", "params": [
|
||||
@@ -363,22 +362,7 @@
|
||||
{"path": "mode", "type": "enum", "enum": {"slow": 0, "fast (switches to slow automatically after filling)": 1}, "readonly": false, "cmd": "lev mode"},
|
||||
{"path": "n2", "type": "float"}]},
|
||||
|
||||
"table": {"base": "/table", "params": [
|
||||
{"path": "", "type": "none", "kids": 17},
|
||||
{"path": "send", "type": "text", "readonly": false, "cmd": "table send", "visibility": 3},
|
||||
{"path": "status", "type": "text", "visibility": 3},
|
||||
{"path": "fix_tt_set_prop", "type": "bool", "readonly": false, "cmd": "table fix_tt_set_prop"},
|
||||
{"path": "val_tt_set_prop", "type": "float"},
|
||||
{"path": "tbl_tt_set_prop", "type": "text", "readonly": false, "cmd": "table tbl_tt_set_prop", "description": "enter value pair separated with colon T1:par1 T2:par2 ..."},
|
||||
{"path": "fix_tt_set_integ", "type": "bool", "readonly": false, "cmd": "table fix_tt_set_integ"},
|
||||
{"path": "val_tt_set_integ", "type": "float"},
|
||||
{"path": "tbl_tt_set_integ", "type": "text", "readonly": false, "cmd": "table tbl_tt_set_integ", "description": "enter value pair separated with colon T1:par1 T2:par2 ..."},
|
||||
{"path": "fix_tt_dblctrl_int2", "type": "bool", "readonly": false, "cmd": "table fix_tt_dblctrl_int2"},
|
||||
{"path": "val_tt_dblctrl_int2", "type": "float"},
|
||||
{"path": "tbl_tt_dblctrl_int2", "type": "text", "readonly": false, "cmd": "table tbl_tt_dblctrl_int2", "description": "enter value pair separated with colon T1:par1 T2:par2 ..."},
|
||||
{"path": "fix_tt_dblctrl_prop_up", "type": "bool", "readonly": false, "cmd": "table fix_tt_dblctrl_prop_up"},
|
||||
{"path": "val_tt_dblctrl_prop_up", "type": "float"},
|
||||
{"path": "tbl_tt_dblctrl_prop_up", "type": "text", "readonly": false, "cmd": "table tbl_tt_dblctrl_prop_up", "description": "enter value pair separated with colon T1:par1 T2:par2 ..."},
|
||||
{"path": "fix_tt_dblctrl_prop_lo", "type": "bool", "readonly": false, "cmd": "table fix_tt_dblctrl_prop_lo"},
|
||||
{"path": "val_tt_dblctrl_prop_lo", "type": "float"},
|
||||
{"path": "tbl_tt_dblctrl_prop_lo", "type": "text", "readonly": false, "cmd": "table tbl_tt_dblctrl_prop_lo", "description": "enter value pair separated with colon T1:par1 T2:par2 ..."}]}}
|
||||
"prep0": {"base": "/prep0", "params": [
|
||||
{"path": "", "type": "text", "readonly": false, "cmd": "prep0", "kids": 2},
|
||||
{"path": "send", "type": "text", "readonly": false, "cmd": "prep0 send", "visibility": 3},
|
||||
{"path": "status", "type": "text", "visibility": 3}]}}
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
# pylint: skip-file
|
||||
Node('ccr12',
|
||||
'[sim] CCR12 box of MLZ Sample environment group\n'
|
||||
'\n'
|
||||
'Contains a Lakeshore 336 and an PLC controlling the compressor\n'
|
||||
'and some valves.\n'
|
||||
'\n'
|
||||
'This is an improved version, how we think it should be.\n',
|
||||
'[sim] CCR12 box of MLZ Sample environment group'
|
||||
''
|
||||
'Contains a Lakeshore 336 and an PLC controlling the compressor'
|
||||
'and some valves.'
|
||||
''
|
||||
'This is an improved version, how we think it should be.',
|
||||
'tcp://10767',
|
||||
)
|
||||
|
||||
Mod('T_ccr12',
|
||||
'frappy.simulation.SimDrivable',
|
||||
'Main temperature control node of CCR12.\n'
|
||||
'\n'
|
||||
'Switches between regulation on stick and regulation on tube depending on temperature requested.\n'
|
||||
'May also pump gas for higher temperatures, if configured.\n'
|
||||
'Main temperature control node of CCR12.'
|
||||
''
|
||||
'Switches between regulation on stick and regulation on tube depending on temperature requested.'
|
||||
'May also pump gas for higher temperatures, if configured.'
|
||||
'Manual switching of the regulation node is supported via the regulationmode parameter.',
|
||||
value = Param(default=300,
|
||||
datatype={"type":"double", "min":0, "max":600, "unit":"K"}),
|
||||
|
||||
@@ -54,7 +54,7 @@ Mod('T',
|
||||
'frappy_psi.softcal.Sensor',
|
||||
'temperature sensor, soft calibration',
|
||||
rawsensor='res',
|
||||
calcurve='X132254',
|
||||
calib='X132254',
|
||||
value=Param(
|
||||
unit='K',
|
||||
),
|
||||
|
||||
@@ -16,5 +16,5 @@ Mod('T2',
|
||||
'',
|
||||
value = Param(unit = 'K'),
|
||||
rawsensor = 'r2',
|
||||
calcurve = 'X131346',
|
||||
calib = 'X131346',
|
||||
)
|
||||
|
||||
@@ -43,5 +43,5 @@ Mod('ts',
|
||||
'calibrated value for ts',
|
||||
value = Param(unit = 'K'),
|
||||
rawsensor = 'tsraw',
|
||||
calcurve = 'X133834',
|
||||
calib = 'X133834',
|
||||
)
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
Node('fibrestick.psi.ch',
|
||||
'stick with laser fibre',
|
||||
)
|
||||
|
||||
Mod('sea_stick',
|
||||
'frappy_psi.sea.SeaClient',
|
||||
'SEA stick connection',
|
||||
config='fibre.stick',
|
||||
service='stick',
|
||||
)
|
||||
|
||||
Mod('ts',
|
||||
'frappy_psi.sea.SeaReadable', '',
|
||||
meaning=['temperature', 30],
|
||||
io='sea_stick',
|
||||
sea_object='tt',
|
||||
json_file='ma11.config.json',
|
||||
rel_paths=['ts'],
|
||||
)
|
||||
|
||||
Mod('laser_io',
|
||||
'frappy_psi.pdld.IO',
|
||||
'laser IO',
|
||||
uri='serial:///dev/serial/by-path/pci-0000:00:14.0-usb-0:4.4.4.2:1.0-port0?baudrate=9600',
|
||||
)
|
||||
|
||||
Mod('laser',
|
||||
'frappy_psi.pdld.Laser',
|
||||
'laser switch',
|
||||
io='laser_io',
|
||||
)
|
||||
|
||||
Mod('laser_power',
|
||||
'frappy_psi.pdld.LaserPower',
|
||||
'laser power',
|
||||
io='laser_io',
|
||||
)
|
||||
@@ -38,6 +38,6 @@ Mod('T_sample',
|
||||
output_module='htr_sample',
|
||||
p=1,
|
||||
i=0.01,
|
||||
calcurve='X161269',
|
||||
calib='X161269',
|
||||
value=Param(unit='K'),
|
||||
)
|
||||
|
||||
@@ -9,23 +9,10 @@ Mod('sea_stick',
|
||||
service='stick',
|
||||
)
|
||||
|
||||
Mod('ts_sea',
|
||||
'frappy_psi.sea.SeaReadable',
|
||||
'readable sample stick T',
|
||||
io='sea_stick',
|
||||
json_file='ma7.config.json',
|
||||
sea_object='tt',
|
||||
rel_paths=['ts', 'setsamp'],
|
||||
)
|
||||
|
||||
Mod('ts',
|
||||
'frappy_psi.parmod.Converging',
|
||||
'drivable stick T using setsamp',
|
||||
unit='K',
|
||||
read='ts_sea.value',
|
||||
write='ts_sea.setsamp',
|
||||
meaning=['temperature', 20],
|
||||
settling_time=20,
|
||||
tolerance=1,
|
||||
'frappy_psi.sea.SeaReadable', '',
|
||||
meaning=['temperature', 30],
|
||||
io='sea_stick',
|
||||
sea_path='tt/ts',
|
||||
json_file='ma7.config.json',
|
||||
)
|
||||
|
||||
|
||||
@@ -1,33 +1,3 @@
|
||||
import os
|
||||
|
||||
Node('mb11.stick.sea.psi.ch',
|
||||
'MB11 standard sample stick (do not use)',
|
||||
)
|
||||
|
||||
frappy_main_port = os.environ.get('FRAPPY_MAIN_PORT', 0)
|
||||
|
||||
Mod('itc1_',
|
||||
'frappy.core.Proxy',
|
||||
'itc1 on main frappy server',
|
||||
remote_class = 'frappy_psi.mercury.IO',
|
||||
uri = f'tcp://localhost:{frappy_main_port}',
|
||||
module='itc1',
|
||||
# export = False,
|
||||
)
|
||||
|
||||
|
||||
Mod('T_sample',
|
||||
'frappy_psi.mercury.TemperatureLoop',
|
||||
'T at sample stick sensor',
|
||||
meaning=['temperature', 30],
|
||||
io='itc1_',
|
||||
slot='MB1.T1',
|
||||
)
|
||||
|
||||
Mod('htr_sample',
|
||||
'frappy_psi.mercury.HeaterOutput',
|
||||
'sample stick heater power',
|
||||
slot='MB0.H1',
|
||||
io='itc1_',
|
||||
)
|
||||
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
Node('mspare.stick.sea.psi.ch',
|
||||
'MA generic sample stick',
|
||||
)
|
||||
|
||||
Mod('sea_stick',
|
||||
'frappy_psi.sea.SeaClient',
|
||||
'SEA stick connection',
|
||||
config='mspare.stick',
|
||||
service='stick',
|
||||
)
|
||||
|
||||
Mod('ts',
|
||||
'frappy_psi.sea.SeaReadable',
|
||||
'sample stick temperature',
|
||||
io='sea_stick',
|
||||
json_file='ma6.config.json',
|
||||
sea_object='tt',
|
||||
rel_paths=['ts', 'setsamp'],
|
||||
meaning=['temperature', 30],
|
||||
)
|
||||
|
||||
|
||||
"""
|
||||
Mod('ts',
|
||||
'frappy_psi.parmod.Converging',
|
||||
'drivable stick T using setsamp',
|
||||
meaning=['temperature', 25],
|
||||
unit='K',
|
||||
read='tsam.value',
|
||||
write='tsam.setsamp',
|
||||
settling_time=20,
|
||||
tolerance=1,
|
||||
)
|
||||
"""
|
||||
@@ -1,24 +0,0 @@
|
||||
Node('tcstest.psi.ch',
|
||||
'heater tcs test',
|
||||
'tcp://5000',
|
||||
)
|
||||
|
||||
Mod('io',
|
||||
'frappy_psi.tcs.IO',
|
||||
'tcs communication',
|
||||
uri='linse-leiden-ts:3005',
|
||||
)
|
||||
|
||||
Mod('still_htr',
|
||||
'frappy_psi.tcs.Heater',
|
||||
'still heater',
|
||||
io='io',
|
||||
channel=2,
|
||||
)
|
||||
|
||||
Mod('mix_htr',
|
||||
'frappy_psi.tcs.Heater',
|
||||
'mixing chamber heater',
|
||||
io='io',
|
||||
channel=3,
|
||||
)
|
||||
@@ -1,15 +0,0 @@
|
||||
Node('softcal.function.test',
|
||||
'test the function class',
|
||||
'tcp://5000',
|
||||
)
|
||||
|
||||
Mod('sim_writable',
|
||||
'frappy_demo.test.SimpleWritable',
|
||||
'simulation of a writable for function test',
|
||||
)
|
||||
|
||||
Mod('function',
|
||||
'frappy_psi.softcal.Function',
|
||||
'function test',
|
||||
rawsensor = 'sim_writable',
|
||||
)
|
||||
@@ -1,17 +0,0 @@
|
||||
Node('test_ips.psi.ch',
|
||||
'ips test',
|
||||
'tcp://5000',
|
||||
)
|
||||
|
||||
Mod('io',
|
||||
'frappy_psi.oiclassic.IPS_IO',
|
||||
'',
|
||||
uri='ma11-ts:3002',
|
||||
)
|
||||
|
||||
Mod('B',
|
||||
'frappy_psi.oiclassic.Field',
|
||||
'magnetic field',
|
||||
io='io',
|
||||
target=Param(max=0.2),
|
||||
)
|
||||
@@ -1,81 +0,0 @@
|
||||
Node('thermofischer.psi.ch',
|
||||
'thermofischer_waterbath',
|
||||
'tcp://5000',
|
||||
)
|
||||
|
||||
Mod('wio_1',
|
||||
'frappy_psi.thermofisher.ThermFishIO',
|
||||
'connection for water bath',
|
||||
uri='serial:///dev/ttyUSB0?baudrate=19200', # 3001 = Port 1, 3002 = Port 2 ...
|
||||
)
|
||||
|
||||
Mod('wio_2',
|
||||
'frappy_psi.thermofisher.ThermFishIO',
|
||||
'connection for water bath',
|
||||
uri='serial:///dev/ttyUSB1?baudrate=19200', # 3001 = Port 1, 3002 = Port 2 ...
|
||||
)
|
||||
|
||||
Mod('wio_3',
|
||||
'frappy_psi.thermofisher.ThermFishIO',
|
||||
'connection for water bath',
|
||||
uri='serial:///dev/ttyUSB2?baudrate=19200', # 3001 = Port 1, 3002 = Port 2 ...
|
||||
)
|
||||
|
||||
Mod('Tbath_1',
|
||||
'frappy_psi.thermofisher.TemperatureLoopA10',
|
||||
'water_bath_1',
|
||||
io='wio_1',
|
||||
control_active=0,
|
||||
target=25,
|
||||
tolerance=0.1,
|
||||
settling_time=20,
|
||||
)
|
||||
|
||||
Mod('Tbath_2',
|
||||
'frappy_psi.thermofisher.TemperatureLoopA10',
|
||||
'water_bath_2',
|
||||
io='wio_2',
|
||||
control_active=0,
|
||||
target=25,
|
||||
tolerance=0.1,
|
||||
settling_time=20,
|
||||
)
|
||||
|
||||
Mod('Tbath_3',
|
||||
'frappy_psi.thermofisher.TemperatureLoopA10',
|
||||
'water_bath_3',
|
||||
io='wio_3',
|
||||
control_active=0,
|
||||
target=25,
|
||||
tolerance=0.1,
|
||||
settling_time=20,
|
||||
)
|
||||
|
||||
Mod('valve_1',
|
||||
'frappy_psi.ionopimax.DigitalOutput',
|
||||
'valve_for_fast_water_temperature_changing',
|
||||
addr = 'o1',
|
||||
target = 0,
|
||||
)
|
||||
|
||||
Mod('valve_2',
|
||||
'frappy_psi.ionopimax.DigitalOutput',
|
||||
'valve_for_fast_water_temperature_changing',
|
||||
addr = 'o2',
|
||||
target = 0,
|
||||
)
|
||||
|
||||
Mod('valve_3',
|
||||
'frappy_psi.ionopimax.DigitalOutput',
|
||||
'valve_for_fast_water_temperature_changing',
|
||||
addr = 'o3',
|
||||
target = 0,
|
||||
)
|
||||
|
||||
Mod('temp_sensor_1',
|
||||
'frappy_psi.ionopimax.SimpleVoltageInput',
|
||||
'temperatur_sensor_sample',
|
||||
rawrange = (0.0, 10.0),
|
||||
valuerange = (-40.0, 150.0),
|
||||
addr = 'ai1_mv',
|
||||
)
|
||||
@@ -52,7 +52,7 @@ Mod('T',
|
||||
'frappy_psi.softcal.Sensor',
|
||||
'sample T',
|
||||
rawsensor='res',
|
||||
calcurve='X132254',
|
||||
calib='X132254',
|
||||
value=Param(
|
||||
unit='K',
|
||||
),
|
||||
|
||||
@@ -88,13 +88,16 @@ Mod('interlocks',
|
||||
vacuum_limit = 0.1,
|
||||
)
|
||||
|
||||
Mod('p_io',
|
||||
'frappy_psi.pfeiffer.IO',
|
||||
'pressure io',
|
||||
uri='serial:///dev/ttyUSBlower',
|
||||
)
|
||||
|
||||
Mod('p',
|
||||
'frappy_psi.ionopimax.LogVoltageInput',
|
||||
'frappy_psi.pfeiffer.Pressure',
|
||||
'pressure reading',
|
||||
addr = 'av1',
|
||||
rawrange = (1.8, 8.6),
|
||||
valuerange = (1e-7, 1000),
|
||||
value = Param(unit='mbar'),
|
||||
io = 'p_io',
|
||||
)
|
||||
|
||||
|
||||
|
||||
161
debian/changelog
vendored
161
debian/changelog
vendored
@@ -1,65 +1,4 @@
|
||||
frappy-core (0.20.7) stable; urgency=medium
|
||||
|
||||
* fix debian install
|
||||
|
||||
-- Georg Brandl <jenkins@frm2.tum.de> Fri, 25 Jul 2025 13:22:54 +0200
|
||||
|
||||
frappy-core (0.20.6) stable; urgency=medium
|
||||
|
||||
[ Markus Zolliker ]
|
||||
* config: add 'include' and 'override'
|
||||
* frappy.client.interactive: no pathlib needed here
|
||||
|
||||
[ Georg Brandl ]
|
||||
* install systemd units to /usr/lib
|
||||
|
||||
-- Markus Zolliker <jenkins@frm2.tum.de> Thu, 24 Jul 2025 22:26:02 +0200
|
||||
|
||||
frappy-core (0.20.5) stable; urgency=medium
|
||||
|
||||
[ Markus Zolliker ]
|
||||
* add sim-server again based on socketserver
|
||||
* fix bug when overriding a property with bare value
|
||||
* frappy.server bug fix: server name must not be a list
|
||||
* frappy.server: use server name for SecNode name
|
||||
* frappy.server: remove comment about opts in SecNode/Dispatcher
|
||||
* follow up change for 'better order of accessibles' (34904)
|
||||
* better message when a parameter is overridden by an invalid value
|
||||
* pylint: increase max number of positional arguments
|
||||
* an error on a write must not send an error update
|
||||
* fix bug in change 35001 (better error message)
|
||||
* make UPD listener work when 'tcp://' is omitted on interface
|
||||
* config: do not override equipment_id with name
|
||||
* equipment_id for merged configs and routed nodes
|
||||
* core: alternative approach for optional accessibles
|
||||
* core: simplify test for methods names
|
||||
|
||||
[ Georg Brandl ]
|
||||
* debian: update compat
|
||||
* remove wrong <weight> from fonts on Qt6
|
||||
|
||||
[ Markus Zolliker ]
|
||||
* config: validate value and default of parameters
|
||||
* config: Mod() should return config dict
|
||||
* stop poller threads on shutdown
|
||||
* fix overriding Parameter with value
|
||||
* improve error messages on module creation
|
||||
* make sure unexported modules are initialized
|
||||
* change to new visibility spec
|
||||
* follow-up change to 35931: make Proxy a Module
|
||||
|
||||
[ Konstantin Kholostov ]
|
||||
* installer: add recipe to build macOS app bundle
|
||||
|
||||
[ Markus Zolliker ]
|
||||
* frappy.client.SecopClient: fix setParameterFromString
|
||||
* frappy_psi/ls370res: various bug fixes
|
||||
* client: add SecopClient.execCommandFromString
|
||||
* frappy.client.interactive: improve updates while driving
|
||||
|
||||
-- Markus Zolliker <jenkins@frm2.tum.de> Mon, 12 May 2025 14:03:22 +0200
|
||||
|
||||
frappy-core (0.20.4) stable; urgency=medium
|
||||
frappy-core (0.20.4) jammy; urgency=medium
|
||||
|
||||
[ Georg Brandl ]
|
||||
* remove unused file
|
||||
@@ -78,7 +17,7 @@ frappy-core (0.20.4) stable; urgency=medium
|
||||
|
||||
-- Georg Brandl <jenkins@frm2.tum.de> Thu, 14 Nov 2024 14:43:54 +0100
|
||||
|
||||
frappy-core (0.20.3) stable; urgency=medium
|
||||
frappy-core (0.20.3) jammy; urgency=medium
|
||||
|
||||
[ Georg Brandl ]
|
||||
* fixup test for cfg_editor utils to run from non-checkout, and fix names, and remove example code
|
||||
@@ -88,7 +27,7 @@ frappy-core (0.20.3) stable; urgency=medium
|
||||
|
||||
-- Georg Brandl <jenkins@frm2.tum.de> Thu, 07 Nov 2024 10:57:11 +0100
|
||||
|
||||
frappy-core (0.20.2) stable; urgency=medium
|
||||
frappy-core (0.20.2) jammy; urgency=medium
|
||||
|
||||
[ Georg Brandl ]
|
||||
* pylint: do not try to infer too much
|
||||
@@ -134,7 +73,7 @@ frappy-core (0.20.2) stable; urgency=medium
|
||||
|
||||
-- Georg Brandl <jenkins@frm2.tum.de> Wed, 06 Nov 2024 10:40:26 +0100
|
||||
|
||||
frappy-core (0.20.1) stable; urgency=medium
|
||||
frappy-core (0.20.1) jammy; urgency=medium
|
||||
|
||||
* gui: do not add a console logger when there is no sys.stdout
|
||||
* remove unused test class
|
||||
@@ -144,7 +83,7 @@ frappy-core (0.20.1) stable; urgency=medium
|
||||
|
||||
-- Georg Brandl <jenkins@frm2.tum.de> Thu, 17 Oct 2024 16:31:27 +0200
|
||||
|
||||
frappy-core (0.20.0) stable; urgency=medium
|
||||
frappy-core (0.20.0) jammy; urgency=medium
|
||||
|
||||
[ Alexander Zaft ]
|
||||
* bin: remove make_doc
|
||||
@@ -189,7 +128,7 @@ frappy-core (0.20.0) stable; urgency=medium
|
||||
|
||||
-- Alexander Zaft <jenkins@frm2.tum.de> Thu, 17 Oct 2024 14:24:29 +0200
|
||||
|
||||
frappy-core (0.19.10) stable; urgency=medium
|
||||
frappy-core (0.19.10) jammy; urgency=medium
|
||||
|
||||
[ Alexander Zaft ]
|
||||
* debian: let frappy-core replace frappy-demo
|
||||
@@ -199,25 +138,25 @@ frappy-core (0.19.10) stable; urgency=medium
|
||||
|
||||
-- Alexander Zaft <jenkins@frm2.tum.de> Wed, 07 Aug 2024 17:00:06 +0200
|
||||
|
||||
frappy-core (0.19.9) stable; urgency=medium
|
||||
frappy-core (0.19.9) jammy; urgency=medium
|
||||
|
||||
* debian: fix missing install dir
|
||||
|
||||
-- Georg Brandl <jenkins@frm2.tum.de> Tue, 06 Aug 2024 16:02:50 +0200
|
||||
|
||||
frappy-core (0.19.8) stable; urgency=medium
|
||||
frappy-core (0.19.8) jammy; urgency=medium
|
||||
|
||||
* debian: move demo into core
|
||||
|
||||
-- Georg Brandl <jenkins@frm2.tum.de> Tue, 06 Aug 2024 15:58:20 +0200
|
||||
|
||||
frappy-core (0.19.7) stable; urgency=medium
|
||||
frappy-core (0.19.7) jammy; urgency=medium
|
||||
|
||||
* lib: GeneralConfig fix missing keys logic
|
||||
|
||||
-- Alexander Zaft <jenkins@frm2.tum.de> Tue, 06 Aug 2024 15:04:07 +0200
|
||||
|
||||
frappy-core (0.19.6) stable; urgency=medium
|
||||
frappy-core (0.19.6) jammy; urgency=medium
|
||||
|
||||
[ Jens Krüger ]
|
||||
* SINQ/SEA: Fix import error due to None value
|
||||
@@ -231,7 +170,7 @@ frappy-core (0.19.6) stable; urgency=medium
|
||||
|
||||
-- Jens Krüger <jenkins@frm2.tum.de> Tue, 06 Aug 2024 13:56:51 +0200
|
||||
|
||||
frappy-core (0.19.5) stable; urgency=medium
|
||||
frappy-core (0.19.5) jammy; urgency=medium
|
||||
|
||||
* client: fix how to raise error on wrong ident
|
||||
* add missing requirements to setup.py
|
||||
@@ -240,13 +179,13 @@ frappy-core (0.19.5) stable; urgency=medium
|
||||
|
||||
-- Alexander Zaft <jenkins@frm2.tum.de> Mon, 05 Aug 2024 09:30:53 +0200
|
||||
|
||||
frappy-core (0.19.4) stable; urgency=medium
|
||||
frappy-core (0.19.4) jammy; urgency=medium
|
||||
|
||||
* actually exclude cfg-editor
|
||||
|
||||
-- Georg Brandl <jenkins@frm2.tum.de> Fri, 26 Jul 2024 11:46:10 +0200
|
||||
|
||||
frappy-core (0.19.3) stable; urgency=medium
|
||||
frappy-core (0.19.3) jammy; urgency=medium
|
||||
|
||||
[ Markus Zolliker ]
|
||||
* frappy_psi.extparams.StructParam: fix doc + simplify
|
||||
@@ -266,7 +205,7 @@ frappy-core (0.19.3) stable; urgency=medium
|
||||
|
||||
-- Markus Zolliker <jenkins@frm2.tum.de> Fri, 26 Jul 2024 08:36:43 +0200
|
||||
|
||||
frappy-core (0.19.2) stable; urgency=medium
|
||||
frappy-core (0.19.2) jammy; urgency=medium
|
||||
|
||||
[ l_samenv ]
|
||||
* fix missing update after error on parameter
|
||||
@@ -291,7 +230,7 @@ frappy-core (0.19.2) stable; urgency=medium
|
||||
|
||||
-- l_samenv <jenkins@frm2.tum.de> Tue, 18 Jun 2024 15:21:43 +0200
|
||||
|
||||
frappy-core (0.19.1) stable; urgency=medium
|
||||
frappy-core (0.19.1) jammy; urgency=medium
|
||||
|
||||
[ Markus Zolliker ]
|
||||
* SecopClient.online must be True while activating
|
||||
@@ -303,7 +242,7 @@ frappy-core (0.19.1) stable; urgency=medium
|
||||
|
||||
-- Markus Zolliker <jenkins@frm2.tum.de> Fri, 07 Jun 2024 16:50:33 +0200
|
||||
|
||||
frappy-core (0.19.0) stable; urgency=medium
|
||||
frappy-core (0.19.0) jammy; urgency=medium
|
||||
|
||||
[ Markus Zolliker ]
|
||||
* simulation: extra_params might be a list
|
||||
@@ -359,14 +298,14 @@ frappy-core (0.19.0) stable; urgency=medium
|
||||
|
||||
-- Markus Zolliker <jenkins@frm2.tum.de> Thu, 16 May 2024 11:31:25 +0200
|
||||
|
||||
frappy-core (0.18.1) stable; urgency=medium
|
||||
frappy-core (0.18.1) focal; urgency=medium
|
||||
|
||||
* mlz: Zapf fix unit handling and small errors
|
||||
* mlz: entangle fix limit check
|
||||
|
||||
-- Alexander Zaft <jenkins@frm2.tum.de> Wed, 24 Jan 2024 14:59:21 +0100
|
||||
|
||||
frappy-core (0.18.0) stable; urgency=medium
|
||||
frappy-core (0.18.0) focal; urgency=medium
|
||||
|
||||
[ Alexander Zaft ]
|
||||
* Add shutdownModule function
|
||||
@@ -477,7 +416,7 @@ frappy-core (0.18.0) stable; urgency=medium
|
||||
|
||||
-- Alexander Zaft <jenkins@frm2.tum.de> Wed, 17 Jan 2024 12:35:00 +0100
|
||||
|
||||
frappy-core (0.17.13) stable; urgency=medium
|
||||
frappy-core (0.17.13) focal; urgency=medium
|
||||
|
||||
[ Alexander Zaft ]
|
||||
* add egg-info to gitignore
|
||||
@@ -498,7 +437,7 @@ frappy-core (0.17.13) stable; urgency=medium
|
||||
|
||||
-- Alexander Zaft <jenkins@frm2.tum.de> Tue, 20 Jun 2023 14:38:00 +0200
|
||||
|
||||
frappy-core (0.17.12) stable; urgency=medium
|
||||
frappy-core (0.17.12) focal; urgency=medium
|
||||
|
||||
[ Alexander Zaft ]
|
||||
* Warn about duplicate module definitions in a file
|
||||
@@ -523,7 +462,7 @@ frappy-core (0.17.12) stable; urgency=medium
|
||||
|
||||
-- Alexander Zaft <jenkins@frm2.tum.de> Tue, 13 Jun 2023 06:51:27 +0200
|
||||
|
||||
frappy-core (0.17.11) stable; urgency=medium
|
||||
frappy-core (0.17.11) focal; urgency=medium
|
||||
|
||||
[ Alexander Zaft ]
|
||||
* Add __format__ to EnumMember
|
||||
@@ -596,7 +535,7 @@ frappy-core (0.17.11) stable; urgency=medium
|
||||
|
||||
-- Alexander Zaft <jenkins@frm2.tum.de> Thu, 25 May 2023 09:38:24 +0200
|
||||
|
||||
frappy-core (0.17.10) stable; urgency=medium
|
||||
frappy-core (0.17.10) focal; urgency=medium
|
||||
|
||||
* Change leftover %-logging calls to lazy
|
||||
* Convert formatting automatically to f-strings
|
||||
@@ -608,25 +547,25 @@ frappy-core (0.17.10) stable; urgency=medium
|
||||
|
||||
-- Alexander Zaft <jenkins@frm2.tum.de> Wed, 19 Apr 2023 14:32:52 +0200
|
||||
|
||||
frappy-core (0.17.9) stable; urgency=medium
|
||||
frappy-core (0.17.9) focal; urgency=medium
|
||||
|
||||
* interactive client: avoid messing up the input line
|
||||
|
||||
-- Markus Zolliker <jenkins@frm2.tum.de> Tue, 11 Apr 2023 16:09:03 +0200
|
||||
|
||||
frappy-core (0.17.8) stable; urgency=medium
|
||||
frappy-core (0.17.8) focal; urgency=medium
|
||||
|
||||
* Debian: Fix typo
|
||||
|
||||
-- Jens Krüger <jenkins@frm2.tum.de> Wed, 05 Apr 2023 07:20:25 +0200
|
||||
|
||||
frappy-core (0.17.7) stable; urgency=medium
|
||||
frappy-core (0.17.7) focal; urgency=medium
|
||||
|
||||
* Debian: add pyqtgraph dependency
|
||||
|
||||
-- Jens Krüger <jenkins@frm2.tum.de> Wed, 05 Apr 2023 07:07:24 +0200
|
||||
|
||||
frappy-core (0.17.6) stable; urgency=medium
|
||||
frappy-core (0.17.6) focal; urgency=medium
|
||||
|
||||
[ Alexander Zaft ]
|
||||
* gui: show parameter properties again
|
||||
@@ -646,25 +585,25 @@ frappy-core (0.17.6) stable; urgency=medium
|
||||
|
||||
-- Alexander Zaft <jenkins@frm2.tum.de> Tue, 04 Apr 2023 08:42:26 +0200
|
||||
|
||||
frappy-core (0.17.5) stable; urgency=medium
|
||||
frappy-core (0.17.5) focal; urgency=medium
|
||||
|
||||
* Fix generator
|
||||
|
||||
-- Alexander Zaft <jenkins@frm2.tum.de> Wed, 22 Mar 2023 12:32:06 +0100
|
||||
|
||||
frappy-core (0.17.4) stable; urgency=medium
|
||||
frappy-core (0.17.4) focal; urgency=medium
|
||||
|
||||
* Fix entangle integration bugs
|
||||
|
||||
-- Alexander Zaft <jenkins@frm2.tum.de> Wed, 22 Mar 2023 11:44:34 +0100
|
||||
|
||||
frappy-core (0.17.3) stable; urgency=medium
|
||||
frappy-core (0.17.3) focal; urgency=medium
|
||||
|
||||
* UNRELEASED
|
||||
|
||||
-- Alexander Zaft <jenkins@frm2.tum.de> Tue, 21 Mar 2023 15:55:09 +0100
|
||||
|
||||
frappy-core (0.17.2) stable; urgency=medium
|
||||
frappy-core (0.17.2) focal; urgency=medium
|
||||
|
||||
[ Alexander Zaft ]
|
||||
* Fix Simulation and Proxy
|
||||
@@ -801,7 +740,7 @@ frappy-core (0.17.2) stable; urgency=medium
|
||||
|
||||
-- Alexander Zaft <jenkins@frm2.tum.de> Tue, 21 Mar 2023 15:49:06 +0100
|
||||
|
||||
frappy-core (0.17.1) stable; urgency=medium
|
||||
frappy-core (0.17.1) focal; urgency=medium
|
||||
|
||||
[ Georg Brandl ]
|
||||
* gitignore: ignore demo PID file
|
||||
@@ -820,7 +759,7 @@ frappy-core (0.17.1) stable; urgency=medium
|
||||
|
||||
-- Georg Brandl <jenkins@frm2.tum.de> Tue, 21 Feb 2023 17:44:56 +0100
|
||||
|
||||
frappy-core (0.17.0) stable; urgency=medium
|
||||
frappy-core (0.17.0) focal; urgency=medium
|
||||
|
||||
[ Alexander Zaft ]
|
||||
* Rework GUI.
|
||||
@@ -831,37 +770,37 @@ frappy-core (0.17.0) stable; urgency=medium
|
||||
|
||||
-- Alexander Zaft <jenkins@frm2.tum.de> Tue, 21 Feb 2023 13:52:17 +0100
|
||||
|
||||
frappy-core (0.16.1) stable; urgency=medium
|
||||
frappy-core (0.16.1) focal; urgency=medium
|
||||
|
||||
* UNRELEASED
|
||||
|
||||
-- Georg Brandl <jenkins@frm2.tum.de> Tue, 21 Feb 2023 08:44:28 +0100
|
||||
|
||||
frappy-core (0.16.4) stable; urgency=medium
|
||||
frappy-core (0.16.4) focal; urgency=medium
|
||||
|
||||
* UNRELEASED
|
||||
|
||||
-- Georg Brandl <jenkins@frm2.tum.de> Tue, 21 Feb 2023 08:09:20 +0100
|
||||
|
||||
frappy-core (0.16.3) stable; urgency=medium
|
||||
frappy-core (0.16.3) focal; urgency=medium
|
||||
|
||||
* UNRELEASED
|
||||
|
||||
-- Georg Brandl <jenkins@frm2.tum.de> Tue, 21 Feb 2023 08:00:15 +0100
|
||||
|
||||
frappy-core (0.16.2) stable; urgency=medium
|
||||
frappy-core (0.16.2) focal; urgency=medium
|
||||
|
||||
* gui: move icon resources for the cfg editor to its subdirectory
|
||||
|
||||
-- Georg Brandl <jenkins@frm2.tum.de> Tue, 21 Feb 2023 07:50:13 +0100
|
||||
|
||||
frappy-core (0.16.1) stable; urgency=medium
|
||||
frappy-core (0.16.1) focal; urgency=medium
|
||||
|
||||
* add frappy-cli to package
|
||||
|
||||
-- Enrico Faulhaber <jenkins@frm2.tum.de> Mon, 20 Feb 2023 17:17:23 +0100
|
||||
|
||||
frappy-core (0.16.0) stable; urgency=medium
|
||||
frappy-core (0.16.0) focal; urgency=medium
|
||||
|
||||
[ Enrico Faulhaber ]
|
||||
* fix sorce package name
|
||||
@@ -923,7 +862,7 @@ frappy-core (0.16.0) stable; urgency=medium
|
||||
|
||||
-- Enrico Faulhaber <jenkins@frm2.tum.de> Mon, 20 Feb 2023 16:15:10 +0100
|
||||
|
||||
frappy-core (0.15.0) stable; urgency=medium
|
||||
frappy-core (0.15.0) focal; urgency=medium
|
||||
|
||||
[ Björn Pedersen ]
|
||||
* Remove iohandler left-overs from docs
|
||||
@@ -953,7 +892,7 @@ frappy-core (0.15.0) stable; urgency=medium
|
||||
|
||||
-- Björn Pedersen <jenkins@frm2.tum.de> Thu, 10 Nov 2022 14:46:01 +0100
|
||||
|
||||
secop-core (0.14.3) stable; urgency=medium
|
||||
secop-core (0.14.3) focal; urgency=medium
|
||||
|
||||
[ Enrico Faulhaber ]
|
||||
* change repo to secop/frappy
|
||||
@@ -969,13 +908,13 @@ secop-core (0.14.3) stable; urgency=medium
|
||||
|
||||
-- Enrico Faulhaber <jenkins@frm2.tum.de> Thu, 03 Nov 2022 13:51:52 +0100
|
||||
|
||||
secop-core (0.14.2) stable; urgency=medium
|
||||
secop-core (0.14.2) focal; urgency=medium
|
||||
|
||||
* systemd generator: adapt to changed config API
|
||||
|
||||
-- Georg Brandl <jenkins@frm2.tum.de> Thu, 20 Oct 2022 15:38:45 +0200
|
||||
|
||||
secop-core (0.14.1) stable; urgency=medium
|
||||
secop-core (0.14.1) focal; urgency=medium
|
||||
|
||||
[ Markus Zolliker ]
|
||||
* secop_psi.entangle.AnalogInput: fix main value
|
||||
@@ -987,7 +926,7 @@ secop-core (0.14.1) stable; urgency=medium
|
||||
|
||||
-- Markus Zolliker <jenkins@frm2.tum.de> Thu, 20 Oct 2022 14:04:07 +0200
|
||||
|
||||
secop-core (0.14.0) stable; urgency=medium
|
||||
secop-core (0.14.0) focal; urgency=medium
|
||||
|
||||
* add simple interactive python client
|
||||
* fix undefined status in softcal
|
||||
@@ -1001,7 +940,7 @@ secop-core (0.14.0) stable; urgency=medium
|
||||
|
||||
-- Markus Zolliker <jenkins@frm2.tum.de> Wed, 19 Oct 2022 11:31:50 +0200
|
||||
|
||||
secop-core (0.13.1) stable; urgency=medium
|
||||
secop-core (0.13.1) focal; urgency=medium
|
||||
|
||||
[ Markus Zolliker ]
|
||||
* an enum with value 0 should be interpreted as False
|
||||
@@ -1012,7 +951,7 @@ secop-core (0.13.1) stable; urgency=medium
|
||||
|
||||
-- Markus Zolliker <jenkins@jenkins02.admin.frm2.tum.de> Tue, 02 Aug 2022 15:31:52 +0200
|
||||
|
||||
secop-core (0.13.0) stable; urgency=medium
|
||||
secop-core (0.13.0) focal; urgency=medium
|
||||
|
||||
[ Georg Brandl ]
|
||||
* debian: fix email addresses in changelog
|
||||
@@ -1075,13 +1014,13 @@ secop-core (0.13.0) stable; urgency=medium
|
||||
|
||||
-- Georg Brandl <jenkins@frm2.tum.de> Tue, 02 Aug 2022 09:47:06 +0200
|
||||
|
||||
secop-core (0.12.4) stable; urgency=medium
|
||||
secop-core (0.12.4) focal; urgency=medium
|
||||
|
||||
* fix command inheritance
|
||||
|
||||
-- Markus Zolliker <jenkins@jenkins01.admin.frm2.tum.de> Thu, 11 Nov 2021 16:21:19 +0100
|
||||
|
||||
secop-core (0.12.3) stable; urgency=medium
|
||||
secop-core (0.12.3) focal; urgency=medium
|
||||
|
||||
[ Georg Brandl ]
|
||||
* Makefile: fix docker image
|
||||
@@ -1104,7 +1043,7 @@ secop-core (0.12.3) stable; urgency=medium
|
||||
|
||||
-- Georg Brandl <jenkins@jenkins01.admin.frm2.tum.de> Wed, 10 Nov 2021 16:33:19 +0100
|
||||
|
||||
secop-core (0.12.2) stable; urgency=medium
|
||||
secop-core (0.12.2) focal; urgency=medium
|
||||
|
||||
[ Markus Zolliker ]
|
||||
* fix issue with new syntax in simulation
|
||||
@@ -1116,13 +1055,13 @@ secop-core (0.12.2) stable; urgency=medium
|
||||
|
||||
-- Markus Zolliker <jenkins@jenkins01.admin.frm2.tum.de> Tue, 18 May 2021 10:29:17 +0200
|
||||
|
||||
secop-core (0.12.1) stable; urgency=medium
|
||||
secop-core (0.12.1) focal; urgency=medium
|
||||
|
||||
* remove secop-console from debian *.install file
|
||||
|
||||
-- Enrico Faulhaber <jenkins@jenkins02.admin.frm2.tum.de> Tue, 04 May 2021 09:42:53 +0200
|
||||
|
||||
secop-core (0.12.0) stable; urgency=medium
|
||||
secop-core (0.12.0) focal; urgency=medium
|
||||
|
||||
[ Markus Zolliker ]
|
||||
* make datatypes immutable
|
||||
|
||||
1
debian/compat
vendored
Normal file
1
debian/compat
vendored
Normal file
@@ -0,0 +1 @@
|
||||
11
|
||||
5
debian/control
vendored
5
debian/control
vendored
@@ -2,13 +2,14 @@ Source: frappy-core
|
||||
Section: contrib/misc
|
||||
Priority: optional
|
||||
Maintainer: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
|
||||
Build-Depends: debhelper-compat (= 13),
|
||||
Build-Depends: debhelper (>= 11~),
|
||||
dh-python,
|
||||
python3 (>=3.6),
|
||||
python3-all,
|
||||
python3-setuptools,
|
||||
python3-docutils,
|
||||
python3-sphinx,
|
||||
python3-sip-dev,
|
||||
python3-pyqt5,
|
||||
python3-mlzlog,
|
||||
python3-numpy,
|
||||
@@ -19,7 +20,7 @@ Build-Depends: debhelper-compat (= 13),
|
||||
git,
|
||||
markdown,
|
||||
python3-daemon
|
||||
Standards-Version: 4.6.2
|
||||
Standards-Version: 4.1.4
|
||||
X-Python3-Version: >= 3.6
|
||||
|
||||
Package: frappy-core
|
||||
|
||||
4
debian/frappy-core.install
vendored
4
debian/frappy-core.install
vendored
@@ -10,6 +10,6 @@ usr/lib/python3.*/dist-packages/frappy/protocol
|
||||
usr/lib/python3.*/dist-packages/frappy_core-*
|
||||
usr/lib/python3.*/dist-packages/frappy/RELEASE-VERSION
|
||||
usr/lib/python3.*/dist-packages/frappy_demo
|
||||
usr/lib/systemd
|
||||
lib/systemd
|
||||
var/log/frappy
|
||||
etc/generalConfig.cfg etc/frappy
|
||||
etc/frappy/generalConfig.cfg
|
||||
|
||||
16
debian/rules
vendored
16
debian/rules
vendored
@@ -1,13 +1,19 @@
|
||||
#!/usr/bin/make -f
|
||||
# -*- makefile -*-
|
||||
|
||||
# Uncomment this to turn on verbose mode.
|
||||
#export DH_VERBOSE=1
|
||||
|
||||
# needed for bookworm compatibility!
|
||||
override_dh_installsystemd:
|
||||
ln -s usr/lib debian/frappy-core/lib
|
||||
dh_installsystemd
|
||||
rm debian/frappy-core/lib
|
||||
export PYBUILD_NAME=frappy
|
||||
export PYBUILD_TEST_PYTEST=1
|
||||
|
||||
override_dh_install:
|
||||
rmdir debian/tmp
|
||||
mv debian/python3-frappy debian/tmp
|
||||
|
||||
install -m644 -Dt debian/tmp/etc/frappy etc/generalConfig.cfg
|
||||
dh_install -i -O--buildsystem=pybuild
|
||||
dh_missing --fail-missing
|
||||
|
||||
%:
|
||||
dh $@ --with python3 --buildsystem=pybuild
|
||||
|
||||
@@ -35,7 +35,7 @@ def main():
|
||||
generalConfig.init()
|
||||
config_dir = generalConfig['confdir']
|
||||
|
||||
frappy_unit = '/usr/lib/systemd/system/frappy@.service'
|
||||
frappy_unit = '/lib/systemd/system/frappy@.service'
|
||||
wants_dir = normal_dir + '/frappy.target.wants'
|
||||
|
||||
all_servers = [base[:-4] if base.endswith('_cfg') else base for (base, ext) in
|
||||
|
||||
@@ -1,75 +0,0 @@
|
||||
# *****************************************************************************
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the Free Software Foundation, Inc.,
|
||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
# Module authors:
|
||||
# Markus Zolliker <markus.zolliker@psi.ch>
|
||||
#
|
||||
# *****************************************************************************
|
||||
|
||||
from frappy.core import Parameter, Property
|
||||
from frappy.datatypes import ValueType
|
||||
|
||||
|
||||
class AddrParam(Parameter):
|
||||
"""parameter with an address field
|
||||
|
||||
instead of implementing read_<param> and write_<param>, just implement
|
||||
addressed_read and addressed_write.
|
||||
"""
|
||||
addr = Property('address', ValueType())
|
||||
|
||||
|
||||
class AddrMixin:
|
||||
"""mixin for addressed parameters
|
||||
|
||||
in case a read_<param> and/or write_<param> are not implemented,
|
||||
they are created with a call to addressed_read and/or addressed_write
|
||||
"""
|
||||
def __init_subclass__(cls):
|
||||
for aname, aobj in list(cls.__dict__.items()):
|
||||
if isinstance(aobj, AddrParam):
|
||||
methodname = f'read_{aname}'
|
||||
|
||||
if not hasattr(cls, methodname):
|
||||
def rfunc(self, pname=aname):
|
||||
return self.addressed_read(self.accessibles[pname])
|
||||
|
||||
setattr(cls, methodname, rfunc)
|
||||
|
||||
if not aobj.readonly:
|
||||
methodname = f'write_{aname}'
|
||||
if not hasattr(cls, methodname):
|
||||
def wfunc(self, value, pname=aname):
|
||||
return self.addressed_write(self.accessibles[pname], value)
|
||||
|
||||
setattr(cls, methodname, wfunc)
|
||||
super().__init_subclass__()
|
||||
|
||||
def addressed_read(self, pobj):
|
||||
"""addressed read
|
||||
|
||||
:param pobj: the AddrParam
|
||||
:return: the value read
|
||||
"""
|
||||
return getattr(self, pobj.name)
|
||||
|
||||
def addressed_write(self, pobj, value):
|
||||
"""addressed write
|
||||
|
||||
:param pobj: the AddrParam
|
||||
:param value: the value to be written
|
||||
:return: the value written or None
|
||||
"""
|
||||
@@ -1,131 +0,0 @@
|
||||
# *****************************************************************************
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the Free Software Foundation, Inc.,
|
||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
# Module authors:
|
||||
# Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
|
||||
# Markus Zolliker <markus.zolliker@psi.ch>
|
||||
# Alexander Zaft <a.zaft@fz-juelich.de>
|
||||
#
|
||||
# *****************************************************************************
|
||||
|
||||
from frappy.errors import ConfigError
|
||||
from frappy.modulebase import Module
|
||||
from frappy.datatypes import StringType, ValueType
|
||||
from frappy.properties import Property
|
||||
|
||||
|
||||
class Attached(Property):
|
||||
"""a special property, defining an attached module
|
||||
|
||||
assign a module name to this property in the cfg file,
|
||||
and the server will create an attribute with this module
|
||||
|
||||
When mandatory is set to False, and there is no value or an empty string
|
||||
given in the config file, the value of the attribute will be None.
|
||||
"""
|
||||
def __init__(self, basecls=Module, description='attached module', mandatory=True):
|
||||
self.basecls = basecls
|
||||
super().__init__(description, StringType(), mandatory=mandatory)
|
||||
|
||||
def __get__(self, obj, owner):
|
||||
if obj is None:
|
||||
return self
|
||||
modobj = obj.attachedModules.get(self.name)
|
||||
if not modobj:
|
||||
modulename = super().__get__(obj, owner)
|
||||
if not modulename:
|
||||
return None # happens when mandatory=False and modulename is not given
|
||||
modobj = obj.secNode.get_module(modulename)
|
||||
if not modobj:
|
||||
raise ConfigError(f'attached module {self.name}={modulename!r} '
|
||||
f'does not exist')
|
||||
if not isinstance(modobj, self.basecls):
|
||||
raise ConfigError(f'attached module {self.name}={modobj.name!r} '
|
||||
f'must inherit from {self.basecls.__qualname__!r}')
|
||||
obj.attachedModules[self.name] = modobj
|
||||
return modobj
|
||||
|
||||
def copy(self):
|
||||
return Attached(self.basecls, self.description, self.mandatory)
|
||||
|
||||
|
||||
class DictWithFlag(dict):
|
||||
flag = False
|
||||
|
||||
|
||||
class AttachDictType(ValueType):
|
||||
"""a custom datatype for a dict <key> of names or modules"""
|
||||
def __init__(self):
|
||||
super().__init__(DictWithFlag)
|
||||
|
||||
def copy(self):
|
||||
return AttachDictType()
|
||||
|
||||
def export_value(self, value):
|
||||
"""export either names or the name attribute
|
||||
|
||||
to treat bare names and modules the same
|
||||
"""
|
||||
return {k: getattr(v, 'name', v) for k, v in value.items()}
|
||||
|
||||
|
||||
class AttachedDict(Property):
|
||||
def __init__(self, description='attached modules', elements=None, optional=None, basecls=None,
|
||||
**kwds):
|
||||
"""a mapping of attached modules
|
||||
|
||||
:param elements: None or a dict <key> of <basecls> for mandatory elements
|
||||
:param optional: None or a dict <key> of <basecls> for optional elements
|
||||
:param basecls: None or a base class for arbitrary keys
|
||||
if not given, only keys given in parameters 'elements' and 'optional' are allowed
|
||||
:param description: the property description
|
||||
|
||||
<key> might also be a number or any other immutable
|
||||
"""
|
||||
self.elements = elements or {}
|
||||
self.basecls = basecls
|
||||
self.baseclasses = {**self.elements, **(optional or {})}
|
||||
super().__init__(description, AttachDictType(), default={}, **kwds)
|
||||
|
||||
def __get__(self, obj, owner):
|
||||
if obj is None:
|
||||
return self
|
||||
attach_dict = super().__get__(obj, owner) or DictWithFlag({})
|
||||
if attach_dict.flag:
|
||||
return attach_dict
|
||||
|
||||
for key, modulename in attach_dict.items():
|
||||
basecls = self.baseclasses.get(key, self.basecls)
|
||||
if basecls is None:
|
||||
raise ConfigError(f'unknown key {key!r} for attached modules {self.name}')
|
||||
modobj = obj.secNode.get_module(modulename)
|
||||
if modobj is None:
|
||||
raise ConfigError(f'attached modules {self.name}: '
|
||||
f'{key}={modulename!r} does not exist')
|
||||
if not isinstance(modobj, basecls):
|
||||
raise ConfigError(f'attached modules {self.name}: '
|
||||
f'module {key}={modulename!r} must inherit '
|
||||
f'from {basecls.__qualname__!r}')
|
||||
obj.attachedModules[self.name, key] = attach_dict[key] = modobj
|
||||
missing_keys = set(self.elements) - set(attach_dict)
|
||||
if missing_keys:
|
||||
raise ConfigError(f'attached modules {self.name}: '
|
||||
f"missing {', '.join(missing_keys)} ")
|
||||
attach_dict.flag = True
|
||||
return attach_dict
|
||||
|
||||
def copy(self):
|
||||
return AttachedDict(self.elements, self.baseclasses, self.basecls, self.description)
|
||||
@@ -209,20 +209,16 @@ class ProxyClient:
|
||||
# caches (module, parameter) = value, timestamp, readerror (internal names!)
|
||||
self.cache = Cache() # dict returning Cache.undefined for missing keys
|
||||
|
||||
def register_callback(self, key, *args, callimmediately=True, **kwds):
|
||||
def register_callback(self, key, *args, callimmediately=None, **kwds):
|
||||
"""register callback functions
|
||||
|
||||
several callbacks might be registered within one call.
|
||||
ProxyClient.CALLBACK_NAMES contains all names of valid callbacks
|
||||
|
||||
:param key: might be either:
|
||||
- key might be either:
|
||||
1) None: general callback (all callbacks)
|
||||
2) <module name>: callbacks related to a module (not called for 'unhandledMessage')
|
||||
3) (<module name>, <parameter name>): callback for specified parameter
|
||||
(only called for 'updateEvent' and 'updateItem')
|
||||
:param args: callback functions. the callback name is taken from the the __name__ attribute of the function
|
||||
:param callimmediately: True (default): call immediately for updateItem and updateEvent callbacks
|
||||
:param kwds: callback functions. the callback name is taken from the key
|
||||
3) (<module name>, <parameter name>): callback for specified parameter (only called for 'updateEvent')
|
||||
- all the following arguments are callback functions. The callback name may be
|
||||
given by the keyword, or, for non-keyworded arguments it is taken from the
|
||||
__name__ attribute of the function
|
||||
"""
|
||||
for cbfunc in args:
|
||||
kwds[cbfunc.__name__] = cbfunc
|
||||
@@ -230,8 +226,8 @@ class ProxyClient:
|
||||
if cbname not in self.CALLBACK_NAMES:
|
||||
raise TypeError(f"unknown callback: {', '.join(kwds)}")
|
||||
|
||||
# call immediately for some callback types
|
||||
if cbname in ('updateItem', 'updateEvent') and callimmediately:
|
||||
# immediately call for some callback types
|
||||
if cbname in ('updateItem', 'updateEvent') and callimmediately is not False:
|
||||
if key is None: # case generic callback
|
||||
cbargs = [(m, p, d) for (m, p), d in self.cache.items()]
|
||||
else:
|
||||
@@ -738,7 +734,7 @@ class SecopClient(ProxyClient):
|
||||
"""
|
||||
self.connect() # make sure we are connected
|
||||
datatype = self.modules[module]['parameters'][parameter]['datatype']
|
||||
value = datatype.export_value(datatype.from_string(formatted))
|
||||
value = datatype.from_string(formatted)
|
||||
self.request(WRITEREQUEST, self.identifier[module, parameter], value)
|
||||
return self.cache[module, parameter]
|
||||
|
||||
@@ -757,28 +753,6 @@ class SecopClient(ProxyClient):
|
||||
data = datatype.import_value(data)
|
||||
return data, qualifiers
|
||||
|
||||
def execCommandFromString(self, module, command, formatted_argument=''):
|
||||
"""call command from string argument
|
||||
|
||||
return data as CacheItem which allows to get
|
||||
- result.value # the python value
|
||||
- result.formatted() # a string (incl. units)
|
||||
- result.timestamp
|
||||
"""
|
||||
self.connect()
|
||||
datatype = self.modules[module]['commands'][command]['datatype'].argument
|
||||
if datatype:
|
||||
argument = datatype.from_string(formatted_argument)
|
||||
else:
|
||||
if formatted_argument:
|
||||
raise WrongTypeError('command has no argument')
|
||||
argument = None
|
||||
# pylint: disable=unsubscriptable-object
|
||||
data, qualifiers = self.request(COMMANDREQUEST, self.identifier[module, command], argument)[2]
|
||||
datatype = self.modules[module]['commands'][command]['datatype'].result
|
||||
value = datatype.import_value(data) if datatype else None
|
||||
return CacheItem(value, qualifiers.get('t'), None, datatype)
|
||||
|
||||
def updateValue(self, module, param, value, timestamp, readerror):
|
||||
datatype = self.modules[module]['parameters'][param]['datatype']
|
||||
if readerror:
|
||||
|
||||
@@ -29,7 +29,7 @@ import os
|
||||
import traceback
|
||||
import threading
|
||||
import logging
|
||||
from pathlib import Path
|
||||
from os.path import expanduser
|
||||
from frappy.lib import delayed_import
|
||||
from frappy.client import SecopClient, UnregisterCallback
|
||||
from frappy.errors import SECoPError
|
||||
@@ -64,8 +64,6 @@ LOG_LEVELS = {
|
||||
'off': logging.ERROR+1}
|
||||
CLR = '\r\x1b[K' # code to move to the left and clear current line
|
||||
|
||||
UNDEF = object()
|
||||
|
||||
|
||||
class Handler(logging.StreamHandler):
|
||||
def emit(self, record):
|
||||
@@ -145,7 +143,7 @@ class Module:
|
||||
def _isBusy(self):
|
||||
return self.status[0] // 100 == StatusType.BUSY // 100
|
||||
|
||||
def _status_update(self, m, p, status, t, e):
|
||||
def _status_value_update(self, m, p, status, t, e):
|
||||
if self._is_driving and not self._isBusy():
|
||||
self._is_driving = False
|
||||
self._driving_event.set()
|
||||
@@ -215,24 +213,15 @@ class Module:
|
||||
clientenv.raise_with_short_traceback(error)
|
||||
return value
|
||||
|
||||
def __call__(self, target=UNDEF):
|
||||
if target is UNDEF:
|
||||
def __call__(self, target=None):
|
||||
if target is None:
|
||||
return self.read()
|
||||
watch_params = ['value', 'status']
|
||||
for pname in watch_params:
|
||||
for pname in 'value', 'status':
|
||||
self._secnode.register_callback((self._name, pname),
|
||||
updateEvent=self._watch_parameter,
|
||||
callimmediately=False)
|
||||
callimmediately=False,
|
||||
updateEvent=self._watch_parameter)
|
||||
|
||||
if 'go' in self._commands:
|
||||
if 'goal' in self._parameters and target is not None:
|
||||
self.goal_enable = True
|
||||
self.goal = target
|
||||
if 'target' in self._parameters:
|
||||
self.target = target
|
||||
self.go()
|
||||
elif 'target' in self._parameters:
|
||||
self.target = target # this sets self._is_driving
|
||||
self.target = target # this sets self._is_driving
|
||||
|
||||
def loop():
|
||||
while self._is_driving:
|
||||
@@ -240,12 +229,9 @@ class Module:
|
||||
self._driving_event.clear()
|
||||
try:
|
||||
loop()
|
||||
except KeyboardInterrupt:
|
||||
except KeyboardInterrupt as e:
|
||||
self._secnode.log.info('-- interrupted --')
|
||||
try:
|
||||
self.stop()
|
||||
except Exception as e:
|
||||
print(f'while stopping: {e!r}')
|
||||
self.stop()
|
||||
try:
|
||||
loop() # wait for stopping to be finished
|
||||
except KeyboardInterrupt:
|
||||
@@ -253,10 +239,11 @@ class Module:
|
||||
pass
|
||||
clientenv.raise_with_short_traceback(e)
|
||||
finally:
|
||||
# self._watch_parameter(self._name, 'status')
|
||||
self._secnode.readParameter(self._name, 'value')
|
||||
for pname in watch_params:
|
||||
self._secnode.unregister_callback(
|
||||
(self._name, pname), updateEvent=self._watch_parameter)
|
||||
# self._watch_parameter(self._name, 'value', forced=True)
|
||||
self._secnode.unregister_callback((self._name, 'value'), updateEvent=self._watch_parameter)
|
||||
self._secnode.unregister_callback((self._name, 'status'), updateEvent=self._watch_parameter)
|
||||
return self.value
|
||||
|
||||
def __repr__(self):
|
||||
@@ -310,8 +297,6 @@ class Param:
|
||||
|
||||
|
||||
class Command:
|
||||
_obj = None
|
||||
|
||||
def __init__(self, name, modname, secnode):
|
||||
self.name = name
|
||||
self.modname = modname
|
||||
@@ -326,14 +311,11 @@ class Command:
|
||||
result, _ = self.exec(self.modname, self.name, *args)
|
||||
else:
|
||||
result, _ = self.exec(self.modname, self.name, args or None)
|
||||
if self.name == 'go' and self._obj:
|
||||
self._obj._is_driving = self._obj._isBusy()
|
||||
return result
|
||||
|
||||
def __get__(self, obj, owner=None):
|
||||
if obj is None:
|
||||
return self
|
||||
self._obj = obj
|
||||
return self.call
|
||||
|
||||
|
||||
@@ -436,7 +418,8 @@ class Client(SecopClient):
|
||||
attrs[cname] = Command(cname, modname, self)
|
||||
mobj = type(f'M_{modname}', (Module,), attrs)(modname, self)
|
||||
if 'status' in mobj._parameters:
|
||||
self.register_callback((modname, 'status'), updateEvent=mobj._status_update)
|
||||
self.register_callback((modname, 'status'), updateEvent=mobj._status_value_update)
|
||||
self.register_callback((modname, 'value'), updateEvent=mobj._status_value_update)
|
||||
clientenv.namespace[modname] = mobj
|
||||
if removed_modules:
|
||||
self.log.info('removed modules: %s', ' '.join(removed_modules))
|
||||
@@ -467,7 +450,7 @@ def run(filepath):
|
||||
"__file__": filepath,
|
||||
"__name__": "__main__",
|
||||
})
|
||||
with open(filepath, 'rb') as file:
|
||||
with filepath.open('rb') as file:
|
||||
# pylint: disable=exec-used
|
||||
exec(compile(file.read(), filepath, 'exec'), clientenv.namespace, None)
|
||||
|
||||
@@ -515,7 +498,7 @@ class Console(code.InteractiveConsole):
|
||||
history = None
|
||||
if readline:
|
||||
try:
|
||||
history = Path(f'~/.local/state/frappy-{name}-history').expanduser()
|
||||
history = expanduser(f'~/.config/frappy/{name}-history')
|
||||
readline.read_history_file(history)
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
@@ -523,7 +506,6 @@ class Console(code.InteractiveConsole):
|
||||
self.interact('', '')
|
||||
finally:
|
||||
if history:
|
||||
history.parent.mkdir(mode=0o700, parents=True, exist_ok=True)
|
||||
readline.write_history_file(history)
|
||||
|
||||
def raw_input(self, prompt=""):
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user