Rename from secop to frappy
debian/ is still missing, will follow in next commit. Fixes: #4626 Change-Id: Ia87c28c1c75b8402eedbfca47f888585a7881f44
22
Makefile
@ -4,11 +4,15 @@
|
||||
all: clean doc
|
||||
|
||||
demo:
|
||||
@bin/secop-server -q demo &
|
||||
@bin/secop-server -q test &
|
||||
@bin/secop-server -q cryo &
|
||||
@bin/secop-gui localhost:10767 localhost:10768 localhost:10769
|
||||
@ps aux|grep [s]ecop-server|awk '{print $$2}'|xargs kill
|
||||
# Make spawns a new shell for each command.
|
||||
# Save each PID in temporary file
|
||||
@rm -f frappydemo.PID || true
|
||||
@{ bin/frappy-server -q demo & echo $$! >> frappydemo.PID; }
|
||||
@{ bin/frappy-server -q test & echo $$! >> frappydemo.PID; }
|
||||
@{ bin/frappy-server -q cryo & echo $$! >> frappydemo.PID; }
|
||||
@bin/frappy-gui localhost:10767 localhost:10768 localhost:10769
|
||||
@cat frappydemo.PID | xargs kill || true
|
||||
@rm frappydemo.PID
|
||||
|
||||
build:
|
||||
python3 setup.py build
|
||||
@ -32,18 +36,18 @@ test-verbose:
|
||||
python3 $(shell which pytest) -v test -s
|
||||
|
||||
test-coverage:
|
||||
python3 $(shell which pytest) -v test --cov=secop
|
||||
python3 $(shell which pytest) -v test --cov=frappy
|
||||
|
||||
doc:
|
||||
$(MAKE) -C doc html
|
||||
|
||||
lint:
|
||||
pylint -f colorized -r n --rcfile=.pylintrc secop secop_* test
|
||||
pylint -f colorized -r n --rcfile=.pylintrc frappy frappy_* test
|
||||
|
||||
isort:
|
||||
@find test -name '*.py' -print0 | xargs -0 isort -e -m 2 -w 80 -ns __init__.py
|
||||
@find secop -name '*.py' -print0 | xargs -0 isort -e -m 2 -w 80 -ns __init__.py
|
||||
@find . -wholename './secop_*.py' -print0 | xargs -0 isort -e -m 2 -w 80 -ns __init__.py
|
||||
@find frappy -name '*.py' -print0 | xargs -0 isort -e -m 2 -w 80 -ns __init__.py
|
||||
@find . -wholename './frappy_*.py' -print0 | xargs -0 isort -e -m 2 -w 80 -ns __init__.py
|
||||
|
||||
release-patch:
|
||||
MODE="patch" $(MAKE) release
|
||||
|
@ -29,8 +29,8 @@ from os import path
|
||||
# Add import path for inplace usage
|
||||
sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..')))
|
||||
|
||||
from secop.gui.qt import QApplication
|
||||
from secop.gui.cfg_editor.mainwindow import MainWindow
|
||||
from frappy.gui.qt import QApplication
|
||||
from frappy.gui.cfg_editor.mainwindow import MainWindow
|
||||
|
||||
|
||||
def main(argv=None):
|
@ -33,8 +33,8 @@ sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..')))
|
||||
|
||||
import mlzlog
|
||||
|
||||
from secop.gui.qt import QApplication
|
||||
from secop.gui.mainwindow import MainWindow
|
||||
from frappy.gui.qt import QApplication
|
||||
from frappy.gui.mainwindow import MainWindow
|
||||
|
||||
|
||||
def main(argv=None):
|
||||
@ -42,7 +42,7 @@ def main(argv=None):
|
||||
argv = sys.argv
|
||||
|
||||
if '-h' in argv or '--help' in argv:
|
||||
print("Usage: secop-gui [-d] [-h] [host:[port]]")
|
||||
print("Usage: frappy-gui [-d] [-h] [host:[port]]")
|
||||
print()
|
||||
print("Option GNU long option Meaning")
|
||||
print("-h --help Show this message")
|
@ -30,9 +30,9 @@ from os import path
|
||||
# Add import path for inplace usage
|
||||
sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..')))
|
||||
|
||||
from secop.lib import generalConfig
|
||||
from secop.logging import logger
|
||||
from secop.server import Server
|
||||
from frappy.lib import generalConfig
|
||||
from frappy.logging import logger
|
||||
from frappy.server import Server
|
||||
|
||||
|
||||
def parseArgv(argv):
|
@ -42,7 +42,7 @@ import ast
|
||||
# Add import path for inplace usage
|
||||
sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..')))
|
||||
|
||||
from secop.lib import get_class, formatException
|
||||
from frappy.lib import get_class, formatException
|
||||
|
||||
class LineHandler(asyncore.dispatcher_with_send):
|
||||
|
||||
@ -136,7 +136,7 @@ for arg in sys.argv[1:]:
|
||||
pass
|
||||
opts[k] = v
|
||||
verbose = opts.pop('verbose', False)
|
||||
opts['cls'] = 'secop_psi.ls370sim.Ls370Sim'
|
||||
opts['cls'] = 'frappy_psi.ls370sim.Ls370Sim'
|
||||
opts['port'] = 4567
|
||||
if len(args) > 2:
|
||||
raise ValueError('do not know about: %s' % ' '.join(args[2:]))
|
||||
|
@ -7,11 +7,11 @@ bindto = 0.0.0.0
|
||||
bindport = 5000
|
||||
|
||||
[module cap]
|
||||
class = secop_psi.ah2700.Capacitance
|
||||
class = frappy_psi.ah2700.Capacitance
|
||||
description = capacitance
|
||||
uri=ldmse3-ts:3015
|
||||
|
||||
#[module ahcom]
|
||||
#class = secop_psi.ah2700.StringIO
|
||||
#class = frappy_psi.ah2700.StringIO
|
||||
#uri=ldmse3-ts:3015
|
||||
#description = serial communicator to an AH2700
|
||||
|
@ -19,7 +19,7 @@ bindto=0.0.0.0
|
||||
bindport=10767
|
||||
|
||||
[module enable]
|
||||
class=secop_mlz.entangle.NamedDigitalOutput
|
||||
class=frappy_mlz.entangle.NamedDigitalOutput
|
||||
tangodevice='tango://localhost:10000/box/plc/_enable'
|
||||
value.datatype=["enum", {'On':1,'Off':0}]
|
||||
target.datatype=["enum", {'On':1,'Off':0}]
|
||||
@ -27,7 +27,7 @@ target.datatype=["enum", {'On':1,'Off':0}]
|
||||
.visibility='advanced'
|
||||
|
||||
[module polarity]
|
||||
class=secop_mlz.entangle.NamedDigitalOutput
|
||||
class=frappy_mlz.entangle.NamedDigitalOutput
|
||||
tangodevice=tango://localhost:10000/box/plc/_polarity
|
||||
value.datatype=["enum", {'+1':1,'0':0,'-1':-1}]
|
||||
target.datatype=["enum", {'+1':1,'0':0,'-1':-1}]
|
||||
@ -41,7 +41,7 @@ comtries=50
|
||||
|
||||
|
||||
[module symmetry]
|
||||
class=secop_mlz.entangle.NamedDigitalOutput
|
||||
class=frappy_mlz.entangle.NamedDigitalOutput
|
||||
tangodevice=tango://localhost:10000/box/plc/_symmetric
|
||||
value.datatype=["enum",{'symmetric':1,'short':0, 'asymmetric':-1}]
|
||||
target.datatype=["enum",{'symmetric':1,'short':0, 'asymmetric':-1}]
|
||||
@ -51,35 +51,35 @@ target.datatype=["enum",{'symmetric':1,'short':0, 'asymmetric':-1}]
|
||||
.visibility=advanced
|
||||
|
||||
[module T1]
|
||||
class=secop_mlz.entangle.AnalogInput
|
||||
class=frappy_mlz.entangle.AnalogInput
|
||||
tangodevice=tango://localhost:10000/box/plc/_t1
|
||||
.description=Temperature1 of the coils system
|
||||
#warnlimits=(0, 50)
|
||||
value.unit='degC'
|
||||
|
||||
[module T2]
|
||||
class=secop_mlz.entangle.AnalogInput
|
||||
class=frappy_mlz.entangle.AnalogInput
|
||||
tangodevice=tango://localhost:10000/box/plc/_t2
|
||||
.description=Temperature2 of the coils system
|
||||
#warnlimits=(0, 50)
|
||||
value.unit='degC'
|
||||
|
||||
[module T3]
|
||||
class=secop_mlz.entangle.AnalogInput
|
||||
class=frappy_mlz.entangle.AnalogInput
|
||||
tangodevice=tango://localhost:10000/box/plc/_t3
|
||||
.description=Temperature3 of the coils system
|
||||
#warnlimits=(0, 50)
|
||||
value.unit='degC'
|
||||
|
||||
[module T4]
|
||||
class=secop_mlz.entangle.AnalogInput
|
||||
class=frappy_mlz.entangle.AnalogInput
|
||||
tangodevice=tango://localhost:10000/box/plc/_t4
|
||||
.description=Temperature4 of the coils system
|
||||
#warnlimits=(0, 50)
|
||||
value.unit='degC'
|
||||
|
||||
[module currentsource]
|
||||
class=secop_mlz.entangle.PowerSupply
|
||||
class=frappy_mlz.entangle.PowerSupply
|
||||
tangodevice=tango://localhost:10000/box/lambda/curr
|
||||
.description=Device for the magnet power supply (current mode)
|
||||
abslimits=(0,200)
|
||||
@ -92,7 +92,7 @@ voltage=10
|
||||
.visibility=advanced
|
||||
|
||||
[module mf]
|
||||
class=secop_mlz.amagnet.GarfieldMagnet
|
||||
class=frappy_mlz.amagnet.GarfieldMagnet
|
||||
.description=magnetic field module, handling polarity switching and stuff
|
||||
subdev_currentsource=currentsource
|
||||
subdev_enable=enable
|
||||
|
32
cfg/ccr.cfg
@ -11,7 +11,7 @@ bindto=0.0.0.0
|
||||
bindport=10767
|
||||
|
||||
[module automatik]
|
||||
class=secop_mlz.entangle.NamedDigitalOutput
|
||||
class=frappy_mlz.entangle.NamedDigitalOutput
|
||||
tangodevice=tango://localhost:10000/box/plc/_automatik
|
||||
mapping=dict(Off=0,p1=1,p2=2)
|
||||
description="controls the (simple) pressure regulation
|
||||
@ -19,13 +19,13 @@ description="controls the (simple) pressure regulation
|
||||
selects between off, regulate on p1 or regulate on p2 sensor"
|
||||
|
||||
[module compressor]
|
||||
class=secop_mlz.entangle.NamedDigitalOutput
|
||||
class=frappy_mlz.entangle.NamedDigitalOutput
|
||||
tangodevice=tango://localhost:10000/box/plc/_cooler_onoff
|
||||
mapping=dict(Off=0,On=1)
|
||||
description=control the compressor (on/off)
|
||||
|
||||
[module gas]
|
||||
class=secop_mlz.entangle.NamedDigitalOutput
|
||||
class=frappy_mlz.entangle.NamedDigitalOutput
|
||||
tangodevice=tango://localhost:10000/box/plc/_gas_onoff
|
||||
mapping=dict(Off=0,On=1)
|
||||
description=control the gas inlet into the ccr (on/off)
|
||||
@ -35,7 +35,7 @@ description=control the gas inlet into the ccr (on/off)
|
||||
note: if the pressure regulation is active, it enslave this device
|
||||
|
||||
[module vacuum]
|
||||
class=secop_mlz.entangle.NamedDigitalOutput
|
||||
class=frappy_mlz.entangle.NamedDigitalOutput
|
||||
tangodevice=tango://localhost:10000/box/plc/_vacuum_Onoff
|
||||
mapping=dict(Off=0,On=1)
|
||||
description=control the vacuum inlet into the ccr (on/off)
|
||||
@ -44,19 +44,19 @@ description=control the vacuum inlet into the ccr (on/off)
|
||||
note: if the pressure regulation is active, it enslave this device
|
||||
|
||||
[module p1]
|
||||
class=secop_mlz.entangle.AnalogInput
|
||||
class=frappy_mlz.entangle.AnalogInput
|
||||
tangodevice=tango://localhost:10000/box/plc/_p1
|
||||
value.unit='mbar'
|
||||
description=pressure sensor 1 (linear scale)
|
||||
|
||||
[module p2]
|
||||
class=secop_mlz.entangle.AnalogInput
|
||||
class=frappy_mlz.entangle.AnalogInput
|
||||
tangodevice=tango://localhost:10000/box/plc/_p2
|
||||
value.unit='mbar'
|
||||
description=pressure sensor 2 (selectable curve)
|
||||
|
||||
[module curve_p2]
|
||||
class=secop_mlz.entangle.NamedDigitalInput
|
||||
class=frappy_mlz.entangle.NamedDigitalInput
|
||||
tangodevice=tango://localhost:10000/box/plc/_curve
|
||||
value.default=0
|
||||
description=calibration curve for pressure sensor 2
|
||||
@ -71,25 +71,25 @@ mapping="{'0-10V':0, '0-1000mbar':1, '1-9V to 0-1 mbar':2,
|
||||
|
||||
# sensors
|
||||
[module T_sample]
|
||||
class=secop_mlz.entangle.Sensor
|
||||
class=frappy_mlz.entangle.Sensor
|
||||
tangodevice=tango://localhost:10000/box/sample/sensora
|
||||
value.unit='K'
|
||||
description=sample temperature
|
||||
|
||||
[module T_stick]
|
||||
class=secop_mlz.entangle.Sensor
|
||||
class=frappy_mlz.entangle.Sensor
|
||||
tangodevice=tango://localhost:10000/box/stick/sensorb
|
||||
value.unit='K'
|
||||
description=temperature at bottom of sample stick
|
||||
|
||||
[module T_coldhead]
|
||||
class=secop_mlz.entangle.Sensor
|
||||
class=frappy_mlz.entangle.Sensor
|
||||
tangodevice=tango://localhost:10000/box/coldhead/sensorc
|
||||
value.unit='K'
|
||||
description=temperature at coldhead
|
||||
|
||||
[module T_tube]
|
||||
class=secop_mlz.entangle.Sensor
|
||||
class=frappy_mlz.entangle.Sensor
|
||||
tangodevice=tango://localhost:10000/box/tube/sensord
|
||||
value.unit='K'
|
||||
description=temperature at thermal coupling tube <-> stick
|
||||
@ -98,7 +98,7 @@ description=temperature at thermal coupling tube <-> stick
|
||||
# regulations
|
||||
|
||||
[module T_stick_regulation]
|
||||
class=secop_mlz.entangle.TemperatureController
|
||||
class=frappy_mlz.entangle.TemperatureController
|
||||
tangodevice=tango://localhost:10000/box/stick/control2
|
||||
heateroutput.default=0
|
||||
description=regulation of stick temperature
|
||||
@ -114,7 +114,7 @@ value.unit='K'
|
||||
|
||||
# OMG! a NamedDigitalOutput, but with float'ints' 0..3
|
||||
[module T_stick_regulation_heaterrange]
|
||||
class=secop_mlz.entangle.AnalogOutput
|
||||
class=frappy_mlz.entangle.AnalogOutput
|
||||
tangodevice=tango://localhost:10000/box/stick/range2
|
||||
precision.default=1
|
||||
abslimits=(0,3)
|
||||
@ -122,7 +122,7 @@ description=heaterrange for stick regulation
|
||||
|
||||
|
||||
[module T_tube_regulation]
|
||||
class=secop_mlz.entangle.TemperatureController
|
||||
class=frappy_mlz.entangle.TemperatureController
|
||||
tangodevice=tango://localhost:10000/box/tube/control1
|
||||
description=regulation of tube temperature
|
||||
heateroutput.default=0
|
||||
@ -138,13 +138,13 @@ value.unit='K'
|
||||
|
||||
# OMG! a NamedDigitalOutput, but with float'ints' 0..3
|
||||
#[module T_tube_regulation_heaterrange]
|
||||
#class=secop_mlz.entangle.AnalogOutput
|
||||
#class=frappy_mlz.entangle.AnalogOutput
|
||||
#tangodevice=tango://localhost:10000/box/tube/range1
|
||||
#precision.default=1
|
||||
#abslimits=(0,3)
|
||||
|
||||
[module T_tube_regulation_heaterrange]
|
||||
class=secop_mlz.entangle.NamedDigitalOutput
|
||||
class=frappy_mlz.entangle.NamedDigitalOutput
|
||||
tangodevice=tango://localhost:10000/box/tube/range1
|
||||
mapping=dict(Off=0, Low=1, Medium=2, High=3)
|
||||
description=heaterrange for tube regulation
|
||||
|
@ -17,7 +17,7 @@ bindport=10769
|
||||
and a temperature dependend heat-link between sample and regulation.
|
||||
|
||||
# class of module:
|
||||
class=secop_demo.cryo.Cryostat
|
||||
class=frappy_demo.cryo.Cryostat
|
||||
|
||||
# some parameters
|
||||
jitter=0.1
|
||||
|
12
cfg/demo.cfg
@ -6,18 +6,18 @@ bindto=0.0.0.0
|
||||
bindport=10767
|
||||
|
||||
[module heatswitch]
|
||||
class=secop_demo.modules.Switch
|
||||
class=frappy_demo.modules.Switch
|
||||
switch_on_time=5
|
||||
switch_off_time=10
|
||||
.description="Heatswitch for `mf` device"
|
||||
|
||||
[module mf]
|
||||
class=secop_demo.modules.MagneticField
|
||||
class=frappy_demo.modules.MagneticField
|
||||
heatswitch = heatswitch
|
||||
.description="simulates some cryomagnet with persistent/non-persistent switching"
|
||||
|
||||
[module ts]
|
||||
class=secop_demo.modules.SampleTemp
|
||||
class=frappy_demo.modules.SampleTemp
|
||||
sensor = 'Q1329V7R3'
|
||||
ramp = 4
|
||||
target = 10
|
||||
@ -25,17 +25,17 @@ value = 10
|
||||
.description = "some temperature"
|
||||
|
||||
[module tc1]
|
||||
class=secop_demo.modules.CoilTemp
|
||||
class=frappy_demo.modules.CoilTemp
|
||||
sensor="X34598T7"
|
||||
.description = "some temperature"
|
||||
|
||||
[module tc2]
|
||||
class=secop_demo.modules.CoilTemp
|
||||
class=frappy_demo.modules.CoilTemp
|
||||
sensor="X39284Q8'
|
||||
.description = "some temperature"
|
||||
|
||||
[module label]
|
||||
class=secop_demo.modules.Label
|
||||
class=frappy_demo.modules.Label
|
||||
system=Cryomagnet MX15
|
||||
subdev_mf=mf
|
||||
subdev_ts=ts
|
||||
|
@ -7,23 +7,23 @@ bindto=0.0.0.0
|
||||
bindport=10767
|
||||
|
||||
[module tc1]
|
||||
class=secop_demo.modules.CoilTemp
|
||||
class=frappy_demo.modules.CoilTemp
|
||||
sensor="X34598T7"
|
||||
|
||||
[module tc2]
|
||||
class=secop_demo.modules.CoilTemp
|
||||
class=frappy_demo.modules.CoilTemp
|
||||
sensor="X39284Q8'
|
||||
|
||||
|
||||
[module sensor1]
|
||||
class=secop_ess.epics.EpicsReadable
|
||||
class=frappy_ess.epics.EpicsReadable
|
||||
epics_version="v4"
|
||||
.group="Lakeshore336"
|
||||
value_pv="DEV:KRDG1"
|
||||
|
||||
|
||||
[module loop1]
|
||||
class=secop_ess.epics.EpicsTempCtrl
|
||||
class=frappy_ess.epics.EpicsTempCtrl
|
||||
epics_version="v4"
|
||||
.group="Lakeshore336"
|
||||
|
||||
@ -33,14 +33,14 @@ heaterrange_pv="DEV:RANGE_S1"
|
||||
|
||||
|
||||
[module sensor2]
|
||||
class=secop_ess.epics.EpicsReadable
|
||||
class=frappy_ess.epics.EpicsReadable
|
||||
epics_version="v4"
|
||||
.group="Lakeshore336"
|
||||
value_pv="DEV:KRDG2"
|
||||
|
||||
|
||||
[module loop2]
|
||||
class=secop_ess.epics.EpicsTempCtrl
|
||||
class=frappy_ess.epics.EpicsTempCtrl
|
||||
epics_version="v4"
|
||||
.group="Lakeshore336"
|
||||
|
||||
|
@ -6,23 +6,23 @@ description = Lsc Simulation at PSI
|
||||
uri = tcp://5000
|
||||
|
||||
[lscom]
|
||||
class = secop_psi.ls370sim.Ls370Sim
|
||||
class = frappy_psi.ls370sim.Ls370Sim
|
||||
description = simulated serial communicator to a LS 370
|
||||
visibility = 3
|
||||
|
||||
[sw]
|
||||
class = secop_psi.ls370res.Switcher
|
||||
class = frappy_psi.ls370res.Switcher
|
||||
description = channel switcher for Lsc controller
|
||||
io = lscom
|
||||
|
||||
[a]
|
||||
class = secop_psi.ls370res.ResChannel
|
||||
class = frappy_psi.ls370res.ResChannel
|
||||
channel = 1
|
||||
description = resistivity
|
||||
switcher = sw
|
||||
|
||||
[b]
|
||||
class = secop_psi.ls370res.ResChannel
|
||||
class = frappy_psi.ls370res.ResChannel
|
||||
channel = 3
|
||||
description = resistivity
|
||||
switcher = sw
|
||||
|
@ -7,12 +7,12 @@ bindto = 0.0.0.0
|
||||
bindport = 5000
|
||||
|
||||
[module lsmain]
|
||||
class = secop_psi.ls370res.Main
|
||||
class = frappy_psi.ls370res.Main
|
||||
description = main control of Lsc controller
|
||||
uri = localhost:4567
|
||||
|
||||
[module res]
|
||||
class = secop_psi.ls370res.ResChannel
|
||||
class = frappy_psi.ls370res.ResChannel
|
||||
vexc = '2mV'
|
||||
channel = 3
|
||||
description = resistivity
|
||||
|
36
cfg/ppms.cfg
@ -6,118 +6,118 @@ description = PPMS at PSI
|
||||
uri = tcp://5000
|
||||
|
||||
[tt]
|
||||
class = secop_psi.ppms.Temp
|
||||
class = frappy_psi.ppms.Temp
|
||||
description = main temperature
|
||||
io = ppms
|
||||
|
||||
[mf]
|
||||
class = secop_psi.ppms.Field
|
||||
class = frappy_psi.ppms.Field
|
||||
target.min = -9
|
||||
target.max = 9
|
||||
description = magnetic field
|
||||
io = ppms
|
||||
|
||||
[pos]
|
||||
class = secop_psi.ppms.Position
|
||||
class = frappy_psi.ppms.Position
|
||||
description = sample rotator
|
||||
io = ppms
|
||||
|
||||
[lev]
|
||||
class = secop_psi.ppms.Level
|
||||
class = frappy_psi.ppms.Level
|
||||
description = helium level
|
||||
io = ppms
|
||||
|
||||
[chamber]
|
||||
class = secop_psi.ppms.Chamber
|
||||
class = frappy_psi.ppms.Chamber
|
||||
description = chamber state
|
||||
io = ppms
|
||||
|
||||
[r1]
|
||||
class = secop_psi.ppms.BridgeChannel
|
||||
class = frappy_psi.ppms.BridgeChannel
|
||||
description = resistivity channel 1
|
||||
no = 1
|
||||
value.unit = Ohm
|
||||
io = ppms
|
||||
|
||||
[r2]
|
||||
class = secop_psi.ppms.BridgeChannel
|
||||
class = frappy_psi.ppms.BridgeChannel
|
||||
description = resistivity channel 2
|
||||
no = 2
|
||||
value.unit = Ohm
|
||||
io = ppms
|
||||
|
||||
[r3]
|
||||
class = secop_psi.ppms.BridgeChannel
|
||||
class = frappy_psi.ppms.BridgeChannel
|
||||
description = resistivity channel 3
|
||||
no = 3
|
||||
value.unit = Ohm
|
||||
io = ppms
|
||||
|
||||
[r4]
|
||||
class = secop_psi.ppms.BridgeChannel
|
||||
class = frappy_psi.ppms.BridgeChannel
|
||||
description = resistivity channel 4
|
||||
no = 4
|
||||
value.unit = Ohm
|
||||
io = ppms
|
||||
|
||||
[i1]
|
||||
class = secop_psi.ppms.Channel
|
||||
class = frappy_psi.ppms.Channel
|
||||
description = current channel 1
|
||||
no = 1
|
||||
value.unit = uA
|
||||
io = ppms
|
||||
|
||||
[i2]
|
||||
class = secop_psi.ppms.Channel
|
||||
class = frappy_psi.ppms.Channel
|
||||
description = current channel 2
|
||||
no = 2
|
||||
value.unit = uA
|
||||
io = ppms
|
||||
|
||||
[i3]
|
||||
class = secop_psi.ppms.Channel
|
||||
class = frappy_psi.ppms.Channel
|
||||
description = current channel 3
|
||||
no = 3
|
||||
value.unit = uA
|
||||
io = ppms
|
||||
|
||||
[i4]
|
||||
class = secop_psi.ppms.Channel
|
||||
class = frappy_psi.ppms.Channel
|
||||
description = current channel 4
|
||||
no = 4
|
||||
value.unit = uA
|
||||
io = ppms
|
||||
|
||||
[v1]
|
||||
class = secop_psi.ppms.DriverChannel
|
||||
class = frappy_psi.ppms.DriverChannel
|
||||
description = voltage channel 1
|
||||
no = 1
|
||||
value.unit = V
|
||||
io = ppms
|
||||
|
||||
[v2]
|
||||
class = secop_psi.ppms.DriverChannel
|
||||
class = frappy_psi.ppms.DriverChannel
|
||||
description = voltage channel 2
|
||||
no = 2
|
||||
value.unit = V
|
||||
io = ppms
|
||||
|
||||
[tv]
|
||||
class = secop_psi.ppms.UserChannel
|
||||
class = frappy_psi.ppms.UserChannel
|
||||
description = VTI temperature
|
||||
enabled = 1
|
||||
value.unit = K
|
||||
io = ppms
|
||||
|
||||
[ts]
|
||||
class = secop_psi.ppms.UserChannel
|
||||
class = frappy_psi.ppms.UserChannel
|
||||
description = sample temperature
|
||||
enabled = 1
|
||||
value.unit = K
|
||||
io = ppms
|
||||
|
||||
[ppms]
|
||||
class = secop_psi.ppms.Main
|
||||
class = frappy_psi.ppms.Main
|
||||
description = the main and poller module
|
||||
class_id = QD.MULTIVU.PPMS.1
|
||||
visibility = 3
|
||||
|
@ -7,13 +7,13 @@ bindto = 0.0.0.0
|
||||
bindport = 5002
|
||||
|
||||
[module secnode]
|
||||
class = secop.SecNode
|
||||
class = frappy.SecNode
|
||||
description = a SEC node
|
||||
uri = tcp://localhost:5000
|
||||
|
||||
[module mf]
|
||||
class = secop.Proxy
|
||||
remote_class = secop_psi.ppms.Field
|
||||
class = frappy.Proxy
|
||||
remote_class = frappy_psi.ppms.Field
|
||||
description = magnetic field
|
||||
iodev = secnode
|
||||
value.min = -0.1
|
||||
|
@ -10,7 +10,7 @@ bindport=10767
|
||||
|
||||
|
||||
[module sim]
|
||||
class=secop.simulation.SimDrivable
|
||||
class=frappy.simulation.SimDrivable
|
||||
.description=simulation stuff
|
||||
.extra_params=param3,param4,jitter,ramp
|
||||
param3.datatype={"type":"bool"}
|
||||
|
@ -19,14 +19,14 @@ bindto=0.0.0.0
|
||||
bindport=10767
|
||||
|
||||
[module enable]
|
||||
class=secop.simulation.SimWritable
|
||||
class=frappy.simulation.SimWritable
|
||||
value.datatype={"type":"enum", "members":{'On':1,'Off':0}}
|
||||
target.datatype={"type":"enum", "members":{'On':1,'Off':0}}
|
||||
.description='Enables to Output of the Powersupply'
|
||||
.visibility='advanced'
|
||||
|
||||
[module polarity]
|
||||
class=secop.simulation.SimWritable
|
||||
class=frappy.simulation.SimWritable
|
||||
value.datatype={"type":"enum", "members":{'+1':1,'0':0,'-1':-1}}
|
||||
target.datatype={"type":"enum", "members":{'+1':1,'0':0,'-1':-1}}
|
||||
.description=polarity (+/-) switch
|
||||
@ -38,7 +38,7 @@ target.datatype={"type":"enum", "members":{'+1':1,'0':0,'-1':-1}}
|
||||
|
||||
|
||||
[module symmetry]
|
||||
class=secop.simulation.SimWritable
|
||||
class=frappy.simulation.SimWritable
|
||||
value.datatype={"type":"enum", "members":{'symmetric':1,'short':0, 'asymmetric':-1}}
|
||||
target.datatype={"type":"enum", "members":{'symmetric':1,'short':0, 'asymmetric':-1}}
|
||||
.description=par/ser switch selecting (a)symmetric mode
|
||||
@ -48,31 +48,31 @@ target.datatype={"type":"enum", "members":{'symmetric':1,'short':0, 'asymmetric'
|
||||
value.default = 'symmetric'
|
||||
|
||||
[module T1]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=Temperature1 of the coils system
|
||||
value.unit='degC'
|
||||
value.default = 23.45
|
||||
|
||||
[module T2]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=Temperature2 of the coils system
|
||||
value.unit='degC'
|
||||
value.default = 23.45
|
||||
|
||||
[module T3]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=Temperature3 of the coils system
|
||||
value.unit='degC'
|
||||
value.default = 23.45
|
||||
|
||||
[module T4]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=Temperature4 of the coils system
|
||||
value.unit='degC'
|
||||
value.default = 23.45
|
||||
|
||||
[module currentsource]
|
||||
class=secop.simulation.SimDrivable
|
||||
class=frappy.simulation.SimDrivable
|
||||
.description=Device for the magnet power supply (current mode)
|
||||
abslimits=(0,200)
|
||||
speed=1
|
||||
@ -98,7 +98,7 @@ window.datatype = {"type":"double", "min":0, "max":120, "unit":"s"}
|
||||
window.default = 10
|
||||
|
||||
[module mf]
|
||||
class=secop_mlz.amagnet.GarfieldMagnet
|
||||
class=frappy_mlz.amagnet.GarfieldMagnet
|
||||
.description=magnetic field module, handling polarity switching and stuff
|
||||
subdev_currentsource=currentsource
|
||||
subdev_enable=enable
|
||||
|
@ -11,7 +11,7 @@ bindto=0.0.0.0
|
||||
bindport=10767
|
||||
|
||||
[module T_cci3he1]
|
||||
class=secop.simulation.SimDrivable
|
||||
class=frappy.simulation.SimDrivable
|
||||
.description=Main temperature control node of cci3he1.
|
||||
.
|
||||
Controls the regulation loop of the ls370.
|
||||
@ -26,7 +26,7 @@ ramp.default=60
|
||||
.meaning=["temperature_regulation",40]
|
||||
|
||||
[module T_cci3he1_A]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=3He pot temperature sensor. Also used for the regulation.
|
||||
.visibility=expert
|
||||
value.default=300
|
||||
@ -34,7 +34,7 @@ value.datatype={"type":"double","unit":"K"}
|
||||
.meaning=["temperature",38]
|
||||
|
||||
[module T_cci3he1_B]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=(optional) sample temperature sensor close to sample.
|
||||
.visibility=user
|
||||
value.default=300
|
||||
@ -42,49 +42,49 @@ value.datatype={"type":"double","unit":"K"}
|
||||
.meaning=["temperature",39]
|
||||
|
||||
[module cci3he1_p1]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=Pressure at turbo pump inlet.
|
||||
.visibility=expert
|
||||
value.default=2e-3
|
||||
value.datatype={"type":"double","unit":"mbar"}
|
||||
|
||||
[module cci3he1_p2]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=Pressure at turbo pump outlet.
|
||||
.visibility=expert
|
||||
value.default=9.87
|
||||
value.datatype={"type":"double","unit":"mbar"}
|
||||
|
||||
[module cci3he1_p3]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=Pressure at compressor inlet.
|
||||
.visibility=expert
|
||||
value.default=19.99
|
||||
value.datatype={"type":"double","unit":"mbar"}
|
||||
|
||||
[module cci3he1_p4]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=Pressure at compressor outlet.
|
||||
.visibility=expert
|
||||
value.default=999
|
||||
value.datatype={"type":"double","unit":"mbar"}
|
||||
|
||||
[module cci3he1_p5]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=Pressure in dump tank.
|
||||
.visibility=expert
|
||||
value.default=567
|
||||
value.datatype={"type":"double","unit":"mbar"}
|
||||
|
||||
[module cci3he1_p6]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=Pressure in the vacuum dewar (ivc).
|
||||
.visibility=expert
|
||||
value.default=1e-3
|
||||
value.datatype={"type":"double","unit":"mbar"}
|
||||
|
||||
[module cci3he1_flow]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=Gas Flow (condensing line).
|
||||
.visibility=expert
|
||||
value.default=12.34
|
||||
|
@ -11,7 +11,7 @@ bindto=0.0.0.0
|
||||
bindport=10767
|
||||
|
||||
[module T_ccidu1]
|
||||
class=secop.simulation.SimDrivable
|
||||
class=frappy.simulation.SimDrivable
|
||||
.description=Main temperature control node of ccidu1.
|
||||
.
|
||||
Controls the regulation loop of the ls372.
|
||||
@ -26,7 +26,7 @@ ramp.default=60
|
||||
.meaning=["temperature_regulation",40]
|
||||
|
||||
[module T_ccidu1_A]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=mixing chamber temperature sensor. Also used for the regulation.
|
||||
.visibility=expert
|
||||
value.default=300
|
||||
@ -34,7 +34,7 @@ value.datatype={"type":"double", "unit":"K"}
|
||||
.meaning=["temperature",38]
|
||||
|
||||
[module T_ccidu1_B]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=(optional) sample temperature sensor close to sample.
|
||||
.visibility=user
|
||||
value.default=300
|
||||
@ -42,49 +42,49 @@ value.datatype={"type":"double", "unit":"K"}
|
||||
.meaning=["temperature",39]
|
||||
|
||||
[module ccidu1_pstill]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=Pressure at the still/turbo pump inlet.
|
||||
.visibility=expert
|
||||
value.default=999
|
||||
value.datatype={"type":"double", "unit":"mbar"}
|
||||
|
||||
[module ccidu1_pinlet]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=Pressure at forepump inlet/turbo pump outlet.
|
||||
.visibility=expert
|
||||
value.default=999
|
||||
value.datatype={"type":"double", "unit":"mbar"}
|
||||
|
||||
[module ccidu1_poutlet]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=Pressure at forepump outlet/compressor inlet.
|
||||
.visibility=expert
|
||||
value.default=999
|
||||
value.datatype={"type":"double", "unit":"mbar"}
|
||||
|
||||
[module ccidu1_pkond]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=Pressure at condensing line/compressor outlet.
|
||||
.visibility=expert
|
||||
value.default=999
|
||||
value.datatype={"type":"double", "unit":"mbar"}
|
||||
|
||||
[module ccidu1_ptank]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=Pressure in dump tank.
|
||||
.visibility=expert
|
||||
value.default=999
|
||||
value.datatype={"type":"double", "unit":"mbar"}
|
||||
|
||||
[module ccidu1_pvac]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=Pressure in the vacuum dewar (ivc).
|
||||
.visibility=expert
|
||||
value.default=999
|
||||
value.datatype={"type":"double", "unit":"mbar"}
|
||||
|
||||
[module ccidu1_flow]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=Gas Flow (condensing line).
|
||||
.visibility=expert
|
||||
value.default=999
|
||||
@ -92,14 +92,14 @@ value.datatype={"type":"double", "unit":"mbar"}
|
||||
|
||||
# note: all valves and switches are missing: use VNC to control them
|
||||
[module ccidu1_V6]
|
||||
class=secop.simulation.SimDrivable
|
||||
class=frappy.simulation.SimDrivable
|
||||
.description=Needle valve
|
||||
.visibility=expert
|
||||
value.default=99
|
||||
value.datatype={"type":"double", "min":0, "max":100, "unit":"%%"}
|
||||
|
||||
[module ccidu1_V3]
|
||||
class=secop.simulation.SimWritable
|
||||
class=frappy.simulation.SimWritable
|
||||
.description=Dump Valve
|
||||
.visibility=expert
|
||||
value.default="OFF"
|
||||
|
@ -12,7 +12,7 @@ bindto=0.0.0.0
|
||||
bindport=10767
|
||||
|
||||
[module T_ccr12]
|
||||
class=secop.simulation.SimDrivable
|
||||
class=frappy.simulation.SimDrivable
|
||||
.description=Main temperature control node of CCR12.
|
||||
.
|
||||
Switches between regulation on stick and regulation on tube depending on temperature requested.
|
||||
@ -30,7 +30,7 @@ target.default=300
|
||||
.meaning=["temperature_regulation", 20]
|
||||
|
||||
[module T_ccr12_stick]
|
||||
class=secop.simulation.SimDrivable
|
||||
class=frappy.simulation.SimDrivable
|
||||
.description=Temperature regulation for the sample stick in ccr12.
|
||||
.extra_params=ramp
|
||||
ramp.datatype={"type":"double", "min":0,"max":60, "unit":"K/min"}
|
||||
@ -42,7 +42,7 @@ target.default=300
|
||||
.meaning=["temperature_regulation", 15]
|
||||
|
||||
[module T_ccr12_tube]
|
||||
class=secop.simulation.SimDrivable
|
||||
class=frappy.simulation.SimDrivable
|
||||
.description=Temperature regulation for the tube of ccr12.
|
||||
.extra_params=ramp
|
||||
ramp.datatype={"type":"double", "min":0,"max":60, "unit":"K/min"}
|
||||
@ -54,28 +54,28 @@ target.default=300
|
||||
.meaning=["temperature_regulation", 10]
|
||||
|
||||
[module T_ccr12_A]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=(optional) Sample temperature sensor.
|
||||
value.datatype={"type":"double", "unit":"K"}
|
||||
value.default=300
|
||||
.meaning=["temperature", 9]
|
||||
|
||||
[module T_ccr12_B]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=(regulation) temperature sensor on stick.
|
||||
value.datatype={"type":"double", "unit":"K"}
|
||||
value.default=300
|
||||
.meaning=["temperature", 10]
|
||||
|
||||
[module T_ccr12_C]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=Temperature at the coldhead.
|
||||
value.datatype={"type":"double", "unit":"K"}
|
||||
value.default=70
|
||||
.meaning=["temperature", 1]
|
||||
|
||||
[module T_ccr12_D]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=(regulation) temperature at coupling to stick.
|
||||
value.datatype={"type":"double", "unit":"K"}
|
||||
value.default=80
|
||||
@ -84,7 +84,7 @@ value.default=80
|
||||
|
||||
|
||||
[module ccr12_pressure_regulate]
|
||||
class=secop.simulation.SimWritable
|
||||
class=frappy.simulation.SimWritable
|
||||
.description=Selects on which Sensor the pressure regulation works, or switches it off.
|
||||
.visibility=expert
|
||||
value.datatype={"type":"enum", "members":{'off':0,'p1':1,'p2':2}}
|
||||
@ -93,7 +93,7 @@ target.datatype={"type":"enum", "members":{'off':0,'p1':1,'p2':2}}
|
||||
target.default='off'
|
||||
|
||||
[module ccr12_compressor]
|
||||
class=secop.simulation.SimDrivable
|
||||
class=frappy.simulation.SimDrivable
|
||||
.description=Switches the compressor for the cooling stage on or off.
|
||||
.
|
||||
Note: This should always be on, except for fast heatup for sample change.
|
||||
@ -103,7 +103,7 @@ target.datatype={"type":"enum", "members":{'off':0,'on':1}}
|
||||
target.default='on'
|
||||
|
||||
[module ccr12_gas_switch]
|
||||
class=secop.simulation.SimWritable
|
||||
class=frappy.simulation.SimWritable
|
||||
.description=Switches the gas inlet on or off.
|
||||
.
|
||||
note: in reality this switches itself off after 15min.
|
||||
@ -115,7 +115,7 @@ target.datatype={"type":"enum", "members":{'off':0,'on':1}}
|
||||
target.default='off'
|
||||
|
||||
[module ccr12_vacuum_switch]
|
||||
class=secop.simulation.SimWritable
|
||||
class=frappy.simulation.SimWritable
|
||||
.description=Switches the vacuum pumping valve on or off.
|
||||
.
|
||||
note: in reality this is interlocked with ccr12_gas_switch, only one can be on!
|
||||
@ -126,19 +126,19 @@ target.datatype={"type":"enum", "members":{'off':0,'on':1}}
|
||||
target.default='off'
|
||||
|
||||
[module ccr12_p1]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=Default pressure Sensor, linear scale 0..1000mbar
|
||||
value.datatype={"type":"double", "unit":"mbar"}
|
||||
value.default=999
|
||||
|
||||
[module ccr12_p2]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=Auxillary pressure Sensor.
|
||||
value.datatype={"type":"double", "unit":"mbar"}
|
||||
value.default=1e-6
|
||||
|
||||
[module ccr12_curve_p2]
|
||||
class=secop.simulation.SimWritable
|
||||
class=frappy.simulation.SimWritable
|
||||
.description=Curve for Aux pressure Sensor p2
|
||||
.visibility=expert
|
||||
value.default='TTR100'
|
||||
@ -146,7 +146,7 @@ value.datatype={"type":"enum", "members":{'0..10V':0,'default':1,'0..9V':2,'DI20
|
||||
target.datatype={"type":"enum", "members":{'0..10V':0,'default':1,'0..9V':2,'DI200':3,'DI2000':4,'TTR100':7,'PTR90':8,'PTR225/PTR237':9,'ITR90':10,'ITR100 curve D':11, 'ITR100 curve 2':12, 'ITR100 curve 3':13,'ITR100 curve 4':14,'ITR100 curve 5':15, 'ITR100 curve 6':16, 'ITR100 curve 7':17, 'ITR100 curve 8':18, 'ITR100 curve 9':19, 'ITR100 curve A':20,'CMR361':21, 'CMR362':22, 'CMR363':23, 'CMR364':24, 'CMR365':25}}
|
||||
|
||||
[module ccr12_p1_limits]
|
||||
class=secop.simulation.SimWritable
|
||||
class=frappy.simulation.SimWritable
|
||||
.description=Limits for pressure regulation in P1.
|
||||
.visibility=expert
|
||||
value.datatype={"type":"limit","members":{"type":"double", "min":0,"max":1000, "unit":"mbar"}}
|
||||
@ -155,7 +155,7 @@ target.datatype={"type":"limit","members":{"type":"double", "min":0,"max":1000,
|
||||
target.default=[0,10]
|
||||
|
||||
[module ccr12_p2_limits]
|
||||
class=secop.simulation.SimWritable
|
||||
class=frappy.simulation.SimWritable
|
||||
.description=Limits for pressure regulation in P2.
|
||||
.visibility=expert
|
||||
value.datatype={"type":"limit","members":{"type":"double", "min":0,"max":1000, "unit":"mbar"}}
|
||||
|
@ -12,7 +12,7 @@ bindto=0.0.0.0
|
||||
bindport=10767
|
||||
|
||||
[module T_ccr12]
|
||||
class=secop.simulation.SimDrivable
|
||||
class=frappy.simulation.SimDrivable
|
||||
.description=Main temperature control node of CCR12.
|
||||
.
|
||||
Switches between regulation on stick and regulation on tube depending on temperature requested.
|
||||
@ -41,7 +41,7 @@ userlimits.readonly=False
|
||||
.meaning=["temperature_regulation", 20]
|
||||
|
||||
[module T_ccr12_A]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=(optional) Sample temperature sensor.
|
||||
.visibility=expert
|
||||
value.datatype={"type":"double", "min":0, "unit":"K"}
|
||||
@ -49,7 +49,7 @@ value.default=300
|
||||
.meaning=["temperature", 9]
|
||||
|
||||
[module T_ccr12_B]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=(regulation) temperature sensor on stick.
|
||||
.visibility=expert
|
||||
value.datatype={"type":"double", "min":0, "unit":"K"}
|
||||
@ -57,7 +57,7 @@ value.default=300
|
||||
.meaning=["temperature", 10]
|
||||
|
||||
[module T_ccr12_C]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=Temperature at the coldhead.
|
||||
.visibility=expert
|
||||
value.datatype={"type":"double", "min":0, "unit":"K"}
|
||||
@ -65,7 +65,7 @@ value.default=70
|
||||
.meaning=["temperature", 1]
|
||||
|
||||
[module T_ccr12_D]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=(regulation) temperature at coupling to stick.
|
||||
.visibility=expert
|
||||
value.datatype={"type":"double", "min":0, "unit":"K"}
|
||||
@ -75,7 +75,7 @@ value.default=80
|
||||
|
||||
|
||||
[module ccr12_pressure_regulation]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=Simple two-point presssure regulation. the mode parameter selects the readout on which to regulate, or 'none' for no regulation.
|
||||
.visibility=user
|
||||
.extra_params=switchpoints, mode
|
||||
@ -91,7 +91,7 @@ value.datatype={"type":"double", "min":0, "max":1000, "unit":"mbar"}
|
||||
value.default = 1e-5
|
||||
|
||||
[module ccr12_compressor]
|
||||
class=secop.simulation.SimDrivable
|
||||
class=frappy.simulation.SimDrivable
|
||||
.description=Switches the compressor for the cooling stage on or off.
|
||||
.
|
||||
Note: This should always be on, except for fast heatup for sample change.
|
||||
@ -101,7 +101,7 @@ value.default='off'
|
||||
target.datatype={"type":"enum", "members":{'off':0,'on':1}}
|
||||
|
||||
[module ccr12_gas_switch]
|
||||
class=secop.simulation.SimWritable
|
||||
class=frappy.simulation.SimWritable
|
||||
.description=Switches the gas inlet on or off.
|
||||
.
|
||||
note: in reality this switches itself off after 15min.
|
||||
@ -113,7 +113,7 @@ target.datatype={"type":"enum", "members":{'off':0,'on':1}}
|
||||
target.default='off'
|
||||
|
||||
[module ccr12_vacuum_switch]
|
||||
class=secop.simulation.SimWritable
|
||||
class=frappy.simulation.SimWritable
|
||||
.description=Switches the vacuum pumping valve on or off.
|
||||
.
|
||||
note: in reality this is interlocked with ccr12_gas_switch, only one can be on!
|
||||
@ -124,7 +124,7 @@ target.datatype={"type":"enum", "members":{'off':0,'on':1}}
|
||||
target.default='off'
|
||||
|
||||
[module ccr12_p1]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=Default pressure Sensor, linear scale 0..1000 mbar
|
||||
.
|
||||
Good candidate for a 'Sensor' Interface class!
|
||||
@ -140,7 +140,7 @@ userlimits.description=current user set limits for the pressure regulation.
|
||||
userlimits.readonly=False
|
||||
|
||||
[module ccr12_p2]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=Auxillary pressure Sensor.
|
||||
value.default=1e-6
|
||||
value.unit=mbar
|
||||
|
@ -10,7 +10,7 @@ bindto=0.0.0.0
|
||||
bindport=10767
|
||||
|
||||
[module T_htf02]
|
||||
class=secop.simulation.SimDrivable
|
||||
class=frappy.simulation.SimDrivable
|
||||
.description=Main temperature control node of htf02.
|
||||
.
|
||||
Controls the regulation loop of the Eurotherm.
|
||||
@ -26,7 +26,7 @@ ramp.readonly=False
|
||||
.meaning=["temperature", 10]
|
||||
|
||||
[module htf02_p]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=Pressure Sensor at sample space (ivc).
|
||||
value.datatype={"type":"double", "min":0, "unit":"mbar"}
|
||||
value.default=989
|
||||
|
@ -10,7 +10,7 @@ bindto=0.0.0.0
|
||||
bindport=10767
|
||||
|
||||
[module T_stressihtf2]
|
||||
class=secop.simulation.SimDrivable
|
||||
class=frappy.simulation.SimDrivable
|
||||
.description=Main temperature control node of Stressihtf2.
|
||||
value.datatype={"type":"double", "min":0, "unit":"degC"}
|
||||
value.default=20
|
||||
@ -30,7 +30,7 @@ userlimits.readonly=False
|
||||
.meaning=['temperature_regulation', 10]
|
||||
|
||||
[module T_stressihtf2_sample]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=(optional) Sample temperature sensor.
|
||||
.visibility=expert
|
||||
value.default=300
|
||||
@ -38,7 +38,7 @@ value.datatype={"type":"double", "min":0, "unit":"degC"}
|
||||
.meaning=["temperature", 9]
|
||||
|
||||
[module stressihtf2_n2]
|
||||
class=secop.simulation.SimWritable
|
||||
class=frappy.simulation.SimWritable
|
||||
.description=Switches the N2 gas inlet on or off.
|
||||
.visibility=expert
|
||||
value.default='off'
|
||||
@ -47,7 +47,7 @@ target.datatype={"type":"enum", "members":{'off':0,'on':1}}
|
||||
target.default='off'
|
||||
|
||||
[module stressihtf2_he]
|
||||
class=secop.simulation.SimWritable
|
||||
class=frappy.simulation.SimWritable
|
||||
.description=Switches the He gas inlet on or off.
|
||||
.visibility=expert
|
||||
value.default='off'
|
||||
@ -56,7 +56,7 @@ target.datatype={"type":"enum", "members":{'off':0,'on':1}}
|
||||
target.default='off'
|
||||
|
||||
[module stressihtf2_lamps]
|
||||
class=secop.simulation.SimWritable
|
||||
class=frappy.simulation.SimWritable
|
||||
.description=Switches the heating lamps on or off.
|
||||
.visibility=expert
|
||||
value.default='on'
|
||||
@ -65,7 +65,7 @@ target.datatype={"type":"enum", "members":{'off':0,'on':1}}
|
||||
target.default='on'
|
||||
|
||||
[module stressihtf2_water_ok]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=Readout of the cooling water state.
|
||||
.visibility=expert
|
||||
value.default='ok'
|
||||
|
@ -10,7 +10,7 @@ bindto=0.0.0.0
|
||||
bindport=10767
|
||||
|
||||
[module T]
|
||||
class=secop.simulation.SimDrivable
|
||||
class=frappy.simulation.SimDrivable
|
||||
.description=Main temperature control node of Stressihtf2.
|
||||
value.datatype={"type":"double", "min":0, "unit":"degC"}
|
||||
value.default=20
|
||||
@ -30,7 +30,7 @@ userlimits.readonly=False
|
||||
.meaning=['temperature_regulation', 10]
|
||||
|
||||
[module T_sample]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=(optional) Sample temperature sensor.
|
||||
.visibility=expert
|
||||
value.default=300
|
||||
@ -38,7 +38,7 @@ value.datatype={"type":"double", "min":0, "unit":"degC"}
|
||||
.meaning=["temperature", 9]
|
||||
|
||||
[module N2]
|
||||
class=secop.simulation.SimWritable
|
||||
class=frappy.simulation.SimWritable
|
||||
.description=Switches the N2 gas inlet on or off.
|
||||
.visibility=expert
|
||||
value.default='off'
|
||||
@ -47,7 +47,7 @@ target.datatype={"type":"enum", "members":{'off':0,'on':1}}
|
||||
target.default='off'
|
||||
|
||||
[module He]
|
||||
class=secop.simulation.SimWritable
|
||||
class=frappy.simulation.SimWritable
|
||||
.description=Switches the He gas inlet on or off.
|
||||
.visibility=expert
|
||||
value.default='off'
|
||||
@ -56,7 +56,7 @@ target.datatype={"type":"enum", "members":{'off':0,'on':1}}
|
||||
target.default='off'
|
||||
|
||||
[module lamps]
|
||||
class=secop.simulation.SimWritable
|
||||
class=frappy.simulation.SimWritable
|
||||
.description=Switches the heating lamps on or off.
|
||||
.visibility=expert
|
||||
value.default='on'
|
||||
@ -65,7 +65,7 @@ target.datatype={"type":"enum", "members":{'off':0,'on':1}}
|
||||
target.default='on'
|
||||
|
||||
[module water_ok]
|
||||
class=secop.simulation.SimReadable
|
||||
class=frappy.simulation.SimReadable
|
||||
.description=Readout of the cooling water state.
|
||||
.visibility=expert
|
||||
value.default='ok'
|
||||
|
@ -1,12 +1,12 @@
|
||||
[r3]
|
||||
class = secop.core.Proxy
|
||||
remote_class = secop.core.Readable
|
||||
class = frappy.core.Proxy
|
||||
remote_class = frappy.core.Readable
|
||||
description = temp sensor on 3He system
|
||||
uri = tcp://pc12694:5000
|
||||
export = False
|
||||
|
||||
[t3]
|
||||
class = secop_psi.softcal.Sensor
|
||||
class = frappy_psi.softcal.Sensor
|
||||
rawsensor = r3
|
||||
calib = X131346
|
||||
value.unit = K
|
||||
|
@ -11,7 +11,7 @@ bindto=0.0.0.0
|
||||
bindport=10767
|
||||
|
||||
[module T]
|
||||
class=secop_mlz.entangle.TemperatureController
|
||||
class=frappy_mlz.entangle.TemperatureController
|
||||
tangodevice=tango://localhost:10000/box/eurotherm/ctrl
|
||||
.description=Main temperature control node of Stressihtf2.
|
||||
value.unit='degC'
|
||||
@ -41,42 +41,42 @@ pid.default=[1,0,0]
|
||||
speed.default=0
|
||||
|
||||
[module T_sample_a]
|
||||
class=secop_mlz.entangle.Sensor
|
||||
class=frappy_mlz.entangle.Sensor
|
||||
tangodevice=tango://localhost:10000/box/eurotherm/sensora
|
||||
.description=Regulation temperature sensor.
|
||||
.visibility=user
|
||||
value.unit='degC'
|
||||
|
||||
[module T_sample_b]
|
||||
class=secop_mlz.entangle.Sensor
|
||||
class=frappy_mlz.entangle.Sensor
|
||||
tangodevice=tango://localhost:10000/box/eurotherm/sensorb
|
||||
.description=(optional) Sample temperature sensor.
|
||||
.visibility=expert
|
||||
value.unit='degC'
|
||||
|
||||
[module N2]
|
||||
class=secop_mlz.entangle.NamedDigitalOutput
|
||||
class=frappy_mlz.entangle.NamedDigitalOutput
|
||||
tangodevice=tango://localhost:10000/box/plc/_gas1
|
||||
.description=Switches the N2 gas inlet on or off.
|
||||
.visibility=expert
|
||||
mapping=dict(off=0,on=1)
|
||||
|
||||
[module He]
|
||||
class=secop_mlz.entangle.NamedDigitalOutput
|
||||
class=frappy_mlz.entangle.NamedDigitalOutput
|
||||
tangodevice=tango://localhost:10000/box/plc/_gas2
|
||||
.description=Switches the He gas inlet on or off.
|
||||
.visibility=expert
|
||||
mapping=dict(off=0,on=1)
|
||||
|
||||
[module lamps]
|
||||
class=secop_mlz.entangle.NamedDigitalOutput
|
||||
class=frappy_mlz.entangle.NamedDigitalOutput
|
||||
tangodevice=tango://localhost:10000/box/plc/_onoff
|
||||
.description=Switches the heating lamps on or off.
|
||||
.visibility=expert
|
||||
mapping=dict(off=0,on=1)
|
||||
|
||||
[module water_ok]
|
||||
class=secop_mlz.entangle.NamedDigitalInput
|
||||
class=frappy_mlz.entangle.NamedDigitalInput
|
||||
tangodevice=tango://localhost:10000/box/plc/_waterok
|
||||
.description=Readout of the cooling water state.
|
||||
.visibility=expert
|
||||
|
12
cfg/test.cfg
@ -15,32 +15,32 @@ bindport=10768
|
||||
|
||||
|
||||
[module LN2]
|
||||
class=secop_demo.test.LN2
|
||||
class=frappy_demo.test.LN2
|
||||
.description="random value between 0..100%%"
|
||||
value.unit = "%%"
|
||||
|
||||
[module heater]
|
||||
class=secop_demo.test.Heater
|
||||
class=frappy_demo.test.Heater
|
||||
maxheaterpower=10
|
||||
.description="some heater"
|
||||
|
||||
[module T1]
|
||||
class=secop_demo.test.Temp
|
||||
class=frappy_demo.test.Temp
|
||||
sensor="X34598T7"
|
||||
.description="some temperature"
|
||||
|
||||
[module T2]
|
||||
class=secop_demo.modules.CoilTemp
|
||||
class=frappy_demo.modules.CoilTemp
|
||||
sensor="X34598T8"
|
||||
.description="some temperature"
|
||||
|
||||
[module T3]
|
||||
class=secop_demo.modules.CoilTemp
|
||||
class=frappy_demo.modules.CoilTemp
|
||||
sensor="X34598T9"
|
||||
.description="some temperature"
|
||||
|
||||
|
||||
[module Lower]
|
||||
class=secop_demo.test.Lower
|
||||
class=frappy_demo.test.Lower
|
||||
.description="something else"
|
||||
|
||||
|
10
ci/Jenkinsfile
vendored
@ -200,16 +200,16 @@ node("dockerhost") {
|
||||
sh '''#!/bin/bash
|
||||
git worktree add tmpmaster origin/master
|
||||
cd tmpmaster
|
||||
docker build --target base --tag secop_base:latest ci
|
||||
docker build --target docs --tag secop_docs:latest ci
|
||||
docker build --target base --tag frappy_base:latest ci
|
||||
docker build --target docs --tag frappy_docs:latest ci
|
||||
cd ..
|
||||
rm -rf tmpmaster
|
||||
'''
|
||||
}
|
||||
|
||||
stage('execute tests') {
|
||||
def img = docker.image('secop_base:latest')
|
||||
def docimg = docker.image('secop_docs:latest')
|
||||
def img = docker.image('frappy_base:latest')
|
||||
def docimg = docker.image('frappy_docs:latest')
|
||||
|
||||
parallel 'Test': {
|
||||
img.inside {
|
||||
@ -227,7 +227,7 @@ node("dockerhost") {
|
||||
if (GERRIT_EVENT_TYPE == 'change-merged')
|
||||
{
|
||||
sh '''
|
||||
rsync -rlv doc/_build/* /ictrlsrv/share/public/doc/secop
|
||||
rsync -rlv doc/_build/* /ictrlsrv/share/public/doc/frappy
|
||||
'''
|
||||
}
|
||||
}}
|
||||
|
@ -10,10 +10,10 @@ The Dockerfile defines two images:
|
||||
|
||||
To create the images:
|
||||
|
||||
docker build --target <base|docs> --tag secop_<base|docs>:latest .
|
||||
docker build --target <base|docs> --tag frappy_<base|docs>:latest .
|
||||
|
||||
To test images interactivly:
|
||||
docker run -u jenkins -i -t secop<base|docs> /bin/bash
|
||||
docker run -u jenkins -i -t frappy<base|docs> /bin/bash
|
||||
|
||||
The Jenkinsfile uses this Dockerfile (only approved checked-in versions from master)
|
||||
to build the images (a rebuild will only happen if the Dockerfile is changed as docker
|
||||
|
@ -27,7 +27,7 @@ from os import path
|
||||
# Add import path for inplace usage
|
||||
sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..', '..')))
|
||||
|
||||
from secop.version import get_version
|
||||
from frappy.version import get_version
|
||||
|
||||
|
||||
# -- General configuration ------------------------------------------------
|
||||
@ -213,7 +213,7 @@ epub_exclude_files = ['search.html']
|
||||
# Example configuration for intersphinx: refer to the Python standard library.
|
||||
intersphinx_mapping = {'https://docs.python.org/': None}
|
||||
|
||||
from secop.lib.classdoc import class_doc_handler
|
||||
from frappy.lib.classdoc import class_doc_handler
|
||||
|
||||
def setup(app):
|
||||
app.connect('autodoc-process-docstring', class_doc_handler)
|
||||
app.connect('autodoc-process-docstring', class_doc_handler)
|
||||
|
@ -1,10 +1,10 @@
|
||||
Demo
|
||||
====
|
||||
|
||||
.. automodule:: secop_demo.cryo
|
||||
.. automodule:: frappy_demo.cryo
|
||||
:show-inheritance:
|
||||
:members:
|
||||
|
||||
.. automodule:: secop_demo.test
|
||||
.. automodule:: frappy_demo.test
|
||||
:show-inheritance:
|
||||
:members:
|
@ -4,6 +4,6 @@ ESS
|
||||
EPICS
|
||||
.....
|
||||
|
||||
.. automodule:: secop_ess.epics
|
||||
.. automodule:: frappy_ess.epics
|
||||
:show-inheritance:
|
||||
:members:
|
@ -4,7 +4,7 @@ MLZ
|
||||
Amagnet (Garfield)
|
||||
..................
|
||||
|
||||
.. automodule:: secop_mlz.amagnet
|
||||
.. automodule:: frappy_mlz.amagnet
|
||||
:show-inheritance:
|
||||
:members:
|
||||
|
||||
@ -12,7 +12,7 @@ Amagnet (Garfield)
|
||||
Entangle Framework
|
||||
..................
|
||||
|
||||
.. automodule:: secop_mlz.entangle
|
||||
.. automodule:: frappy_mlz.entangle
|
||||
:show-inheritance:
|
||||
:members:
|
||||
|
@ -4,7 +4,7 @@ PSI (SINQ)
|
||||
CCU4 tutorial example
|
||||
.....................
|
||||
|
||||
.. automodule:: secop_psi.ccu4
|
||||
.. automodule:: frappy_psi.ccu4
|
||||
:show-inheritance:
|
||||
:members:
|
||||
|
||||
@ -12,7 +12,7 @@ CCU4 tutorial example
|
||||
PPMS
|
||||
....
|
||||
|
||||
.. automodule:: secop_psi.ppms
|
||||
.. automodule:: frappy_psi.ppms
|
||||
:show-inheritance:
|
||||
:members:
|
||||
|
||||
@ -21,7 +21,7 @@ LakeShore 370
|
||||
|
||||
Calibrated sensors and control loop not yet supported.
|
||||
|
||||
.. automodule:: secop_psi.ls370res
|
||||
.. automodule:: frappy_psi.ls370res
|
||||
:show-inheritance:
|
||||
:members:
|
||||
|
@ -7,10 +7,10 @@ Frappy Programming Guide
|
||||
introduction
|
||||
tutorial
|
||||
reference
|
||||
secop_psi
|
||||
secop_demo
|
||||
secop_mlz
|
||||
secop_ess
|
||||
frappy_psi
|
||||
frappy_demo
|
||||
frappy_mlz
|
||||
frappy_ess
|
||||
|
||||
* :ref:`genindex`
|
||||
|
||||
|
@ -57,10 +57,10 @@ to provide to the user.
|
||||
Programming a Driver
|
||||
--------------------
|
||||
|
||||
Programming a driver means extending one of the base classes like :class:`secop.modules.Readable`
|
||||
or :class:`secop.modules.Drivable`. The parameters are defined in the dict :py:attr:`parameters`, as a
|
||||
class attribute of the extended class, using the :class:`secop.params.Parameter` constructor, or in case
|
||||
of altering the properties of an inherited parameter, :class:`secop.params.Override`.
|
||||
Programming a driver means extending one of the base classes like :class:`frappy.modules.Readable`
|
||||
or :class:`frappy.modules.Drivable`. The parameters are defined in the dict :py:attr:`parameters`, as a
|
||||
class attribute of the extended class, using the :class:`frappy.params.Parameter` constructor, or in case
|
||||
of altering the properties of an inherited parameter, :class:`frappy.params.Override`.
|
||||
|
||||
Parameters usually need a method :meth:`read_<name>()`
|
||||
implementing the code to retrieve their value from the hardware. Writeable parameters
|
||||
|
@ -4,85 +4,85 @@ Reference
|
||||
Module Base Classes
|
||||
...................
|
||||
|
||||
.. autodata:: secop.modules.Done
|
||||
.. autodata:: frappy.modules.Done
|
||||
|
||||
.. autoclass:: secop.modules.Module
|
||||
.. autoclass:: frappy.modules.Module
|
||||
:members: earlyInit, initModule, startModule
|
||||
|
||||
.. autoclass:: secop.modules.Readable
|
||||
.. autoclass:: frappy.modules.Readable
|
||||
:members: Status
|
||||
|
||||
.. autoclass:: secop.modules.Writable
|
||||
.. autoclass:: frappy.modules.Writable
|
||||
|
||||
.. autoclass:: secop.modules.Drivable
|
||||
.. autoclass:: frappy.modules.Drivable
|
||||
:members: Status, isBusy, isDriving, stop
|
||||
|
||||
|
||||
Parameters, Commands and Properties
|
||||
...................................
|
||||
|
||||
.. autoclass:: secop.params.Parameter
|
||||
.. autoclass:: secop.params.Command
|
||||
.. autoclass:: secop.properties.Property
|
||||
.. autoclass:: secop.modules.Attached
|
||||
.. autoclass:: frappy.params.Parameter
|
||||
.. autoclass:: frappy.params.Command
|
||||
.. autoclass:: frappy.properties.Property
|
||||
.. autoclass:: frappy.modules.Attached
|
||||
:show-inheritance:
|
||||
|
||||
|
||||
Datatypes
|
||||
.........
|
||||
|
||||
.. autoclass:: secop.datatypes.FloatRange
|
||||
.. autoclass:: secop.datatypes.IntRange
|
||||
.. autoclass:: secop.datatypes.BoolType
|
||||
.. autoclass:: secop.datatypes.ScaledInteger
|
||||
.. autoclass:: secop.datatypes.EnumType
|
||||
.. autoclass:: secop.datatypes.StringType
|
||||
.. autoclass:: secop.datatypes.TupleOf
|
||||
.. autoclass:: secop.datatypes.ArrayOf
|
||||
.. autoclass:: secop.datatypes.StructOf
|
||||
.. autoclass:: secop.datatypes.BLOBType
|
||||
.. autoclass:: frappy.datatypes.FloatRange
|
||||
.. autoclass:: frappy.datatypes.IntRange
|
||||
.. autoclass:: frappy.datatypes.BoolType
|
||||
.. autoclass:: frappy.datatypes.ScaledInteger
|
||||
.. autoclass:: frappy.datatypes.EnumType
|
||||
.. autoclass:: frappy.datatypes.StringType
|
||||
.. autoclass:: frappy.datatypes.TupleOf
|
||||
.. autoclass:: frappy.datatypes.ArrayOf
|
||||
.. autoclass:: frappy.datatypes.StructOf
|
||||
.. autoclass:: frappy.datatypes.BLOBType
|
||||
|
||||
|
||||
|
||||
Communication
|
||||
.............
|
||||
|
||||
.. autoclass:: secop.modules.Communicator
|
||||
.. autoclass:: frappy.modules.Communicator
|
||||
:show-inheritance:
|
||||
:members: communicate
|
||||
|
||||
.. autoclass:: secop.io.StringIO
|
||||
.. autoclass:: frappy.io.StringIO
|
||||
:show-inheritance:
|
||||
:members: communicate, multicomm
|
||||
|
||||
.. autoclass:: secop.io.BytesIO
|
||||
.. autoclass:: frappy.io.BytesIO
|
||||
:show-inheritance:
|
||||
:members: communicate, multicomm
|
||||
|
||||
.. autoclass:: secop.io.HasIO
|
||||
.. autoclass:: frappy.io.HasIO
|
||||
:show-inheritance:
|
||||
|
||||
.. autoclass:: secop.rwhandler.ReadHandler
|
||||
.. autoclass:: frappy.rwhandler.ReadHandler
|
||||
:show-inheritance:
|
||||
:members:
|
||||
|
||||
.. autoclass:: secop.rwhandler.CommonReadHandler
|
||||
.. autoclass:: frappy.rwhandler.CommonReadHandler
|
||||
:show-inheritance:
|
||||
:members:
|
||||
|
||||
.. autoclass:: secop.rwhandler.WriteHandler
|
||||
.. autoclass:: frappy.rwhandler.WriteHandler
|
||||
:show-inheritance:
|
||||
:members:
|
||||
|
||||
.. autoclass:: secop.rwhandler.CommonWriteHandler
|
||||
.. autoclass:: frappy.rwhandler.CommonWriteHandler
|
||||
:show-inheritance:
|
||||
:members:
|
||||
|
||||
|
||||
Exception classes
|
||||
.....................--
|
||||
.................
|
||||
|
||||
.. automodule:: secop.errors
|
||||
.. automodule:: frappy.errors
|
||||
:members:
|
||||
|
||||
.. include:: server.rst
|
||||
|
@ -27,12 +27,12 @@ All other sections define the SECoP modules. The section name itself is the modu
|
||||
mandatory fields are **class** and **description**. **class** is a path to the Python class
|
||||
from there the module is instantiated, separated with dots. In the following example the class
|
||||
**HeLevel** used by the **helevel** module can be found in the PSI facility subdirectory
|
||||
secop_psi in the python module file ccu4.py:
|
||||
frappy_psi in the python module file ccu4.py:
|
||||
|
||||
.. code::
|
||||
|
||||
[helevel]
|
||||
class = secop_psi.ccu4.HeLevel
|
||||
class = frappy_psi.ccu4.HeLevel
|
||||
description = this is the He level sensor of the main reservoir
|
||||
empty = 380
|
||||
empty.export = False
|
||||
@ -50,11 +50,11 @@ the SECoP interface.
|
||||
Starting
|
||||
........
|
||||
|
||||
The Frappy server can be started via the **bin/secop-server** script.
|
||||
The Frappy server can be started via the **bin/frappy-server** script.
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
usage: secop-server [-h] [-v | -q] [-d] name
|
||||
usage: frappy-server [-h] [-v | -q] [-d] name
|
||||
|
||||
Manage a Frappy server
|
||||
|
||||
|
@ -8,7 +8,7 @@ meter, as this is the simplest module.
|
||||
As mentioned in the introduction, we have to code the access to the hardware (driver),
|
||||
and the Frappy framework will deal with the SECoP interface. The code for the driver is
|
||||
located in a subdirectory named after the facility or institute programming the driver
|
||||
in our case *secop_psi*. We create a file named from the electronic device CCU4 we use
|
||||
in our case *frappy_psi*. We create a file named from the electronic device CCU4 we use
|
||||
here for the He level reading.
|
||||
|
||||
CCU4 luckily has a very simple and logical protocol:
|
||||
@ -17,12 +17,12 @@ CCU4 luckily has a very simple and logical protocol:
|
||||
* ``<name>\n`` reads the parameter named ``<name>``
|
||||
* in both cases, the reply is ``<name>=<value>\n``
|
||||
|
||||
``secop_psi/ccu4.py``:
|
||||
``frappy_psi/ccu4.py``:
|
||||
|
||||
.. code:: python
|
||||
|
||||
# the most common Frappy classes can be imported from secop.core
|
||||
from secop.core import Readable, Parameter, FloatRange, BoolType, StringIO, HasIO
|
||||
# the most common Frappy classes can be imported from frappy.core
|
||||
from frappy.core import Readable, Parameter, FloatRange, BoolType, StringIO, HasIO
|
||||
|
||||
|
||||
class CCU4IO(StringIO):
|
||||
@ -54,7 +54,7 @@ CCU4 luckily has a very simple and logical protocol:
|
||||
return txtvalue # the framework will automatically convert the string to a float
|
||||
|
||||
|
||||
The class :class:`secop_psi.ccu4.CCU4IO`, an extension of (:class:`secop.stringio.StringIO`)
|
||||
The class :class:`frappy_psi.ccu4.CCU4IO`, an extension of (:class:`frappy.stringio.StringIO`)
|
||||
serves as communication class.
|
||||
|
||||
:Note:
|
||||
@ -183,7 +183,7 @@ which means it might be worth to create a *query* method, and then the
|
||||
:Note:
|
||||
|
||||
It make sense to unify *empty_length* and *full_length* to one parameter *calibration*,
|
||||
as a :class:`secop.datatypes.StructOf` with members *empty_length* and *full_length*:
|
||||
as a :class:`frappy.datatypes.StructOf` with members *empty_length* and *full_length*:
|
||||
|
||||
.. code:: python
|
||||
|
||||
@ -196,7 +196,7 @@ which means it might be worth to create a *query* method, and then the
|
||||
For simplicity we stay with two float parameters for this tutorial.
|
||||
|
||||
|
||||
The full documentation of the example can be found here: :class:`secop_psi.ccu4.HeLevel`
|
||||
The full documentation of the example can be found here: :class:`frappy_psi.ccu4.HeLevel`
|
||||
|
||||
|
||||
Configuration
|
||||
@ -220,7 +220,7 @@ We choose the name *example_cryo* and create therefore a configuration file
|
||||
|
||||
[helev]
|
||||
description = He level of the cryostat He reservoir
|
||||
class = secop_psi.ccu4.HeLevel
|
||||
class = frappy_psi.ccu4.HeLevel
|
||||
uri = linse-moxa-4.psi.ch:3001
|
||||
empty_length = 380
|
||||
full_length = 0
|
||||
|
@ -27,7 +27,7 @@ import os
|
||||
import sys
|
||||
from os import path
|
||||
|
||||
from secop.lib import generalConfig
|
||||
from frappy.lib import generalConfig
|
||||
|
||||
|
||||
def main():
|
||||
@ -36,22 +36,22 @@ def main():
|
||||
generalConfig.init()
|
||||
config_dir = generalConfig['confdir']
|
||||
|
||||
secop_unit = '/lib/systemd/system/secop@.service'
|
||||
wants_dir = normal_dir + '/secop.target.wants'
|
||||
frappy_unit = '/lib/systemd/system/frappy@.service'
|
||||
wants_dir = normal_dir + '/frappy.target.wants'
|
||||
|
||||
all_servers = [base for (base, ext) in
|
||||
map(path.splitext, os.listdir(config_dir)) if ext == '.cfg']
|
||||
all_servers.sort()
|
||||
|
||||
for srv in all_servers:
|
||||
symlink = '%s/secop@%s.service' % (normal_dir, srv)
|
||||
os.symlink(secop_unit, symlink)
|
||||
symlink = '%s/frappy@%s.service' % (normal_dir, srv)
|
||||
os.symlink(frappy_unit, symlink)
|
||||
if not path.isdir(wants_dir):
|
||||
os.mkdir(wants_dir)
|
||||
os.symlink(symlink, '%s/%s' % (wants_dir, path.basename(symlink)))
|
||||
|
||||
# the stamp file signals successful run of the generator
|
||||
open(normal_dir + '/secop.stamp', 'w').close()
|
||||
open(normal_dir + '/frappy.stamp', 'w').close()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
@ -1,10 +1,10 @@
|
||||
[Unit]
|
||||
Description=SECoP SEC-node: %i
|
||||
Description=FRAPPY SECoP SEC-node: %i
|
||||
After=network-online.service
|
||||
|
||||
[Service]
|
||||
Type=notify
|
||||
ExecStart=/usr/bin/secop-server %I
|
||||
ExecStart=/usr/bin/frappy-server %I
|
||||
Restart=on-abnormal
|
||||
RestartSec=30
|
||||
|
@ -3,12 +3,12 @@
|
||||
block_cipher = None
|
||||
|
||||
|
||||
a = Analysis(['bin\\secop-server'],
|
||||
a = Analysis(['bin\\frappy-server'],
|
||||
pathex=['.'],
|
||||
binaries=[],
|
||||
datas=[],
|
||||
hiddenimports=['secop.protocol', 'secop.protocol.dispatcher', 'secop.protocol.interface', 'secop.protocol.interface.tcp',
|
||||
'secop_psi.ppmssim', 'secop_psi.ppmswindows', 'secop_psi.ppms'],
|
||||
hiddenimports=['frappy.protocol', 'frappy.protocol.dispatcher', 'frappy.protocol.interface', 'frappy.protocol.interface.tcp',
|
||||
'frappy_psi.ppmssim', 'frappy_psi.ppmswindows', 'frappy_psi.ppms'],
|
||||
hookspath=[],
|
||||
runtime_hooks=[],
|
||||
excludes=[],
|
||||
@ -22,7 +22,7 @@ exe = EXE(pyz,
|
||||
a.scripts,
|
||||
[],
|
||||
exclude_binaries=True,
|
||||
name='secop-server',
|
||||
name='frappy-server',
|
||||
debug=False,
|
||||
bootloader_ignore_signals=False,
|
||||
strip=False,
|
||||
@ -35,4 +35,4 @@ coll = COLLECT(exe,
|
||||
strip=False,
|
||||
upx=True,
|
||||
upx_exclude=[],
|
||||
name='secop-server')
|
||||
name='frappy-server')
|
@ -28,13 +28,13 @@ import time
|
||||
from collections import defaultdict
|
||||
from threading import Event, RLock, current_thread
|
||||
|
||||
import secop.errors
|
||||
import secop.params
|
||||
from secop.datatypes import get_datatype
|
||||
from secop.lib import mkthread
|
||||
from secop.lib.asynconn import AsynConn, ConnectionClosed
|
||||
from secop.protocol.interface import decode_msg, encode_msg_frame
|
||||
from secop.protocol.messages import COMMANDREQUEST, \
|
||||
import frappy.errors
|
||||
import frappy.params
|
||||
from frappy.datatypes import get_datatype
|
||||
from frappy.lib import mkthread
|
||||
from frappy.lib.asynconn import AsynConn, ConnectionClosed
|
||||
from frappy.protocol.interface import decode_msg, encode_msg_frame
|
||||
from frappy.protocol.messages import COMMANDREQUEST, \
|
||||
DESCRIPTIONREQUEST, ENABLEEVENTSREQUEST, ERRORPREFIX, \
|
||||
EVENTREPLY, HEARTBEATREQUEST, IDENTPREFIX, IDENTREQUEST, \
|
||||
READREPLY, READREQUEST, REQUEST2REPLY, WRITEREPLY, WRITEREQUEST
|
||||
@ -317,7 +317,7 @@ class SecopClient(ProxyClient):
|
||||
if module_param is not None:
|
||||
if action.startswith(ERRORPREFIX):
|
||||
timestamp = data[2].get('t', None)
|
||||
readerror = secop.errors.make_secop_error(*data[0:2])
|
||||
readerror = frappy.errors.make_secop_error(*data[0:2])
|
||||
value = None
|
||||
else:
|
||||
timestamp = data[1].get('t', None)
|
||||
@ -533,7 +533,7 @@ class SecopClient(ProxyClient):
|
||||
"""forced read over connection"""
|
||||
try:
|
||||
self.request(READREQUEST, self.identifier[module, parameter])
|
||||
except secop.errors.SECoPError:
|
||||
except frappy.errors.SECoPError:
|
||||
# error reply message is already stored as readerror in cache
|
||||
pass
|
||||
return self.cache.get((module, parameter), None)
|
||||
@ -561,7 +561,7 @@ class SecopClient(ProxyClient):
|
||||
argument = datatype.export_value(argument)
|
||||
else:
|
||||
if argument is not None:
|
||||
raise secop.errors.BadValueError('command has no argument')
|
||||
raise frappy.errors.BadValueError('command has no argument')
|
||||
# pylint: disable=unsubscriptable-object
|
||||
data, qualifiers = self.request(COMMANDREQUEST, self.identifier[module, command], argument)[2]
|
||||
datatype = self.modules[module]['commands'][command]['datatype'].result
|
||||
@ -571,9 +571,9 @@ class SecopClient(ProxyClient):
|
||||
|
||||
# the following attributes may be/are intended to be overwritten by a subclass
|
||||
|
||||
ERROR_MAP = secop.errors.EXCEPTIONS
|
||||
DEFAULT_EXCEPTION = secop.errors.SECoPError
|
||||
PREDEFINED_NAMES = set(secop.params.PREDEFINED_ACCESSIBLES)
|
||||
ERROR_MAP = frappy.errors.EXCEPTIONS
|
||||
DEFAULT_EXCEPTION = frappy.errors.SECoPError
|
||||
PREDEFINED_NAMES = set(frappy.params.PREDEFINED_ACCESSIBLES)
|
||||
activate = True
|
||||
|
||||
def error_map(self, exc):
|
@ -25,14 +25,14 @@ import sys
|
||||
import time
|
||||
import re
|
||||
from queue import Queue
|
||||
from secop.client import SecopClient
|
||||
from secop.errors import SECoPError
|
||||
from secop.datatypes import get_datatype
|
||||
from frappy.client import SecopClient
|
||||
from frappy.errors import SECoPError
|
||||
from frappy.datatypes import get_datatype
|
||||
|
||||
USAGE = """
|
||||
Usage:
|
||||
|
||||
from secop.client.interactive import Client
|
||||
from frappy.client.interactive import Client
|
||||
|
||||
client = Client('localhost:5000') # start client.
|
||||
# this connects and creates objects for all SECoP modules in the main namespace
|
@ -23,20 +23,20 @@
|
||||
#
|
||||
# *****************************************************************************
|
||||
|
||||
# allow to import the most important classes from 'secop'
|
||||
# allow to import the most important classes from 'frappy'
|
||||
|
||||
# pylint: disable=unused-import
|
||||
from secop.datatypes import ArrayOf, BLOBType, BoolType, EnumType, \
|
||||
from frappy.datatypes import ArrayOf, BLOBType, BoolType, EnumType, \
|
||||
FloatRange, IntRange, ScaledInteger, StringType, StructOf, TupleOf
|
||||
from secop.lib.enum import Enum
|
||||
from secop.modules import Attached, Communicator, \
|
||||
from frappy.lib.enum import Enum
|
||||
from frappy.modules import Attached, Communicator, \
|
||||
Done, Drivable, Feature, Module, Readable, Writable, HasAccessibles
|
||||
from secop.params import Command, Parameter
|
||||
from secop.properties import Property
|
||||
from secop.proxy import Proxy, SecNode, proxy_class
|
||||
from secop.io import HasIO, StringIO, BytesIO, HasIodev # TODO: remove HasIodev (legacy stuff)
|
||||
from secop.persistent import PersistentMixin, PersistentParam
|
||||
from secop.rwhandler import ReadHandler, WriteHandler, CommonReadHandler, \
|
||||
from frappy.params import Command, Parameter
|
||||
from frappy.properties import Property
|
||||
from frappy.proxy import Proxy, SecNode, proxy_class
|
||||
from frappy.io import HasIO, StringIO, BytesIO, HasIodev # TODO: remove HasIodev (legacy stuff)
|
||||
from frappy.persistent import PersistentMixin, PersistentParam
|
||||
from frappy.rwhandler import ReadHandler, WriteHandler, CommonReadHandler, \
|
||||
CommonWriteHandler, nopoll
|
||||
|
||||
ERROR = Drivable.Status.ERROR
|
@ -28,12 +28,12 @@
|
||||
import sys
|
||||
from base64 import b64decode, b64encode
|
||||
|
||||
from secop.errors import BadValueError, \
|
||||
from frappy.errors import BadValueError, \
|
||||
ConfigError, ProgrammingError, ProtocolError
|
||||
from secop.lib import clamp, generalConfig
|
||||
from secop.lib.enum import Enum
|
||||
from secop.parse import Parser
|
||||
from secop.properties import HasProperties, Property
|
||||
from frappy.lib import clamp, generalConfig
|
||||
from frappy.lib.enum import Enum
|
||||
from frappy.parse import Parser
|
||||
from frappy.properties import HasProperties, Property
|
||||
|
||||
generalConfig.set_default('lazy_number_validation', False)
|
||||
|
@ -23,12 +23,12 @@
|
||||
"""Define Mixin Features for real Modules implemented in the server"""
|
||||
|
||||
|
||||
from secop.datatypes import ArrayOf, BoolType, EnumType, \
|
||||
from frappy.datatypes import ArrayOf, BoolType, EnumType, \
|
||||
FloatRange, StringType, StructOf, TupleOf
|
||||
from secop.core import Command, Done, Drivable, Feature, \
|
||||
from frappy.core import Command, Done, Drivable, Feature, \
|
||||
Parameter, Property, PersistentParam, Readable
|
||||
from secop.errors import BadValueError, ConfigError
|
||||
from secop.lib import clamp
|
||||
from frappy.errors import BadValueError, ConfigError
|
||||
from frappy.lib import clamp
|
||||
|
||||
|
||||
# --- proposals, to be used at SINQ (not agreed as standard yet) ---
|
@ -24,8 +24,8 @@ import configparser
|
||||
from collections import OrderedDict
|
||||
from configparser import NoOptionError
|
||||
|
||||
from secop.gui.cfg_editor.tree_widget_item import TreeWidgetItem
|
||||
from secop.gui.cfg_editor.utils import get_all_children_with_names, \
|
||||
from frappy.gui.cfg_editor.tree_widget_item import TreeWidgetItem
|
||||
from frappy.gui.cfg_editor.utils import get_all_children_with_names, \
|
||||
get_all_items, get_interface_class_from_name, \
|
||||
get_module_class_from_name, get_params, get_props
|
||||
|
@ -22,12 +22,12 @@
|
||||
|
||||
import os
|
||||
|
||||
from secop.gui.cfg_editor.node_display import NodeDisplay
|
||||
from secop.gui.cfg_editor.utils import get_file_paths, loadUi
|
||||
from secop.gui.cfg_editor.widgets import TabBar
|
||||
from secop.gui.qt import QMainWindow, QMessageBox
|
||||
from frappy.gui.cfg_editor.node_display import NodeDisplay
|
||||
from frappy.gui.cfg_editor.utils import get_file_paths, loadUi
|
||||
from frappy.gui.cfg_editor.widgets import TabBar
|
||||
from frappy.gui.qt import QMainWindow, QMessageBox
|
||||
|
||||
# TODO move secop mainwinodw to gui/client and all specific stuff
|
||||
# TODO move frappy mainwindow to gui/client and all specific stuff
|
||||
NODE = 'node'
|
||||
MODULE = 'module'
|
||||
INTERFACE = 'interface'
|
@ -20,8 +20,8 @@
|
||||
#
|
||||
# *****************************************************************************
|
||||
|
||||
from secop.gui.cfg_editor.utils import loadUi
|
||||
from secop.gui.qt import QHBoxLayout, QSizePolicy, QSpacerItem, Qt, QWidget
|
||||
from frappy.gui.cfg_editor.utils import loadUi
|
||||
from frappy.gui.qt import QHBoxLayout, QSizePolicy, QSpacerItem, Qt, QWidget
|
||||
|
||||
|
||||
class NodeDisplay(QWidget):
|
@ -20,13 +20,13 @@
|
||||
#
|
||||
# *****************************************************************************
|
||||
|
||||
from secop.gui.cfg_editor.utils import loadUi, \
|
||||
from frappy.gui.cfg_editor.utils import loadUi, \
|
||||
set_name_edit_style, setIcon, setTreeIcon
|
||||
from secop.gui.qt import QDialog, QFont, QHBoxLayout, \
|
||||
from frappy.gui.qt import QDialog, QFont, QHBoxLayout, \
|
||||
QLabel, QPushButton, QSize, QSizePolicy, QTextEdit, \
|
||||
QTreeWidgetItem, QVBoxLayout, QWidget, pyqtSignal
|
||||
from secop.gui.valuewidgets import get_widget
|
||||
from secop.properties import Property
|
||||
from frappy.gui.valuewidgets import get_widget
|
||||
from frappy.properties import Property
|
||||
|
||||
NODE = 'node'
|
||||
INTERFACE = 'interface'
|
||||
@ -41,7 +41,7 @@ class TreeWidgetItem(QTreeWidgetItem):
|
||||
parameters=None, properties=None, parent=None):
|
||||
"""object_class: for interfaces and modules = class
|
||||
for parameter and properties = their objects
|
||||
the datatype passed onto ValueWidget should be on of secop.datatypes"""
|
||||
the datatype passed onto ValueWidget should be on of frappy.datatypes"""
|
||||
# TODO: like stated in docstring the datatype for parameters and
|
||||
# properties must be found out through their object
|
||||
super().__init__(parent)
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
@ -81,7 +81,7 @@
|
||||
<customwidget>
|
||||
<class>TreeWidget</class>
|
||||
<extends>QTreeWidget</extends>
|
||||
<header>secop.gui.cfg_editor.widgets</header>
|
||||
<header>frappy.gui.cfg_editor.widgets</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
@ -24,12 +24,12 @@ import inspect
|
||||
import sys
|
||||
from os import listdir, path
|
||||
|
||||
from secop.gui.qt import QDialogButtonBox, QFileDialog, QIcon, QSize, uic
|
||||
from secop.modules import Module
|
||||
from secop.params import Parameter
|
||||
from secop.properties import Property
|
||||
from secop.protocol.interface.tcp import TCPServer
|
||||
from secop.server import generalConfig
|
||||
from frappy.gui.qt import QDialogButtonBox, QFileDialog, QIcon, QSize, uic
|
||||
from frappy.modules import Module
|
||||
from frappy.params import Parameter
|
||||
from frappy.properties import Property
|
||||
from frappy.protocol.interface.tcp import TCPServer
|
||||
from frappy.server import generalConfig
|
||||
|
||||
uipath = path.dirname(__file__)
|
||||
|
||||
@ -109,7 +109,7 @@ def get_modules():
|
||||
base_path = generalConfig.basedir
|
||||
# pylint: disable=too-many-nested-blocks
|
||||
for dirname in listdir(base_path):
|
||||
if dirname.startswith('secop_'):
|
||||
if dirname.startswith('frappy_'):
|
||||
modules[dirname] = {}
|
||||
for filename in listdir(path.join(base_path, dirname)):
|
||||
if not path.isfile(path.join(base_path, dirname, filename)) or \
|
||||
@ -121,7 +121,7 @@ def get_modules():
|
||||
__import__(module)
|
||||
for name, obj in inspect.getmembers(sys.modules[module]):
|
||||
if inspect.isclass(obj) and \
|
||||
obj.__module__.startswith('secop_') and \
|
||||
obj.__module__.startswith('frappy_') and \
|
||||
issubclass(obj, Module):
|
||||
# full_name = '%s.%s' % (obj.__module__, name)
|
||||
if not module_in_file:
|
||||
@ -140,7 +140,7 @@ def get_module_class_from_name(name):
|
||||
module = name[:last_dot]
|
||||
__import__(module)
|
||||
for cls_name, obj in inspect.getmembers(sys.modules[module]):
|
||||
if inspect.isclass(obj) and obj.__module__.startswith('secop_') \
|
||||
if inspect.isclass(obj) and obj.__module__.startswith('frappy_') \
|
||||
and issubclass(obj, Module) and cls_name == class_name:
|
||||
return obj
|
||||
except ImportError:
|
||||
@ -156,7 +156,7 @@ def get_interface_class_from_name(name):
|
||||
def get_interfaces():
|
||||
# TODO class must be found out like for modules
|
||||
interfaces = []
|
||||
interface_path = path.join(generalConfig.basedir, 'secop',
|
||||
interface_path = path.join(generalConfig.basedir, 'frappy',
|
||||
'protocol', 'interface')
|
||||
for filename in listdir(interface_path):
|
||||
if path.isfile(path.join(interface_path, filename)) and \
|
@ -23,13 +23,13 @@
|
||||
|
||||
import os
|
||||
|
||||
from secop.gui.cfg_editor.config_file import read_config, write_config
|
||||
from secop.gui.cfg_editor.tree_widget_item import TreeWidgetItem
|
||||
from secop.gui.cfg_editor.utils import get_all_items, \
|
||||
from frappy.gui.cfg_editor.config_file import read_config, write_config
|
||||
from frappy.gui.cfg_editor.tree_widget_item import TreeWidgetItem
|
||||
from frappy.gui.cfg_editor.utils import get_all_items, \
|
||||
get_file_paths, get_interface_class_from_name, get_interfaces, \
|
||||
get_module_class_from_name, get_modules, get_params, \
|
||||
get_props, loadUi, set_name_edit_style, setActionIcon
|
||||
from secop.gui.qt import QComboBox, QDialog, QDialogButtonBox, QLabel, \
|
||||
from frappy.gui.qt import QComboBox, QDialog, QDialogButtonBox, QLabel, \
|
||||
QLineEdit, QMenu, QPoint, QSize, QStandardItem, QStandardItemModel, \
|
||||
Qt, QTabBar, QTextEdit, QTreeView, QTreeWidget, pyqtSignal
|
||||
|
@ -22,14 +22,14 @@
|
||||
# *****************************************************************************
|
||||
|
||||
|
||||
import secop.client
|
||||
from secop.gui.modulectrl import ModuleCtrl
|
||||
from secop.gui.nodectrl import NodeCtrl
|
||||
from secop.gui.paramview import ParameterView
|
||||
from secop.gui.qt import QBrush, QColor, QInputDialog, QMainWindow, \
|
||||
import frappy.client
|
||||
from frappy.gui.modulectrl import ModuleCtrl
|
||||
from frappy.gui.nodectrl import NodeCtrl
|
||||
from frappy.gui.paramview import ParameterView
|
||||
from frappy.gui.qt import QBrush, QColor, QInputDialog, QMainWindow, \
|
||||
QMessageBox, QObject, QTreeWidgetItem, pyqtSignal, pyqtSlot
|
||||
from secop.gui.util import Value, loadUi
|
||||
from secop.lib import formatExtendedTraceback
|
||||
from frappy.gui.util import Value, loadUi
|
||||
from frappy.lib import formatExtendedTraceback
|
||||
|
||||
ITEM_TYPE_NODE = QTreeWidgetItem.UserType + 1
|
||||
ITEM_TYPE_GROUP = QTreeWidgetItem.UserType + 2
|
||||
@ -45,7 +45,7 @@ class QSECNode(QObject):
|
||||
|
||||
def __init__(self, uri, parent=None):
|
||||
super().__init__(parent)
|
||||
self.conn = conn = secop.client.SecopClient(uri)
|
||||
self.conn = conn = frappy.client.SecopClient(uri)
|
||||
conn.validate_data = True
|
||||
self.log = conn.log
|
||||
self.contactPoint = conn.uri
|
||||
@ -92,11 +92,11 @@ class QSECNode(QObject):
|
||||
def syncCommunicate(self, action, ident='', data=None):
|
||||
reply = self.conn.request(action, ident, data)
|
||||
# pylint: disable=not-an-iterable
|
||||
return secop.client.encode_msg_frame(*reply).decode('utf-8')
|
||||
return frappy.client.encode_msg_frame(*reply).decode('utf-8')
|
||||
|
||||
def decode_message(self, msg):
|
||||
# decode_msg needs bytes as input
|
||||
return secop.client.decode_msg(msg.encode('utf-8'))
|
||||
return frappy.client.decode_msg(msg.encode('utf-8'))
|
||||
|
||||
def _getDescribingParameterData(self, module, parameter):
|
||||
return self.modules[module]['parameters'][parameter]
|
@ -25,7 +25,7 @@
|
||||
|
||||
from os import path
|
||||
|
||||
from secop.gui.qt import QBrush, QColor, QPainter, QPen, \
|
||||
from frappy.gui.qt import QBrush, QColor, QPainter, QPen, \
|
||||
QPointF, QPolygonF, QRectF, QSize, Qt, QWidget
|
||||
|
||||
_magenta = QBrush(QColor('#A12F86'))
|
@ -23,11 +23,11 @@
|
||||
# *****************************************************************************
|
||||
|
||||
|
||||
from secop.gui.params import ParameterView
|
||||
from secop.gui.qt import QCheckBox, QDialog, QLabel, \
|
||||
from frappy.gui.params import ParameterView
|
||||
from frappy.gui.qt import QCheckBox, QDialog, QLabel, \
|
||||
QMessageBox, QPushButton, QSizePolicy, QWidget
|
||||
from secop.gui.util import loadUi
|
||||
from secop.gui.valuewidgets import get_widget
|
||||
from frappy.gui.util import loadUi
|
||||
from frappy.gui.valuewidgets import get_widget
|
||||
|
||||
|
||||
class CommandDialog(QDialog):
|
||||
@ -357,7 +357,7 @@ class ModuleCtrl(QWidget):
|
||||
def _updateValue(self, module, parameter, value):
|
||||
if module != self._module:
|
||||
return
|
||||
# value is is type secop.gui.mainwindow.Value
|
||||
# value is is type frappy.gui.mainwindow.Value
|
||||
# note: update subwidgets with the data portion only
|
||||
# note: paramwidgets[..][1] is a ParameterView from secop.gui.params
|
||||
# note: paramwidgets[..][1] is a ParameterView from frappy.gui.params
|
||||
self._paramWidgets[parameter][1].updateValue(value)
|
@ -28,12 +28,12 @@ from time import sleep
|
||||
|
||||
import mlzlog
|
||||
|
||||
import secop.lib
|
||||
from secop.datatypes import EnumType, StringType
|
||||
from secop.errors import SECoPError
|
||||
from secop.gui.qt import QFont, QFontMetrics, QLabel, \
|
||||
import frappy.lib
|
||||
from frappy.datatypes import EnumType, StringType
|
||||
from frappy.errors import SECoPError
|
||||
from frappy.gui.qt import QFont, QFontMetrics, QLabel, \
|
||||
QMessageBox, QTextCursor, QWidget, pyqtSlot, toHtmlEscaped
|
||||
from secop.gui.util import Value, loadUi
|
||||
from frappy.gui.util import Value, loadUi
|
||||
|
||||
|
||||
class NodeCtrl(QWidget):
|
||||
@ -165,7 +165,7 @@ class NodeCtrl(QWidget):
|
||||
else:
|
||||
widget = QLabel('Unsupported Interfaceclass %r' % interfaces)
|
||||
except Exception as e:
|
||||
print(secop.lib.formatExtendedTraceback())
|
||||
print(frappy.lib.formatExtendedTraceback())
|
||||
widget = QLabel('Bad configured Module %s! (%s)' % (modname, e))
|
||||
|
||||
if unit:
|
@ -22,9 +22,9 @@
|
||||
# *****************************************************************************
|
||||
|
||||
|
||||
from secop.datatypes import EnumType
|
||||
from secop.gui.qt import QWidget, pyqtSignal, pyqtSlot
|
||||
from secop.gui.util import loadUi
|
||||
from frappy.datatypes import EnumType
|
||||
from frappy.gui.qt import QWidget, pyqtSignal, pyqtSlot
|
||||
from frappy.gui.util import loadUi
|
||||
|
||||
|
||||
class ParameterWidget(QWidget):
|
@ -22,8 +22,8 @@
|
||||
# *****************************************************************************
|
||||
|
||||
|
||||
from secop.gui.qt import QLabel, QSizePolicy, QWidget
|
||||
from secop.gui.util import loadUi
|
||||
from frappy.gui.qt import QLabel, QSizePolicy, QWidget
|
||||
from frappy.gui.util import loadUi
|
||||
|
||||
|
||||
class ParameterView(QWidget):
|
@ -44,7 +44,7 @@ try:
|
||||
|
||||
from xml.sax.saxutils import escape as toHtmlEscaped
|
||||
|
||||
import secop.gui.icon_rc_qt5
|
||||
import frappy.gui.icon_rc_qt5
|
||||
|
||||
except ImportError:
|
||||
from PyQt4 import uic
|
||||
@ -57,7 +57,7 @@ except ImportError:
|
||||
QTreeWidget, QFileDialog, QTabBar, QAction, QMenu, QDialogButtonBox, QAbstractItemView, \
|
||||
QSpacerItem, QTreeView, QStandardItemModel, QStandardItem
|
||||
|
||||
import secop.gui.icon_rc_qt4
|
||||
import frappy.gui.icon_rc_qt4
|
||||
|
||||
def toHtmlEscaped(s):
|
||||
return Qt.escape(s)
|
@ -11,7 +11,7 @@
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>secop-gui</string>
|
||||
<string>frappy-gui</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
@ -24,7 +24,7 @@
|
||||
|
||||
from os import path
|
||||
|
||||
from secop.gui.qt import uic
|
||||
from frappy.gui.qt import uic
|
||||
|
||||
uipath = path.dirname(__file__)
|
||||
|
@ -22,12 +22,12 @@
|
||||
# *****************************************************************************
|
||||
|
||||
|
||||
from secop.datatypes import ArrayOf, BLOBType, BoolType, EnumType, \
|
||||
from frappy.datatypes import ArrayOf, BLOBType, BoolType, EnumType, \
|
||||
FloatRange, IntRange, StringType, StructOf, TextType, TupleOf
|
||||
from secop.gui.qt import QCheckBox, QComboBox, QDialog, \
|
||||
from frappy.gui.qt import QCheckBox, QComboBox, QDialog, \
|
||||
QDoubleSpinBox, QFrame, QGridLayout, QGroupBox, \
|
||||
QLabel, QLineEdit, QSpinBox, QTextEdit, QVBoxLayout
|
||||
from secop.gui.util import loadUi
|
||||
from frappy.gui.util import loadUi
|
||||
|
||||
|
||||
# XXX: implement live validators !!!!
|