Rename from secop to frappy

debian/ is still missing, will follow in next commit.

Fixes: #4626

Change-Id: Ia87c28c1c75b8402eedbfca47f888585a7881f44
This commit is contained in:
Alexander Zaft 2022-11-08 08:09:41 +01:00 committed by Enrico Faulhaber
parent c1eb764b09
commit 7f166a5b8c
168 changed files with 558 additions and 554 deletions

View File

@ -4,11 +4,15 @@
all: clean doc all: clean doc
demo: demo:
@bin/secop-server -q demo & # Make spawns a new shell for each command.
@bin/secop-server -q test & # Save each PID in temporary file
@bin/secop-server -q cryo & @rm -f frappydemo.PID || true
@bin/secop-gui localhost:10767 localhost:10768 localhost:10769 @{ bin/frappy-server -q demo & echo $$! >> frappydemo.PID; }
@ps aux|grep [s]ecop-server|awk '{print $$2}'|xargs kill @{ 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: build:
python3 setup.py build python3 setup.py build
@ -32,18 +36,18 @@ test-verbose:
python3 $(shell which pytest) -v test -s python3 $(shell which pytest) -v test -s
test-coverage: test-coverage:
python3 $(shell which pytest) -v test --cov=secop python3 $(shell which pytest) -v test --cov=frappy
doc: doc:
$(MAKE) -C doc html $(MAKE) -C doc html
lint: lint:
pylint -f colorized -r n --rcfile=.pylintrc secop secop_* test pylint -f colorized -r n --rcfile=.pylintrc frappy frappy_* test
isort: isort:
@find test -name '*.py' -print0 | xargs -0 isort -e -m 2 -w 80 -ns __init__.py @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 frappy -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 . -wholename './frappy_*.py' -print0 | xargs -0 isort -e -m 2 -w 80 -ns __init__.py
release-patch: release-patch:
MODE="patch" $(MAKE) release MODE="patch" $(MAKE) release

View File

@ -29,8 +29,8 @@ from os import path
# Add import path for inplace usage # Add import path for inplace usage
sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..'))) sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..')))
from secop.gui.qt import QApplication from frappy.gui.qt import QApplication
from secop.gui.cfg_editor.mainwindow import MainWindow from frappy.gui.cfg_editor.mainwindow import MainWindow
def main(argv=None): def main(argv=None):

View File

@ -33,8 +33,8 @@ sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..')))
import mlzlog import mlzlog
from secop.gui.qt import QApplication from frappy.gui.qt import QApplication
from secop.gui.mainwindow import MainWindow from frappy.gui.mainwindow import MainWindow
def main(argv=None): def main(argv=None):
@ -42,7 +42,7 @@ def main(argv=None):
argv = sys.argv argv = sys.argv
if '-h' in argv or '--help' in 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()
print("Option GNU long option Meaning") print("Option GNU long option Meaning")
print("-h --help Show this message") print("-h --help Show this message")

View File

@ -30,9 +30,9 @@ from os import path
# Add import path for inplace usage # Add import path for inplace usage
sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..'))) sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..')))
from secop.lib import generalConfig from frappy.lib import generalConfig
from secop.logging import logger from frappy.logging import logger
from secop.server import Server from frappy.server import Server
def parseArgv(argv): def parseArgv(argv):

View File

@ -42,7 +42,7 @@ import ast
# Add import path for inplace usage # Add import path for inplace usage
sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..'))) 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): class LineHandler(asyncore.dispatcher_with_send):
@ -136,7 +136,7 @@ for arg in sys.argv[1:]:
pass pass
opts[k] = v opts[k] = v
verbose = opts.pop('verbose', False) verbose = opts.pop('verbose', False)
opts['cls'] = 'secop_psi.ls370sim.Ls370Sim' opts['cls'] = 'frappy_psi.ls370sim.Ls370Sim'
opts['port'] = 4567 opts['port'] = 4567
if len(args) > 2: if len(args) > 2:
raise ValueError('do not know about: %s' % ' '.join(args[2:])) raise ValueError('do not know about: %s' % ' '.join(args[2:]))

View File

@ -7,11 +7,11 @@ bindto = 0.0.0.0
bindport = 5000 bindport = 5000
[module cap] [module cap]
class = secop_psi.ah2700.Capacitance class = frappy_psi.ah2700.Capacitance
description = capacitance description = capacitance
uri=ldmse3-ts:3015 uri=ldmse3-ts:3015
#[module ahcom] #[module ahcom]
#class = secop_psi.ah2700.StringIO #class = frappy_psi.ah2700.StringIO
#uri=ldmse3-ts:3015 #uri=ldmse3-ts:3015
#description = serial communicator to an AH2700 #description = serial communicator to an AH2700

View File

@ -19,7 +19,7 @@ bindto=0.0.0.0
bindport=10767 bindport=10767
[module enable] [module enable]
class=secop_mlz.entangle.NamedDigitalOutput class=frappy_mlz.entangle.NamedDigitalOutput
tangodevice='tango://localhost:10000/box/plc/_enable' tangodevice='tango://localhost:10000/box/plc/_enable'
value.datatype=["enum", {'On':1,'Off':0}] value.datatype=["enum", {'On':1,'Off':0}]
target.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' .visibility='advanced'
[module polarity] [module polarity]
class=secop_mlz.entangle.NamedDigitalOutput class=frappy_mlz.entangle.NamedDigitalOutput
tangodevice=tango://localhost:10000/box/plc/_polarity tangodevice=tango://localhost:10000/box/plc/_polarity
value.datatype=["enum", {'+1':1,'0':0,'-1':-1}] value.datatype=["enum", {'+1':1,'0':0,'-1':-1}]
target.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] [module symmetry]
class=secop_mlz.entangle.NamedDigitalOutput class=frappy_mlz.entangle.NamedDigitalOutput
tangodevice=tango://localhost:10000/box/plc/_symmetric tangodevice=tango://localhost:10000/box/plc/_symmetric
value.datatype=["enum",{'symmetric':1,'short':0, 'asymmetric':-1}] value.datatype=["enum",{'symmetric':1,'short':0, 'asymmetric':-1}]
target.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 .visibility=advanced
[module T1] [module T1]
class=secop_mlz.entangle.AnalogInput class=frappy_mlz.entangle.AnalogInput
tangodevice=tango://localhost:10000/box/plc/_t1 tangodevice=tango://localhost:10000/box/plc/_t1
.description=Temperature1 of the coils system .description=Temperature1 of the coils system
#warnlimits=(0, 50) #warnlimits=(0, 50)
value.unit='degC' value.unit='degC'
[module T2] [module T2]
class=secop_mlz.entangle.AnalogInput class=frappy_mlz.entangle.AnalogInput
tangodevice=tango://localhost:10000/box/plc/_t2 tangodevice=tango://localhost:10000/box/plc/_t2
.description=Temperature2 of the coils system .description=Temperature2 of the coils system
#warnlimits=(0, 50) #warnlimits=(0, 50)
value.unit='degC' value.unit='degC'
[module T3] [module T3]
class=secop_mlz.entangle.AnalogInput class=frappy_mlz.entangle.AnalogInput
tangodevice=tango://localhost:10000/box/plc/_t3 tangodevice=tango://localhost:10000/box/plc/_t3
.description=Temperature3 of the coils system .description=Temperature3 of the coils system
#warnlimits=(0, 50) #warnlimits=(0, 50)
value.unit='degC' value.unit='degC'
[module T4] [module T4]
class=secop_mlz.entangle.AnalogInput class=frappy_mlz.entangle.AnalogInput
tangodevice=tango://localhost:10000/box/plc/_t4 tangodevice=tango://localhost:10000/box/plc/_t4
.description=Temperature4 of the coils system .description=Temperature4 of the coils system
#warnlimits=(0, 50) #warnlimits=(0, 50)
value.unit='degC' value.unit='degC'
[module currentsource] [module currentsource]
class=secop_mlz.entangle.PowerSupply class=frappy_mlz.entangle.PowerSupply
tangodevice=tango://localhost:10000/box/lambda/curr tangodevice=tango://localhost:10000/box/lambda/curr
.description=Device for the magnet power supply (current mode) .description=Device for the magnet power supply (current mode)
abslimits=(0,200) abslimits=(0,200)
@ -92,7 +92,7 @@ voltage=10
.visibility=advanced .visibility=advanced
[module mf] [module mf]
class=secop_mlz.amagnet.GarfieldMagnet class=frappy_mlz.amagnet.GarfieldMagnet
.description=magnetic field module, handling polarity switching and stuff .description=magnetic field module, handling polarity switching and stuff
subdev_currentsource=currentsource subdev_currentsource=currentsource
subdev_enable=enable subdev_enable=enable

View File

