From 6dc8e0a0247f46289ee7a06665886da54c9e6325 Mon Sep 17 00:00:00 2001
From: Gabriel Fedel <gabriel.fedel@ess.eu>
Date: Wed, 20 Jan 2021 16:30:15 +0100
Subject: [PATCH] Reorganize

---
 cmds/evr-island.cmd                           |  9 +--
 cmds/evr-test.cmd                             | 25 -------
 cmds/llrflab.cmd                              | 73 -------------------
 cmds/ts2.cmd                                  | 73 -------------------
 configure/CONFIG_MODULE                       |  2 +-
 .../evrislandApp/Db/evr-island.template       | 20 ++++-
 evrisland.Makefile                            |  2 +-
 iocsh/evr-island-base.iocsh                   | 19 ++---
 8 files changed, 31 insertions(+), 192 deletions(-)
 delete mode 100644 cmds/evr-test.cmd
 delete mode 100755 cmds/llrflab.cmd
 delete mode 100755 cmds/ts2.cmd
 rename ts2evm-loc/ts2evmApp/Db/ts2_evm_controls.template => evrisland-loc/evrislandApp/Db/evr-island.template (93%)

diff --git a/cmds/evr-island.cmd b/cmds/evr-island.cmd
index 507427f..e11bd81 100755
--- a/cmds/evr-island.cmd
+++ b/cmds/evr-island.cmd
@@ -13,17 +13,12 @@ require ess,0.0.1
 epicsEnvSet(PREFIX, "TR-LLRF")
 epicsEnvSet(PCI_SLOT, "0c:00.0")
 
-#!
-#epicsEnvSet "TOP" "$(E3_CMD_TOP)"
-#iocshLoad "$(TOP)/locenvs.iocsh"
-#epicsEnvSet "ENGINEER" "ICS_HWI_WP04"
-#epicsEnvSet "EPICS_CA_MAX_ARRAY_BYTES" "10000000"
 iocshLoad "$(mrfioc2_DIR)/evr.iocsh" "P=$(PREFIX), PCIID=$(PCI_SLOT), $(INITARGS=)"
 #iocshLoad "$(autosave_DIR)/autosave.iocsh"  "AS_TOP=$(AS_TOP=/var/log/autosave), IOCNAME=$(PEVR)"
 
 
-# - Load TS2 EVM application
-dbLoadRecords("ts2_evm_controls.template", "P=$(PREFIX):, EVGPREFIX=$(PREFIX):")
+# - Load EVR Island application
+dbLoadRecords("evr-island.template", "P=$(PREFIX):, EVGPREFIX=$(PREFIX):")
 
 # - Load standard ESS modules
 iocshLoad("$(iocstats_DIR)/iocstats.iocsh", "IOCNAME=$(PREFIX)")
