diff --git a/Makefile b/Makefile
index be24fcc..24f2034 100644
--- a/Makefile
+++ b/Makefile
@@ -17,4 +17,4 @@ install_ioc: generate
cd gen/ioc;make install
generate:
- /opt/gfa/python-3.5/latest/bin/python generate.py -m 0xf
+ /opt/gfa/python-3.8/latest/bin/python generate.py -m 0xf
diff --git a/ReadmeMCS.md b/ReadmeMCS.md
new file mode 100644
index 0000000..1622ade
--- /dev/null
+++ b/ReadmeMCS.md
@@ -0,0 +1,76 @@
+asynReport 255
+asynSetTraceIOMask
+asynSetTraceInfoMask
+asynSetTraceMask
+/home/zamofing_t/Documents/prj/SwissFEL/epics_ioc_modules/SASE_RIXS/Readme.md
+
+asynReport
+asynReport 3 MCS
+asynReport 3 asynMCS
+
+
+asynSetTraceMask asynMCS 0 0xff
+asynSetTraceIOMask asynMCS 0 0xff
+
+asynSetTraceMask asynMCS,0, error|device|filter|driver|flow|warning
+asynSetTraceIOMask asynMCS,0, nodata|ascii|escape|hex
+asynSetTraceInfoMask asynMCS,0, time|port|source|thread
+
+#quite/default asyn communication
+asynSetTraceMask asynMCS,0, error
+asynSetTraceIOMask asynMCS,0, escape
+asynSetTraceInfoMask asynMCS,0, time|port|source
+asynSetTraceMask MCS,0, error
+asynSetTraceIOMask MCS,0, escape
+asynSetTraceInfoMask MCS,0, time|port|source
+
+
+#good debugging for asyn communication
+asynSetTraceMask asynMCS,0, error|driver
+asynSetTraceIOMask asynMCS,0, escape
+asynSetTraceInfoMask asynMCS,0, time|port|source
+
+#good debugging for motor record tracing
+asynSetTraceMask MCS,0, error|device|filter|driver|flow|warning
+asynSetTraceIOMask MCS,0, escape
+asynSetTraceInfoMask MCS,0, time|port|source
+
+
+/home/zamofing_t/Documents/doc-ext/SmaractMCS/MCSrs232InterfaceDocumentation.pdf
+ncat 129.129.244.32 5000
+->resut :ID4049801502
+
+:GSI
+:GIV
+:GNC
+
+:GCT0
+
+:MPA0,123000,2000
+:GP0
+->:P0,123000\n
+:MPA0,987,2000
+:GST0
+:ST0,1
+
+#good debugging for motor record tracing
+asynSetTraceMask asynS1,0, 0x09
+asynSetTraceIOMask asynS1,0, 0x02
+asynSetTraceInfoMask asynS1,0, 0x07
+
+
+
+add a ASYn record
+
+caqtdm -macro 'S=SARES30-SMX,M=MCS,T=MCS' ESB_MX_SmarAct
+
+caqtdm -macro 'P=SARES30-SMX:,R=ASYN' asynOctet
+
+caput SARES30-SMX:ASYN.AOUT :GSI
+caput SARES30-SMX:ASYN.AOUT :GP0
+caput SARES30-SMX:ASYN.AOUT :MPA0,123000,2000
+caput SARES30-SMX:ASYN.AOUT :GST0
+
+
+
+caget SARES30-SMX:ASYN.TINP
diff --git a/add_EXPMX4.cmd b/add_EXPMX4.cmd
new file mode 100644
index 0000000..279d3c3
--- /dev/null
+++ b/add_EXPMX4.cmd
@@ -0,0 +1,2 @@
+#Powerbrick for new commissioning of fast scanning stage
+#FOR NOW IT IS AN EMPTY CPNFIG !
\ No newline at end of file
diff --git a/generate.py b/generate.py
index 65dbfd6..c52629f 100755
--- a/generate.py
+++ b/generate.py
@@ -17,33 +17,98 @@ from __future__ import print_function
import logging, sys, os, json
import string
-host2param={
-#HOST runScript
-'SAR-CPPM-EXPMX1': ('require ESB_MX\nrunScript $(ESB_MX_DIR)/add_EXPMX1.cmd "P=SAR-EXPMX,PORT=PPMAC1"',),
-'SAR-CPPM-EXPMX2': ('require ESB_MX\nrunScript $(ESB_MX_DIR)/add_EXPMX2.cmd "P=SAR-EXPMX,PORT=PPMAC1"',),
-'SAR-CPPM-EXPMX3': ('require ESB_MX\nrunScript $(ESB_MX_DIR)/add_EXPMX3.cmd "P=SAR-EXPMX,PORT=PPMAC1"',),
-}
+class Generate:
+ yamlParam={
+ # ioc : ( host , port , ver , arch , osys , osys_id ,
+ # 'SAR-CSSU-EXPMX1' : ('SAR-CSSU-EXPMX1' , 50001 , '3.14.12' , 'moxa42-armv6l' , 'moxa42-armv6l' , 'moxa42-armv6l' , ) ,
+ 'SAR-CPPM-EXPMX1' : ('SAR-CPPM-EXPMX1' , 50001 , '7.0.7' , 'eldk42-ppc4xxFP' , 'eldk42-ppc4xxFP' , 'eldk42-ppc4xxFP' , ) ,
+ 'SAR-CPPM-EXPMX2' : ('SAR-CPPM-EXPMX2' , 50001 , '7.0.7' , 'eldk42-ppc4xxFP' , 'eldk42-ppc4xxFP' , 'eldk42-ppc4xxFP' , ) ,
+ 'SAR-CPPM-EXPMX3' : ('SAR-CPPM-EXPMX3' , 50001 , '7.0.7' , 'eldk42-ppc4xxFP' , 'eldk42-ppc4xxFP' , 'eldk42-ppc4xxFP' , ) ,
+ 'SAR-CPPM-EXPMX4' : ('SAR-CPPM-EXPMX4' , 50001 , '7.0.7' , 'eldk42-ppc4xxFP' , 'eldk42-ppc4xxFP' , 'eldk42-ppc4xxFP' , ) ,
+ 'SARES30-CPCL-MCSSMX' : ('saresc-softioc-11' , 50001 , '7.0.6' , 'x86_64' , 'RHEL7' , 'rhel' , ) ,
+ }
+ mxSmarAct={
+ 'port':'MCS',
+ 'host':'129.129.244.32',
+ 'prefix':'SARES30-SMX',
+ 'motLst':(
+ # description , PV name , axis , hlm , llm , dir , sens ,
+ ('COLLI:TX' , 'MCS1' , 0 , 12 , -10 , 1 , 'S' ) ,
+ ('COLLI:TY' , 'MCS2' , 1 , 12 , -10 , 1 , 'S' ) ,
+ ('Motor3' , 'MCS3' , 2 , 10 , -10 , 0 , 'S' ) ,
+ ('POSTTUBE:TX1' , 'MCS4' , 3 , 10 , -10 , 0 , 'S' ) ,
+ ('POSTTUBE:TX2' , 'MCS5' , 4 , 10 , -10 , 0 , 'S' ) ,
+ ('POSTTUBE:TY1' , 'MCS6' , 5 , 15 , -20 , 0 , 'S' ) ,
+ ('POSTTUBE:TY2' , 'MCS7' , 6 , 15 , -20 , 0 , 'S' ) ,
+ ('POSTTUBE:TZ' , 'MCS8' , 7 , 10 , -10 , 1 , 'S' ) ,
+ ('Motor9' , 'MCS9' , 8 , 10 , -10 , 0 , 'S' ) ,
+ ('SLITS:X1' , 'MCS10' , 9 , 10 , -10 , 1 , 'S' ) ,
+ ('SLITS:X2' , 'MCS11' , 10 , 10 , -10 , 1 , 'S' ) ,
+ ('SLITS:Y1' , 'MCS12' , 11 , 10 , -10 , 1 , 'S' ) ,
+ ('SLITS:Y2' , 'MCS13' , 12 , 10 , -10 , 1 , 'S' ) ,
+ ('XEYE:TX' , 'MCS14' , 13 , 10 , -10 , 0 , 'S' ) ,
+ ('XEYE:TY' , 'MCS15' , 14 , 10 , -10 , 0 , 'S' ) ,
+ ),
+ }
+ pb_host2param={
+ # HOST runScript
+ 'SAR-CPPM-EXPMX1':('','require ESB_MX\nrunScript $(ESB_MX_DIR)/add_EXPMX1.cmd "P=SAR-EXPMX,PORT=PPMAC1"',),
+ 'SAR-CPPM-EXPMX2':('','require ESB_MX\nrunScript $(ESB_MX_DIR)/add_EXPMX2.cmd "P=SAR-EXPMX,PORT=PPMAC1"',),
+ 'SAR-CPPM-EXPMX3':('','require ESB_MX\nrunScript $(ESB_MX_DIR)/add_EXPMX3.cmd "P=SAR-EXPMX,PORT=PPMAC1"',),
+ 'SAR-CPPM-EXPMX4':('','require ESB_MX\nrunScript $(ESB_MX_DIR)/add_EXPMX4.cmd "P=SAR-EXPMX,PORT=PPMAC1"',),
+ }
-
-tplYaml='''\
-cpu_architecture: {os}
-os: {os}
-os_id: {os}
-epics_version: 7.0.7
+ tplYaml='''\
ioc_host: {host}
ioc_port: {port}
+epics_version: {ver}
+cpu_architecture: {arch}
+os: {osys}
+os_id: {osys_id}
'''
-##################################################################
-# DO NOT EDIT: Generated with epics_ioc_modules/OATT/generate.py
-# This is the IOC on "{host}" port {port}:
-##################################################################
-tplScriptPowerBrickIOC='''\
-#####################################
+ lutSensMcs={'S':0, 'SR':1, 'SP':2, 'SC':3, 'SR20':4, 'M':5, 'SD':6, 'SR2':7, 'MD':8, 'SC500':9, 'User Def':10,
+ 'None':11, 'LC':12, 'L':13}
+
+ tplMcsCtrl='''\
+epicsEnvSet("ENGINEER", "T. Zamofing (zamofing_t)")
+epicsEnvSet("LOCATION", "0.Z553.58")
+
+#load module
+# motorSmarAct community driver
+# smarActMot PSI templates and other files
+require motorSmarAct zamofing_t
+#require motorSmarAct
+require smarActMot
+# -------------
+drvAsynIPPortConfigure("asyn{port}", "{host}:5000", 0, 0, 0)
+# PORT, MCS_PORT, number of axes, active poll period (sec), idle poll period (sec)
+smarActMCSCreateController("{port}", "asyn{port}", {num_ax}, 0.1, 1.0)
+'''
+
+ tplMcsAxis='''\
+smarActMCSCreateAxis({port}, {axis}, {chan})
+'''
+
+ mcs_subs_hdr='''\
+file asyn.template {{{{P={prefix}, PORT=asyn{port}}}}}
+
+##### MCS
+file $(smarActMot_DIR)/db/MCS_axis.template
+{{
+ pattern
+ {{PORT ,S ,M ,ADDR,DESC ,DIR,VBAS,VMAX,DHLM,DLLM,EGU,SENSOR ,UDSENS,RTRY}}
+'''
+
+ tplScriptPowerBrickIOC='''\
+##########################################
+# DO NOT EDIT: Generated with generate.py
+# This is the IOC on host {host}
+##########################################
# PPMAC responsible: Thierry Zamofing
-#####################################
+##########################################
{req}
############################################
@@ -62,7 +127,7 @@ powerPmacCreateController("PPMAC1", 200, 1000)
{devConf}
'''
-tplEVR='''\
+ tplEVR='''\
####### initialise EVR ##############################
# https://git.psi.ch/epics_driver_modules/mrfioc2
require mrfioc2
@@ -74,42 +139,43 @@ require mrfioc2_regDev
runScript $(mrfioc2_regDev_DIR)/mrfioc2_regDev_pulseID_RX.cmd, "DEVICE=EVR0,SYS=SAR-EXPMX"
'''
-
-class CPPM:
-
def __init__(self):
- pass
-
- def genIOC(self):
- print('### genIOC ###')
- tpl=tplScriptPowerBrickIOC
-
os.makedirs('gen/ioc/',exist_ok=True)
#os.makedirs('gen/db/',exist_ok=True)
+ def genYAML(self):
+
+ for ioc,p in self.yamlParam.items():
+ param=dict(zip(('host','port','ver','arch','osys','osys_id',),p))
+ fn=f'gen/ioc/{ioc}_parameters.yaml'
+ print('generate '+fn+' ...')
+ fh=open(fn,'w')
+ fh.write(self.tplYaml.format(**param))
+ fh.close()
+ print('done.')
+
+ def genIOC(self):
+ print('### genIOC ###')
+ tplIOC=Generate.tplScriptPowerBrickIOC
+ yamlParam=Generate.yamlParam
+ pb_h2p=Generate.pb_host2param
+ tplEVR=Generate.tplEVR
fh=open('gen/ioc/Makefile','w')
fh.write('include /ioc/tools/ioc.makefile\n')
fh.close()
-
- port=50001
- osys='eldk42-ppc4xxFP'
-
- for host,v in host2param.items():
- devConf,=v
- req=''
-
+ for host in yamlParam.keys():
+ if not host in pb_h2p:
+ assert(host=='SARES30-CPCL-MCSSMX')
+ self.genSmarActIOC(host)
+ continue
+ req,devConf=pb_h2p[host]
fn='gen/ioc/{host}_startup.script'.format(host=host)
- print('generate '+fn+'...')
+ print('generate '+fn+' ...')
fh=open(fn,'w')
- fh.write(tpl.format(host=host,port=port,req=req,devConf=devConf))
+ fh.write(tplIOC.format(host=host,req=req,devConf=devConf))
if host=='SAR-CPPM-EXPMX1':
fh.write(tplEVR)
fh.close()
- fn='gen/ioc/{host}_parameters.yaml'.format(host=host)
- print('generate '+fn+'...')
- fh=open(fn,'w')
- fh.write(tplYaml.format(os=osys,host=host,port=port))
- fh.close()
print('done.')
def genLauncher(self):
@@ -125,6 +191,36 @@ class CPPM:
#'''.format(dev=dev))
# fh.close()
+ def genSmarActIOC(self,ioc):
+ tplCtrl=Generate.tplMcsCtrl
+ tplAxis=Generate.tplMcsAxis
+ motLst=Generate.mxSmarAct['motLst']
+ subs=Generate.mcs_subs_hdr
+ host=Generate.mxSmarAct['host']
+ prefix=Generate.mxSmarAct['prefix']
+ port=Generate.mxSmarAct['port']
+ lutSens=Generate.lutSensMcs
+ num_ax=len(motLst)
+ fn=f'gen/ioc/{ioc}_startup.script'
+ print('generate '+fn+' ...')
+ with open(fn,'w') as fh_ss:
+ fh_ss.write(tplCtrl.format(host=host,port=port,num_ax=num_ax))
+
+ fn_subs=f'gen/ioc/{ioc}_gen.subs' # with a name _* the .subs file is recognize by the 'ioc install' tool
+ print('generate '+fn_subs+'...')
+ with open(fn_subs,'w') as fh:
+ fh.write(subs.format(port=port,prefix=prefix))
+ for d, m, a, hlm, llm, dir,sens in motLst:
+ sens=lutSens[sens]
+ param={'PORT':port,'S':prefix,'M':m,'ADDR':a,'DESC':'"'+d+'"',
+ 'DIR':dir,'VBAS':0,'VMAX':2,'DHLM':hlm,'DLLM':llm,'EGU':'mm','SENSOR':sens,'UDSENS':0,'RTRY':1}
+ fh.write(' {{{PORT:10},{S:16},{M:10},{ADDR:4},{DESC:27},{DIR:3},{VBAS:4},{VMAX:4},{DHLM:4},{DLLM:4},{EGU:3},{SENSOR:7},{UDSENS:5}{RTRY:5}}}\n'.format(**param))
+ fh_ss.write(tplAxis.format(port=port,axis=a,chan=a))
+ fh.write('}\n\n')
+
+
+
+
if __name__=='__main__':
def parse_args():
import argparse
@@ -138,10 +234,12 @@ if __name__=='__main__':
args = parser.parse_args()
#print(args)
- obj=CPPM()
+ obj=Generate()
if args.mode&0x1:
- obj.genIOC()
+ obj.genYAML()
if args.mode&0x2:
+ obj.genIOC()
+ if args.mode&0x4:
obj.genLauncher()
parse_args()
diff --git a/qt/ESB_MX_5cam.ui b/qt/ESB_MX_5cam.ui
index e3fecde..0ee8efb 100644
--- a/qt/ESB_MX_5cam.ui
+++ b/qt/ESB_MX_5cam.ui
@@ -53,17 +53,7 @@
-
-P=$(P),M=MOT_GIR_1;
-P=$(P),M=MOT_GIR_2;
-P=$(P),M=MOT_GIR_3;
-P=$(P),M=MOT_GIR_4;
-P=$(P),M=MOT_GIR_5;
-P=$(P),M=MOT_GIR_X;
-P=$(P),M=MOT_GIR_Y;
-P=$(P),M=MOT_GIR_U;
-P=$(P),M=MOT_GIR_V;
-P=$(P),M=MOT_GIR_W
+ P=$(P),M=MOT_GIR_1;P=$(P),M=MOT_GIR_2;P=$(P),M=MOT_GIR_3;P=$(P),M=MOT_GIR_4;P=$(P),M=MOT_GIR_5;P=$(P),M=MOT_GIR_X;P=$(P),M=MOT_GIR_Y;P=$(P),M=MOT_GIR_U;P=$(P),M=MOT_GIR_V;P=$(P),M=MOT_GIR_W
ESB_MX_motor.ui
@@ -228,7 +218,7 @@ P=$(P),M=MOT_GIR_W
type motion code as:
-'&1;#1..5j/;cpx call15;abslinear X(1000)Y(0)U(0)V(0)W(0);call16'
+'&1;#1..5j/;cpx abslinear X(1000)Y(0)U(0)V(0)W(0)'
@@ -548,15 +538,15 @@ P=$(P),M=MOT_GIR_W
16
-
- QFrame::NoFrame
-
M2
Qt::AlignAbsolute|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter
+
+ QFrame::NoFrame
+
@@ -772,15 +762,15 @@ P=$(P),M=MOT_GIR_W
16
-
- QFrame::NoFrame
-
M3
Qt::AlignAbsolute|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter
+
+ QFrame::NoFrame
+
@@ -912,15 +902,15 @@ P=$(P),M=MOT_GIR_W
16
-
- QFrame::NoFrame
-
M4
Qt::AlignAbsolute|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter
+
+ QFrame::NoFrame
+
@@ -1124,15 +1114,15 @@ P=$(P),M=MOT_GIR_W
16
-
- QFrame::NoFrame
-
M5
Qt::AlignAbsolute|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter
+
+ QFrame::NoFrame
+
@@ -1185,15 +1175,15 @@ P=$(P),M=MOT_GIR_W
16
-
- QFrame::NoFrame
-
M1
Qt::AlignAbsolute|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter
+
+ QFrame::NoFrame
+
capolyline
m3move
@@ -1251,111 +1241,6 @@ P=$(P),M=MOT_GIR_W
BrickLV.Reset=1;#1..8j/
-
-
-
- 640
- 490
- 120
- 31
-
-
-
- EPushButton::WidthAndHeight
-
-
- $(P):MOVE_XYUVW
-
-
- MOVE XYUVW
-
-
- 1
-
-
- caMessageButton::Static
-
-
-
-
-
- 450
- 370
- 171
- 151
-
-
-
-
- 0
-
- -
-
-
-
- 0
- 0
-
-
-
- $(P):5CAM_X
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- $(P):5CAM_Y
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- $(P):5CAM_U
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- $(P):5CAM_V
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- $(P):5CAM_W
-
-
-
-
-
diff --git a/qt/ESB_MX_SmarAct.ui b/qt/ESB_MX_SmarAct.ui
new file mode 100644
index 0000000..78959da
--- /dev/null
+++ b/qt/ESB_MX_SmarAct.ui
@@ -0,0 +1,175 @@
+
+
+ Form
+
+
+
+ 0
+ 0
+ 797
+ 673
+
+
+
+ Form
+
+
+ false
+
+
+
+
+ 0
+ 0
+ 781
+ 26
+
+
+
+ Expert
+
+
+ Smaract Controller $(S):$(M)
+
+
+ Qt::AlignLeading
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+ 0
+ 0
+ 0
+
+
+
+ caLabel::Default
+
+
+ QFrame::NoFrame
+
+
+
+
+
+ 5
+ 53
+ 784
+ 612
+
+
+
+ S=$(S),T=$(T),M=$(M)1;S=$(S),T=$(T),M=$(M)2;S=$(S),T=$(T),M=$(M)3;S=$(S),T=$(T),M=$(M)4;S=$(S),T=$(T),M=$(M)5;S=$(S),T=$(T),M=$(M)6;S=$(S),T=$(T),M=$(M)7;S=$(S),T=$(T),M=$(M)8;S=$(S),T=$(T),M=$(M)9;S=$(S),T=$(T),M=$(M)10;S=$(S),T=$(T),M=$(M)11;S=$(S),T=$(T),M=$(M)12;S=$(S),T=$(T),M=$(M)13;S=$(S),T=$(T),M=$(M)14;S=$(S),T=$(T),M=$(M)15
+
+
+ MCS_stage.ui
+
+
+ 15
+
+
+ 3
+
+
+ caInclude::NoFrame
+
+
+
+
+
+ 640
+ 30
+ 80
+ 20
+
+
+
+
+ URW Gothic L
+ 12
+
+
+
+ satus bits
+
+
+
+
+
+ 215
+ 30
+ 80
+ 20
+
+
+
+
+ URW Gothic L
+ 12
+
+
+
+ Position
+
+
+
+
+
+ 7
+ 30
+ 80
+ 20
+
+
+
+
+ URW Gothic L
+ 12
+
+
+
+ Motor
+
+
+
+
+
+ 346
+ 30
+ 100
+ 20
+
+
+
+
+ URW Gothic L
+ 12
+ true
+
+
+
+ Absolute
+
+
+
+
+
+ caLabel
+ QLabel
+
+
+
+ caInclude
+ QWidget
+
+
+
+
+
+
diff --git a/qt/ESB_MX_exp.ui b/qt/ESB_MX_exp.ui
index 7300c89..657d1db 100644
--- a/qt/ESB_MX_exp.ui
+++ b/qt/ESB_MX_exp.ui
@@ -7,7 +7,7 @@
0
0
776
- 706
+ 640
@@ -194,9 +194,9 @@
- 20
- 620
- 121
+ 140
+ 590
+ 120
22
@@ -213,39 +213,10 @@
enable plc 1
-
-
-
- 160
- 620
- 121
- 24
-
-
-
- Smaract
-
-
-
- 128
- 136
- 255
-
-
-
- Smaract
-
-
- ESB_MX_SmarAct_main.ui
-
-
- P=SARES30-ESBMX
-
-
- 170
+ 360
590
100
22
@@ -267,9 +238,9 @@
- 30
- 650
- 100
+ 260
+ 590
+ 90
22
@@ -288,7 +259,7 @@
20
590
- 121
+ 120
22
@@ -305,143 +276,17 @@
enable plc 1
-
-
-
- 160
- 650
- 151
- 30
-
-
-
- -ESB_MX Girder
-
-
-
- 0
- 0
- 0
-
-
-
-
- 89
- 126
- 225
-
-
-
- HEXGIR
-
-
- ESB_MX_5cam.ui
-
-
- P=$(P)
-
-
- caRowColMenu::Menu
-
-
- false;false;false;false;false;false;false;false;false;false;false;false;false;false;false;false
-
-
-
-
-
- 340
- 650
- 151
- 30
-
-
-
- -ESB_MX Girder(old)
-
-
-
- 0
- 0
- 0
-
-
-
-
- 89
- 126
- 225
-
-
-
- HEXGIR
-
-
- S_CS_HEXGIR_5Dbasic.ui
-
-
- NAME=$(P), NAME1=$(P)
-
-
- caRowColMenu::Menu
-
-
- false;false;false;false;false;false;false;false;false;false;false;false;false;false;false;false
-
-
-
-
-
- 340
- 610
- 151
- 30
-
-
-
- -ESB_MX EVR
-
-
-
- 0
- 0
- 0
-
-
-
-
- 89
- 126
- 225
-
-
-
- EVR
-
-
- G_EVR_main.ui
-
-
- SYS=$(P),DEVICE=EVR0,FF=PCIe
-
-
- caRowColMenu::Menu
-
-
- false;false;false;false;false;false;false;false;false;false;false;false;false;false;false;false
-
-
- 510
- 610
- 151
- 30
+ 560
+ 590
+ 180
+ 31
- -ESB_MX EVR VME
+ -related panels
@@ -458,13 +303,13 @@
- EVR;EVR-simple
+ SmarAct;SmarAct (old);Girder;EVR;EVR-simple
- G_EVR_main.ui;S_LAS-TMAIN.ui
+ ESB_MX_SmarAct.ui;ESB_MX_SmarAct_main.ui;ESB_MX_5cam.ui;G_EVR_main.ui;S_LAS-TMAIN.ui
- SYS=SAR-CVME,DEVICE=EVR0,FF=VME-300;SYS=SAR-CVME,IOC=SAR-CVME-EVR0,DEVICE=EVR0
+ S=SARES30-SMX,M=MCS,T=MCS;P=SARES30-ESBMX;P=$(P);SYS=SAR-CVME,DEVICE=EVR0,FF=VME-300;SYS=SAR-CVME,IOC=SAR-CVME-EVR0,DEVICE=EVR0
caRowColMenu::Menu