@ -11,7 +11,7 @@ bindto=0.0.0.0
bindport=10767 bindport=10767
[module automatik] [module automatik]
class=secop_mlz.entangle.NamedDigitalOutput class=frappy_mlz.entangle.NamedDigitalOutput
tangodevice=tango://localhost:10000/box/plc/_automatik tangodevice=tango://localhost:10000/box/plc/_automatik
mapping=dict(Off=0,p1=1,p2=2) mapping=dict(Off=0,p1=1,p2=2)
description="controls the (simple) pressure regulation 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" selects between off, regulate on p1 or regulate on p2 sensor"
[module compressor] [module compressor]
class=secop_mlz.entangle.NamedDigitalOutput class=frappy_mlz.entangle.NamedDigitalOutput
tangodevice=tango://localhost:10000/box/plc/_cooler_onoff tangodevice=tango://localhost:10000/box/plc/_cooler_onoff
mapping=dict(Off=0,On=1) mapping=dict(Off=0,On=1)
description=control the compressor (on/off) description=control the compressor (on/off)
[module gas] [module gas]
class=secop_mlz.entangle.NamedDigitalOutput class=frappy_mlz.entangle.NamedDigitalOutput
tangodevice=tango://localhost:10000/box/plc/_gas_onoff tangodevice=tango://localhost:10000/box/plc/_gas_onoff
mapping=dict(Off=0,On=1) mapping=dict(Off=0,On=1)
description=control the gas inlet into the ccr (on/off) 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 note: if the pressure regulation is active, it enslave this device
[module vacuum] [module vacuum]
class=secop_mlz.entangle.NamedDigitalOutput class=frappy_mlz.entangle.NamedDigitalOutput
tangodevice=tango://localhost:10000/box/plc/_vacuum_Onoff tangodevice=tango://localhost:10000/box/plc/_vacuum_Onoff
mapping=dict(Off=0,On=1) mapping=dict(Off=0,On=1)
description=control the vacuum inlet into the ccr (on/off) 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 note: if the pressure regulation is active, it enslave this device
[module p1] [module p1]
class=secop_mlz.entangle.AnalogInput class=frappy_mlz.entangle.AnalogInput
tangodevice=tango://localhost:10000/box/plc/_p1 tangodevice=tango://localhost:10000/box/plc/_p1
value.unit='mbar' value.unit='mbar'
description=pressure sensor 1 (linear scale) description=pressure sensor 1 (linear scale)
[module p2] [module p2]
class=secop_mlz.entangle.AnalogInput class=frappy_mlz.entangle.AnalogInput
tangodevice=tango://localhost:10000/box/plc/_p2 tangodevice=tango://localhost:10000/box/plc/_p2
value.unit='mbar' value.unit='mbar'
description=pressure sensor 2 (selectable curve) description=pressure sensor 2 (selectable curve)
[module curve_p2] [module curve_p2]
class=secop_mlz.entangle.NamedDigitalInput class=frappy_mlz.entangle.NamedDigitalInput
tangodevice=tango://localhost:10000/box/plc/_curve tangodevice=tango://localhost:10000/box/plc/_curve
value.default=0 value.default=0
description=calibration curve for pressure sensor 2 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 # sensors
[module T_sample] [module T_sample]
class=secop_mlz.entangle.Sensor class=frappy_mlz.entangle.Sensor
tangodevice=tango://localhost:10000/box/sample/sensora tangodevice=tango://localhost:10000/box/sample/sensora
value.unit='K' value.unit='K'
description=sample temperature description=sample temperature
[module T_stick] [module T_stick]
class=secop_mlz.entangle.Sensor class=frappy_mlz.entangle.Sensor
tangodevice=tango://localhost:10000/box/stick/sensorb tangodevice=tango://localhost:10000/box/stick/sensorb
value.unit='K' value.unit='K'
description=temperature at bottom of sample stick description=temperature at bottom of sample stick
[module T_coldhead] [module T_coldhead]
class=secop_mlz.entangle.Sensor class=frappy_mlz.entangle.Sensor
tangodevice=tango://localhost:10000/box/coldhead/sensorc tangodevice=tango://localhost:10000/box/coldhead/sensorc
value.unit='K' value.unit='K'
description=temperature at coldhead description=temperature at coldhead
[module T_tube] [module T_tube]
class=secop_mlz.entangle.Sensor class=frappy_mlz.entangle.Sensor
tangodevice=tango://localhost:10000/box/tube/sensord tangodevice=tango://localhost:10000/box/tube/sensord
value.unit='K' value.unit='K'
description=temperature at thermal coupling tube <-> stick description=temperature at thermal coupling tube <-> stick
@ -98,7 +98,7 @@ description=temperature at thermal coupling tube <-> stick
# regulations # regulations
[module T_stick_regulation] [module T_stick_regulation]
class=secop_mlz.entangle.TemperatureController class=frappy_mlz.entangle.TemperatureController
tangodevice=tango://localhost:10000/box/stick/control2 tangodevice=tango://localhost:10000/box/stick/control2
heateroutput.default=0 heateroutput.default=0
description=regulation of stick temperature description=regulation of stick temperature
@ -114,7 +114,7 @@ value.unit='K'
# OMG! a NamedDigitalOutput, but with float'ints' 0..3 # OMG! a NamedDigitalOutput, but with float'ints' 0..3
[module T_stick_regulation_heaterrange] [module T_stick_regulation_heaterrange]
class=secop_mlz.entangle.AnalogOutput class=frappy_mlz.entangle.AnalogOutput
tangodevice=tango://localhost:10000/box/stick/range2 tangodevice=tango://localhost:10000/box/stick/range2
precision.default=1 precision.default=1
abslimits=(0,3) abslimits=(0,3)
@ -122,7 +122,7 @@ description=heaterrange for stick regulation
[module T_tube_regulation] [module T_tube_regulation]
class=secop_mlz.entangle.TemperatureController class=frappy_mlz.entangle.TemperatureController
tangodevice=tango://localhost:10000/box/tube/control1 tangodevice=tango://localhost:10000/box/tube/control1
description=regulation of tube temperature description=regulation of tube temperature
heateroutput.default=0 heateroutput.default=0
@ -138,13 +138,13 @@ value.unit='K'
# OMG! a NamedDigitalOutput, but with float'ints' 0..3 # OMG! a NamedDigitalOutput, but with float'ints' 0..3
#[module T_tube_regulation_heaterrange] #[module T_tube_regulation_heaterrange]
#class=secop_mlz.entangle.AnalogOutput #class=frappy_mlz.entangle.AnalogOutput
#tangodevice=tango://localhost:10000/box/tube/range1 #tangodevice=tango://localhost:10000/box/tube/range1
#precision.default=1 #precision.default=1
#abslimits=(0,3) #abslimits=(0,3)
[module T_tube_regulation_heaterrange] [module T_tube_regulation_heaterrange]
class=secop_mlz.entangle.NamedDigitalOutput class=frappy_mlz.entangle.NamedDigitalOutput
tangodevice=tango://localhost:10000/box/tube/range1 tangodevice=tango://localhost:10000/box/tube/range1
mapping=dict(Off=0, Low=1, Medium=2, High=3) mapping=dict(Off=0, Low=1, Medium=2, High=3)
description=heaterrange for tube regulation description=heaterrange for tube regulation

View File

@ -17,7 +17,7 @@ bindport=10769
and a temperature dependend heat-link between sample and regulation. and a temperature dependend heat-link between sample and regulation.
# class of module: # class of module:
class=secop_demo.cryo.Cryostat class=frappy_demo.cryo.Cryostat
# some parameters # some parameters
jitter=0.1 jitter=0.1

View File

@ -6,18 +6,18 @@ bindto=0.0.0.0
bindport=10767 bindport=10767
[module heatswitch] [module heatswitch]
class=secop_demo.modules.Switch class=frappy_demo.modules.Switch
switch_on_time=5 switch_on_time=5
switch_off_time=10 switch_off_time=10
.description="Heatswitch for `mf` device" .description="Heatswitch for `mf` device"
[module mf] [module mf]
class=secop_demo.modules.MagneticField class=frappy_demo.modules.MagneticField
heatswitch = heatswitch heatswitch = heatswitch
.description="simulates some cryomagnet with persistent/non-persistent switching" .description="simulates some cryomagnet with persistent/non-persistent switching"
[module ts] [module ts]
class=secop_demo.modules.SampleTemp class=frappy_demo.modules.SampleTemp
sensor = 'Q1329V7R3' sensor = 'Q1329V7R3'
ramp = 4 ramp = 4
target = 10 target = 10
@ -25,17 +25,17 @@ value = 10
.description = "some temperature" .description = "some temperature"
[module tc1] [module tc1]
class=secop_demo.modules.CoilTemp class=frappy_demo.modules.CoilTemp
sensor="X34598T7" sensor="X34598T7"
.description = "some temperature" .description = "some temperature"
[module tc2] [module tc2]
class=secop_demo.modules.CoilTemp class=frappy_demo.modules.CoilTemp
sensor="X39284Q8' sensor="X39284Q8'
.description = "some temperature" .description = "some temperature"
[module label] [module label]
class=secop_demo.modules.Label class=frappy_demo.modules.Label
system=Cryomagnet MX15 system=Cryomagnet MX15
subdev_mf=mf subdev_mf=mf
subdev_ts=ts subdev_ts=ts

View File

@ -7,23 +7,23 @@ bindto=0.0.0.0
bindport=10767 bindport=10767
[module tc1] [module tc1]
class=secop_demo.modules.CoilTemp class=frappy_demo.modules.CoilTemp
sensor="X34598T7" sensor="X34598T7"
[module tc2] [module tc2]
class=secop_demo.modules.CoilTemp class=frappy_demo.modules.CoilTemp
sensor="X39284Q8' sensor="X39284Q8'
[module sensor1] [module sensor1]
class=secop_ess.epics.EpicsReadable class=frappy_ess.epics.EpicsReadable
epics_version="v4" epics_version="v4"
.group="Lakeshore336" .group="Lakeshore336"
value_pv="DEV:KRDG1" value_pv="DEV:KRDG1"
[module loop1] [module loop1]
class=secop_ess.epics.EpicsTempCtrl class=frappy_ess.epics.EpicsTempCtrl
epics_version="v4" epics_version="v4"
.group="Lakeshore336" .group="Lakeshore336"
@ -33,14 +33,14 @@ heaterrange_pv="DEV:RANGE_S1"
[module sensor2] [module sensor2]
class=secop_ess.epics.EpicsReadable class=frappy_ess.epics.EpicsReadable
epics_version="v4" epics_version="v4"
.group="Lakeshore336" .group="Lakeshore336"
value_pv="DEV:KRDG2" value_pv="DEV:KRDG2"
[module loop2] [module loop2]
class=secop_ess.epics.EpicsTempCtrl class=frappy_ess.epics.EpicsTempCtrl
epics_version="v4" epics_version="v4"
.group="Lakeshore336" .group="Lakeshore336"

View File

@ -6,23 +6,23 @@ description = Lsc Simulation at PSI
uri = tcp://5000 uri = tcp://5000
[lscom] [lscom]
class = secop_psi.ls370sim.Ls370Sim class = frappy_psi.ls370sim.Ls370Sim
description = simulated serial communicator to a LS 370 description = simulated serial communicator to a LS 370
visibility = 3 visibility = 3
[sw] [sw]
class = secop_psi.ls370res.Switcher class = frappy_psi.ls370res.Switcher
description = channel switcher for Lsc controller description = channel switcher for Lsc controller
io = lscom io = lscom
[a] [a]
class = secop_psi.ls370res.ResChannel class = frappy_psi.ls370res.ResChannel
channel = 1 channel = 1
description = resistivity description = resistivity
switcher = sw switcher = sw
[b] [b]
class = secop_psi.ls370res.ResChannel class = frappy_psi.ls370res.ResChannel
channel = 3 channel = 3
description = resistivity description = resistivity
switcher = sw switcher = sw

View File

@ -7,12 +7,12 @@ bindto = 0.0.0.0
bindport = 5000 bindport = 5000
[module lsmain] [module lsmain]
class = secop_psi.ls370res.Main class = frappy_psi.ls370res.Main
description = main control of Lsc controller description = main control of Lsc controller
uri = localhost:4567 uri = localhost:4567
[module res] [module res]
class = secop_psi.ls370res.ResChannel class = frappy_psi.ls370res.ResChannel
vexc = '2mV' vexc = '2mV'
channel = 3 channel = 3
description = resistivity description = resistivity

View File

@ -6,118 +6,118 @@ description = PPMS at PSI
uri = tcp://5000 uri = tcp://5000
[tt] [tt]
class = secop_psi.ppms.Temp class = frappy_psi.ppms.Temp
description = main temperature description = main temperature
io = ppms io = ppms
[mf] [mf]
class = secop_psi.ppms.Field class = frappy_psi.ppms.Field
target.min = -9 target.min = -9
target.max = 9 target.max = 9
description = magnetic field description = magnetic field
io = ppms io = ppms
[pos] [pos]
class = secop_psi.ppms.Position class = frappy_psi.ppms.Position
description = sample rotator description = sample rotator
io = ppms io = ppms
[lev] [lev]
class = secop_psi.ppms.Level class = frappy_psi.ppms.Level
description = helium level description = helium level
io = ppms io = ppms
[chamber] [chamber]
class = secop_psi.ppms.Chamber class = frappy_psi.ppms.Chamber
description = chamber state description = chamber state
io = ppms io = ppms
[r1] [r1]
class = secop_psi.ppms.BridgeChannel class = frappy_psi.ppms.BridgeChannel
description = resistivity channel 1 description = resistivity channel 1
no = 1 no = 1
value.unit = Ohm value.unit = Ohm
io = ppms io = ppms
[r2] [r2]
class = secop_psi.ppms.BridgeChannel class = frappy_psi.ppms.BridgeChannel
description = resistivity channel 2 description = resistivity channel 2
no = 2 no = 2
value.unit = Ohm value.unit = Ohm
io = ppms io = ppms
[r3] [r3]
class = secop_psi.ppms.BridgeChannel class = frappy_psi.ppms.BridgeChannel
description = resistivity channel 3 description = resistivity channel 3
no = 3 no = 3
value.unit = Ohm value.unit = Ohm
io = ppms io = ppms
[r4] [r4]
class = secop_psi.ppms.BridgeChannel class = frappy_psi.ppms.BridgeChannel
description = resistivity channel 4 description = resistivity channel 4
no = 4 no = 4
value.unit = Ohm value.unit = Ohm
io = ppms io = ppms
[i1] [i1]
class = secop_psi.ppms.Channel class = frappy_psi.ppms.Channel
description = current channel 1 description = current channel 1
no = 1 no = 1
value.unit = uA value.unit = uA
io = ppms io = ppms
[i2] [i2]
class = secop_psi.ppms.Channel class = frappy_psi.ppms.Channel
description = current channel 2 description = current channel 2
no = 2 no = 2
value.unit = uA value.unit = uA
io = ppms io = ppms
[i3] [i3]
class = secop_psi.ppms.Channel class = frappy_psi.ppms.Channel
description = current channel 3 description = current channel 3
no = 3 no = 3
value.unit = uA value.unit = uA
io = ppms io = ppms
[i4] [i4]
class = secop_psi.ppms.Channel class = frappy_psi.ppms.Channel
description = current channel 4 description = current channel 4
no = 4 no = 4
value.unit = uA value.unit = uA
io = ppms io = ppms
[v1] [v1]
class = secop_psi.ppms.DriverChannel class = frappy_psi.ppms.DriverChannel
description = voltage channel 1 description = voltage channel 1
no = 1 no = 1
value.unit = V value.unit = V
io = ppms io = ppms
[v2] [v2]
class = secop_psi.ppms.DriverChannel class = frappy_psi.ppms.DriverChannel
description = voltage channel 2 description = voltage channel 2
no = 2 no = 2
value.unit = V value.unit = V
io = ppms io = ppms
[tv] [tv]
class = secop_psi.ppms.UserChannel class = frappy_psi.ppms.UserChannel
description = VTI temperature description = VTI temperature
enabled = 1 enabled = 1
value.unit = K value.unit = K
io = ppms io = ppms
[ts] [ts]
class = secop_psi.ppms.UserChannel class = frappy_psi.ppms.UserChannel
description = sample temperature description = sample temperature
enabled = 1 enabled = 1
value.unit = K value.unit = K
io = ppms io = ppms
[ppms] [ppms]
class = secop_psi.ppms.Main class = frappy_psi.ppms.Main
description = the main and poller module description = the main and poller module
class_id = QD.MULTIVU.PPMS.1 class_id = QD.MULTIVU.PPMS.1
visibility = 3 visibility = 3