diff --git a/cmds/evr-test.cmd b/cmds/evr-test.cmd
deleted file mode 100644
index 24ae3e3..0000000
--- a/cmds/evr-test.cmd
+++ /dev/null
@@ -1,25 +0,0 @@
-require mrfioc2,2.2.1rc3
-
-#- Channel Access environment configuration
-epicsEnvSet("EPICS_CA_MAX_ARRAY_BYTES","10000000")
-
-#- Example MACROS
-epicsEnvSet("SYSSUB", "TD-TS2")
-epicsEnvSet("DISDEVID", "TS-EVR-001")
-epicsEnvSet("PREFIX", "$(SYSSUB):$(DISDEVID):")
-
-#- EVR PCI address
-epicsEnvSet("PCIID", "08:00.0")
-
-# Not use in this script, but it is needed for the expansion. 
-epicsEnvSet("MainEvtCODE" "14")
-
-#
-# Record names follows the template "$(P)$(R=)$(S=:)Signal-SD"
-# "P" is mandatory, "R" is optional (default empty), "S" is optional (defaul separator ":")
-# "DEV" is a unique identifier of the EVR card used by mrfioc2 device support layer
-#
-iocshLoad("$(mrfioc2_DIR)/evr-mtca-300.iocsh", "P=$(PREFIX), S=, DEV=$(DISDEVID), PCIID=$(PCIID)")
-
-iocInit()
-
diff --git a/cmds/llrflab.cmd b/cmds/llrflab.cmd
deleted file mode 100755
index 5d13093..0000000
--- a/cmds/llrflab.cmd
+++ /dev/null
@@ -1,73 +0,0 @@
-# - Required modules
-require mrfioc2,2.2.1rc3
-require busy,1.7.2_c596e1c
-require ts2evm,develop
-
-# - Standard modules
-require iocStats,3.1.16
-require autosave,5.10.0
-require caPutLog,b544f92
-require recsync,1.3.0-9705e52
-require ess,0.0.1
-
-epicsEnvSet(PREFIX, "TD-RFLAB:TS-EVG-01")
-
-# - Load standard timing modules environment
-iocshLoad "$(mrfioc2_DIR)/mtca.iocsh"
-iocshLoad "$(mrfioc2_DIR)/ts.iocsh"
-iocshLoad "$(mrfioc2_DIR)/evm.iocsh" "P=$(PREFIX), OBJ=EVM, PCIID=09:00.0, U=:EVRU-, D=:EVRD-"
-
-# - Load TS2 EVM application
-dbLoadRecords("ts2_evm_controls.template", "P=$(PREFIX):, EVGPREFIX=$(PREFIX):")
-
-# - Load standard ESS modules
-iocshLoad("$(iocStats_DIR)/iocStats.iocsh", "IOCNAME=$(PREFIX)")
-
-var(reccastTimeout, 5.0)
-var(reccastMaxHoldoff, 5.0)
-epicsEnvSet("RECSYNCPREFIX", "$(PREFIX)")
-iocshLoad("$(recsync_DIR)/recsync.iocsh", "IOCNAME=$(RECSYNCPREFIX)")
-
-epicsEnvSet("AS_REMOTE", "/opt/autosave")
-epicsEnvSet("AS_FOLDER", "$(PREFIX)")
-iocshLoad("$(autosave_DIR)/autosave.iocsh", "AS_TOP=$(AS_REMOTE),IOCNAME=$(AS_FOLDER)")
-
-## Logging environment variables
-epicsEnvSet("LOG_SERVER_NAME", "$(LOG_SERVER_NAME=localhost)")
-epicsEnvSet("ERRORLOG_SERVER_PORT", "$(ERRORLOG_SERVER_PORT=9001)")
-epicsEnvSet("CAPUTLOG_SERVER_PORT", "$(CAPUTLOG_SERVER_PORT=9001)")
-epicsEnvSet("FACNAME", "$(FACNAME=)")
-#iocshLoad("$(ess_DIR)/iocLog.iocsh", "LOG_INET=$(LOG_SERVER_NAME),LOG_INET_PORT=$(ERRORLOG_SERVER_PORT),FACNAME=$(FACILITY_NAME=),IOCNAME=$(PREFIX)")
-#iocshLoad("$(caPutLog_DIR)/caPutLog.iocsh", "LOG_INET=$(LOG_SERVER_NAME),LOG_INET_PORT=$(CAPUTLOG_SERVER_PORT)")
-
-# - Start IOC
-iocInit
-
-# - Load EVM standard after init snippet
-iocshLoad("$(mrfioc2_DIR)/evgr.iocsh","P=$(PREFIX), INTRF=, INTPPS=")
-
-dbpf $(PREFIX):Enable-Sel "Ena Master"
-dbpf $(PREFIX):1ppsInp-Sel "Sys Clk"
-
-# - Set MXC0 to generate 14 Hz
-dbpf $(PREFIX):Mxc0-Prescaler-SP 6289464
-dbpf $(PREFIX):Mxc0-Polarity-Sel "Orginal"
-
-# - Generate event 14 upon trigger on Mxc0
-dbpf $(PREFIX):TrigEvt0-EvtCode-SP  14
-dbpf $(PREFIX):TrigEvt0-TrigSrc-Sel "Mxc0"
-
-# - Configure sequencers
-dbpf $(PREFIX):SoftSeq0-RunMode-Sel "Normal"
-dbpf $(PREFIX):SoftSeq0-TsResolution-Sel "uSec"
-dbpf $(PREFIX):SoftSeq0-TrigSrc-0-Sel "Mxc0"
-dbpf $(PREFIX):SoftSeq0-Load-Cmd "1"
-
-dbpf $(PREFIX):SoftSeq1-RunMode-Sel "Normal"
-dbpf $(PREFIX):SoftSeq1-TsResolution-Sel "uSec"
-dbpf $(PREFIX):SoftSeq1-TrigSrc-0-Sel "Mxc0"
-dbpf $(PREFIX):SoftSeq1-Load-Cmd "1"
-
-# - Start sequencers
-dbpf $(PREFIX):SeqSelecCalc.PROC "1"
-
diff --git a/cmds/ts2.cmd b/cmds/ts2.cmd
deleted file mode 100755
index baf6907..0000000
--- a/cmds/ts2.cmd
+++ /dev/null
@@ -1,73 +0,0 @@
-# - Required modules
-require mrfioc2,2.2.1rc3
-require busy,1.7.2_c596e1c
-require ts2evm,1.0.0
-
-# - Standard modules
-require iocStats,3.1.16
-require autosave,5.10.0
-require caPutLog,b544f92
-require recsync,1.3.0-9705e52
-require ess,0.0.1
-
-epicsEnvSet(PREFIX, "TD-TS2:TS-EVM-01")
-
-# - Load standard timing modules environment
-iocshLoad "$(mrfioc2_DIR)/mtca.iocsh"
-iocshLoad "$(mrfioc2_DIR)/ts.iocsh"
-iocshLoad "$(mrfioc2_DIR)/evm.iocsh" "P=$(PREFIX), OBJ=EVM, PCIID=09:00.0, U=:EVRU-, D=:EVRD-"
-
-# - Load TS2 EVM application
-dbLoadRecords("ts2_evm_controls.template", "P=$(PREFIX):, EVGPREFIX=$(PREFIX):")
-
-# - Load standard ESS modules
-iocshLoad("$(iocStats_DIR)/iocStats.iocsh", "IOCNAME=$(PREFIX)")
-
-var(reccastTimeout, 5.0)
-var(reccastMaxHoldoff, 5.0)
-epicsEnvSet("RECSYNCPREFIX", "$(PREFIX)")
-iocshLoad("$(recsync_DIR)/recsync.iocsh", "IOCNAME=$(RECSYNCPREFIX)")
-
-epicsEnvSet("AS_REMOTE", "/opt/autosave")
-epicsEnvSet("AS_FOLDER", "$(PREFIX)")
-iocshLoad("$(autosave_DIR)/autosave.iocsh", "AS_TOP=$(AS_REMOTE),IOCNAME=$(AS_FOLDER)")
-
-## Logging environment variables
-epicsEnvSet("LOG_SERVER_NAME", "$(LOG_SERVER_NAME=localhost)")
-epicsEnvSet("ERRORLOG_SERVER_PORT", "$(ERRORLOG_SERVER_PORT=9001)")
-epicsEnvSet("CAPUTLOG_SERVER_PORT", "$(CAPUTLOG_SERVER_PORT=9001)")
-epicsEnvSet("FACNAME", "$(FACNAME=)")
-#iocshLoad("$(ess_DIR)/iocLog.iocsh", "LOG_INET=$(LOG_SERVER_NAME),LOG_INET_PORT=$(ERRORLOG_SERVER_PORT),FACNAME=$(FACILITY_NAME=),IOCNAME=$(PREFIX)")
-#iocshLoad("$(caPutLog_DIR)/caPutLog.iocsh", "LOG_INET=$(LOG_SERVER_NAME),LOG_INET_PORT=$(CAPUTLOG_SERVER_PORT)")
-
-# - Start IOC
-iocInit
-
-# - Load EVM standard after init snippet
-iocshLoad("$(mrfioc2_DIR)/evgr.iocsh","P=$(PREFIX), INTRF=, INTPPS=")
-
-dbpf $(PREFIX):Enable-Sel "Ena Master"
-dbpf $(PREFIX):1ppsInp-Sel "Sys Clk"
-
-# - Set MXC0 to generate 14 Hz
-dbpf $(PREFIX):Mxc0-Prescaler-SP 6289464
-dbpf $(PREFIX):Mxc0-Polarity-Sel "Orginal"
-
-# - Generate event 14 upon trigger on Mxc0
-dbpf $(PREFIX):TrigEvt0-EvtCode-SP  14
-dbpf $(PREFIX):TrigEvt0-TrigSrc-Sel "Mxc0"
-
-# - Configure sequencers
-dbpf $(PREFIX):SoftSeq0-RunMode-Sel "Normal"
-dbpf $(PREFIX):SoftSeq0-TsResolution-Sel "uSec"
-dbpf $(PREFIX):SoftSeq0-TrigSrc-0-Sel "Mxc0"
-dbpf $(PREFIX):SoftSeq0-Load-Cmd "1"
-
-dbpf $(PREFIX):SoftSeq1-RunMode-Sel "Normal"
-dbpf $(PREFIX):SoftSeq1-TsResolution-Sel "uSec"
-dbpf $(PREFIX):SoftSeq1-TrigSrc-0-Sel "Mxc0"
-dbpf $(PREFIX):SoftSeq1-Load-Cmd "1"
-
-# - Start sequencers
-dbpf $(PREFIX):SeqSelecCalc.PROC "1"
-
diff --git a/configure/CONFIG_MODULE b/configure/CONFIG_MODULE
index cc1e05d..2751c3d 100644
--- a/configure/CONFIG_MODULE
+++ b/configure/CONFIG_MODULE
@@ -18,7 +18,7 @@ BUSY_DEP_VERSION:=1.7.2_c596e1c
 #
 
 E3_MODULE_NAME:=$(EPICS_MODULE_NAME)
