From 3eeb2f2b7e355d19a112a43c21a2e1141db45169 Mon Sep 17 00:00:00 2001
From: marcofilho <marco.filho@ess.eu>
Date: Mon, 29 Jul 2024 11:15:59 +0200
Subject: [PATCH] Use substitution file to expand channels.

Substitution file is used in module build to set channel names, since that shouldn't change
too much with time and particular detector.

VMM and Hybrid numbers are left to be changed in the st.cmd file since that can change more often.
---
 cmds/st.cmd               | 33 ++++-----------------------------
 vmmTbl.Makefile           |  3 +++
 vmmTblApp/Db/channels.sub |  9 +++++++++
 3 files changed, 16 insertions(+), 29 deletions(-)
 create mode 100644 vmmTblApp/Db/channels.sub

diff --git a/cmds/st.cmd b/cmds/st.cmd
index 77a8cd9..12483d4 100644
--- a/cmds/st.cmd
+++ b/cmds/st.cmd
@@ -28,35 +28,10 @@ dbLoadRecords("$(vmmTbl_DB)/vmm_tbl.db", "P=$(P), R=NDet-VMM-001:, PORT=RMM, RIN
 dbLoadRecords("$(vmmTbl_DB)/hybrid.db", "P=$(P), R=NDet-VMM-001:, PORT=RMM, HYB=0, ADDR=0, TIMEOUT=1")
 dbLoadRecords("$(vmmTbl_DB)/hybrid.db", "P=$(P), R=NDet-VMM-001:, PORT=RMM, HYB=1, ADDR=0, TIMEOUT=1")
 
-dbLoadRecords("$(vmmTbl_DB)/channels.db", "P=$(P), R=NDet-VMMHYB-00, HYB=0, VMM=0, C=:, CH=ST, PORT=RMM, ADDR=0, TIMEOUT=1")
-dbLoadRecords("$(vmmTbl_DB)/channels.db", "P=$(P), R=NDet-VMMHYB-00, HYB=0, VMM=1, C=:, CH=ST, PORT=RMM, ADDR=0, TIMEOUT=1")
-dbLoadRecords("$(vmmTbl_DB)/channels.db", "P=$(P), R=NDet-VMMHYB-00, HYB=1, VMM=0, C=:, CH=ST, PORT=RMM, ADDR=0, TIMEOUT=1")
-dbLoadRecords("$(vmmTbl_DB)/channels.db", "P=$(P), R=NDet-VMMHYB-00, HYB=1, VMM=1, C=:, CH=ST, PORT=RMM, ADDR=0, TIMEOUT=1")
-
-dbLoadRecords("$(vmmTbl_DB)/channels.db", "P=$(P), R=NDet-VMMHYB-00, HYB=0, VMM=0, C=:, CH=SC, PORT=RMM, ADDR=0, TIMEOUT=1")
-dbLoadRecords("$(vmmTbl_DB)/channels.db", "P=$(P), R=NDet-VMMHYB-00, HYB=0, VMM=1, C=:, CH=SC, PORT=RMM, ADDR=0, TIMEOUT=1")
-dbLoadRecords("$(vmmTbl_DB)/channels.db", "P=$(P), R=NDet-VMMHYB-00, HYB=1, VMM=0, C=:, CH=SC, PORT=RMM, ADDR=0, TIMEOUT=1")
-dbLoadRecords("$(vmmTbl_DB)/channels.db", "P=$(P), R=NDet-VMMHYB-00, HYB=1, VMM=1, C=:, CH=SC, PORT=RMM, ADDR=0, TIMEOUT=1")
-
-dbLoadRecords("$(vmmTbl_DB)/channels.db", "P=$(P), R=NDet-VMMHYB-00, HYB=0, VMM=0, C=:, CH=SL, PORT=RMM, ADDR=0, TIMEOUT=1")
-dbLoadRecords("$(vmmTbl_DB)/channels.db", "P=$(P), R=NDet-VMMHYB-00, HYB=0, VMM=1, C=:, CH=SL, PORT=RMM, ADDR=0, TIMEOUT=1")
-dbLoadRecords("$(vmmTbl_DB)/channels.db", "P=$(P), R=NDet-VMMHYB-00, HYB=1, VMM=0, C=:, CH=SL, PORT=RMM, ADDR=0, TIMEOUT=1")
-dbLoadRecords("$(vmmTbl_DB)/channels.db", "P=$(P), R=NDet-VMMHYB-00, HYB=1, VMM=1, C=:, CH=SL, PORT=RMM, ADDR=0, TIMEOUT=1")
-
-dbLoadRecords("$(vmmTbl_DB)/channels.db", "P=$(P), R=NDet-VMMHYB-00, HYB=0, VMM=0, C=:, CH=STH, PORT=RMM, ADDR=0, TIMEOUT=1")
-dbLoadRecords("$(vmmTbl_DB)/channels.db", "P=$(P), R=NDet-VMMHYB-00, HYB=0, VMM=1, C=:, CH=STH, PORT=RMM, ADDR=0, TIMEOUT=1")
-dbLoadRecords("$(vmmTbl_DB)/channels.db", "P=$(P), R=NDet-VMMHYB-00, HYB=1, VMM=0, C=:, CH=STH, PORT=RMM, ADDR=0, TIMEOUT=1")
-dbLoadRecords("$(vmmTbl_DB)/channels.db", "P=$(P), R=NDet-VMMHYB-00, HYB=1, VMM=1, C=:, CH=STH, PORT=RMM, ADDR=0, TIMEOUT=1")
-
-dbLoadRecords("$(vmmTbl_DB)/channels.db", "P=$(P), R=NDet-VMMHYB-00, HYB=0, VMM=0, C=:, CH=SM, PORT=RMM, ADDR=0, TIMEOUT=1")
-dbLoadRecords("$(vmmTbl_DB)/channels.db", "P=$(P), R=NDet-VMMHYB-00, HYB=0, VMM=1, C=:, CH=SM, PORT=RMM, ADDR=0, TIMEOUT=1")
-dbLoadRecords("$(vmmTbl_DB)/channels.db", "P=$(P), R=NDet-VMMHYB-00, HYB=1, VMM=0, C=:, CH=SM, PORT=RMM, ADDR=0, TIMEOUT=1")
-dbLoadRecords("$(vmmTbl_DB)/channels.db", "P=$(P), R=NDet-VMMHYB-00, HYB=1, VMM=1, C=:, CH=SM, PORT=RMM, ADDR=0, TIMEOUT=1")
-
-dbLoadRecords("$(vmmTbl_DB)/channels.db", "P=$(P), R=NDet-VMMHYB-00, HYB=0, VMM=0, C=:, CH=SMX, PORT=RMM, ADDR=0, TIMEOUT=1")
-dbLoadRecords("$(vmmTbl_DB)/channels.db", "P=$(P), R=NDet-VMMHYB-00, HYB=0, VMM=1, C=:, CH=SMX, PORT=RMM, ADDR=0, TIMEOUT=1")
-dbLoadRecords("$(vmmTbl_DB)/channels.db", "P=$(P), R=NDet-VMMHYB-00, HYB=1, VMM=0, C=:, CH=SMX, PORT=RMM, ADDR=0, TIMEOUT=1")
-dbLoadRecords("$(vmmTbl_DB)/channels.db", "P=$(P), R=NDet-VMMHYB-00, HYB=1, VMM=1, C=:, CH=SMX, PORT=RMM, ADDR=0, TIMEOUT=1")
+dbLoadRecords("$(vmmTbl_DB)/channels.db", "P=$(P), R=NDet-VMMHYB-00, HYB=0, VMM=0, C=:, PORT=RMM, ADDR=0, TIMEOUT=1")
+dbLoadRecords("$(vmmTbl_DB)/channels.db", "P=$(P), R=NDet-VMMHYB-00, HYB=0, VMM=1, C=:, PORT=RMM, ADDR=0, TIMEOUT=1")
+dbLoadRecords("$(vmmTbl_DB)/channels.db", "P=$(P), R=NDet-VMMHYB-00, HYB=1, VMM=0, C=:, PORT=RMM, ADDR=0, TIMEOUT=1")
+dbLoadRecords("$(vmmTbl_DB)/channels.db", "P=$(P), R=NDet-VMMHYB-00, HYB=1, VMM=1, C=:, PORT=RMM, ADDR=0, TIMEOUT=1")
 
 iocInit()
 
diff --git a/vmmTbl.Makefile b/vmmTbl.Makefile
index a480465..3ea4aeb 100644
--- a/vmmTbl.Makefile
+++ b/vmmTbl.Makefile
@@ -7,6 +7,9 @@ APP:=vmmTblApp
 APPDB:=$(APP)/Db
 APPSRC:=$(APP)/src
 
+TMPS += $(APPDB)/channels.template
+SUBS = $(APPDB)/channels.sub
+
 SOURCES += $(wildcard $(APPSRC)/*.cpp)
 HEADERS += $(wildcard $(APPSRC)/*.h)
 DBDS    += $(APPSRC)/vmm_tbl.dbd
diff --git a/vmmTblApp/Db/channels.sub b/vmmTblApp/Db/channels.sub
new file mode 100644
index 0000000..6ebd89a
--- /dev/null
+++ b/vmmTblApp/Db/channels.sub
@@ -0,0 +1,9 @@
+file channels.template {
+pattern { CH }
+        { "ST" }
+        { "SC" }
+        { "SL" }
+        { "SM" }
+        { "STH" }
+        { "SMX" }
+}
\ No newline at end of file
-- 
GitLab