View File

@ -7,13 +7,13 @@ bindto = 0.0.0.0
bindport = 5002 bindport = 5002
[module secnode] [module secnode]
class = secop.SecNode class = frappy.SecNode
description = a SEC node description = a SEC node
uri = tcp://localhost:5000 uri = tcp://localhost:5000
[module mf] [module mf]
class = secop.Proxy class = frappy.Proxy
remote_class = secop_psi.ppms.Field remote_class = frappy_psi.ppms.Field
description = magnetic field description = magnetic field
iodev = secnode iodev = secnode
value.min = -0.1 value.min = -0.1

View File

@ -10,7 +10,7 @@ bindport=10767
[module sim] [module sim]
class=secop.simulation.SimDrivable class=frappy.simulation.SimDrivable
.description=simulation stuff .description=simulation stuff
.extra_params=param3,param4,jitter,ramp .extra_params=param3,param4,jitter,ramp
param3.datatype={"type":"bool"} param3.datatype={"type":"bool"}

View File

@ -19,14 +19,14 @@ bindto=0.0.0.0
bindport=10767 bindport=10767
[module enable] [module enable]
class=secop.simulation.SimWritable class=frappy.simulation.SimWritable
value.datatype={"type":"enum", "members":{'On':1,'Off':0}} value.datatype={"type":"enum", "members":{'On':1,'Off':0}}
target.datatype={"type":"enum", "members":{'On':1,'Off':0}} target.datatype={"type":"enum", "members":{'On':1,'Off':0}}
.description='Enables to Output of the Powersupply' .description='Enables to Output of the Powersupply'
.visibility='advanced' .visibility='advanced'
[module polarity] [module polarity]
class=secop.simulation.SimWritable class=frappy.simulation.SimWritable
value.datatype={"type":"enum", "members":{'+1':1,'0':0,'-1':-1}} value.datatype={"type":"enum", "members":{'+1':1,'0':0,'-1':-1}}
target.datatype={"type":"enum", "members":{'+1':1,'0':0,'-1':-1}} target.datatype={"type":"enum", "members":{'+1':1,'0':0,'-1':-1}}
.description=polarity (+/-) switch .description=polarity (+/-) switch
@ -38,7 +38,7 @@ target.datatype={"type":"enum", "members":{'+1':1,'0':0,'-1':-1}}
[module symmetry] [module symmetry]
class=secop.simulation.SimWritable class=frappy.simulation.SimWritable
value.datatype={"type":"enum", "members":{'symmetric':1,'short':0, 'asymmetric':-1}} value.datatype={"type":"enum", "members":{'symmetric':1,'short':0, 'asymmetric':-1}}
target.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 .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' value.default = 'symmetric'
[module T1] [module T1]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=Temperature1 of the coils system .description=Temperature1 of the coils system
value.unit='degC' value.unit='degC'
value.default = 23.45 value.default = 23.45
[module T2] [module T2]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=Temperature2 of the coils system .description=Temperature2 of the coils system
value.unit='degC' value.unit='degC'
value.default = 23.45 value.default = 23.45
[module T3] [module T3]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=Temperature3 of the coils system .description=Temperature3 of the coils system
value.unit='degC' value.unit='degC'
value.default = 23.45 value.default = 23.45
[module T4] [module T4]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=Temperature4 of the coils system .description=Temperature4 of the coils system
value.unit='degC' value.unit='degC'
value.default = 23.45 value.default = 23.45
[module currentsource] [module currentsource]
class=secop.simulation.SimDrivable class=frappy.simulation.SimDrivable
.description=Device for the magnet power supply (current mode) .description=Device for the magnet power supply (current mode)
abslimits=(0,200) abslimits=(0,200)
speed=1 speed=1
@ -98,7 +98,7 @@ window.datatype = {"type":"double", "min":0, "max":120, "unit":"s"}
window.default = 10 window.default = 10
[module mf] [module mf]
class=secop_mlz.amagnet.GarfieldMagnet class=frappy_mlz.amagnet.GarfieldMagnet
.description=magnetic field module, handling polarity switching and stuff .description=magnetic field module, handling polarity switching and stuff
subdev_currentsource=currentsource subdev_currentsource=currentsource
subdev_enable=enable subdev_enable=enable

View File

@ -11,7 +11,7 @@ bindto=0.0.0.0
bindport=10767 bindport=10767
[module T_cci3he1] [module T_cci3he1]
class=secop.simulation.SimDrivable class=frappy.simulation.SimDrivable
.description=Main temperature control node of cci3he1. .description=Main temperature control node of cci3he1.
. .
Controls the regulation loop of the ls370. Controls the regulation loop of the ls370.
@ -26,7 +26,7 @@ ramp.default=60
.meaning=["temperature_regulation",40] .meaning=["temperature_regulation",40]
[module T_cci3he1_A] [module T_cci3he1_A]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=3He pot temperature sensor. Also used for the regulation. .description=3He pot temperature sensor. Also used for the regulation.
.visibility=expert .visibility=expert
value.default=300 value.default=300
@ -34,7 +34,7 @@ value.datatype={"type":"double","unit":"K"}
.meaning=["temperature",38] .meaning=["temperature",38]
[module T_cci3he1_B] [module T_cci3he1_B]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=(optional) sample temperature sensor close to sample. .description=(optional) sample temperature sensor close to sample.
.visibility=user .visibility=user
value.default=300 value.default=300
@ -42,49 +42,49 @@ value.datatype={"type":"double","unit":"K"}
.meaning=["temperature",39] .meaning=["temperature",39]
[module cci3he1_p1] [module cci3he1_p1]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=Pressure at turbo pump inlet. .description=Pressure at turbo pump inlet.
.visibility=expert .visibility=expert
value.default=2e-3 value.default=2e-3
value.datatype={"type":"double","unit":"mbar"} value.datatype={"type":"double","unit":"mbar"}
[module cci3he1_p2] [module cci3he1_p2]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=Pressure at turbo pump outlet. .description=Pressure at turbo pump outlet.
.visibility=expert .visibility=expert
value.default=9.87 value.default=9.87
value.datatype={"type":"double","unit":"mbar"} value.datatype={"type":"double","unit":"mbar"}
[module cci3he1_p3] [module cci3he1_p3]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=Pressure at compressor inlet. .description=Pressure at compressor inlet.
.visibility=expert .visibility=expert
value.default=19.99 value.default=19.99
value.datatype={"type":"double","unit":"mbar"} value.datatype={"type":"double","unit":"mbar"}
[module cci3he1_p4] [module cci3he1_p4]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=Pressure at compressor outlet. .description=Pressure at compressor outlet.
.visibility=expert .visibility=expert
value.default=999 value.default=999
value.datatype={"type":"double","unit":"mbar"} value.datatype={"type":"double","unit":"mbar"}
[module cci3he1_p5] [module cci3he1_p5]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=Pressure in dump tank. .description=Pressure in dump tank.
.visibility=expert .visibility=expert
value.default=567 value.default=567
value.datatype={"type":"double","unit":"mbar"} value.datatype={"type":"double","unit":"mbar"}
[module cci3he1_p6] [module cci3he1_p6]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=Pressure in the vacuum dewar (ivc). .description=Pressure in the vacuum dewar (ivc).
.visibility=expert .visibility=expert
value.default=1e-3 value.default=1e-3
value.datatype={"type":"double","unit":"mbar"} value.datatype={"type":"double","unit":"mbar"}
[module cci3he1_flow] [module cci3he1_flow]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=Gas Flow (condensing line). .description=Gas Flow (condensing line).
.visibility=expert .visibility=expert
value.default=12.34 value.default=12.34

View File

@ -11,7 +11,7 @@ bindto=0.0.0.0
bindport=10767 bindport=10767
[module T_ccidu1] [module T_ccidu1]
class=secop.simulation.SimDrivable class=frappy.simulation.SimDrivable
.description=Main temperature control node of ccidu1. .description=Main temperature control node of ccidu1.
. .
Controls the regulation loop of the ls372. Controls the regulation loop of the ls372.
@ -26,7 +26,7 @@ ramp.default=60
.meaning=["temperature_regulation",40] .meaning=["temperature_regulation",40]
[module T_ccidu1_A] [module T_ccidu1_A]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=mixing chamber temperature sensor. Also used for the regulation. .description=mixing chamber temperature sensor. Also used for the regulation.
.visibility=expert .visibility=expert
value.default=300 value.default=300
@ -34,7 +34,7 @@ value.datatype={"type":"double", "unit":"K"}
.meaning=["temperature",38] .meaning=["temperature",38]
[module T_ccidu1_B] [module T_ccidu1_B]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=(optional) sample temperature sensor close to sample. .description=(optional) sample temperature sensor close to sample.
.visibility=user .visibility=user
value.default=300 value.default=300
@ -42,49 +42,49 @@ value.datatype={"type":"double", "unit":"K"}
.meaning=["temperature",39] .meaning=["temperature",39]
[module ccidu1_pstill] [module ccidu1_pstill]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=Pressure at the still/turbo pump inlet. .description=Pressure at the still/turbo pump inlet.
.visibility=expert .visibility=expert
value.default=999 value.default=999
value.datatype={"type":"double", "unit":"mbar"} value.datatype={"type":"double", "unit":"mbar"}
[module ccidu1_pinlet] [module ccidu1_pinlet]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=Pressure at forepump inlet/turbo pump outlet. .description=Pressure at forepump inlet/turbo pump outlet.
.visibility=expert .visibility=expert
value.default=999 value.default=999
value.datatype={"type":"double", "unit":"mbar"} value.datatype={"type":"double", "unit":"mbar"}
[module ccidu1_poutlet] [module ccidu1_poutlet]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=Pressure at forepump outlet/compressor inlet. .description=Pressure at forepump outlet/compressor inlet.
.visibility=expert .visibility=expert
value.default=999 value.default=999
value.datatype={"type":"double", "unit":"mbar"} value.datatype={"type":"double", "unit":"mbar"}
[module ccidu1_pkond] [module ccidu1_pkond]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=Pressure at condensing line/compressor outlet. .description=Pressure at condensing line/compressor outlet.
.visibility=expert .visibility=expert
value.default=999 value.default=999
value.datatype={"type":"double", "unit":"mbar"} value.datatype={"type":"double", "unit":"mbar"}
[module ccidu1_ptank] [module ccidu1_ptank]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=Pressure in dump tank. .description=Pressure in dump tank.
.visibility=expert .visibility=expert
value.default=999 value.default=999
value.datatype={"type":"double", "unit":"mbar"} value.datatype={"type":"double", "unit":"mbar"}
[module ccidu1_pvac] [module ccidu1_pvac]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=Pressure in the vacuum dewar (ivc). .description=Pressure in the vacuum dewar (ivc).
.visibility=expert .visibility=expert
value.default=999 value.default=999
value.datatype={"type":"double", "unit":"mbar"} value.datatype={"type":"double", "unit":"mbar"}
[module ccidu1_flow] [module ccidu1_flow]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=Gas Flow (condensing line). .description=Gas Flow (condensing line).
.visibility=expert .visibility=expert
value.default=999 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 # note: all valves and switches are missing: use VNC to control them
[module ccidu1_V6] [module ccidu1_V6]
class=secop.simulation.SimDrivable class=frappy.simulation.SimDrivable
.description=Needle valve .description=Needle valve
.visibility=expert .visibility=expert
value.default=99 value.default=99
value.datatype={"type":"double", "min":0, "max":100, "unit":"%%"} value.datatype={"type":"double", "min":0, "max":100, "unit":"%%"}
[module ccidu1_V3] [module ccidu1_V3]
class=secop.simulation.SimWritable class=frappy.simulation.SimWritable
.description=Dump Valve .description=Dump Valve
.visibility=expert .visibility=expert
value.default="OFF" value.default="OFF"