-E3_MODULE_SRC_PATH:=ts2evm-loc
+E3_MODULE_SRC_PATH:=evrisland-loc
 E3_MODULE_MAKEFILE:=$(EPICS_MODULE_NAME).Makefile
 
 
diff --git a/ts2evm-loc/ts2evmApp/Db/ts2_evm_controls.template b/evrisland-loc/evrislandApp/Db/evr-island.template
similarity index 93%
rename from ts2evm-loc/ts2evmApp/Db/ts2_evm_controls.template
rename to evrisland-loc/evrislandApp/Db/evr-island.template
index 2c70ead..3e96ccc 100644
--- a/ts2evm-loc/ts2evmApp/Db/ts2_evm_controls.template
+++ b/evrisland-loc/evrislandApp/Db/evr-island.template
@@ -17,7 +17,7 @@ record(calc, "$(P)$(R=)CycleFreq-RB") {
     field(DESC, "Cycle frequency readback")
     field(INPA, "$(EVGPREFIX)PS0-Rate-I CP")
     field(CALC, "A*1000000")
-    field(PREC, "5")
+    field(PREC, "3")
     field(EGU, "Hz")
 }
 
@@ -65,17 +65,19 @@ record(ao, "$(P)$(R=)RFSyncWdt-SP") {
     field(DESC, "RF Sync Width")
     field(VAL,  "3000")
     field(EGU, "us")
-    field(OUT, "$(EVGPREFIX)DlyGen1-Width-SP PP") #TODO check
+    field(OUT, "$(EVGPREFIX)DlyGen1-Width-SP PP")
     info(autosaveFields_pass0, "VAL")
 }
 
 record(ao, "$(P)$(R=)BeamPulseDly-SP") {
     field(DESC, "Beam Pulse Delay")
-    field(VAL,  "200")
+    field(VAL,  "300")
     field(EGU, "us")
+    field(DISP, "1") # Locked for this IOC version
     info(autosaveFields_pass0, "VAL")
 }
 
