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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -12,7 +12,7 @@ bindto=0.0.0.0
bindport=10767
[module T_ccr12]
class=secop.simulation.SimDrivable
class=frappy.simulation.SimDrivable
.description=Main temperature control node of CCR12.
.
Switches between regulation on stick and regulation on tube depending on temperature requested.
@ -30,7 +30,7 @@ target.default=300
.meaning=["temperature_regulation", 20]
[module T_ccr12_stick]
class=secop.simulation.SimDrivable
class=frappy.simulation.SimDrivable
.description=Temperature regulation for the sample stick in ccr12.
.extra_params=ramp
ramp.datatype={"type":"double", "min":0,"max":60, "unit":"K/min"}
@ -42,7 +42,7 @@ target.default=300
.meaning=["temperature_regulation", 15]
[module T_ccr12_tube]
class=secop.simulation.SimDrivable
class=frappy.simulation.SimDrivable
.description=Temperature regulation for the tube of ccr12.
.extra_params=ramp
ramp.datatype={"type":"double", "min":0,"max":60, "unit":"K/min"}
@ -54,28 +54,28 @@ target.default=300
.meaning=["temperature_regulation", 10]
[module T_ccr12_A]
class=secop.simulation.SimReadable
class=frappy.simulation.SimReadable
.description=(optional) Sample temperature sensor.
value.datatype={"type":"double", "unit":"K"}
value.default=300
.meaning=["temperature", 9]
[module T_ccr12_B]
class=secop.simulation.SimReadable
class=frappy.simulation.SimReadable
.description=(regulation) temperature sensor on stick.
value.datatype={"type":"double", "unit":"K"}
value.default=300
.meaning=["temperature", 10]
[module T_ccr12_C]
class=secop.simulation.SimReadable
class=frappy.simulation.SimReadable
.description=Temperature at the coldhead.
value.datatype={"type":"double", "unit":"K"}
value.default=70
.meaning=["temperature", 1]
[module T_ccr12_D]
class=secop.simulation.SimReadable
class=frappy.simulation.SimReadable
.description=(regulation) temperature at coupling to stick.
value.datatype={"type":"double", "unit":"K"}
value.default=80
@ -84,7 +84,7 @@ value.default=80
[module ccr12_pressure_regulate]
class=secop.simulation.SimWritable
class=frappy.simulation.SimWritable
.description=Selects on which Sensor the pressure regulation works, or switches it off.
.visibility=expert
value.datatype={"type":"enum", "members":{'off':0,'p1':1,'p2':2}}
@ -93,7 +93,7 @@ target.datatype={"type":"enum", "members":{'off':0,'p1':1,'p2':2}}
target.default='off'
[module ccr12_compressor]
class=secop.simulation.SimDrivable
class=frappy.simulation.SimDrivable
.description=Switches the compressor for the cooling stage on or off.
.
Note: This should always be on, except for fast heatup for sample change.
@ -103,7 +103,7 @@ target.datatype={"type":"enum", "members":{'off':0,'on':1}}
target.default='on'
[module ccr12_gas_switch]
class=secop.simulation.SimWritable
class=frappy.simulation.SimWritable
.description=Switches the gas inlet on or off.
.
note: in reality this switches itself off after 15min.
@ -115,7 +115,7 @@ target.datatype={"type":"enum", "members":{'off':0,'on':1}}
target.default='off'
[module ccr12_vacuum_switch]
class=secop.simulation.SimWritable
class=frappy.simulation.SimWritable
.description=Switches the vacuum pumping valve on or off.
.
note: in reality this is interlocked with ccr12_gas_switch, only one can be on!
@ -126,19 +126,19 @@ target.datatype={"type":"enum", "members":{'off':0,'on':1}}
target.default='off'
[module ccr12_p1]
class=secop.simulation.SimReadable
class=frappy.simulation.SimReadable
.description=Default pressure Sensor, linear scale 0..1000mbar
value.datatype={"type":"double", "unit":"mbar"}
value.default=999
[module ccr12_p2]
class=secop.simulation.SimReadable
class=frappy.simulation.SimReadable
.description=Auxillary pressure Sensor.
value.datatype={"type":"double", "unit":"mbar"}
value.default=1e-6
[module ccr12_curve_p2]
class=secop.simulation.SimWritable
class=frappy.simulation.SimWritable
.description=Curve for Aux pressure Sensor p2
.visibility=expert
value.default='TTR100'
@ -146,7 +146,7 @@ value.datatype={"type":"enum", "members":{'0..10V':0,'default':1,'0..9V':2,'DI20
target.datatype={"type":"enum", "members":{'0..10V':0,'default':1,'0..9V':2,'DI200':3,'DI2000':4,'TTR100':7,'PTR90':8,'PTR225/PTR237':9,'ITR90':10,'ITR100 curve D':11, 'ITR100 curve 2':12, 'ITR100 curve 3':13,'ITR100 curve 4':14,'ITR100 curve 5':15, 'ITR100 curve 6':16, 'ITR100 curve 7':17, 'ITR100 curve 8':18, 'ITR100 curve 9':19, 'ITR100 curve A':20,'CMR361':21, 'CMR362':22, 'CMR363':23, 'CMR364':24, 'CMR365':25}}
[module ccr12_p1_limits]
class=secop.simulation.SimWritable
class=frappy.simulation.SimWritable
.description=Limits for pressure regulation in P1.
.visibility=expert
value.datatype={"type":"limit","members":{"type":"double", "min":0,"max":1000, "unit":"mbar"}}
@ -155,7 +155,7 @@ target.datatype={"type":"limit","members":{"type":"double", "min":0,"max":1000,
target.default=[0,10]
[module ccr12_p2_limits]
class=secop.simulation.SimWritable
class=frappy.simulation.SimWritable
.description=Limits for pressure regulation in P2.
.visibility=expert
value.datatype={"type":"limit","members":{"type":"double", "min":0,"max":1000, "unit":"mbar"}}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

10
ci/Jenkinsfile vendored
View File

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

View File

@ -10,10 +10,10 @@ The Dockerfile defines two images:
To create the images:
docker build --target <base|docs> --tag secop_<base|docs>:latest .
docker build --target <base|docs> --tag frappy_<base|docs>:latest .
To test images interactivly:
docker run -u jenkins -i -t secop<base|docs> /bin/bash
docker run -u jenkins -i -t frappy<base|docs> /bin/bash
The Jenkinsfile uses this Dockerfile (only approved checked-in versions from master)
to build the images (a rebuild will only happen if the Dockerfile is changed as docker

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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
from there the module is instantiated, separated with dots. In the following example the class
**HeLevel** used by the **helevel** module can be found in the PSI facility subdirectory
secop_psi in the python module file ccu4.py:
frappy_psi in the python module file ccu4.py:
.. code::
[helevel]
class = secop_psi.ccu4.HeLevel
class = frappy_psi.ccu4.HeLevel
description = this is the He level sensor of the main reservoir
empty = 380
empty.export = False
@ -50,11 +50,11 @@ the SECoP interface.
Starting
........
The Frappy server can be started via the **bin/secop-server** script.
The Frappy server can be started via the **bin/frappy-server** script.
.. parsed-literal::
usage: secop-server [-h] [-v | -q] [-d] name
usage: frappy-server [-h] [-v | -q] [-d] name
Manage a Frappy server

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),
and the Frappy framework will deal with the SECoP interface. The code for the driver is
located in a subdirectory named after the facility or institute programming the driver
in our case *secop_psi*. We create a file named from the electronic device CCU4 we use
in our case *frappy_psi*. We create a file named from the electronic device CCU4 we use
here for the He level reading.
CCU4 luckily has a very simple and logical protocol:
@ -17,12 +17,12 @@ CCU4 luckily has a very simple and logical protocol:
* ``<name>\n`` reads the parameter named ``<name>``
* in both cases, the reply is ``<name>=<value>\n``
``secop_psi/ccu4.py``:
``frappy_psi/ccu4.py``:
.. code:: python
# the most common Frappy classes can be imported from secop.core
from secop.core import Readable, Parameter, FloatRange, BoolType, StringIO, HasIO
# the most common Frappy classes can be imported from frappy.core
from frappy.core import Readable, Parameter, FloatRange, BoolType, StringIO, HasIO
class CCU4IO(StringIO):
@ -54,7 +54,7 @@ CCU4 luckily has a very simple and logical protocol:
return txtvalue # the framework will automatically convert the string to a float
The class :class:`secop_psi.ccu4.CCU4IO`, an extension of (:class:`secop.stringio.StringIO`)
The class :class:`frappy_psi.ccu4.CCU4IO`, an extension of (:class:`frappy.stringio.StringIO`)
serves as communication class.
:Note:
@ -183,7 +183,7 @@ which means it might be worth to create a *query* method, and then the
:Note:
It make sense to unify *empty_length* and *full_length* to one parameter *calibration*,
as a :class:`secop.datatypes.StructOf` with members *empty_length* and *full_length*:
as a :class:`frappy.datatypes.StructOf` with members *empty_length* and *full_length*:
.. code:: python
@ -196,7 +196,7 @@ which means it might be worth to create a *query* method, and then the
For simplicity we stay with two float parameters for this tutorial.
The full documentation of the example can be found here: :class:`secop_psi.ccu4.HeLevel`
The full documentation of the example can be found here: :class:`frappy_psi.ccu4.HeLevel`
Configuration
@ -220,7 +220,7 @@ We choose the name *example_cryo* and create therefore a configuration file
[helev]
description = He level of the cryostat He reservoir
class = secop_psi.ccu4.HeLevel
class = frappy_psi.ccu4.HeLevel
uri = linse-moxa-4.psi.ch:3001
empty_length = 380
full_length = 0

View File

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

View File

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

View File

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

View File

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

View File

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

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

View File

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

View File

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

View File

@ -24,8 +24,8 @@ import configparser
from collections import OrderedDict
from configparser import NoOptionError
from secop.gui.cfg_editor.tree_widget_item import TreeWidgetItem
from secop.gui.cfg_editor.utils import get_all_children_with_names, \
from frappy.gui.cfg_editor.tree_widget_item import TreeWidgetItem
from frappy.gui.cfg_editor.utils import get_all_children_with_names, \
get_all_items, get_interface_class_from_name, \
get_module_class_from_name, get_params, get_props

View File

@ -22,12 +22,12 @@
import os
from secop.gui.cfg_editor.node_display import NodeDisplay
from secop.gui.cfg_editor.utils import get_file_paths, loadUi
from secop.gui.cfg_editor.widgets import TabBar
from secop.gui.qt import QMainWindow, QMessageBox
from frappy.gui.cfg_editor.node_display import NodeDisplay
from frappy.gui.cfg_editor.utils import get_file_paths, loadUi
from frappy.gui.cfg_editor.widgets import TabBar
from frappy.gui.qt import QMainWindow, QMessageBox
# TODO move secop mainwinodw to gui/client and all specific stuff
# TODO move frappy mainwindow to gui/client and all specific stuff
NODE = 'node'
MODULE = 'module'
INTERFACE = 'interface'

View File

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

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

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>
<class>TreeWidget</class>
<extends>QTreeWidget</extends>
<header>secop.gui.cfg_editor.widgets</header>
<header>frappy.gui.cfg_editor.widgets</header>
</customwidget>
</customwidgets>
<resources/>

View File

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

View File

@ -23,13 +23,13 @@
import os
from secop.gui.cfg_editor.config_file import read_config, write_config
from secop.gui.cfg_editor.tree_widget_item import TreeWidgetItem
from secop.gui.cfg_editor.utils import get_all_items, \
from frappy.gui.cfg_editor.config_file import read_config, write_config
from frappy.gui.cfg_editor.tree_widget_item import TreeWidgetItem
from frappy.gui.cfg_editor.utils import get_all_items, \
get_file_paths, get_interface_class_from_name, get_interfaces, \
get_module_class_from_name, get_modules, get_params, \
get_props, loadUi, set_name_edit_style, setActionIcon
from secop.gui.qt import QComboBox, QDialog, QDialogButtonBox, QLabel, \
from frappy.gui.qt import QComboBox, QDialog, QDialogButtonBox, QLabel, \
QLineEdit, QMenu, QPoint, QSize, QStandardItem, QStandardItemModel, \
Qt, QTabBar, QTextEdit, QTreeView, QTreeWidget, pyqtSignal

View File

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

View File

@ -25,7 +25,7 @@
from os import path
from secop.gui.qt import QBrush, QColor, QPainter, QPen, \
from frappy.gui.qt import QBrush, QColor, QPainter, QPen, \
QPointF, QPolygonF, QRectF, QSize, Qt, QWidget
_magenta = QBrush(QColor('#A12F86'))

View File

@ -23,11 +23,11 @@
# *****************************************************************************
from secop.gui.params import ParameterView
from secop.gui.qt import QCheckBox, QDialog, QLabel, \
from frappy.gui.params import ParameterView
from frappy.gui.qt import QCheckBox, QDialog, QLabel, \
QMessageBox, QPushButton, QSizePolicy, QWidget
from secop.gui.util import loadUi
from secop.gui.valuewidgets import get_widget
from frappy.gui.util import loadUi
from frappy.gui.valuewidgets import get_widget
class CommandDialog(QDialog):
@ -357,7 +357,7 @@ class ModuleCtrl(QWidget):
def _updateValue(self, module, parameter, value):
if module != self._module:
return
# value is is type secop.gui.mainwindow.Value
# value is is type frappy.gui.mainwindow.Value
# note: update subwidgets with the data portion only
# note: paramwidgets[..][1] is a ParameterView from secop.gui.params
# note: paramwidgets[..][1] is a ParameterView from frappy.gui.params
self._paramWidgets[parameter][1].updateValue(value)

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -24,7 +24,7 @@
from os import path
from secop.gui.qt import uic
from frappy.gui.qt import uic
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
from secop.gui.qt import QCheckBox, QComboBox, QDialog, \
from frappy.gui.qt import QCheckBox, QComboBox, QDialog, \
QDoubleSpinBox, QFrame, QGridLayout, QGroupBox, \
QLabel, QLineEdit, QSpinBox, QTextEdit, QVBoxLayout
from secop.gui.util import loadUi
from frappy.gui.util import loadUi
# XXX: implement live validators !!!!

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