View File

@ -12,7 +12,7 @@ bindto=0.0.0.0
bindport=10767 bindport=10767
[module T_ccr12] [module T_ccr12]
class=secop.simulation.SimDrivable class=frappy.simulation.SimDrivable
.description=Main temperature control node of CCR12. .description=Main temperature control node of CCR12.
. .
Switches between regulation on stick and regulation on tube depending on temperature requested. Switches between regulation on stick and regulation on tube depending on temperature requested.
@ -30,7 +30,7 @@ target.default=300
.meaning=["temperature_regulation", 20] .meaning=["temperature_regulation", 20]
[module T_ccr12_stick] [module T_ccr12_stick]
class=secop.simulation.SimDrivable class=frappy.simulation.SimDrivable
.description=Temperature regulation for the sample stick in ccr12. .description=Temperature regulation for the sample stick in ccr12.
.extra_params=ramp .extra_params=ramp
ramp.datatype={"type":"double", "min":0,"max":60, "unit":"K/min"} ramp.datatype={"type":"double", "min":0,"max":60, "unit":"K/min"}
@ -42,7 +42,7 @@ target.default=300
.meaning=["temperature_regulation", 15] .meaning=["temperature_regulation", 15]
[module T_ccr12_tube] [module T_ccr12_tube]
class=secop.simulation.SimDrivable class=frappy.simulation.SimDrivable
.description=Temperature regulation for the tube of ccr12. .description=Temperature regulation for the tube of ccr12.
.extra_params=ramp .extra_params=ramp
ramp.datatype={"type":"double", "min":0,"max":60, "unit":"K/min"} ramp.datatype={"type":"double", "min":0,"max":60, "unit":"K/min"}
@ -54,28 +54,28 @@ target.default=300
.meaning=["temperature_regulation", 10] .meaning=["temperature_regulation", 10]
[module T_ccr12_A] [module T_ccr12_A]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=(optional) Sample temperature sensor. .description=(optional) Sample temperature sensor.
value.datatype={"type":"double", "unit":"K"} value.datatype={"type":"double", "unit":"K"}
value.default=300 value.default=300
.meaning=["temperature", 9] .meaning=["temperature", 9]
[module T_ccr12_B] [module T_ccr12_B]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=(regulation) temperature sensor on stick. .description=(regulation) temperature sensor on stick.
value.datatype={"type":"double", "unit":"K"} value.datatype={"type":"double", "unit":"K"}
value.default=300 value.default=300
.meaning=["temperature", 10] .meaning=["temperature", 10]
[module T_ccr12_C] [module T_ccr12_C]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=Temperature at the coldhead. .description=Temperature at the coldhead.
value.datatype={"type":"double", "unit":"K"} value.datatype={"type":"double", "unit":"K"}
value.default=70 value.default=70
.meaning=["temperature", 1] .meaning=["temperature", 1]
[module T_ccr12_D] [module T_ccr12_D]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=(regulation) temperature at coupling to stick. .description=(regulation) temperature at coupling to stick.
value.datatype={"type":"double", "unit":"K"} value.datatype={"type":"double", "unit":"K"}
value.default=80 value.default=80
@ -84,7 +84,7 @@ value.default=80
[module ccr12_pressure_regulate] [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. .description=Selects on which Sensor the pressure regulation works, or switches it off.
.visibility=expert .visibility=expert
value.datatype={"type":"enum", "members":{'off':0,'p1':1,'p2':2}} 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' target.default='off'
[module ccr12_compressor] [module ccr12_compressor]
class=secop.simulation.SimDrivable class=frappy.simulation.SimDrivable
.description=Switches the compressor for the cooling stage on or off. .description=Switches the compressor for the cooling stage on or off.
. .
Note: This should always be on, except for fast heatup for sample change. 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' target.default='on'
[module ccr12_gas_switch] [module ccr12_gas_switch]
class=secop.simulation.SimWritable class=frappy.simulation.SimWritable
.description=Switches the gas inlet on or off. .description=Switches the gas inlet on or off.
. .
note: in reality this switches itself off after 15min. 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' target.default='off'
[module ccr12_vacuum_switch] [module ccr12_vacuum_switch]
class=secop.simulation.SimWritable class=frappy.simulation.SimWritable
.description=Switches the vacuum pumping valve on or off. .description=Switches the vacuum pumping valve on or off.
. .
note: in reality this is interlocked with ccr12_gas_switch, only one can be on! 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' target.default='off'
[module ccr12_p1] [module ccr12_p1]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=Default pressure Sensor, linear scale 0..1000mbar .description=Default pressure Sensor, linear scale 0..1000mbar
value.datatype={"type":"double", "unit":"mbar"} value.datatype={"type":"double", "unit":"mbar"}
value.default=999 value.default=999
[module ccr12_p2] [module ccr12_p2]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=Auxillary pressure Sensor. .description=Auxillary pressure Sensor.
value.datatype={"type":"double", "unit":"mbar"} value.datatype={"type":"double", "unit":"mbar"}
value.default=1e-6 value.default=1e-6
[module ccr12_curve_p2] [module ccr12_curve_p2]
class=secop.simulation.SimWritable class=frappy.simulation.SimWritable
.description=Curve for Aux pressure Sensor p2 .description=Curve for Aux pressure Sensor p2
.visibility=expert .visibility=expert
value.default='TTR100' 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}} 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] [module ccr12_p1_limits]
class=secop.simulation.SimWritable class=frappy.simulation.SimWritable
.description=Limits for pressure regulation in P1. .description=Limits for pressure regulation in P1.
.visibility=expert .visibility=expert
value.datatype={"type":"limit","members":{"type":"double", "min":0,"max":1000, "unit":"mbar"}} 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] target.default=[0,10]
[module ccr12_p2_limits] [module ccr12_p2_limits]
class=secop.simulation.SimWritable class=frappy.simulation.SimWritable
.description=Limits for pressure regulation in P2. .description=Limits for pressure regulation in P2.
.visibility=expert .visibility=expert
value.datatype={"type":"limit","members":{"type":"double", "min":0,"max":1000, "unit":"mbar"}} value.datatype={"type":"limit","members":{"type":"double", "min":0,"max":1000, "unit":"mbar"}}

View File

@ -12,7 +12,7 @@ bindto=0.0.0.0
bindport=10767 bindport=10767
[module T_ccr12] [module T_ccr12]
class=secop.simulation.SimDrivable class=frappy.simulation.SimDrivable
.description=Main temperature control node of CCR12. .description=Main temperature control node of CCR12.
. .
Switches between regulation on stick and regulation on tube depending on temperature requested. Switches between regulation on stick and regulation on tube depending on temperature requested.
@ -41,7 +41,7 @@ userlimits.readonly=False
.meaning=["temperature_regulation", 20] .meaning=["temperature_regulation", 20]
[module T_ccr12_A] [module T_ccr12_A]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=(optional) Sample temperature sensor. .description=(optional) Sample temperature sensor.
.visibility=expert .visibility=expert
value.datatype={"type":"double", "min":0, "unit":"K"} value.datatype={"type":"double", "min":0, "unit":"K"}
@ -49,7 +49,7 @@ value.default=300
.meaning=["temperature", 9] .meaning=["temperature", 9]
[module T_ccr12_B] [module T_ccr12_B]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=(regulation) temperature sensor on stick. .description=(regulation) temperature sensor on stick.
.visibility=expert .visibility=expert
value.datatype={"type":"double", "min":0, "unit":"K"} value.datatype={"type":"double", "min":0, "unit":"K"}
@ -57,7 +57,7 @@ value.default=300
.meaning=["temperature", 10] .meaning=["temperature", 10]
[module T_ccr12_C] [module T_ccr12_C]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=Temperature at the coldhead. .description=Temperature at the coldhead.
.visibility=expert .visibility=expert
value.datatype={"type":"double", "min":0, "unit":"K"} value.datatype={"type":"double", "min":0, "unit":"K"}
@ -65,7 +65,7 @@ value.default=70
.meaning=["temperature", 1] .meaning=["temperature", 1]
[module T_ccr12_D] [module T_ccr12_D]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=(regulation) temperature at coupling to stick. .description=(regulation) temperature at coupling to stick.
.visibility=expert .visibility=expert
value.datatype={"type":"double", "min":0, "unit":"K"} value.datatype={"type":"double", "min":0, "unit":"K"}
@ -75,7 +75,7 @@ value.default=80
[module ccr12_pressure_regulation] [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. .description=Simple two-point presssure regulation. the mode parameter selects the readout on which to regulate, or 'none' for no regulation.
.visibility=user .visibility=user
.extra_params=switchpoints, mode .extra_params=switchpoints, mode
@ -91,7 +91,7 @@ value.datatype={"type":"double", "min":0, "max":1000, "unit":"mbar"}
value.default = 1e-5 value.default = 1e-5
[module ccr12_compressor] [module ccr12_compressor]
class=secop.simulation.SimDrivable class=frappy.simulation.SimDrivable
.description=Switches the compressor for the cooling stage on or off. .description=Switches the compressor for the cooling stage on or off.
. .
Note: This should always be on, except for fast heatup for sample change. 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}} target.datatype={"type":"enum", "members":{'off':0,'on':1}}
[module ccr12_gas_switch] [module ccr12_gas_switch]
class=secop.simulation.SimWritable class=frappy.simulation.SimWritable
.description=Switches the gas inlet on or off. .description=Switches the gas inlet on or off.
. .
note: in reality this switches itself off after 15min. 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' target.default='off'
[module ccr12_vacuum_switch] [module ccr12_vacuum_switch]
class=secop.simulation.SimWritable class=frappy.simulation.SimWritable
.description=Switches the vacuum pumping valve on or off. .description=Switches the vacuum pumping valve on or off.
. .
note: in reality this is interlocked with ccr12_gas_switch, only one can be on! 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' target.default='off'
[module ccr12_p1] [module ccr12_p1]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=Default pressure Sensor, linear scale 0..1000 mbar .description=Default pressure Sensor, linear scale 0..1000 mbar
. .
Good candidate for a 'Sensor' Interface class! Good candidate for a 'Sensor' Interface class!
@ -140,7 +140,7 @@ userlimits.description=current user set limits for the pressure regulation.
userlimits.readonly=False userlimits.readonly=False
[module ccr12_p2] [module ccr12_p2]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=Auxillary pressure Sensor. .description=Auxillary pressure Sensor.
value.default=1e-6 value.default=1e-6
value.unit=mbar value.unit=mbar