+# Will not beam public now
 record(ao, "$(P)$(R=)BeamPulseWdt-SP") {
     field(DESC, "Beam Pulse Width")
     field(VAL,  "2000")
@@ -83,6 +85,17 @@ record(ao, "$(P)$(R=)BeamPulseWdt-SP") {
     info(autosaveFields_pass0, "VAL")
 }
 
+
+# This PVs are temporary to make LLRF use easier, should be updated
+# when firmware goes to 0.7
+record(calcout, "$(P)$(R=)#SetBeamWidth"){
+    field(INPA, "$(P)$(R=)BeamPulseDly-SP CP")
+    field(INPB, "$(P)$(R=)RFSyncWdt-SP CP")
+    field(CALC, "B-A")
+    field(OUT, "$(P)$(R=)BeamPulseWdt-SP PP")
+
+}
+
 ######
 #  Records to update the EVR Pulsers
 ######
@@ -149,6 +162,7 @@ record(fanout, "$(P)$(R=)#SetInitVals") {
     field(LNK3, "$(P)$(R=)#SetPulser3Dly")
     field(LNK4, "$(P)$(R=)#SetPulser4Dly")
     field(LNK5, "$(P)$(R=)#SetPulser5Dly")
+    field(LNK6, "$(P)$(R=)RFSyncWdt-SP")
 }
 
 ### Sequencer 0
diff --git a/evrisland.Makefile b/evrisland.Makefile
index 617d39b..30ad410 100644
--- a/evrisland.Makefile
+++ b/evrisland.Makefile
@@ -43,7 +43,7 @@ endif
 EXCLUDE_ARCHS += linux-ppc64e6500
 #EXCLUDE_ARCHS += linux-corei7-poky
 
-APP:=ts2evmApp
+APP:=evrislandApp
 APPDB:=$(APP)/Db
 APPSRC:=$(APP)/src
 
diff --git a/iocsh/evr-island-base.iocsh b/iocsh/evr-island-base.iocsh
index 18b6226..ade82f1 100644
--- a/iocsh/evr-island-base.iocsh
+++ b/iocsh/evr-island-base.iocsh
@@ -1,9 +1,9 @@
 
-epicsEnvSet("RepRate_event",		"14")
+epicsEnvSet("Island_event",		"150")
 
 epicsEnvSet "OBJ" "EVR"
 
-dbLoadRecords("evrevent.db","EN=$(PREFIX)-$(RepRate_event), OBJ=$(OBJ), CODE=$(RepRate_event), EVNT=$(RepRate_event)")
+dbLoadRecords("evrevent.db","EN=$(PREFIX)-$(Island_event), OBJ=$(OBJ), CODE=$(Island_event), EVNT=$(Island_event)")
 
 ## Default values
 # pre-pulse delay: 1000us
@@ -19,7 +19,7 @@ dbLoadRecords("evrevent.db","EN=$(PREFIX)-$(RepRate_event), OBJ=$(OBJ), CODE=$(R
 #- Backplane trigger line configuration / Front output
 
 # Pulser 0 - HV Sync -  Modulator
-afterInit("dbpf $(PREFIX):DlyGen0-Evt-Trig0-SP $(RepRate_event)")
+afterInit("dbpf $(PREFIX):DlyGen0-Evt-Trig0-SP $(Island_event)")
 afterInit("dbpf $(PREFIX):DlyGen0-Delay-SP 100") # Pre-pulse delay
 afterInit("dbpf $(PREFIX):DlyGen0-Width-SP 1000") # time in micro-seconds
 ## FP 0 and 1
@@ -29,7 +29,7 @@ afterInit("dbpf $(PREFIX):OutFP1-Src-SP 0")
 afterInit("dbpf $(PREFIX):OutFPUV0-Src-SP 0")
 
 # Pulser 1 - RF Sync 
-afterInit("dbpf $(PREFIX):DlyGen1-Evt-Trig0-SP $(RepRate_event)")
+afterInit("dbpf $(PREFIX):DlyGen1-Evt-Trig0-SP $(Island_event)")
 afterInit("dbpf $(PREFIX):DlyGen1-Delay-SP 2000") # Pre-pulse delay + RF Sync Delay
 afterInit("dbpf $(PREFIX):DlyGen1-Width-SP 2600") # time in micro-seconds
 ## FP 1 and 2
@@ -41,35 +41,36 @@ afterInit("dbpf $(PREFIX):OutFPUV2-Src-SP 1")
 afterInit("dbpf $(PREFIX):OutFPUV3-Src-SP 1")
 
 # Pulser 2 - LLRF Start - TX17
-afterInit("dbpf $(PREFIX):DlyGen2-Evt-Trig0-SP $(RepRate_event)")
+afterInit("dbpf $(PREFIX):DlyGen2-Evt-Trig0-SP $(Island_event)")
 afterInit("dbpf $(PREFIX):DlyGen2-Delay-SP 2000") # Pre-pulse delay + RF Sync Delay
 afterInit("dbpf $(PREFIX):DlyGen2-Width-SP 100") # time in micro-seconds
 afterInit("dbpf $(PREFIX):OutBack1-Src-SP 2") # trigger from delay generator 2 to TX17
 
 #Pulser 3 - LLRF End - TX20
-afterInit("dbpf $(PREFIX):DlyGen3-Evt-Trig0-SP $(RepRate_event)")
+afterInit("dbpf $(PREFIX):DlyGen3-Evt-Trig0-SP $(Island_event)")
 afterInit("dbpf $(PREFIX):DlyGen3-Delay-SP 4600") # Pre-pulse delay + RF Sync Delay + Rf Sync width
 afterInit("dbpf $(PREFIX):DlyGen3-Width-SP 100") # time in micro-seconds
 afterInit("dbpf $(PREFIX):OutBack7-Src-SP 3") # trigger from delay generator 3 to TX20
 
 #Pulser 4 Beam Start - RX18
-afterInit("dbpf $(PREFIX):DlyGen4-Evt-Trig0-SP $(RepRate_event)")
+afterInit("dbpf $(PREFIX):DlyGen4-Evt-Trig0-SP $(Island_event)")
 afterInit("dbpf $(PREFIX):DlyGen4-Delay-SP 2200") # Pre-pulse delay + RF Sync Delay + Beam pulse delay
 afterInit("dbpf $(PREFIX):DlyGen4-Width-SP 100") # time in micro-seconds
 afterInit("dbpf $(PREFIX):OutBack2-Src-SP 4") # trigger from delay generator 4 to RX18
 
 
 #Pulser 5 Beam End - TX18
-afterInit("dbpf $(PREFIX):DlyGen5-Evt-Trig0-SP $(RepRate_event)")
+afterInit("dbpf $(PREFIX):DlyGen5-Evt-Trig0-SP $(Island_event)")
 afterInit("dbpf $(PREFIX):DlyGen5-Delay-SP 4200") # Pre-pulse delay + RF Sync Delay + Beam pulse delay + Beam pulse width
 afterInit("dbpf $(PREFIX):DlyGen5-Width-SP 100") # time in micro-seconds
 afterInit("dbpf $(PREFIX):OutBack3-Src-SP 4") # trigger from delay generator 5 to TX18
 
 # Pulser 6 - FIM Trigger - RX17
-afterInit("dbpf $(PREFIX):DlyGen6-Evt-Trig0-SP $(RepRate_event)")
+afterInit("dbpf $(PREFIX):DlyGen6-Evt-Trig0-SP $(Island_event)")
 afterInit("dbpf $(PREFIX):DlyGen6-Delay-SP 4700") # Pre-pulse delay + RF Sync Delay + Rf sync width + fim delay 
 afterInit("dbpf $(PREFIX):DlyGen6-Width-SP 100") # time in micro-seconds
 
 afterInit("dbpf $(PREFIX):OutBack0-Src-SP 5") # trigger from delay generator 5 to RX17
 
+# Set Initial values
 afterInit("dbpf $(PREFIX):#SetInitVals.PROC 1")
-- 
GitLab