View File

@ -10,7 +10,7 @@ bindto=0.0.0.0
bindport=10767 bindport=10767
[module T_htf02] [module T_htf02]
class=secop.simulation.SimDrivable class=frappy.simulation.SimDrivable
.description=Main temperature control node of htf02. .description=Main temperature control node of htf02.
. .
Controls the regulation loop of the Eurotherm. Controls the regulation loop of the Eurotherm.
@ -26,7 +26,7 @@ ramp.readonly=False
.meaning=["temperature", 10] .meaning=["temperature", 10]
[module htf02_p] [module htf02_p]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=Pressure Sensor at sample space (ivc). .description=Pressure Sensor at sample space (ivc).
value.datatype={"type":"double", "min":0, "unit":"mbar"} value.datatype={"type":"double", "min":0, "unit":"mbar"}
value.default=989 value.default=989

View File

@ -10,7 +10,7 @@ bindto=0.0.0.0
bindport=10767 bindport=10767
[module T_stressihtf2] [module T_stressihtf2]
class=secop.simulation.SimDrivable class=frappy.simulation.SimDrivable
.description=Main temperature control node of Stressihtf2. .description=Main temperature control node of Stressihtf2.
value.datatype={"type":"double", "min":0, "unit":"degC"} value.datatype={"type":"double", "min":0, "unit":"degC"}
value.default=20 value.default=20
@ -30,7 +30,7 @@ userlimits.readonly=False
.meaning=['temperature_regulation', 10] .meaning=['temperature_regulation', 10]
[module T_stressihtf2_sample] [module T_stressihtf2_sample]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=(optional) Sample temperature sensor. .description=(optional) Sample temperature sensor.
.visibility=expert .visibility=expert
value.default=300 value.default=300
@ -38,7 +38,7 @@ value.datatype={"type":"double", "min":0, "unit":"degC"}
.meaning=["temperature", 9] .meaning=["temperature", 9]
[module stressihtf2_n2] [module stressihtf2_n2]
class=secop.simulation.SimWritable class=frappy.simulation.SimWritable
.description=Switches the N2 gas inlet on or off. .description=Switches the N2 gas inlet on or off.
.visibility=expert .visibility=expert
value.default='off' value.default='off'
@ -47,7 +47,7 @@ target.datatype={"type":"enum", "members":{'off':0,'on':1}}
target.default='off' target.default='off'
[module stressihtf2_he] [module stressihtf2_he]
class=secop.simulation.SimWritable class=frappy.simulation.SimWritable
.description=Switches the He gas inlet on or off. .description=Switches the He gas inlet on or off.
.visibility=expert .visibility=expert
value.default='off' value.default='off'
@ -56,7 +56,7 @@ target.datatype={"type":"enum", "members":{'off':0,'on':1}}
target.default='off' target.default='off'
[module stressihtf2_lamps] [module stressihtf2_lamps]
class=secop.simulation.SimWritable class=frappy.simulation.SimWritable
.description=Switches the heating lamps on or off. .description=Switches the heating lamps on or off.
.visibility=expert .visibility=expert
value.default='on' value.default='on'
@ -65,7 +65,7 @@ target.datatype={"type":"enum", "members":{'off':0,'on':1}}
target.default='on' target.default='on'
[module stressihtf2_water_ok] [module stressihtf2_water_ok]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=Readout of the cooling water state. .description=Readout of the cooling water state.
.visibility=expert .visibility=expert
value.default='ok' value.default='ok'

View File

@ -10,7 +10,7 @@ bindto=0.0.0.0
bindport=10767 bindport=10767
[module T] [module T]
class=secop.simulation.SimDrivable class=frappy.simulation.SimDrivable
.description=Main temperature control node of Stressihtf2. .description=Main temperature control node of Stressihtf2.
value.datatype={"type":"double", "min":0, "unit":"degC"} value.datatype={"type":"double", "min":0, "unit":"degC"}
value.default=20 value.default=20
@ -30,7 +30,7 @@ userlimits.readonly=False
.meaning=['temperature_regulation', 10] .meaning=['temperature_regulation', 10]
[module T_sample] [module T_sample]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=(optional) Sample temperature sensor. .description=(optional) Sample temperature sensor.
.visibility=expert .visibility=expert
value.default=300 value.default=300
@ -38,7 +38,7 @@ value.datatype={"type":"double", "min":0, "unit":"degC"}
.meaning=["temperature", 9] .meaning=["temperature", 9]
[module N2] [module N2]
class=secop.simulation.SimWritable class=frappy.simulation.SimWritable
.description=Switches the N2 gas inlet on or off. .description=Switches the N2 gas inlet on or off.
.visibility=expert .visibility=expert
value.default='off' value.default='off'
@ -47,7 +47,7 @@ target.datatype={"type":"enum", "members":{'off':0,'on':1}}
target.default='off' target.default='off'
[module He] [module He]
class=secop.simulation.SimWritable class=frappy.simulation.SimWritable
.description=Switches the He gas inlet on or off. .description=Switches the He gas inlet on or off.
.visibility=expert .visibility=expert
value.default='off' value.default='off'
@ -56,7 +56,7 @@ target.datatype={"type":"enum", "members":{'off':0,'on':1}}
target.default='off' target.default='off'
[module lamps] [module lamps]
class=secop.simulation.SimWritable class=frappy.simulation.SimWritable
.description=Switches the heating lamps on or off. .description=Switches the heating lamps on or off.
.visibility=expert .visibility=expert
value.default='on' value.default='on'
@ -65,7 +65,7 @@ target.datatype={"type":"enum", "members":{'off':0,'on':1}}
target.default='on' target.default='on'
[module water_ok] [module water_ok]
class=secop.simulation.SimReadable class=frappy.simulation.SimReadable
.description=Readout of the cooling water state. .description=Readout of the cooling water state.
.visibility=expert .visibility=expert
value.default='ok' value.default='ok'

View File

@ -1,12 +1,12 @@
[r3] [r3]
class = secop.core.Proxy class = frappy.core.Proxy
remote_class = secop.core.Readable remote_class = frappy.core.Readable
description = temp sensor on 3He system description = temp sensor on 3He system
uri = tcp://pc12694:5000 uri = tcp://pc12694:5000
export = False export = False
[t3] [t3]
class = secop_psi.softcal.Sensor class = frappy_psi.softcal.Sensor
rawsensor = r3 rawsensor = r3
calib = X131346 calib = X131346
value.unit = K value.unit = K

View File

@ -11,7 +11,7 @@ bindto=0.0.0.0
bindport=10767 bindport=10767
[module T] [module T]
class=secop_mlz.entangle.TemperatureController class=frappy_mlz.entangle.TemperatureController
tangodevice=tango://localhost:10000/box/eurotherm/ctrl tangodevice=tango://localhost:10000/box/eurotherm/ctrl
.description=Main temperature control node of Stressihtf2. .description=Main temperature control node of Stressihtf2.
value.unit='degC' value.unit='degC'
@ -41,42 +41,42 @@ pid.default=[1,0,0]
speed.default=0 speed.default=0
[module T_sample_a] [module T_sample_a]
class=secop_mlz.entangle.Sensor class=frappy_mlz.entangle.Sensor
tangodevice=tango://localhost:10000/box/eurotherm/sensora tangodevice=tango://localhost:10000/box/eurotherm/sensora
.description=Regulation temperature sensor. .description=Regulation temperature sensor.
.visibility=user .visibility=user
value.unit='degC' value.unit='degC'
[module T_sample_b] [module T_sample_b]
class=secop_mlz.entangle.Sensor class=frappy_mlz.entangle.Sensor
tangodevice=tango://localhost:10000/box/eurotherm/sensorb tangodevice=tango://localhost:10000/box/eurotherm/sensorb
.description=(optional) Sample temperature sensor. .description=(optional) Sample temperature sensor.
.visibility=expert .visibility=expert
value.unit='degC' value.unit='degC'
[module N2] [module N2]
class=secop_mlz.entangle.NamedDigitalOutput class=frappy_mlz.entangle.NamedDigitalOutput
tangodevice=tango://localhost:10000/box/plc/_gas1 tangodevice=tango://localhost:10000/box/plc/_gas1
.description=Switches the N2 gas inlet on or off. .description=Switches the N2 gas inlet on or off.
.visibility=expert .visibility=expert
mapping=dict(off=0,on=1) mapping=dict(off=0,on=1)
[module He] [module He]
class=secop_mlz.entangle.NamedDigitalOutput class=frappy_mlz.entangle.NamedDigitalOutput
tangodevice=tango://localhost:10000/box/plc/_gas2 tangodevice=tango://localhost:10000/box/plc/_gas2
.description=Switches the He gas inlet on or off. .description=Switches the He gas inlet on or off.
.visibility=expert .visibility=expert
mapping=dict(off=0,on=1) mapping=dict(off=0,on=1)
[module lamps] [module lamps]
class=secop_mlz.entangle.NamedDigitalOutput class=frappy_mlz.entangle.NamedDigitalOutput
tangodevice=tango://localhost:10000/box/plc/_onoff tangodevice=tango://localhost:10000/box/plc/_onoff
.description=Switches the heating lamps on or off. .description=Switches the heating lamps on or off.
.visibility=expert .visibility=expert
mapping=dict(off=0,on=1) mapping=dict(off=0,on=1)
[module water_ok] [module water_ok]
class=secop_mlz.entangle.NamedDigitalInput class=frappy_mlz.entangle.NamedDigitalInput
tangodevice=tango://localhost:10000/box/plc/_waterok tangodevice=tango://localhost:10000/box/plc/_waterok
.description=Readout of the cooling water state. .description=Readout of the cooling water state.
.visibility=expert .visibility=expert

View File

@ -15,32 +15,32 @@ bindport=10768
[module LN2] [module LN2]
class=secop_demo.test.LN2 class=frappy_demo.test.LN2
.description="random value between 0..100%%" .description="random value between 0..100%%"
value.unit = "%%" value.unit = "%%"
[module heater] [module heater]
class=secop_demo.test.Heater class=frappy_demo.test.Heater
maxheaterpower=10 maxheaterpower=10
.description="some heater" .description="some heater"
[module T1] [module T1]
class=secop_demo.test.Temp class=frappy_demo.test.Temp
sensor="X34598T7" sensor="X34598T7"
.description="some temperature" .description="some temperature"
[module T2] [module T2]
class=secop_demo.modules.CoilTemp class=frappy_demo.modules.CoilTemp
sensor="X34598T8" sensor="X34598T8"
.description="some temperature" .description="some temperature"
[module T3] [module T3]
class=secop_demo.modules.CoilTemp class=frappy_demo.modules.CoilTemp
sensor="X34598T9" sensor="X34598T9"
.description="some temperature" .description="some temperature"
[module Lower] [module Lower]
class=secop_demo.test.Lower class=frappy_demo.test.Lower
.description="something else" .description="something else"

10
ci/Jenkinsfile vendored
View File

@ -200,16 +200,16 @@ node("dockerhost") {
sh '''#!/bin/bash sh '''#!/bin/bash
git worktree add tmpmaster origin/master git worktree add tmpmaster origin/master
cd tmpmaster cd tmpmaster
docker build --target base --tag secop_base:latest ci docker build --target base --tag frappy_base:latest ci
docker build --target docs --tag secop_docs:latest ci docker build --target docs --tag frappy_docs:latest ci
cd .. cd ..
rm -rf tmpmaster rm -rf tmpmaster
''' '''
} }
stage('execute tests') { stage('execute tests') {
def img = docker.image('secop_base:latest') def img = docker.image('frappy_base:latest')
def docimg = docker.image('secop_docs:latest') def docimg = docker.image('frappy_docs:latest')
parallel 'Test': { parallel 'Test': {
img.inside { img.inside {
@ -227,7 +227,7 @@ node("dockerhost") {
if (GERRIT_EVENT_TYPE == 'change-merged') if (GERRIT_EVENT_TYPE == 'change-merged')
{ {
sh ''' sh '''
rsync -rlv doc/_build/* /ictrlsrv/share/public/doc/secop rsync -rlv doc/_build/* /ictrlsrv/share/public/doc/frappy
''' '''
} }
}} }}

View File

@ -10,10 +10,10 @@ The Dockerfile defines two images:
To create the 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: 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) 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 to build the images (a rebuild will only happen if the Dockerfile is changed as docker

View File

@ -27,7 +27,7 @@ from os import path
# Add import path for inplace usage # Add import path for inplace usage
sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..', '..'))) 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 ------------------------------------------------ # -- General configuration ------------------------------------------------
@ -213,7 +213,7 @@ epub_exclude_files = ['search.html']
# Example configuration for intersphinx: refer to the Python standard library. # Example configuration for intersphinx: refer to the Python standard library.
intersphinx_mapping = {'https://docs.python.org/': None} 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): def setup(app):
app.connect('autodoc-process-docstring', class_doc_handler) app.connect('autodoc-process-docstring', class_doc_handler)

View File

@ -1,10 +1,10 @@
Demo Demo
==== ====
.. automodule:: secop_demo.cryo .. automodule:: frappy_demo.cryo
:show-inheritance: :show-inheritance:
:members: :members:
.. automodule:: secop_demo.test .. automodule:: frappy_demo.test
:show-inheritance: :show-inheritance:
:members: :members:

View File

@ -4,6 +4,6 @@ ESS
EPICS EPICS
..... .....
.. automodule:: secop_ess.epics .. automodule:: frappy_ess.epics
:show-inheritance: :show-inheritance:
:members: :members:

View File

@ -4,7 +4,7 @@ MLZ
Amagnet (Garfield) Amagnet (Garfield)
.................. ..................
.. automodule:: secop_mlz.amagnet .. automodule:: frappy_mlz.amagnet
:show-inheritance: :show-inheritance:
:members: :members:
@ -12,7 +12,7 @@ Amagnet (Garfield)
Entangle Framework Entangle Framework
.................. ..................
.. automodule:: secop_mlz.entangle .. automodule:: frappy_mlz.entangle
:show-inheritance: :show-inheritance:
:members: :members:

View File

@ -4,7 +4,7 @@ PSI (SINQ)
CCU4 tutorial example CCU4 tutorial example
..................... .....................
.. automodule:: secop_psi.ccu4 .. automodule:: frappy_psi.ccu4
:show-inheritance: :show-inheritance:
:members: :members:
@ -12,7 +12,7 @@ CCU4 tutorial example
PPMS PPMS
.... ....
.. automodule:: secop_psi.ppms .. automodule:: frappy_psi.ppms
:show-inheritance: :show-inheritance:
:members: :members:
@ -21,7 +21,7 @@ LakeShore 370
Calibrated sensors and control loop not yet supported. Calibrated sensors and control loop not yet supported.
.. automodule:: secop_psi.ls370res .. automodule:: frappy_psi.ls370res
:show-inheritance: :show-inheritance:
:members: :members:

View File

@ -7,10 +7,10 @@ Frappy Programming Guide
introduction introduction
tutorial tutorial
reference reference
secop_psi frappy_psi
secop_demo frappy_demo
secop_mlz frappy_mlz
secop_ess frappy_ess
* :ref:`genindex` * :ref:`genindex`

View File

@ -57,10 +57,10 @@ to provide to the user.
Programming a Driver Programming a Driver
-------------------- --------------------
Programming a driver means extending one of the base classes like :class:`secop.modules.Readable` Programming a driver means extending one of the base classes like :class:`frappy.modules.Readable`
or :class:`secop.modules.Drivable`. The parameters are defined in the dict :py:attr:`parameters`, as a 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:`secop.params.Parameter` constructor, or in case 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:`secop.params.Override`. of altering the properties of an inherited parameter, :class:`frappy.params.Override`.
Parameters usually need a method :meth:`read_<name>()` Parameters usually need a method :meth:`read_<name>()`
implementing the code to retrieve their value from the hardware. Writeable parameters implementing the code to retrieve their value from the hardware. Writeable parameters

View File

@ -4,85 +4,85 @@ Reference
Module Base Classes Module Base Classes
................... ...................
.. autodata:: secop.modules.Done .. autodata:: frappy.modules.Done
.. autoclass:: secop.modules.Module .. autoclass:: frappy.modules.Module
:members: earlyInit, initModule, startModule :members: earlyInit, initModule, startModule
.. autoclass:: secop.modules.Readable .. autoclass:: frappy.modules.Readable
:members: Status :members: Status
.. autoclass:: secop.modules.Writable .. autoclass:: frappy.modules.Writable
.. autoclass:: secop.modules.Drivable .. autoclass:: frappy.modules.Drivable
:members: Status, isBusy, isDriving, stop :members: Status, isBusy, isDriving, stop
Parameters, Commands and Properties Parameters, Commands and Properties
................................... ...................................
.. autoclass:: secop.params.Parameter .. autoclass:: frappy.params.Parameter
.. autoclass:: secop.params.Command .. autoclass:: frappy.params.Command
.. autoclass:: secop.properties.Property .. autoclass:: frappy.properties.Property
.. autoclass:: secop.modules.Attached .. autoclass:: frappy.modules.Attached
:show-inheritance: :show-inheritance:
Datatypes Datatypes
......... .........
.. autoclass:: secop.datatypes.FloatRange .. autoclass:: frappy.datatypes.FloatRange
.. autoclass:: secop.datatypes.IntRange .. autoclass:: frappy.datatypes.IntRange
.. autoclass:: secop.datatypes.BoolType .. autoclass:: frappy.datatypes.BoolType
.. autoclass:: secop.datatypes.ScaledInteger .. autoclass:: frappy.datatypes.ScaledInteger
.. autoclass:: secop.datatypes.EnumType .. autoclass:: frappy.datatypes.EnumType
.. autoclass:: secop.datatypes.StringType .. autoclass:: frappy.datatypes.StringType
.. autoclass:: secop.datatypes.TupleOf .. autoclass:: frappy.datatypes.TupleOf
.. autoclass:: secop.datatypes.ArrayOf .. autoclass:: frappy.datatypes.ArrayOf
.. autoclass:: secop.datatypes.StructOf .. autoclass:: frappy.datatypes.StructOf
.. autoclass:: secop.datatypes.BLOBType .. autoclass:: frappy.datatypes.BLOBType
Communication Communication
............. .............
.. autoclass:: secop.modules.Communicator .. autoclass:: frappy.modules.Communicator
:show-inheritance: :show-inheritance:
:members: communicate :members: communicate
.. autoclass:: secop.io.StringIO .. autoclass:: frappy.io.StringIO
:show-inheritance: :show-inheritance:
:members: communicate, multicomm :members: communicate, multicomm
.. autoclass:: secop.io.BytesIO .. autoclass:: frappy.io.BytesIO
:show-inheritance: :show-inheritance:
:members: communicate, multicomm :members: communicate, multicomm
.. autoclass:: secop.io.HasIO .. autoclass:: frappy.io.HasIO
:show-inheritance: :show-inheritance:
.. autoclass:: secop.rwhandler.ReadHandler .. autoclass:: frappy.rwhandler.ReadHandler
:show-inheritance: :show-inheritance:
:members: :members:
.. autoclass:: secop.rwhandler.CommonReadHandler .. autoclass:: frappy.rwhandler.CommonReadHandler
:show-inheritance: :show-inheritance:
:members: :members:
.. autoclass:: secop.rwhandler.WriteHandler .. autoclass:: frappy.rwhandler.WriteHandler
:show-inheritance: :show-inheritance:
:members: :members:
.. autoclass:: secop.rwhandler.CommonWriteHandler .. autoclass:: frappy.rwhandler.CommonWriteHandler
:show-inheritance: :show-inheritance:
:members: :members:
Exception classes Exception classes
.....................-- .................
.. automodule:: secop.errors .. automodule:: frappy.errors
:members: :members:
.. include:: server.rst .. include:: server.rst

View File

@ -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 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 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 **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:: .. code::
[helevel] [helevel]
class = secop_psi.ccu4.HeLevel class = frappy_psi.ccu4.HeLevel
description = this is the He level sensor of the main reservoir description = this is the He level sensor of the main reservoir
empty = 380 empty = 380
empty.export = False empty.export = False
@ -50,11 +50,11 @@ the SECoP interface.
Starting 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:: .. parsed-literal::
usage: secop-server [-h] [-v | -q] [-d] name usage: frappy-server [-h] [-v | -q] [-d] name
Manage a Frappy server Manage a Frappy server

View File

@ -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), 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 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 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. here for the He level reading.
CCU4 luckily has a very simple and logical protocol: 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>`` * ``<name>\n`` reads the parameter named ``<name>``
* in both cases, the reply is ``<name>=<value>\n`` * in both cases, the reply is ``<name>=<value>\n``
``secop_psi/ccu4.py``: ``frappy_psi/ccu4.py``:
.. code:: python .. code:: python
# the most common Frappy classes can be imported from secop.core # the most common Frappy classes can be imported from frappy.core
from secop.core import Readable, Parameter, FloatRange, BoolType, StringIO, HasIO from frappy.core import Readable, Parameter, FloatRange, BoolType, StringIO, HasIO
class CCU4IO(StringIO): 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 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. serves as communication class.
:Note: :Note:
@ -183,7 +183,7 @@ which means it might be worth to create a *query* method, and then the
:Note: :Note:
It make sense to unify *empty_length* and *full_length* to one parameter *calibration*, 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 .. 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. 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 Configuration
@ -220,7 +220,7 @@ We choose the name *example_cryo* and create therefore a configuration file
[helev] [helev]
description = He level of the cryostat He reservoir 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 uri = linse-moxa-4.psi.ch:3001
empty_length = 380 empty_length = 380
full_length = 0 full_length = 0

View File

@ -27,7 +27,7 @@ import os
import sys import sys
from os import path from os import path
from secop.lib import generalConfig from frappy.lib import generalConfig
def main(): def main():
@ -36,22 +36,22 @@ def main():
generalConfig.init() generalConfig.init()
config_dir = generalConfig['confdir'] config_dir = generalConfig['confdir']
secop_unit = '/lib/systemd/system/secop@.service' frappy_unit = '/lib/systemd/system/frappy@.service'
wants_dir = normal_dir + '/secop.target.wants' wants_dir = normal_dir + '/frappy.target.wants'
all_servers = [base for (base, ext) in all_servers = [base for (base, ext) in
map(path.splitext, os.listdir(config_dir)) if ext == '.cfg'] map(path.splitext, os.listdir(config_dir)) if ext == '.cfg']
all_servers.sort() all_servers.sort()
for srv in all_servers: for srv in all_servers:
symlink = '%s/secop@%s.service' % (normal_dir, srv) symlink = '%s/frappy@%s.service' % (normal_dir, srv)
os.symlink(secop_unit, symlink) os.symlink(frappy_unit, symlink)
if not path.isdir(wants_dir): if not path.isdir(wants_dir):
os.mkdir(wants_dir) os.mkdir(wants_dir)
os.symlink(symlink, '%s/%s' % (wants_dir, path.basename(symlink))) os.symlink(symlink, '%s/%s' % (wants_dir, path.basename(symlink)))
# the stamp file signals successful run of the generator # 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__': if __name__ == '__main__':

View File

@ -1,10 +1,10 @@
[Unit] [Unit]
Description=SECoP SEC-node: %i Description=FRAPPY SECoP SEC-node: %i
After=network-online.service After=network-online.service
[Service] [Service]
Type=notify Type=notify
ExecStart=/usr/bin/secop-server %I ExecStart=/usr/bin/frappy-server %I
Restart=on-abnormal Restart=on-abnormal
RestartSec=30 RestartSec=30

View File

@ -3,12 +3,12 @@
block_cipher = None block_cipher = None
a = Analysis(['bin\\secop-server'], a = Analysis(['bin\\frappy-server'],
pathex=['.'], pathex=['.'],
binaries=[], binaries=[],
datas=[], datas=[],
hiddenimports=['secop.protocol', 'secop.protocol.dispatcher', 'secop.protocol.interface', 'secop.protocol.interface.tcp', hiddenimports=['frappy.protocol', 'frappy.protocol.dispatcher', 'frappy.protocol.interface', 'frappy.protocol.interface.tcp',
'secop_psi.ppmssim', 'secop_psi.ppmswindows', 'secop_psi.ppms'], 'frappy_psi.ppmssim', 'frappy_psi.ppmswindows', 'frappy_psi.ppms'],
hookspath=[], hookspath=[],
runtime_hooks=[], runtime_hooks=[],
excludes=[], excludes=[],
@ -22,7 +22,7 @@ exe = EXE(pyz,
a.scripts, a.scripts,
[], [],
exclude_binaries=True, exclude_binaries=True,
name='secop-server', name='frappy-server',
debug=False, debug=False,
bootloader_ignore_signals=False, bootloader_ignore_signals=False,
strip=False, strip=False,
@ -35,4 +35,4 @@ coll = COLLECT(exe,
strip=False, strip=False,
upx=True, upx=True,
upx_exclude=[], upx_exclude=[],
name='secop-server') name='frappy-server')

View File

@ -28,13 +28,13 @@ import time
from collections import defaultdict from collections import defaultdict
from threading import Event, RLock, current_thread from threading import Event, RLock, current_thread
import secop.errors import frappy.errors
import secop.params import frappy.params
from secop.datatypes import get_datatype from frappy.datatypes import get_datatype
from secop.lib import mkthread from frappy.lib import mkthread
from secop.lib.asynconn import AsynConn, ConnectionClosed from frappy.lib.asynconn import AsynConn, ConnectionClosed
from secop.protocol.interface import decode_msg, encode_msg_frame from frappy.protocol.interface import decode_msg, encode_msg_frame
from secop.protocol.messages import COMMANDREQUEST, \ from frappy.protocol.messages import COMMANDREQUEST, \
DESCRIPTIONREQUEST, ENABLEEVENTSREQUEST, ERRORPREFIX, \ DESCRIPTIONREQUEST, ENABLEEVENTSREQUEST, ERRORPREFIX, \
EVENTREPLY, HEARTBEATREQUEST, IDENTPREFIX, IDENTREQUEST, \ EVENTREPLY, HEARTBEATREQUEST, IDENTPREFIX, IDENTREQUEST, \
READREPLY, READREQUEST, REQUEST2REPLY, WRITEREPLY, WRITEREQUEST READREPLY, READREQUEST, REQUEST2REPLY, WRITEREPLY, WRITEREQUEST
@ -317,7 +317,7 @@ class SecopClient(ProxyClient):
if module_param is not None: if module_param is not None:
if action.startswith(ERRORPREFIX): if action.startswith(ERRORPREFIX):
timestamp = data[2].get('t', None) 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 value = None
else: else:
timestamp = data[1].get('t', None) timestamp = data[1].get('t', None)
@ -533,7 +533,7 @@ class SecopClient(ProxyClient):
"""forced read over connection""" """forced read over connection"""
try: try:
self.request(READREQUEST, self.identifier[module, parameter]) 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 # error reply message is already stored as readerror in cache
pass pass
return self.cache.get((module, parameter), None) return self.cache.get((module, parameter), None)
@ -561,7 +561,7 @@ class SecopClient(ProxyClient):
argument = datatype.export_value(argument) argument = datatype.export_value(argument)
else: else:
if argument is not None: 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 # pylint: disable=unsubscriptable-object
data, qualifiers = self.request(COMMANDREQUEST, self.identifier[module, command], argument)[2] data, qualifiers = self.request(COMMANDREQUEST, self.identifier[module, command], argument)[2]
datatype = self.modules[module]['commands'][command]['datatype'].result 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 # the following attributes may be/are intended to be overwritten by a subclass
ERROR_MAP = secop.errors.EXCEPTIONS ERROR_MAP = frappy.errors.EXCEPTIONS
DEFAULT_EXCEPTION = secop.errors.SECoPError DEFAULT_EXCEPTION = frappy.errors.SECoPError
PREDEFINED_NAMES = set(secop.params.PREDEFINED_ACCESSIBLES) PREDEFINED_NAMES = set(frappy.params.PREDEFINED_ACCESSIBLES)
activate = True activate = True
def error_map(self, exc): def error_map(self, exc):

View File

@ -25,14 +25,14 @@ import sys
import time import time
import re import re
from queue import Queue from queue import Queue
from secop.client import SecopClient from frappy.client import SecopClient
from secop.errors import SECoPError from frappy.errors import SECoPError
from secop.datatypes import get_datatype from frappy.datatypes import get_datatype
USAGE = """ USAGE = """
Usage: Usage:
from secop.client.interactive import Client from frappy.client.interactive import Client
client = Client('localhost:5000') # start client. client = Client('localhost:5000') # start client.
# this connects and creates objects for all SECoP modules in the main namespace # this connects and creates objects for all SECoP modules in the main namespace

View File

@ -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 # 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 FloatRange, IntRange, ScaledInteger, StringType, StructOf, TupleOf
from secop.lib.enum import Enum from frappy.lib.enum import Enum
from secop.modules import Attached, Communicator, \ from frappy.modules import Attached, Communicator, \
Done, Drivable, Feature, Module, Readable, Writable, HasAccessibles Done, Drivable, Feature, Module, Readable, Writable, HasAccessibles
from secop.params import Command, Parameter from frappy.params import Command, Parameter
from secop.properties import Property from frappy.properties import Property
from secop.proxy import Proxy, SecNode, proxy_class from frappy.proxy import Proxy, SecNode, proxy_class
from secop.io import HasIO, StringIO, BytesIO, HasIodev # TODO: remove HasIodev (legacy stuff) from frappy.io import HasIO, StringIO, BytesIO, HasIodev # TODO: remove HasIodev (legacy stuff)
from secop.persistent import PersistentMixin, PersistentParam from frappy.persistent import PersistentMixin, PersistentParam
from secop.rwhandler import ReadHandler, WriteHandler, CommonReadHandler, \ from frappy.rwhandler import ReadHandler, WriteHandler, CommonReadHandler, \
CommonWriteHandler, nopoll CommonWriteHandler, nopoll
ERROR = Drivable.Status.ERROR ERROR = Drivable.Status.ERROR

View File

@ -28,12 +28,12 @@
import sys import sys
from base64 import b64decode, b64encode from base64 import b64decode, b64encode
from secop.errors import BadValueError, \ from frappy.errors import BadValueError, \
ConfigError, ProgrammingError, ProtocolError ConfigError, ProgrammingError, ProtocolError
from secop.lib import clamp, generalConfig from frappy.lib import clamp, generalConfig
from secop.lib.enum import Enum from frappy.lib.enum import Enum
from secop.parse import Parser from frappy.parse import Parser
from secop.properties import HasProperties, Property from frappy.properties import HasProperties, Property
generalConfig.set_default('lazy_number_validation', False) generalConfig.set_default('lazy_number_validation', False)

View File

@ -23,12 +23,12 @@
"""Define Mixin Features for real Modules implemented in the server""" """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 FloatRange, StringType, StructOf, TupleOf
from secop.core import Command, Done, Drivable, Feature, \ from frappy.core import Command, Done, Drivable, Feature, \
Parameter, Property, PersistentParam, Readable Parameter, Property, PersistentParam, Readable
from secop.errors import BadValueError, ConfigError from frappy.errors import BadValueError, ConfigError
from secop.lib import clamp from frappy.lib import clamp
# --- proposals, to be used at SINQ (not agreed as standard yet) --- # --- proposals, to be used at SINQ (not agreed as standard yet) ---

View File

@ -24,8 +24,8 @@ import configparser
from collections import OrderedDict from collections import OrderedDict
from configparser import NoOptionError from configparser import NoOptionError
from secop.gui.cfg_editor.tree_widget_item import TreeWidgetItem from frappy.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.utils import get_all_children_with_names, \
get_all_items, get_interface_class_from_name, \ get_all_items, get_interface_class_from_name, \
get_module_class_from_name, get_params, get_props get_module_class_from_name, get_params, get_props

View File

@ -22,12 +22,12 @@
import os import os
from secop.gui.cfg_editor.node_display import NodeDisplay from frappy.gui.cfg_editor.node_display import NodeDisplay
from secop.gui.cfg_editor.utils import get_file_paths, loadUi from frappy.gui.cfg_editor.utils import get_file_paths, loadUi
from secop.gui.cfg_editor.widgets import TabBar from frappy.gui.cfg_editor.widgets import TabBar
from secop.gui.qt import QMainWindow, QMessageBox 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' NODE = 'node'
MODULE = 'module' MODULE = 'module'
INTERFACE = 'interface' INTERFACE = 'interface'

View File

@ -20,8 +20,8 @@
# #
# ***************************************************************************** # *****************************************************************************
from secop.gui.cfg_editor.utils import loadUi from frappy.gui.cfg_editor.utils import loadUi
from secop.gui.qt import QHBoxLayout, QSizePolicy, QSpacerItem, Qt, QWidget from frappy.gui.qt import QHBoxLayout, QSizePolicy, QSpacerItem, Qt, QWidget
class NodeDisplay(QWidget): class NodeDisplay(QWidget):

View File

@ -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 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, \ QLabel, QPushButton, QSize, QSizePolicy, QTextEdit, \
QTreeWidgetItem, QVBoxLayout, QWidget, pyqtSignal QTreeWidgetItem, QVBoxLayout, QWidget, pyqtSignal
from secop.gui.valuewidgets import get_widget from frappy.gui.valuewidgets import get_widget
from secop.properties import Property from frappy.properties import Property
NODE = 'node' NODE = 'node'
INTERFACE = 'interface' INTERFACE = 'interface'
@ -41,7 +41,7 @@ class TreeWidgetItem(QTreeWidgetItem):
parameters=None, properties=None, parent=None): parameters=None, properties=None, parent=None):
"""object_class: for interfaces and modules = class """object_class: for interfaces and modules = class
for parameter and properties = their objects 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 # TODO: like stated in docstring the datatype for parameters and
# properties must be found out through their object # properties must be found out through their object
super().__init__(parent) super().__init__(parent)

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -81,7 +81,7 @@
<customwidget> <customwidget>
<class>TreeWidget</class> <class>TreeWidget</class>
<extends>QTreeWidget</extends> <extends>QTreeWidget</extends>
<header>secop.gui.cfg_editor.widgets</header> <header>frappy.gui.cfg_editor.widgets</header>
</customwidget> </customwidget>
</customwidgets> </customwidgets>
<resources/> <resources/>

View File

@ -24,12 +24,12 @@ import inspect
import sys import sys
from os import listdir, path from os import listdir, path
from secop.gui.qt import QDialogButtonBox, QFileDialog, QIcon, QSize, uic from frappy.gui.qt import QDialogButtonBox, QFileDialog, QIcon, QSize, uic
from secop.modules import Module from frappy.modules import Module
from secop.params import Parameter from frappy.params import Parameter
from secop.properties import Property from frappy.properties import Property
from secop.protocol.interface.tcp import TCPServer from frappy.protocol.interface.tcp import TCPServer
from secop.server import generalConfig from frappy.server import generalConfig
uipath = path.dirname(__file__) uipath = path.dirname(__file__)
@ -109,7 +109,7 @@ def get_modules():
base_path = generalConfig.basedir base_path = generalConfig.basedir
# pylint: disable=too-many-nested-blocks # pylint: disable=too-many-nested-blocks
for dirname in listdir(base_path): for dirname in listdir(base_path):
if dirname.startswith('secop_'): if dirname.startswith('frappy_'):
modules[dirname] = {} modules[dirname] = {}
for filename in listdir(path.join(base_path, dirname)): for filename in listdir(path.join(base_path, dirname)):
if not path.isfile(path.join(base_path, dirname, filename)) or \ if not path.isfile(path.join(base_path, dirname, filename)) or \
@ -121,7 +121,7 @@ def get_modules():
__import__(module) __import__(module)
for name, obj in inspect.getmembers(sys.modules[module]): for name, obj in inspect.getmembers(sys.modules[module]):
if inspect.isclass(obj) and \ if inspect.isclass(obj) and \
obj.__module__.startswith('secop_') and \ obj.__module__.startswith('frappy_') and \
issubclass(obj, Module): issubclass(obj, Module):
# full_name = '%s.%s' % (obj.__module__, name) # full_name = '%s.%s' % (obj.__module__, name)
if not module_in_file: if not module_in_file:
@ -140,7 +140,7 @@ def get_module_class_from_name(name):
module = name[:last_dot] module = name[:last_dot]
__import__(module) __import__(module)
for cls_name, obj in inspect.getmembers(sys.modules[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: and issubclass(obj, Module) and cls_name == class_name:
return obj return obj
except ImportError: except ImportError:
@ -156,7 +156,7 @@ def get_interface_class_from_name(name):
def get_interfaces(): def get_interfaces():
# TODO class must be found out like for modules # TODO class must be found out like for modules
interfaces = [] interfaces = []
interface_path = path.join(generalConfig.basedir, 'secop', interface_path = path.join(generalConfig.basedir, 'frappy',
'protocol', 'interface') 'protocol', 'interface')
for filename in listdir(interface_path): for filename in listdir(interface_path):
if path.isfile(path.join(interface_path, filename)) and \ if path.isfile(path.join(interface_path, filename)) and \

View File

@ -23,13 +23,13 @@
import os import os
from secop.gui.cfg_editor.config_file import read_config, write_config from frappy.gui.cfg_editor.config_file import read_config, write_config
from secop.gui.cfg_editor.tree_widget_item import TreeWidgetItem from frappy.gui.cfg_editor.tree_widget_item import TreeWidgetItem
from secop.gui.cfg_editor.utils import get_all_items, \ from frappy.gui.cfg_editor.utils import get_all_items, \
get_file_paths, get_interface_class_from_name, get_interfaces, \ get_file_paths, get_interface_class_from_name, get_interfaces, \
get_module_class_from_name, get_modules, get_params, \ get_module_class_from_name, get_modules, get_params, \
get_props, loadUi, set_name_edit_style, setActionIcon 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, \ QLineEdit, QMenu, QPoint, QSize, QStandardItem, QStandardItemModel, \
Qt, QTabBar, QTextEdit, QTreeView, QTreeWidget, pyqtSignal Qt, QTabBar, QTextEdit, QTreeView, QTreeWidget, pyqtSignal

View File

@ -22,14 +22,14 @@
# ***************************************************************************** # *****************************************************************************
import secop.client import frappy.client
from secop.gui.modulectrl import ModuleCtrl from frappy.gui.modulectrl import ModuleCtrl
from secop.gui.nodectrl import NodeCtrl from frappy.gui.nodectrl import NodeCtrl
from secop.gui.paramview import ParameterView from frappy.gui.paramview import ParameterView
from secop.gui.qt import QBrush, QColor, QInputDialog, QMainWindow, \ from frappy.gui.qt import QBrush, QColor, QInputDialog, QMainWindow, \
QMessageBox, QObject, QTreeWidgetItem, pyqtSignal, pyqtSlot QMessageBox, QObject, QTreeWidgetItem, pyqtSignal, pyqtSlot
from secop.gui.util import Value, loadUi from frappy.gui.util import Value, loadUi
from secop.lib import formatExtendedTraceback from frappy.lib import formatExtendedTraceback
ITEM_TYPE_NODE = QTreeWidgetItem.UserType + 1 ITEM_TYPE_NODE = QTreeWidgetItem.UserType + 1
ITEM_TYPE_GROUP = QTreeWidgetItem.UserType + 2 ITEM_TYPE_GROUP = QTreeWidgetItem.UserType + 2
@ -45,7 +45,7 @@ class QSECNode(QObject):
def __init__(self, uri, parent=None): def __init__(self, uri, parent=None):
super().__init__(parent) super().__init__(parent)
self.conn = conn = secop.client.SecopClient(uri) self.conn = conn = frappy.client.SecopClient(uri)
conn.validate_data = True conn.validate_data = True
self.log = conn.log self.log = conn.log
self.contactPoint = conn.uri self.contactPoint = conn.uri
@ -92,11 +92,11 @@ class QSECNode(QObject):
def syncCommunicate(self, action, ident='', data=None): def syncCommunicate(self, action, ident='', data=None):
reply = self.conn.request(action, ident, data) reply = self.conn.request(action, ident, data)
# pylint: disable=not-an-iterable # 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): def decode_message(self, msg):
# decode_msg needs bytes as input # 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): def _getDescribingParameterData(self, module, parameter):
return self.modules[module]['parameters'][parameter] return self.modules[module]['parameters'][parameter]

View File

@ -25,7 +25,7 @@
from os import path 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 QPointF, QPolygonF, QRectF, QSize, Qt, QWidget
_magenta = QBrush(QColor('#A12F86')) _magenta = QBrush(QColor('#A12F86'))

View File

@ -23,11 +23,11 @@
# ***************************************************************************** # *****************************************************************************
from secop.gui.params import ParameterView from frappy.gui.params import ParameterView
from secop.gui.qt import QCheckBox, QDialog, QLabel, \ from frappy.gui.qt import QCheckBox, QDialog, QLabel, \
QMessageBox, QPushButton, QSizePolicy, QWidget QMessageBox, QPushButton, QSizePolicy, QWidget
from secop.gui.util import loadUi from frappy.gui.util import loadUi
from secop.gui.valuewidgets import get_widget from frappy.gui.valuewidgets import get_widget
class CommandDialog(QDialog): class CommandDialog(QDialog):
@ -357,7 +357,7 @@ class ModuleCtrl(QWidget):
def _updateValue(self, module, parameter, value): def _updateValue(self, module, parameter, value):
if module != self._module: if module != self._module:
return 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: 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) self._paramWidgets[parameter][1].updateValue(value)

View File

@ -28,12 +28,12 @@ from time import sleep
import mlzlog import mlzlog
import secop.lib import frappy.lib
from secop.datatypes import EnumType, StringType from frappy.datatypes import EnumType, StringType
from secop.errors import SECoPError from frappy.errors import SECoPError
from secop.gui.qt import QFont, QFontMetrics, QLabel, \ from frappy.gui.qt import QFont, QFontMetrics, QLabel, \
QMessageBox, QTextCursor, QWidget, pyqtSlot, toHtmlEscaped QMessageBox, QTextCursor, QWidget, pyqtSlot, toHtmlEscaped
from secop.gui.util import Value, loadUi from frappy.gui.util import Value, loadUi
class NodeCtrl(QWidget): class NodeCtrl(QWidget):
@ -165,7 +165,7 @@ class NodeCtrl(QWidget):
else: else:
widget = QLabel('Unsupported Interfaceclass %r' % interfaces) widget = QLabel('Unsupported Interfaceclass %r' % interfaces)
except Exception as e: except Exception as e:
print(secop.lib.formatExtendedTraceback()) print(frappy.lib.formatExtendedTraceback())
widget = QLabel('Bad configured Module %s! (%s)' % (modname, e)) widget = QLabel('Bad configured Module %s! (%s)' % (modname, e))
if unit: if unit:

View File

@ -22,9 +22,9 @@
# ***************************************************************************** # *****************************************************************************
from secop.datatypes import EnumType from frappy.datatypes import EnumType
from secop.gui.qt import QWidget, pyqtSignal, pyqtSlot from frappy.gui.qt import QWidget, pyqtSignal, pyqtSlot
from secop.gui.util import loadUi from frappy.gui.util import loadUi
class ParameterWidget(QWidget): class ParameterWidget(QWidget):

View File

@ -22,8 +22,8 @@
# ***************************************************************************** # *****************************************************************************
from secop.gui.qt import QLabel, QSizePolicy, QWidget from frappy.gui.qt import QLabel, QSizePolicy, QWidget
from secop.gui.util import loadUi from frappy.gui.util import loadUi
class ParameterView(QWidget): class ParameterView(QWidget):

View File

@ -44,7 +44,7 @@ try:
from xml.sax.saxutils import escape as toHtmlEscaped from xml.sax.saxutils import escape as toHtmlEscaped
import secop.gui.icon_rc_qt5 import frappy.gui.icon_rc_qt5
except ImportError: except ImportError:
from PyQt4 import uic from PyQt4 import uic
@ -57,7 +57,7 @@ except ImportError:
QTreeWidget, QFileDialog, QTabBar, QAction, QMenu, QDialogButtonBox, QAbstractItemView, \ QTreeWidget, QFileDialog, QTabBar, QAction, QMenu, QDialogButtonBox, QAbstractItemView, \
QSpacerItem, QTreeView, QStandardItemModel, QStandardItem QSpacerItem, QTreeView, QStandardItemModel, QStandardItem
import secop.gui.icon_rc_qt4 import frappy.gui.icon_rc_qt4
def toHtmlEscaped(s): def toHtmlEscaped(s):
return Qt.escape(s) return Qt.escape(s)

View File

@ -11,7 +11,7 @@
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>secop-gui</string> <string>frappy-gui</string>
</property> </property>
<widget class="QWidget" name="centralwidget"> <widget class="QWidget" name="centralwidget">
<layout class="QHBoxLayout" name="horizontalLayout"> <layout class="QHBoxLayout" name="horizontalLayout">

View File

@ -24,7 +24,7 @@
from os import path from os import path
from secop.gui.qt import uic from frappy.gui.qt import uic
uipath = path.dirname(__file__) uipath = path.dirname(__file__)

View 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 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, \ QDoubleSpinBox, QFrame, QGridLayout, QGroupBox, \
QLabel, QLineEdit, QSpinBox, QTextEdit, QVBoxLayout QLabel, QLineEdit, QSpinBox, QTextEdit, QVBoxLayout
from secop.gui.util import loadUi from frappy.gui.util import loadUi
# XXX: implement live validators !!!! # XXX: implement live validators !!!!

Some files were not shown because too many files have changed in this diff Show More