From 7f59fad7fb9c8fd5091867c7b3c6691be29b5235 Mon Sep 17 00:00:00 2001 From: Your Name <you@example.com> Date: Thu, 26 Jan 2017 09:40:33 +0100 Subject: [PATCH] Add precision to the SCAN PS output --- builddir/3.14.12.5/dbd/emu.dbd | 8 + builddir/3.14.12.5/lib/centos7-x86_64/emu.dep | 11 + .../3.14.12.5/lib/centos7-x86_64/libemu.so | Bin 0 -> 83357 bytes builddir/3.14.12.5/lib/eldk56-e500v2/emu.dep | 11 + .../3.14.12.5/lib/eldk56-e500v2/libemu.so | Bin 0 -> 26344 bytes builddir/3.15.2/dbd/emu.dbd | 8 + builddir/3.15.2/lib/centos7-x86_64/emu.dep | 11 + builddir/3.15.2/lib/centos7-x86_64/libemu.so | Bin 0 -> 83617 bytes builddir/3.15.2/lib/eldk56-e500v2/emu.dep | 11 + builddir/3.15.2/lib/eldk56-e500v2/libemu.so | Bin 0 -> 26316 bytes .../emu_subRecordFunctions.dbd | 6 + .../.dependencies_includes | 1 + .../O.3.14.12.5_centos7-x86_64/EMU_CALCULS.d | 15 + .../O.3.14.12.5_centos7-x86_64/EMU_CALCULS.dc | 25 + .../O.3.14.12.5_centos7-x86_64/EMU_CALCULS.o | Bin 0 -> 39712 bytes .../EMU_MTR-CHECKBRAKE.c | 339 + .../EMU_MTR-CHECKBRAKE.d | 14 + .../EMU_MTR-CHECKBRAKE.dc | 27 + .../EMU_MTR-CHECKBRAKE.i | 103 + .../EMU_MTR-CHECKBRAKE.o | Bin 0 -> 28224 bytes .../EMU_MTR-CHECKBRAKE_snl.dbd | 1 + .../EMU_MTR-HOME_AUTO.c | 394 + .../EMU_MTR-HOME_AUTO.d | 14 + .../EMU_MTR-HOME_AUTO.dc | 27 + .../EMU_MTR-HOME_AUTO.i | 143 + .../EMU_MTR-HOME_AUTO.o | Bin 0 -> 33384 bytes .../EMU_MTR-HOME_AUTO_snl.dbd | 1 + .../EMU_REPORT_FILE.d | 15 + .../EMU_REPORT_FILE.dc | 37 + .../EMU_REPORT_FILE.o | Bin 0 -> 24616 bytes .../emu_Versioncatane.c | 1 + .../emu_Versioncatane.d | 1 + .../emu_Versioncatane.o | Bin 0 -> 2328 bytes .../emu_registerRecordDeviceDriver.cpp | 61 + .../emu_registerRecordDeviceDriver.d | 18 + .../emu_registerRecordDeviceDriver.o | Bin 0 -> 14904 bytes builddir/O.3.14.12.5_centos7-x86_64/libemu.so | Bin 0 -> 83357 bytes .../.dependencies_includes | 1 + .../O.3.14.12.5_eldk56-e500v2/EMU_CALCULS.d | 15 + .../O.3.14.12.5_eldk56-e500v2/EMU_CALCULS.dc | 36 + .../O.3.14.12.5_eldk56-e500v2/EMU_CALCULS.o | Bin 0 -> 5744 bytes .../EMU_MTR-CHECKBRAKE.c | 339 + .../EMU_MTR-CHECKBRAKE.d | 14 + .../EMU_MTR-CHECKBRAKE.dc | 48 + .../EMU_MTR-CHECKBRAKE.i | 102 + .../EMU_MTR-CHECKBRAKE.o | Bin 0 -> 6752 bytes .../EMU_MTR-CHECKBRAKE_snl.dbd | 1 + .../EMU_MTR-HOME_AUTO.c | 394 + .../EMU_MTR-HOME_AUTO.d | 14 + .../EMU_MTR-HOME_AUTO.dc | 48 + .../EMU_MTR-HOME_AUTO.i | 142 + .../EMU_MTR-HOME_AUTO.o | Bin 0 -> 7928 bytes .../EMU_MTR-HOME_AUTO_snl.dbd | 1 + .../EMU_REPORT_FILE.d | 15 + .../EMU_REPORT_FILE.dc | 59 + .../EMU_REPORT_FILE.o | Bin 0 -> 1784 bytes .../emu_Versioncatane.c | 1 + .../emu_Versioncatane.d | 1 + .../emu_Versioncatane.o | Bin 0 -> 801 bytes .../emu_registerRecordDeviceDriver.cpp | 61 + .../emu_registerRecordDeviceDriver.d | 18 + .../emu_registerRecordDeviceDriver.o | Bin 0 -> 3384 bytes builddir/O.3.14.12.5_eldk56-e500v2/libemu.so | Bin 0 -> 26344 bytes .../emu_subRecordFunctions.dbd | 6 + .../.dependencies_includes | 1 + .../O.3.15.2_centos7-x86_64/EMU_CALCULS.d | 17 + .../O.3.15.2_centos7-x86_64/EMU_CALCULS.dc | 27 + .../O.3.15.2_centos7-x86_64/EMU_CALCULS.o | Bin 0 -> 39936 bytes .../EMU_MTR-CHECKBRAKE.c | 339 + .../EMU_MTR-CHECKBRAKE.d | 19 + .../EMU_MTR-CHECKBRAKE.dc | 29 + .../EMU_MTR-CHECKBRAKE.i | 103 + .../EMU_MTR-CHECKBRAKE.o | Bin 0 -> 28216 bytes .../EMU_MTR-CHECKBRAKE_snl.dbd | 1 + .../EMU_MTR-HOME_AUTO.c | 394 + .../EMU_MTR-HOME_AUTO.d | 19 + .../EMU_MTR-HOME_AUTO.dc | 29 + .../EMU_MTR-HOME_AUTO.i | 143 + .../EMU_MTR-HOME_AUTO.o | Bin 0 -> 33376 bytes .../EMU_MTR-HOME_AUTO_snl.dbd | 1 + .../O.3.15.2_centos7-x86_64/EMU_REPORT_FILE.d | 17 + .../EMU_REPORT_FILE.dc | 39 + .../O.3.15.2_centos7-x86_64/EMU_REPORT_FILE.o | Bin 0 -> 24744 bytes .../emu_Versioncatane.c | 1 + .../emu_Versioncatane.d | 1 + .../emu_Versioncatane.o | Bin 0 -> 2328 bytes .../emu_registerRecordDeviceDriver.cpp | 68 + .../emu_registerRecordDeviceDriver.cpp.tmp | 70 + .../emu_registerRecordDeviceDriver.d | 21 + .../emu_registerRecordDeviceDriver.o | Bin 0 -> 15600 bytes builddir/O.3.15.2_centos7-x86_64/libemu.so | Bin 0 -> 83617 bytes .../.dependencies_includes | 1 + builddir/O.3.15.2_eldk56-e500v2/EMU_CALCULS.d | 17 + .../O.3.15.2_eldk56-e500v2/EMU_CALCULS.dc | 38 + builddir/O.3.15.2_eldk56-e500v2/EMU_CALCULS.o | Bin 0 -> 5744 bytes .../EMU_MTR-CHECKBRAKE.c | 339 + .../EMU_MTR-CHECKBRAKE.d | 19 + .../EMU_MTR-CHECKBRAKE.dc | 51 + .../EMU_MTR-CHECKBRAKE.i | 102 + .../EMU_MTR-CHECKBRAKE.o | Bin 0 -> 6752 bytes .../EMU_MTR-CHECKBRAKE_snl.dbd | 1 + .../EMU_MTR-HOME_AUTO.c | 394 + .../EMU_MTR-HOME_AUTO.d | 19 + .../EMU_MTR-HOME_AUTO.dc | 51 + .../EMU_MTR-HOME_AUTO.i | 142 + .../EMU_MTR-HOME_AUTO.o | Bin 0 -> 7928 bytes .../EMU_MTR-HOME_AUTO_snl.dbd | 1 + .../O.3.15.2_eldk56-e500v2/EMU_REPORT_FILE.d | 17 + .../O.3.15.2_eldk56-e500v2/EMU_REPORT_FILE.dc | 61 + .../O.3.15.2_eldk56-e500v2/EMU_REPORT_FILE.o | Bin 0 -> 1784 bytes .../emu_Versioncatane.c | 1 + .../emu_Versioncatane.d | 1 + .../emu_Versioncatane.o | Bin 0 -> 801 bytes .../emu_registerRecordDeviceDriver.cpp | 68 + .../emu_registerRecordDeviceDriver.cpp.tmp | 70 + .../emu_registerRecordDeviceDriver.d | 21 + .../emu_registerRecordDeviceDriver.o | Bin 0 -> 3468 bytes builddir/O.3.15.2_eldk56-e500v2/libemu.so | Bin 0 -> 26316 bytes builddir/db/EMU.db | 5286 ++++++++ builddir/db/EMU.substitutions | 560 + builddir/db/EMU_BUFF_CHAN.template | 77 + builddir/db/EMU_BUFF_POS.template | 12 + builddir/db/EMU_CALCUL.template | 315 + builddir/db/EMU_DACQ_SYNC.template | 48 + builddir/db/EMU_PMAC-CONSOLE.template | 14 + builddir/db/EMU_PMAC-GETBO.template | 9 + builddir/db/EMU_PMAC-SETBO.template | 8 + builddir/db/EMU_PROCESS.template | 222 + builddir/doc/README.md | 0 builddir/misc/pmacVariables.proto | 37 + builddir/opi/EMU.opi | 10386 ++++++++++++++++ builddir/opi/Scripts/ExtracData.py | 111 + builddir/opi/Scripts/PlcOpi.js | 19 + builddir/startup/EMU.cmd | 248 + db/EMU_PROCESS.template | 40 +- logs.0 | 84 +- logs.1 | 235 +- opi/EMU.opi | 18 +- startup/EMU.cmd | 2 + 139 files changed, 22904 insertions(+), 199 deletions(-) create mode 100644 builddir/3.14.12.5/dbd/emu.dbd create mode 100644 builddir/3.14.12.5/lib/centos7-x86_64/emu.dep create mode 100644 builddir/3.14.12.5/lib/centos7-x86_64/libemu.so create mode 100644 builddir/3.14.12.5/lib/eldk56-e500v2/emu.dep create mode 100644 builddir/3.14.12.5/lib/eldk56-e500v2/libemu.so create mode 100644 builddir/3.15.2/dbd/emu.dbd create mode 100644 builddir/3.15.2/lib/centos7-x86_64/emu.dep create mode 100644 builddir/3.15.2/lib/centos7-x86_64/libemu.so create mode 100644 builddir/3.15.2/lib/eldk56-e500v2/emu.dep create mode 100644 builddir/3.15.2/lib/eldk56-e500v2/libemu.so create mode 100644 builddir/O.3.14.12.5_Common/emu_subRecordFunctions.dbd create mode 100644 builddir/O.3.14.12.5_centos7-x86_64/.dependencies_includes create mode 100644 builddir/O.3.14.12.5_centos7-x86_64/EMU_CALCULS.d create mode 100644 builddir/O.3.14.12.5_centos7-x86_64/EMU_CALCULS.dc create mode 100644 builddir/O.3.14.12.5_centos7-x86_64/EMU_CALCULS.o create mode 100644 builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-CHECKBRAKE.c create mode 100644 builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-CHECKBRAKE.d create mode 100644 builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-CHECKBRAKE.dc create mode 100644 builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-CHECKBRAKE.i create mode 100644 builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-CHECKBRAKE.o create mode 100644 builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-CHECKBRAKE_snl.dbd create mode 100644 builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-HOME_AUTO.c create mode 100644 builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-HOME_AUTO.d create mode 100644 builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-HOME_AUTO.dc create mode 100644 builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-HOME_AUTO.i create mode 100644 builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-HOME_AUTO.o create mode 100644 builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-HOME_AUTO_snl.dbd create mode 100644 builddir/O.3.14.12.5_centos7-x86_64/EMU_REPORT_FILE.d create mode 100644 builddir/O.3.14.12.5_centos7-x86_64/EMU_REPORT_FILE.dc create mode 100644 builddir/O.3.14.12.5_centos7-x86_64/EMU_REPORT_FILE.o create mode 100644 builddir/O.3.14.12.5_centos7-x86_64/emu_Versioncatane.c create mode 100644 builddir/O.3.14.12.5_centos7-x86_64/emu_Versioncatane.d create mode 100644 builddir/O.3.14.12.5_centos7-x86_64/emu_Versioncatane.o create mode 100644 builddir/O.3.14.12.5_centos7-x86_64/emu_registerRecordDeviceDriver.cpp create mode 100644 builddir/O.3.14.12.5_centos7-x86_64/emu_registerRecordDeviceDriver.d create mode 100644 builddir/O.3.14.12.5_centos7-x86_64/emu_registerRecordDeviceDriver.o create mode 100755 builddir/O.3.14.12.5_centos7-x86_64/libemu.so create mode 100644 builddir/O.3.14.12.5_eldk56-e500v2/.dependencies_includes create mode 100644 builddir/O.3.14.12.5_eldk56-e500v2/EMU_CALCULS.d create mode 100644 builddir/O.3.14.12.5_eldk56-e500v2/EMU_CALCULS.dc create mode 100644 builddir/O.3.14.12.5_eldk56-e500v2/EMU_CALCULS.o create mode 100644 builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-CHECKBRAKE.c create mode 100644 builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-CHECKBRAKE.d create mode 100644 builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-CHECKBRAKE.dc create mode 100644 builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-CHECKBRAKE.i create mode 100644 builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-CHECKBRAKE.o create mode 100644 builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-CHECKBRAKE_snl.dbd create mode 100644 builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-HOME_AUTO.c create mode 100644 builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-HOME_AUTO.d create mode 100644 builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-HOME_AUTO.dc create mode 100644 builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-HOME_AUTO.i create mode 100644 builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-HOME_AUTO.o create mode 100644 builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-HOME_AUTO_snl.dbd create mode 100644 builddir/O.3.14.12.5_eldk56-e500v2/EMU_REPORT_FILE.d create mode 100644 builddir/O.3.14.12.5_eldk56-e500v2/EMU_REPORT_FILE.dc create mode 100644 builddir/O.3.14.12.5_eldk56-e500v2/EMU_REPORT_FILE.o create mode 100644 builddir/O.3.14.12.5_eldk56-e500v2/emu_Versioncatane.c create mode 100644 builddir/O.3.14.12.5_eldk56-e500v2/emu_Versioncatane.d create mode 100644 builddir/O.3.14.12.5_eldk56-e500v2/emu_Versioncatane.o create mode 100644 builddir/O.3.14.12.5_eldk56-e500v2/emu_registerRecordDeviceDriver.cpp create mode 100644 builddir/O.3.14.12.5_eldk56-e500v2/emu_registerRecordDeviceDriver.d create mode 100644 builddir/O.3.14.12.5_eldk56-e500v2/emu_registerRecordDeviceDriver.o create mode 100755 builddir/O.3.14.12.5_eldk56-e500v2/libemu.so create mode 100644 builddir/O.3.15.2_Common/emu_subRecordFunctions.dbd create mode 100644 builddir/O.3.15.2_centos7-x86_64/.dependencies_includes create mode 100644 builddir/O.3.15.2_centos7-x86_64/EMU_CALCULS.d create mode 100644 builddir/O.3.15.2_centos7-x86_64/EMU_CALCULS.dc create mode 100644 builddir/O.3.15.2_centos7-x86_64/EMU_CALCULS.o create mode 100644 builddir/O.3.15.2_centos7-x86_64/EMU_MTR-CHECKBRAKE.c create mode 100644 builddir/O.3.15.2_centos7-x86_64/EMU_MTR-CHECKBRAKE.d create mode 100644 builddir/O.3.15.2_centos7-x86_64/EMU_MTR-CHECKBRAKE.dc create mode 100644 builddir/O.3.15.2_centos7-x86_64/EMU_MTR-CHECKBRAKE.i create mode 100644 builddir/O.3.15.2_centos7-x86_64/EMU_MTR-CHECKBRAKE.o create mode 100644 builddir/O.3.15.2_centos7-x86_64/EMU_MTR-CHECKBRAKE_snl.dbd create mode 100644 builddir/O.3.15.2_centos7-x86_64/EMU_MTR-HOME_AUTO.c create mode 100644 builddir/O.3.15.2_centos7-x86_64/EMU_MTR-HOME_AUTO.d create mode 100644 builddir/O.3.15.2_centos7-x86_64/EMU_MTR-HOME_AUTO.dc create mode 100644 builddir/O.3.15.2_centos7-x86_64/EMU_MTR-HOME_AUTO.i create mode 100644 builddir/O.3.15.2_centos7-x86_64/EMU_MTR-HOME_AUTO.o create mode 100644 builddir/O.3.15.2_centos7-x86_64/EMU_MTR-HOME_AUTO_snl.dbd create mode 100644 builddir/O.3.15.2_centos7-x86_64/EMU_REPORT_FILE.d create mode 100644 builddir/O.3.15.2_centos7-x86_64/EMU_REPORT_FILE.dc create mode 100644 builddir/O.3.15.2_centos7-x86_64/EMU_REPORT_FILE.o create mode 100644 builddir/O.3.15.2_centos7-x86_64/emu_Versioncatane.c create mode 100644 builddir/O.3.15.2_centos7-x86_64/emu_Versioncatane.d create mode 100644 builddir/O.3.15.2_centos7-x86_64/emu_Versioncatane.o create mode 100644 builddir/O.3.15.2_centos7-x86_64/emu_registerRecordDeviceDriver.cpp create mode 100644 builddir/O.3.15.2_centos7-x86_64/emu_registerRecordDeviceDriver.cpp.tmp create mode 100644 builddir/O.3.15.2_centos7-x86_64/emu_registerRecordDeviceDriver.d create mode 100644 builddir/O.3.15.2_centos7-x86_64/emu_registerRecordDeviceDriver.o create mode 100755 builddir/O.3.15.2_centos7-x86_64/libemu.so create mode 100644 builddir/O.3.15.2_eldk56-e500v2/.dependencies_includes create mode 100644 builddir/O.3.15.2_eldk56-e500v2/EMU_CALCULS.d create mode 100644 builddir/O.3.15.2_eldk56-e500v2/EMU_CALCULS.dc create mode 100644 builddir/O.3.15.2_eldk56-e500v2/EMU_CALCULS.o create mode 100644 builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-CHECKBRAKE.c create mode 100644 builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-CHECKBRAKE.d create mode 100644 builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-CHECKBRAKE.dc create mode 100644 builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-CHECKBRAKE.i create mode 100644 builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-CHECKBRAKE.o create mode 100644 builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-CHECKBRAKE_snl.dbd create mode 100644 builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-HOME_AUTO.c create mode 100644 builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-HOME_AUTO.d create mode 100644 builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-HOME_AUTO.dc create mode 100644 builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-HOME_AUTO.i create mode 100644 builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-HOME_AUTO.o create mode 100644 builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-HOME_AUTO_snl.dbd create mode 100644 builddir/O.3.15.2_eldk56-e500v2/EMU_REPORT_FILE.d create mode 100644 builddir/O.3.15.2_eldk56-e500v2/EMU_REPORT_FILE.dc create mode 100644 builddir/O.3.15.2_eldk56-e500v2/EMU_REPORT_FILE.o create mode 100644 builddir/O.3.15.2_eldk56-e500v2/emu_Versioncatane.c create mode 100644 builddir/O.3.15.2_eldk56-e500v2/emu_Versioncatane.d create mode 100644 builddir/O.3.15.2_eldk56-e500v2/emu_Versioncatane.o create mode 100644 builddir/O.3.15.2_eldk56-e500v2/emu_registerRecordDeviceDriver.cpp create mode 100644 builddir/O.3.15.2_eldk56-e500v2/emu_registerRecordDeviceDriver.cpp.tmp create mode 100644 builddir/O.3.15.2_eldk56-e500v2/emu_registerRecordDeviceDriver.d create mode 100644 builddir/O.3.15.2_eldk56-e500v2/emu_registerRecordDeviceDriver.o create mode 100755 builddir/O.3.15.2_eldk56-e500v2/libemu.so create mode 100644 builddir/db/EMU.db create mode 100644 builddir/db/EMU.substitutions create mode 100644 builddir/db/EMU_BUFF_CHAN.template create mode 100644 builddir/db/EMU_BUFF_POS.template create mode 100644 builddir/db/EMU_CALCUL.template create mode 100644 builddir/db/EMU_DACQ_SYNC.template create mode 100644 builddir/db/EMU_PMAC-CONSOLE.template create mode 100644 builddir/db/EMU_PMAC-GETBO.template create mode 100644 builddir/db/EMU_PMAC-SETBO.template create mode 100644 builddir/db/EMU_PROCESS.template create mode 100644 builddir/doc/README.md create mode 100644 builddir/misc/pmacVariables.proto create mode 100644 builddir/opi/EMU.opi create mode 100644 builddir/opi/Scripts/ExtracData.py create mode 100644 builddir/opi/Scripts/PlcOpi.js create mode 100644 builddir/startup/EMU.cmd diff --git a/builddir/3.14.12.5/dbd/emu.dbd b/builddir/3.14.12.5/dbd/emu.dbd new file mode 100644 index 0000000..e92ea73 --- /dev/null +++ b/builddir/3.14.12.5/dbd/emu.dbd @@ -0,0 +1,8 @@ +registrar (checkMTRBrakeRegistrar) +registrar (homeMtrAutoRegistrar) +function (FACTOR_CONVERSION) +function (ANGLE_CALCUL) +function (CREATE_TAB) +function (INIT_TAB) +function (CREATE_PROJXY) +function (CREATE_REPORT) diff --git a/builddir/3.14.12.5/lib/centos7-x86_64/emu.dep b/builddir/3.14.12.5/lib/centos7-x86_64/emu.dep new file mode 100644 index 0000000..e7bdc7e --- /dev/null +++ b/builddir/3.14.12.5/lib/centos7-x86_64/emu.dep @@ -0,0 +1,11 @@ +# Generated file. Do not edit. +scanning,2.0+ +streamdevice,2.7+ +asyn,4.27+ +ecat2db,0.3+ +sscan,2.10+ +busy,1.6+ +calc,3.6+ +fastacquisition,1.1+ +seq,2.1+ +dataacquisition,1.0+ diff --git a/builddir/3.14.12.5/lib/centos7-x86_64/libemu.so b/builddir/3.14.12.5/lib/centos7-x86_64/libemu.so new file mode 100644 index 0000000000000000000000000000000000000000..9e4d178cdd5354e13f5316e191c25ff61f711324 GIT binary patch literal 83357 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 literal 0 HcmV?d00001 diff --git a/builddir/3.14.12.5/lib/eldk56-e500v2/emu.dep b/builddir/3.14.12.5/lib/eldk56-e500v2/emu.dep new file mode 100644 index 0000000..e7bdc7e --- /dev/null +++ b/builddir/3.14.12.5/lib/eldk56-e500v2/emu.dep @@ -0,0 +1,11 @@ +# Generated file. Do not edit. +scanning,2.0+ +streamdevice,2.7+ +asyn,4.27+ +ecat2db,0.3+ +sscan,2.10+ +busy,1.6+ +calc,3.6+ +fastacquisition,1.1+ +seq,2.1+ +dataacquisition,1.0+ diff --git a/builddir/3.14.12.5/lib/eldk56-e500v2/libemu.so b/builddir/3.14.12.5/lib/eldk56-e500v2/libemu.so new file mode 100644 index 0000000000000000000000000000000000000000..a3dee129989aeb00e9e12b416081c5f5f5bf7958 GIT binary patch literal 26344 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 literal 0 HcmV?d00001 diff --git a/builddir/3.15.2/dbd/emu.dbd b/builddir/3.15.2/dbd/emu.dbd new file mode 100644 index 0000000..e92ea73 --- /dev/null +++ b/builddir/3.15.2/dbd/emu.dbd @@ -0,0 +1,8 @@ +registrar (checkMTRBrakeRegistrar) +registrar (homeMtrAutoRegistrar) +function (FACTOR_CONVERSION) +function (ANGLE_CALCUL) +function (CREATE_TAB) +function (INIT_TAB) +function (CREATE_PROJXY) +function (CREATE_REPORT) diff --git a/builddir/3.15.2/lib/centos7-x86_64/emu.dep b/builddir/3.15.2/lib/centos7-x86_64/emu.dep new file mode 100644 index 0000000..e7bdc7e --- /dev/null +++ b/builddir/3.15.2/lib/centos7-x86_64/emu.dep @@ -0,0 +1,11 @@ +# Generated file. Do not edit. +scanning,2.0+ +streamdevice,2.7+ +asyn,4.27+ +ecat2db,0.3+ +sscan,2.10+ +busy,1.6+ +calc,3.6+ +fastacquisition,1.1+ +seq,2.1+ +dataacquisition,1.0+ diff --git a/builddir/3.15.2/lib/centos7-x86_64/libemu.so b/builddir/3.15.2/lib/centos7-x86_64/libemu.so new file mode 100644 index 0000000000000000000000000000000000000000..1ab359bac40cdee69a7f6b5e0220887f7f4277c7 GIT binary patch literal 83617 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 ANB{r; literal 0 HcmV?d00001 diff --git a/builddir/3.15.2/lib/eldk56-e500v2/emu.dep b/builddir/3.15.2/lib/eldk56-e500v2/emu.dep new file mode 100644 index 0000000..e7bdc7e --- /dev/null +++ b/builddir/3.15.2/lib/eldk56-e500v2/emu.dep @@ -0,0 +1,11 @@ +# Generated file. Do not edit. +scanning,2.0+ +streamdevice,2.7+ +asyn,4.27+ +ecat2db,0.3+ +sscan,2.10+ +busy,1.6+ +calc,3.6+ +fastacquisition,1.1+ +seq,2.1+ +dataacquisition,1.0+ diff --git a/builddir/3.15.2/lib/eldk56-e500v2/libemu.so b/builddir/3.15.2/lib/eldk56-e500v2/libemu.so new file mode 100644 index 0000000000000000000000000000000000000000..50a83f1fc870075ba3b60f7fa8e31393f29a187a GIT binary patch literal 26316 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 literal 0 HcmV?d00001 diff --git a/builddir/O.3.14.12.5_Common/emu_subRecordFunctions.dbd b/builddir/O.3.14.12.5_Common/emu_subRecordFunctions.dbd new file mode 100644 index 0000000..25aa99a --- /dev/null +++ b/builddir/O.3.14.12.5_Common/emu_subRecordFunctions.dbd @@ -0,0 +1,6 @@ +function (FACTOR_CONVERSION) +function (ANGLE_CALCUL) +function (CREATE_TAB) +function (INIT_TAB) +function (CREATE_PROJXY) +function (CREATE_REPORT) diff --git a/builddir/O.3.14.12.5_centos7-x86_64/.dependencies_includes b/builddir/O.3.14.12.5_centos7-x86_64/.dependencies_includes new file mode 100644 index 0000000..e0a8063 --- /dev/null +++ b/builddir/O.3.14.12.5_centos7-x86_64/.dependencies_includes @@ -0,0 +1 @@ +DEPENDENCIES_INCLUDES = -I/opt/epics/modules/scanning/2.0.5/3.14.12.5/include -I/opt/epics/modules/scanning/2.0.5/3.14.12.5/include/os/Linux -I/opt/epics/modules/scanning/2.0.5/3.14.12.5/include/os/default -I/opt/epics/modules/fastacquisition/1.1.0/3.14.12.5/include -I/opt/epics/modules/fastacquisition/1.1.0/3.14.12.5/include/os/Linux -I/opt/epics/modules/fastacquisition/1.1.0/3.14.12.5/include/os/default -I/opt/epics/modules/seq/2.1.10/3.14.12.5/include -I/opt/epics/modules/seq/2.1.10/3.14.12.5/include/os/Linux -I/opt/epics/modules/seq/2.1.10/3.14.12.5/include/os/default -I/opt/epics/modules/dataacquisition/1.0.1/3.14.12.5/include -I/opt/epics/modules/dataacquisition/1.0.1/3.14.12.5/include/os/Linux -I/opt/epics/modules/dataacquisition/1.0.1/3.14.12.5/include/os/default -I/opt/epics/modules/ecat2db/0.3.1/3.14.12.5/include -I/opt/epics/modules/ecat2db/0.3.1/3.14.12.5/include/os/Linux -I/opt/epics/modules/ecat2db/0.3.1/3.14.12.5/include/os/default diff --git a/builddir/O.3.14.12.5_centos7-x86_64/EMU_CALCULS.d b/builddir/O.3.14.12.5_centos7-x86_64/EMU_CALCULS.d new file mode 100644 index 0000000..7b2da41 --- /dev/null +++ b/builddir/O.3.14.12.5_centos7-x86_64/EMU_CALCULS.d @@ -0,0 +1,15 @@ +EMU_CALCULS.o: ../.././src/EMU_CALCULS.c \ + /opt/epics/bases/base-3.14.12.5/include/aSubRecord.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTypes.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h \ + /opt/epics/bases/base-3.14.12.5/include/link.h \ + /opt/epics/bases/base-3.14.12.5/include/dbDefs.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsMutex.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsAssert.h \ + /opt/epics/bases/base-3.14.12.5/include/os/Linux/osdMutex.h \ + /opt/epics/bases/base-3.14.12.5/include/ellLib.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTime.h \ + /opt/epics/bases/base-3.14.12.5/include/os/Linux/osdTime.h \ + /opt/epics/bases/base-3.14.12.5/include/registryFunction.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsExport.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h diff --git a/builddir/O.3.14.12.5_centos7-x86_64/EMU_CALCULS.dc b/builddir/O.3.14.12.5_centos7-x86_64/EMU_CALCULS.dc new file mode 100644 index 0000000..137d292 --- /dev/null +++ b/builddir/O.3.14.12.5_centos7-x86_64/EMU_CALCULS.dc @@ -0,0 +1,25 @@ +EMU_CALCULS.o: ../.././src/EMU_CALCULS.c /usr/include/stdc-predef.h \ + /opt/epics/bases/base-3.14.12.5/include/aSubRecord.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTypes.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h \ + /opt/epics/bases/base-3.14.12.5/include/link.h \ + /opt/epics/bases/base-3.14.12.5/include/dbDefs.h \ + /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/stddef.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsMutex.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsAssert.h \ + /opt/epics/bases/base-3.14.12.5/include/os/Linux/osdMutex.h \ + /opt/epics/bases/base-3.14.12.5/include/ellLib.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTime.h /usr/include/time.h \ + /usr/include/features.h /usr/include/sys/cdefs.h \ + /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \ + /usr/include/gnu/stubs-64.h /usr/include/bits/time.h \ + /usr/include/bits/types.h /usr/include/bits/typesizes.h \ + /usr/include/bits/timex.h /usr/include/xlocale.h \ + /opt/epics/bases/base-3.14.12.5/include/os/Linux/osdTime.h \ + /opt/epics/bases/base-3.14.12.5/include/registryFunction.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsExport.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h /usr/include/math.h \ + /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \ + /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \ + /usr/include/bits/nan.h /usr/include/bits/mathdef.h \ + /usr/include/bits/mathcalls.h diff --git a/builddir/O.3.14.12.5_centos7-x86_64/EMU_CALCULS.o b/builddir/O.3.14.12.5_centos7-x86_64/EMU_CALCULS.o new file mode 100644 index 0000000000000000000000000000000000000000..bc9dc88f73f42dcba088829f4cc6abb9ce1e8cfe GIT binary patch literal 39712 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 XzJ(h4hQ{;0c1+`W-}znRc^~<IKtsbD literal 0 HcmV?d00001 diff --git a/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-CHECKBRAKE.c b/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-CHECKBRAKE.c new file mode 100644 index 0000000..61f7985 --- /dev/null +++ b/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-CHECKBRAKE.c @@ -0,0 +1,339 @@ +/* Generated with snc from EMU_MTR-CHECKBRAKE.i */ + +/* Program "checkMTRBrake" */ +#include <string.h> +#include <stddef.h> +#include <stdio.h> +#include <limits.h> +#include "epicsTypes.h" +#include "seqCom.h" + +/* Variable declarations */ +# line 13 "../.././src/EMU_MTR-CHECKBRAKE.st" +static short ErrorBrakeMtrGet = 0; +# line 19 "../.././src/EMU_MTR-CHECKBRAKE.st" +static short statusMTRMov = 0; +# line 23 "../.././src/EMU_MTR-CHECKBRAKE.st" +static short ErrorBrakeMtrSet = 0; +# line 27 "../.././src/EMU_MTR-CHECKBRAKE.st" +static short brakeMtrCMD = 0; +# line 31 "../.././src/EMU_MTR-CHECKBRAKE.st" +static short brakeMtrGET = 0; +# line 37 "../.././src/EMU_MTR-CHECKBRAKE.st" +static short AbortscanMtrCMD = 0; +# line 41 "../.././src/EMU_MTR-CHECKBRAKE.st" +static short countErrors = 0; + +/* C code definitions */ +# line 8 "../.././src/EMU_MTR-CHECKBRAKE.st" +#include <stdio.h> +# line 9 "../.././src/EMU_MTR-CHECKBRAKE.st" +#include <string.h> +# line 10 "../.././src/EMU_MTR-CHECKBRAKE.st" +#include <stdlib.h> + +/* Program init func */ +static void G_prog_init(struct UserVar *pVar) +{ +} + +/****** Code for state "init" in state set "ss1" ******/ + +/* Delay function for state "init" in state set "ss1" */ +static void D_ss1_0_init(SS_ID ssId, struct UserVar *pVar) +{ +# line 46 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_delayInit(ssId, 0, (1.0)); +} + +/* Event function for state "init" in state set "ss1" */ +static seqBool E_ss1_0_init(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 46 "../.././src/EMU_MTR-CHECKBRAKE.st" + if (seq_delay(ssId, 0) && (seq_pvConnectCount(ssId) == seq_pvChannelCount(ssId))) + { + *pNextState = 1; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "init" in state set "ss1" */ +static void A_ss1_0_init(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 48 "../.././src/EMU_MTR-CHECKBRAKE.st" + printf("\nWAIT\n"); +# line 49 "../.././src/EMU_MTR-CHECKBRAKE.st" + ErrorBrakeMtrSet = 0; +# line 50 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_pvPut(ssId, 2/*ErrorBrakeMtrSet*/, 0); + } + return; + } +} + +/****** Code for state "waiting" in state set "ss1" ******/ + +/* Delay function for state "waiting" in state set "ss1" */ +static void D_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar) +{ +# line 56 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_delayInit(ssId, 0, (0.1)); +} + +/* Event function for state "waiting" in state set "ss1" */ +static seqBool E_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 56 "../.././src/EMU_MTR-CHECKBRAKE.st" + if (seq_efTestAndClear(ssId, 1/*ErrorBrakeMtrEvent*/) && (ErrorBrakeMtrGet == 1) && (seq_delay(ssId, 0))) + { + *pNextState = 2; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "waiting" in state set "ss1" */ +static void A_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 58 "../.././src/EMU_MTR-CHECKBRAKE.st" + printf("\nERRROR CURRENT : BRAKE OFF \n"); +# line 59 "../.././src/EMU_MTR-CHECKBRAKE.st" + brakeMtrCMD = 1; +# line 60 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_pvPut(ssId, 3/*brakeMtrCMD*/, 0); +# line 61 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_delay(ssId, 0); +# line 62 "../.././src/EMU_MTR-CHECKBRAKE.st" + ErrorBrakeMtrSet = 0; +# line 63 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_pvPut(ssId, 2/*ErrorBrakeMtrSet*/, 0); + } + return; + } +} + +/****** Code for state "count" in state set "ss1" ******/ + +/* Delay function for state "count" in state set "ss1" */ +static void D_ss1_0_count(SS_ID ssId, struct UserVar *pVar) +{ +# line 74 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_delayInit(ssId, 0, (1.0)); +# line 80 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_delayInit(ssId, 1, (1.0)); +} + +/* Event function for state "count" in state set "ss1" */ +static seqBool E_ss1_0_count(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 69 "../.././src/EMU_MTR-CHECKBRAKE.st" + if (countErrors > 3) + { + *pNextState = 3; + *pTransNum = 0; + return TRUE; + } +# line 74 "../.././src/EMU_MTR-CHECKBRAKE.st" + if ((seq_delay(ssId, 0)) && (statusMTRMov == 1)) + { + *pNextState = 1; + *pTransNum = 1; + return TRUE; + } +# line 80 "../.././src/EMU_MTR-CHECKBRAKE.st" + if ((seq_delay(ssId, 1)) && (statusMTRMov == 0)) + { + *pNextState = 1; + *pTransNum = 2; + return TRUE; + } + return FALSE; +} + +/* Action function for state "count" in state set "ss1" */ +static void A_ss1_0_count(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 71 "../.././src/EMU_MTR-CHECKBRAKE.st" + printf("\nERRROR CURRENT : STOP MEASURE \n"); + } + return; + case 1: + { +# line 76 "../.././src/EMU_MTR-CHECKBRAKE.st" + printf("\nERRROR CURRENT : PROBLEM SOLVED \n"); +# line 77 "../.././src/EMU_MTR-CHECKBRAKE.st" + countErrors = 0; + } + return; + case 2: + { +# line 82 "../.././src/EMU_MTR-CHECKBRAKE.st" + countErrors = countErrors + 1; + } + return; + } +} + +/****** Code for state "stopMeasure" in state set "ss1" ******/ + +/* Delay function for state "stopMeasure" in state set "ss1" */ +static void D_ss1_0_stopMeasure(SS_ID ssId, struct UserVar *pVar) +{ +# line 89 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_delayInit(ssId, 0, (1.0)); +} + +/* Event function for state "stopMeasure" in state set "ss1" */ +static seqBool E_ss1_0_stopMeasure(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 89 "../.././src/EMU_MTR-CHECKBRAKE.st" + if (seq_delay(ssId, 0)) + { + *pNextState = 1; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "stopMeasure" in state set "ss1" */ +static void A_ss1_0_stopMeasure(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 90 "../.././src/EMU_MTR-CHECKBRAKE.st" + printf("\n ABORT\n"); +# line 91 "../.././src/EMU_MTR-CHECKBRAKE.st" + AbortscanMtrCMD = 1; +# line 92 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_pvPut(ssId, 5/*AbortscanMtrCMD*/, 0); +# line 93 "../.././src/EMU_MTR-CHECKBRAKE.st" + countErrors = 0; + } + return; + } +} + +/************************ Tables ************************/ + +/* Channel table */ +static seqChan G_channels[] = { + /* chName, offset, varName, varType, count, eventNum, efId, monitored, queueSize, queueIndex */ + {"{PREFIX}:PBI-EM:CURRENT_ERR_GET", (size_t)&ErrorBrakeMtrGet, "ErrorBrakeMtrGet", "short", 1, 3, 1, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}.MOVN", (size_t)&statusMTRMov, "statusMTRMov", "short", 1, 4, 0, 1, 0, 0}, + {"{PREFIX}:PBI-EM:CURRENT_ERR_SET", (size_t)&ErrorBrakeMtrSet, "ErrorBrakeMtrSet", "short", 1, 5, 0, 1, 0, 0}, + {"{PREFIX}:PBI-EM:VER-BRAKE_SET", (size_t)&brakeMtrCMD, "brakeMtrCMD", "short", 1, 6, 0, 1, 0, 0}, + {"{PREFIX}:PBI-EM:VER-BRAKE_GET", (size_t)&brakeMtrGET, "brakeMtrGET", "short", 1, 7, 2, 1, 0, 0}, + {"{DEVICE}:MTR-ABORT.PROC", (size_t)&AbortscanMtrCMD, "AbortscanMtrCMD", "short", 1, 8, 0, 1, 0, 0} +}; + +/* Event masks for state set "ss1" */ +static const seqMask EM_ss1_0_init[] = { + 0x00000000, +}; +static const seqMask EM_ss1_0_waiting[] = { + 0x0000000a, +}; +static const seqMask EM_ss1_0_count[] = { + 0x00000010, +}; +static const seqMask EM_ss1_0_stopMeasure[] = { + 0x00000000, +}; + +/* State table for state set "ss1" */ +static seqState G_ss1_states[] = { + { + /* state name */ "init", + /* action function */ A_ss1_0_init, + /* event function */ E_ss1_0_init, + /* delay function */ D_ss1_0_init, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_init, + /* state options */ (0) + }, + { + /* state name */ "waiting", + /* action function */ A_ss1_0_waiting, + /* event function */ E_ss1_0_waiting, + /* delay function */ D_ss1_0_waiting, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_waiting, + /* state options */ (0) + }, + { + /* state name */ "count", + /* action function */ A_ss1_0_count, + /* event function */ E_ss1_0_count, + /* delay function */ D_ss1_0_count, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_count, + /* state options */ (0) + }, + { + /* state name */ "stopMeasure", + /* action function */ A_ss1_0_stopMeasure, + /* event function */ E_ss1_0_stopMeasure, + /* delay function */ D_ss1_0_stopMeasure, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_stopMeasure, + /* state options */ (0) + }, +}; + +/* State set table */ +static seqSS G_state_sets[] = { + { + /* state set name */ "ss1", + /* states */ G_ss1_states, + /* number of states */ 4, + /* number of delays */ 2 + }, +}; + +/* Program table (global) */ +seqProgram checkMTRBrake = { + /* magic number */ 2001010, + /* program name */ "checkMTRBrake", + /* channels */ G_channels, + /* num. channels */ 6, + /* state sets */ G_state_sets, + /* num. state sets */ 1, + /* user var size */ 0, + /* param */ "", + /* num. event flags */ 2, + /* encoded options */ (0 | OPT_CONN | OPT_NEWEF), + /* init func */ G_prog_init, + /* entry func */ NULL, + /* exit func */ NULL, + /* num. queues */ 0 +}; + +/* Register sequencer commands and program */ +#include "epicsExport.h" +static void checkMTRBrakeRegistrar (void) { + seqRegisterSequencerCommands(); + seqRegisterSequencerProgram (&checkMTRBrake); +} +epicsExportRegistrar(checkMTRBrakeRegistrar); diff --git a/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-CHECKBRAKE.d b/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-CHECKBRAKE.d new file mode 100644 index 0000000..5cff764 --- /dev/null +++ b/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-CHECKBRAKE.d @@ -0,0 +1,14 @@ +EMU_MTR-CHECKBRAKE.o: EMU_MTR-CHECKBRAKE.c \ + /opt/epics/bases/base-3.14.12.5/include/epicsTypes.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h \ + /opt/epics/modules/seq/2.1.10/3.14.12.5/include/seqCom.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h \ + /opt/epics/modules/seq/2.1.10/3.14.12.5/include/pvAlarm.h \ + /opt/epics/modules/seq/2.1.10/3.14.12.5/include/pvType.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTime.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTypes.h \ + /opt/epics/bases/base-3.14.12.5/include/os/Linux/osdTime.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsThread.h \ + /opt/epics/bases/base-3.14.12.5/include/os/Linux/osdThread.h \ + /opt/epics/modules/seq/2.1.10/3.14.12.5/include/seq_release.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsExport.h diff --git a/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-CHECKBRAKE.dc b/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-CHECKBRAKE.dc new file mode 100644 index 0000000..d6a612e --- /dev/null +++ b/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-CHECKBRAKE.dc @@ -0,0 +1,27 @@ +EMU_MTR-CHECKBRAKE.o: EMU_MTR-CHECKBRAKE.c /usr/include/stdc-predef.h \ + /usr/include/string.h /usr/include/features.h /usr/include/sys/cdefs.h \ + /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \ + /usr/include/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/stddef.h \ + /usr/include/xlocale.h /usr/include/stdio.h /usr/include/bits/types.h \ + /usr/include/bits/typesizes.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/stdarg.h \ + /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \ + /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/limits.h \ + /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/syslimits.h \ + /usr/include/limits.h /usr/include/bits/posix1_lim.h \ + /usr/include/bits/local_lim.h /usr/include/linux/limits.h \ + /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTypes.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h seqCom.h \ + /usr/include/stdlib.h /usr/include/bits/waitflags.h \ + /usr/include/bits/waitstatus.h /usr/include/endian.h \ + /usr/include/bits/endian.h /usr/include/bits/byteswap.h \ + /usr/include/bits/byteswap-16.h /usr/include/sys/types.h \ + /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \ + /usr/include/bits/sigset.h /usr/include/bits/time.h \ + /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \ + /usr/include/alloca.h /usr/include/bits/stdlib-float.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsExport.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h diff --git a/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-CHECKBRAKE.i b/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-CHECKBRAKE.i new file mode 100644 index 0000000..1267f20 --- /dev/null +++ b/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-CHECKBRAKE.i @@ -0,0 +1,103 @@ +# 1 "../.././src/EMU_MTR-CHECKBRAKE.st" +# 1 "<built-in>" +# 1 "<command-line>" +# 1 "/usr/include/stdc-predef.h" 1 3 4 +# 1 "<command-line>" 2 +# 1 "../.././src/EMU_MTR-CHECKBRAKE.st" + + + + + +program checkMTRBrake + +%%#include <stdio.h> +%%#include <string.h> +%%#include <stdlib.h> + + +short ErrorBrakeMtrGet; +assign ErrorBrakeMtrGet to "{PREFIX}:PBI-EM:CURRENT_ERR_GET"; +monitor ErrorBrakeMtrGet; +evflag ErrorBrakeMtrEvent; +sync ErrorBrakeMtrGet ErrorBrakeMtrEvent; + +short statusMTRMov; +assign statusMTRMov to "{PMACPREFIX}:{MOTOR_NAME1}.MOVN"; +monitor statusMTRMov; + +short ErrorBrakeMtrSet; +assign ErrorBrakeMtrSet to "{PREFIX}:PBI-EM:CURRENT_ERR_SET"; +monitor ErrorBrakeMtrSet; + +short brakeMtrCMD; +assign brakeMtrCMD to "{PREFIX}:PBI-EM:VER-BRAKE_SET"; +monitor brakeMtrCMD; + +short brakeMtrGET; +assign brakeMtrGET to "{PREFIX}:PBI-EM:VER-BRAKE_GET"; +monitor brakeMtrGET; +evflag brakeMtrGETEvent; +sync brakeMtrGET brakeMtrGETEvent; + +short AbortscanMtrCMD; +assign AbortscanMtrCMD to "{DEVICE}:MTR-ABORT.PROC"; +monitor AbortscanMtrCMD; + +short countErrors=0; + +ss ss1 +{ + state init { + when (delay(1.0) && (pvConnectCount() == pvChannelCount())) + { + printf("\nWAIT\n"); + ErrorBrakeMtrSet=0; + pvPut(ErrorBrakeMtrSet); + } state waiting + } + + state waiting + { + when(efTestAndClear(ErrorBrakeMtrEvent)&&(ErrorBrakeMtrGet==1)&&(delay(0.1))) + { + printf("\nERRROR CURRENT : BRAKE OFF \n"); + brakeMtrCMD=1; + pvPut(brakeMtrCMD); + delay(1); + ErrorBrakeMtrSet=0; + pvPut(ErrorBrakeMtrSet); + }state count + } + + state count + { + when(countErrors>3) + { + printf("\nERRROR CURRENT : STOP MEASURE \n"); + }state stopMeasure + + when((delay(1.0)) && (statusMTRMov==1)) + { + printf("\nERRROR CURRENT : PROBLEM SOLVED \n"); + countErrors=0; + }state waiting + + when((delay(1.0)) && (statusMTRMov==0)) + { + countErrors=countErrors+1; + }state waiting + } + + + state stopMeasure + { + when(delay(1.0)){ + printf("\n ABORT\n"); + AbortscanMtrCMD=1; + pvPut(AbortscanMtrCMD); + countErrors=0; + }state waiting + } + +} diff --git a/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-CHECKBRAKE.o b/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-CHECKBRAKE.o new file mode 100644 index 0000000000000000000000000000000000000000..083007c6f5d0156b9c5173c582f32e041daabd4e GIT binary patch literal 28224 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 Nf%EzFxWM^5^<Qv_M~naf literal 0 HcmV?d00001 diff --git a/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-CHECKBRAKE_snl.dbd b/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-CHECKBRAKE_snl.dbd new file mode 100644 index 0000000..d71c5ef --- /dev/null +++ b/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-CHECKBRAKE_snl.dbd @@ -0,0 +1 @@ +registrar (checkMTRBrakeRegistrar) diff --git a/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-HOME_AUTO.c b/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-HOME_AUTO.c new file mode 100644 index 0000000..0b2209c --- /dev/null +++ b/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-HOME_AUTO.c @@ -0,0 +1,394 @@ +/* Generated with snc from EMU_MTR-HOME_AUTO.i */ + +/* Program "homeMtrAuto" */ +#include <string.h> +#include <stddef.h> +#include <stdio.h> +#include <limits.h> +#include "epicsTypes.h" +#include "seqCom.h" + +/* Variable declarations */ +# line 13 "../.././src/EMU_MTR-HOME_AUTO.st" +static short HOMCPTFLAG = 0; +# line 17 "../.././src/EMU_MTR-HOME_AUTO.st" +static short statusMTRMov = 0; +# line 21 "../.././src/EMU_MTR-HOME_AUTO.st" +static short mtrPlaced = 0; +# line 27 "../.././src/EMU_MTR-HOME_AUTO.st" +static short mtrStop = 0; +# line 31 "../.././src/EMU_MTR-HOME_AUTO.st" +static short homeCMD = 0; +# line 35 "../.././src/EMU_MTR-HOME_AUTO.st" +static short mtrPosCons = 0; +# line 39 "../.././src/EMU_MTR-HOME_AUTO.st" +static short brakeMtrCMD = 0; +# line 43 "../.././src/EMU_MTR-HOME_AUTO.st" +static short brakeMtrGET = 0; +# line 50 "../.././src/EMU_MTR-HOME_AUTO.st" +static short scanPS_Sts = 0; +# line 55 "../.././src/EMU_MTR-HOME_AUTO.st" +static short scanMTR_Sts = 0; +# line 61 "../.././src/EMU_MTR-HOME_AUTO.st" +static short homeSTART = 0; +# line 68 "../.././src/EMU_MTR-HOME_AUTO.st" +static short plimSTATUS = 0; + +/* C code definitions */ +# line 8 "../.././src/EMU_MTR-HOME_AUTO.st" +#include <stdio.h> +# line 9 "../.././src/EMU_MTR-HOME_AUTO.st" +#include <string.h> +# line 10 "../.././src/EMU_MTR-HOME_AUTO.st" +#include <stdlib.h> + +/* Program init func */ +static void G_prog_init(struct UserVar *pVar) +{ +} + +/****** Code for state "init" in state set "ss1" ******/ + +/* Delay function for state "init" in state set "ss1" */ +static void D_ss1_0_init(SS_ID ssId, struct UserVar *pVar) +{ +# line 77 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_delayInit(ssId, 0, (1.0)); +} + +/* Event function for state "init" in state set "ss1" */ +static seqBool E_ss1_0_init(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 77 "../.././src/EMU_MTR-HOME_AUTO.st" + if (seq_delay(ssId, 0) && (seq_pvConnectCount(ssId) == seq_pvChannelCount(ssId))) + { + *pNextState = 1; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "init" in state set "ss1" */ +static void A_ss1_0_init(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 79 "../.././src/EMU_MTR-HOME_AUTO.st" + homeSTART = 0; +# line 80 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 10/*homeSTART*/, 0); +# line 81 "../.././src/EMU_MTR-HOME_AUTO.st" + printf("\nWAIT\n"); + } + return; + } +} + +/****** Code for state "waiting" in state set "ss1" ******/ + +/* Delay function for state "waiting" in state set "ss1" */ +static void D_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar) +{ +} + +/* Event function for state "waiting" in state set "ss1" */ +static seqBool E_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 87 "../.././src/EMU_MTR-HOME_AUTO.st" + if (seq_efTestAndClear(ssId, 3/*homeSTARTEvent*/) && (homeSTART == 1) && (plimSTATUS == 0)) + { + *pNextState = 2; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "waiting" in state set "ss1" */ +static void A_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 89 "../.././src/EMU_MTR-HOME_AUTO.st" + printf("\nSTART HOME PROCEDURE\n"); + } + return; + } +} + +/****** Code for state "startHOME" in state set "ss1" ******/ + +/* Delay function for state "startHOME" in state set "ss1" */ +static void D_ss1_0_startHOME(SS_ID ssId, struct UserVar *pVar) +{ +# line 96 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_delayInit(ssId, 0, (1.0)); +} + +/* Event function for state "startHOME" in state set "ss1" */ +static seqBool E_ss1_0_startHOME(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 96 "../.././src/EMU_MTR-HOME_AUTO.st" + if ((scanPS_Sts == 0) && (scanMTR_Sts == 0) && (statusMTRMov == 0) && (seq_delay(ssId, 0))) + { + *pNextState = 3; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "startHOME" in state set "ss1" */ +static void A_ss1_0_startHOME(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 97 "../.././src/EMU_MTR-HOME_AUTO.st" + printf("\n GO HOME\n"); +# line 98 "../.././src/EMU_MTR-HOME_AUTO.st" + brakeMtrCMD = 1; +# line 99 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 6/*brakeMtrCMD*/, 0); +# line 100 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_delay(ssId, 0); +# line 101 "../.././src/EMU_MTR-HOME_AUTO.st" + HOMCPTFLAG = 1; +# line 102 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 0/*HOMCPTFLAG*/, 0); +# line 103 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_delay(ssId, 0); +# line 104 "../.././src/EMU_MTR-HOME_AUTO.st" + homeCMD = 1; +# line 105 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 4/*homeCMD*/, 0); + } + return; + } +} + +/****** Code for state "limitON" in state set "ss1" ******/ + +/* Delay function for state "limitON" in state set "ss1" */ +static void D_ss1_0_limitON(SS_ID ssId, struct UserVar *pVar) +{ +} + +/* Event function for state "limitON" in state set "ss1" */ +static seqBool E_ss1_0_limitON(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 111 "../.././src/EMU_MTR-HOME_AUTO.st" + if (seq_efTestAndClear(ssId, 4/*plimSTATUSEvent*/) && (plimSTATUS == 1)) + { + *pNextState = 4; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "limitON" in state set "ss1" */ +static void A_ss1_0_limitON(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 113 "../.././src/EMU_MTR-HOME_AUTO.st" + printf("\nLIMIT HIGH\n"); +# line 114 "../.././src/EMU_MTR-HOME_AUTO.st" + HOMCPTFLAG = 0; +# line 115 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 0/*HOMCPTFLAG*/, 0); + } + return; + } +} + +/****** Code for state "breakON" in state set "ss1" ******/ + +/* Delay function for state "breakON" in state set "ss1" */ +static void D_ss1_0_breakON(SS_ID ssId, struct UserVar *pVar) +{ +# line 121 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_delayInit(ssId, 0, (1.0)); +} + +/* Event function for state "breakON" in state set "ss1" */ +static seqBool E_ss1_0_breakON(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 121 "../.././src/EMU_MTR-HOME_AUTO.st" + if (seq_delay(ssId, 0)) + { + *pNextState = 0; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "breakON" in state set "ss1" */ +static void A_ss1_0_breakON(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 123 "../.././src/EMU_MTR-HOME_AUTO.st" + printf("\nINIT POSITION\n"); +# line 124 "../.././src/EMU_MTR-HOME_AUTO.st" + HOMCPTFLAG = 0; +# line 125 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 0/*HOMCPTFLAG*/, 0); +# line 126 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_delay(ssId, 0); +# line 127 "../.././src/EMU_MTR-HOME_AUTO.st" + printf("\nBRAKE ON\n"); +# line 128 "../.././src/EMU_MTR-HOME_AUTO.st" + homeCMD = 1; +# line 129 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 4/*homeCMD*/, 0); +# line 130 "../.././src/EMU_MTR-HOME_AUTO.st" + homeSTART = 0; +# line 131 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 10/*homeSTART*/, 0); +# line 132 "../.././src/EMU_MTR-HOME_AUTO.st" + brakeMtrCMD = 0; +# line 133 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 6/*brakeMtrCMD*/, 0); + } + return; + } +} + +/************************ Tables ************************/ + +/* Channel table */ +static seqChan G_channels[] = { + /* chName, offset, varName, varType, count, eventNum, efId, monitored, queueSize, queueIndex */ + {"{PMACPREFIX}:{MOTOR_NAME1}-HOMCPTFLAG", (size_t)&HOMCPTFLAG, "HOMCPTFLAG", "short", 1, 5, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}.MOVN", (size_t)&statusMTRMov, "statusMTRMov", "short", 1, 6, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}-AXISSTS", (size_t)&mtrPlaced, "mtrPlaced", "short", 1, 7, 1, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}.SPMG", (size_t)&mtrStop, "mtrStop", "short", 1, 8, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}-HOMCMD", (size_t)&homeCMD, "homeCMD", "short", 1, 9, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}", (size_t)&mtrPosCons, "mtrPosCons", "short", 1, 10, 0, 1, 0, 0}, + {"{PREFIX}:PBI-EM:VER-BRAKE_SET", (size_t)&brakeMtrCMD, "brakeMtrCMD", "short", 1, 11, 0, 1, 0, 0}, + {"{PREFIX}:PBI-EM:VER-BRAKE_GET", (size_t)&brakeMtrGET, "brakeMtrGET", "short", 1, 12, 2, 1, 0, 0}, + {"{DEVICE}:PS.BUSY", (size_t)&scanPS_Sts, "scanPS_Sts", "short", 1, 13, 0, 1, 0, 0}, + {"{DEVICE}:MTR.BUSY", (size_t)&scanMTR_Sts, "scanMTR_Sts", "short", 1, 14, 0, 1, 0, 0}, + {"{DEVICE}:PROC-AUTO-HOME", (size_t)&homeSTART, "homeSTART", "short", 1, 15, 3, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}-PENDLSTS", (size_t)&plimSTATUS, "plimSTATUS", "short", 1, 16, 4, 1, 0, 0} +}; + +/* Event masks for state set "ss1" */ +static const seqMask EM_ss1_0_init[] = { + 0x00000000, +}; +static const seqMask EM_ss1_0_waiting[] = { + 0x00018008, +}; +static const seqMask EM_ss1_0_startHOME[] = { + 0x00006040, +}; +static const seqMask EM_ss1_0_limitON[] = { + 0x00010010, +}; +static const seqMask EM_ss1_0_breakON[] = { + 0x00000000, +}; + +/* State table for state set "ss1" */ +static seqState G_ss1_states[] = { + { + /* state name */ "init", + /* action function */ A_ss1_0_init, + /* event function */ E_ss1_0_init, + /* delay function */ D_ss1_0_init, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_init, + /* state options */ (0) + }, + { + /* state name */ "waiting", + /* action function */ A_ss1_0_waiting, + /* event function */ E_ss1_0_waiting, + /* delay function */ D_ss1_0_waiting, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_waiting, + /* state options */ (0) + }, + { + /* state name */ "startHOME", + /* action function */ A_ss1_0_startHOME, + /* event function */ E_ss1_0_startHOME, + /* delay function */ D_ss1_0_startHOME, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_startHOME, + /* state options */ (0) + }, + { + /* state name */ "limitON", + /* action function */ A_ss1_0_limitON, + /* event function */ E_ss1_0_limitON, + /* delay function */ D_ss1_0_limitON, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_limitON, + /* state options */ (0) + }, + { + /* state name */ "breakON", + /* action function */ A_ss1_0_breakON, + /* event function */ E_ss1_0_breakON, + /* delay function */ D_ss1_0_breakON, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_breakON, + /* state options */ (0) + }, +}; + +/* State set table */ +static seqSS G_state_sets[] = { + { + /* state set name */ "ss1", + /* states */ G_ss1_states, + /* number of states */ 5, + /* number of delays */ 1 + }, +}; + +/* Program table (global) */ +seqProgram homeMtrAuto = { + /* magic number */ 2001010, + /* program name */ "homeMtrAuto", + /* channels */ G_channels, + /* num. channels */ 12, + /* state sets */ G_state_sets, + /* num. state sets */ 1, + /* user var size */ 0, + /* param */ "", + /* num. event flags */ 4, + /* encoded options */ (0 | OPT_CONN | OPT_NEWEF), + /* init func */ G_prog_init, + /* entry func */ NULL, + /* exit func */ NULL, + /* num. queues */ 0 +}; + +/* Register sequencer commands and program */ +#include "epicsExport.h" +static void homeMtrAutoRegistrar (void) { + seqRegisterSequencerCommands(); + seqRegisterSequencerProgram (&homeMtrAuto); +} +epicsExportRegistrar(homeMtrAutoRegistrar); diff --git a/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-HOME_AUTO.d b/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-HOME_AUTO.d new file mode 100644 index 0000000..8f7967a --- /dev/null +++ b/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-HOME_AUTO.d @@ -0,0 +1,14 @@ +EMU_MTR-HOME_AUTO.o: EMU_MTR-HOME_AUTO.c \ + /opt/epics/bases/base-3.14.12.5/include/epicsTypes.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h \ + /opt/epics/modules/seq/2.1.10/3.14.12.5/include/seqCom.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h \ + /opt/epics/modules/seq/2.1.10/3.14.12.5/include/pvAlarm.h \ + /opt/epics/modules/seq/2.1.10/3.14.12.5/include/pvType.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTime.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTypes.h \ + /opt/epics/bases/base-3.14.12.5/include/os/Linux/osdTime.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsThread.h \ + /opt/epics/bases/base-3.14.12.5/include/os/Linux/osdThread.h \ + /opt/epics/modules/seq/2.1.10/3.14.12.5/include/seq_release.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsExport.h diff --git a/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-HOME_AUTO.dc b/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-HOME_AUTO.dc new file mode 100644 index 0000000..4ec46b3 --- /dev/null +++ b/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-HOME_AUTO.dc @@ -0,0 +1,27 @@ +EMU_MTR-HOME_AUTO.o: EMU_MTR-HOME_AUTO.c /usr/include/stdc-predef.h \ + /usr/include/string.h /usr/include/features.h /usr/include/sys/cdefs.h \ + /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \ + /usr/include/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/stddef.h \ + /usr/include/xlocale.h /usr/include/stdio.h /usr/include/bits/types.h \ + /usr/include/bits/typesizes.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/stdarg.h \ + /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \ + /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/limits.h \ + /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/syslimits.h \ + /usr/include/limits.h /usr/include/bits/posix1_lim.h \ + /usr/include/bits/local_lim.h /usr/include/linux/limits.h \ + /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTypes.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h seqCom.h \ + /usr/include/stdlib.h /usr/include/bits/waitflags.h \ + /usr/include/bits/waitstatus.h /usr/include/endian.h \ + /usr/include/bits/endian.h /usr/include/bits/byteswap.h \ + /usr/include/bits/byteswap-16.h /usr/include/sys/types.h \ + /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \ + /usr/include/bits/sigset.h /usr/include/bits/time.h \ + /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \ + /usr/include/alloca.h /usr/include/bits/stdlib-float.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsExport.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h diff --git a/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-HOME_AUTO.i b/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-HOME_AUTO.i new file mode 100644 index 0000000..1d5294f --- /dev/null +++ b/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-HOME_AUTO.i @@ -0,0 +1,143 @@ +# 1 "../.././src/EMU_MTR-HOME_AUTO.st" +# 1 "<built-in>" +# 1 "<command-line>" +# 1 "/usr/include/stdc-predef.h" 1 3 4 +# 1 "<command-line>" 2 +# 1 "../.././src/EMU_MTR-HOME_AUTO.st" + + + + + +program homeMtrAuto + +%%#include <stdio.h> +%%#include <string.h> +%%#include <stdlib.h> + + +short HOMCPTFLAG; +assign HOMCPTFLAG to "{PMACPREFIX}:{MOTOR_NAME1}-HOMCPTFLAG"; +monitor HOMCPTFLAG; + +short statusMTRMov; +assign statusMTRMov to "{PMACPREFIX}:{MOTOR_NAME1}.MOVN"; +monitor statusMTRMov; + +short mtrPlaced; +assign mtrPlaced to "{PMACPREFIX}:{MOTOR_NAME1}-AXISSTS"; +monitor mtrPlaced; +evflag mtrPlacedEvent; +sync mtrPlaced mtrPlacedEvent; + +short mtrStop; +assign mtrStop to "{PMACPREFIX}:{MOTOR_NAME1}.SPMG"; +monitor mtrStop; + +short homeCMD; +assign homeCMD to "{PMACPREFIX}:{MOTOR_NAME1}-HOMCMD"; +monitor homeCMD; + +short mtrPosCons; +assign mtrPosCons to "{PMACPREFIX}:{MOTOR_NAME1}"; +monitor mtrPosCons; + +short brakeMtrCMD; +assign brakeMtrCMD to "{PREFIX}:PBI-EM:VER-BRAKE_SET"; +monitor brakeMtrCMD; + +short brakeMtrGET; +assign brakeMtrGET to "{PREFIX}:PBI-EM:VER-BRAKE_GET"; +monitor brakeMtrGET; +evflag brakeMtrGETEvent; +sync brakeMtrGET brakeMtrGETEvent; + + +short scanPS_Sts; +assign scanPS_Sts to "{DEVICE}:PS.BUSY"; +monitor scanPS_Sts; + + +short scanMTR_Sts; +assign scanMTR_Sts to "{DEVICE}:MTR.BUSY"; +monitor scanMTR_Sts; + + + +short homeSTART; +assign homeSTART to "{DEVICE}:PROC-AUTO-HOME"; +monitor homeSTART; +evflag homeSTARTEvent; +sync homeSTART homeSTARTEvent; + + +short plimSTATUS; +assign plimSTATUS to "{PMACPREFIX}:{MOTOR_NAME1}-PENDLSTS"; +monitor plimSTATUS; +evflag plimSTATUSEvent; +sync plimSTATUS plimSTATUSEvent; + +ss ss1 +{ + state init { + when (delay(1.0) && (pvConnectCount() == pvChannelCount())) + { + homeSTART=0; + pvPut(homeSTART); + printf("\nWAIT\n"); + } state waiting + } + + state waiting + { + when(efTestAndClear(homeSTARTEvent)&&(homeSTART==1)&&(plimSTATUS==0)) + { + printf("\nSTART HOME PROCEDURE\n"); + }state startHOME + } + + + state startHOME + { + when((scanPS_Sts==0) && (scanMTR_Sts==0) && (statusMTRMov==0) && (delay(1.0))){ + printf("\n GO HOME\n"); + brakeMtrCMD=1; + pvPut(brakeMtrCMD); + delay(1); + HOMCPTFLAG=1; + pvPut(HOMCPTFLAG); + delay(1); + homeCMD=1; + pvPut(homeCMD); + }state limitON + } + + state limitON + { + when(efTestAndClear(plimSTATUSEvent)&&(plimSTATUS==1)) + { + printf("\nLIMIT HIGH\n"); + HOMCPTFLAG=0; + pvPut(HOMCPTFLAG); + }state breakON + } + + state breakON + { + when(delay(1.0)) + { + printf("\nINIT POSITION\n"); + HOMCPTFLAG=0; + pvPut(HOMCPTFLAG); + delay(1); + printf("\nBRAKE ON\n"); + homeCMD=1; + pvPut(homeCMD); + homeSTART=0; + pvPut(homeSTART); + brakeMtrCMD=0; + pvPut(brakeMtrCMD); + }state init + } + +} diff --git a/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-HOME_AUTO.o b/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-HOME_AUTO.o new file mode 100644 index 0000000000000000000000000000000000000000..4b79bcfec5061e9339329f1e72dc40c40455923f GIT binary patch literal 33384 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 JgmFGk_#b1nQ}h4; literal 0 HcmV?d00001 diff --git a/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-HOME_AUTO_snl.dbd b/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-HOME_AUTO_snl.dbd new file mode 100644 index 0000000..1386530 --- /dev/null +++ b/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-HOME_AUTO_snl.dbd @@ -0,0 +1 @@ +registrar (homeMtrAutoRegistrar) diff --git a/builddir/O.3.14.12.5_centos7-x86_64/EMU_REPORT_FILE.d b/builddir/O.3.14.12.5_centos7-x86_64/EMU_REPORT_FILE.d new file mode 100644 index 0000000..3655c14 --- /dev/null +++ b/builddir/O.3.14.12.5_centos7-x86_64/EMU_REPORT_FILE.d @@ -0,0 +1,15 @@ +EMU_REPORT_FILE.o: ../.././src/EMU_REPORT_FILE.c \ + /opt/epics/bases/base-3.14.12.5/include/aSubRecord.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTypes.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h \ + /opt/epics/bases/base-3.14.12.5/include/link.h \ + /opt/epics/bases/base-3.14.12.5/include/dbDefs.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsMutex.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsAssert.h \ + /opt/epics/bases/base-3.14.12.5/include/os/Linux/osdMutex.h \ + /opt/epics/bases/base-3.14.12.5/include/ellLib.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTime.h \ + /opt/epics/bases/base-3.14.12.5/include/os/Linux/osdTime.h \ + /opt/epics/bases/base-3.14.12.5/include/registryFunction.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsExport.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h diff --git a/builddir/O.3.14.12.5_centos7-x86_64/EMU_REPORT_FILE.dc b/builddir/O.3.14.12.5_centos7-x86_64/EMU_REPORT_FILE.dc new file mode 100644 index 0000000..6484088 --- /dev/null +++ b/builddir/O.3.14.12.5_centos7-x86_64/EMU_REPORT_FILE.dc @@ -0,0 +1,37 @@ +EMU_REPORT_FILE.o: ../.././src/EMU_REPORT_FILE.c \ + /usr/include/stdc-predef.h \ + /opt/epics/bases/base-3.14.12.5/include/aSubRecord.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTypes.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h \ + /opt/epics/bases/base-3.14.12.5/include/link.h \ + /opt/epics/bases/base-3.14.12.5/include/dbDefs.h \ + /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/stddef.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsMutex.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsAssert.h \ + /opt/epics/bases/base-3.14.12.5/include/os/Linux/osdMutex.h \ + /opt/epics/bases/base-3.14.12.5/include/ellLib.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTime.h /usr/include/time.h \ + /usr/include/features.h /usr/include/sys/cdefs.h \ + /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \ + /usr/include/gnu/stubs-64.h /usr/include/bits/time.h \ + /usr/include/bits/types.h /usr/include/bits/typesizes.h \ + /usr/include/bits/timex.h /usr/include/xlocale.h \ + /opt/epics/bases/base-3.14.12.5/include/os/Linux/osdTime.h \ + /opt/epics/bases/base-3.14.12.5/include/registryFunction.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsExport.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h /usr/include/math.h \ + /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \ + /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \ + /usr/include/bits/nan.h /usr/include/bits/mathdef.h \ + /usr/include/bits/mathcalls.h /usr/include/string.h \ + /usr/include/stdlib.h /usr/include/bits/waitflags.h \ + /usr/include/bits/waitstatus.h /usr/include/endian.h \ + /usr/include/bits/endian.h /usr/include/bits/byteswap.h \ + /usr/include/bits/byteswap-16.h /usr/include/sys/types.h \ + /usr/include/sys/select.h /usr/include/bits/select.h \ + /usr/include/bits/sigset.h /usr/include/sys/sysmacros.h \ + /usr/include/bits/pthreadtypes.h /usr/include/alloca.h \ + /usr/include/bits/stdlib-float.h /usr/include/stdio.h \ + /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/stdarg.h \ + /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h diff --git a/builddir/O.3.14.12.5_centos7-x86_64/EMU_REPORT_FILE.o b/builddir/O.3.14.12.5_centos7-x86_64/EMU_REPORT_FILE.o new file mode 100644 index 0000000000000000000000000000000000000000..c8be86bea94255bd7ed1815332da0b2bd5013efc GIT binary patch literal 24616 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%0DFNAn<$WN81Y|2jC4>az8i=6~5|FP$R6$5U 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 literal 0 HcmV?d00001 diff --git a/builddir/O.3.14.12.5_centos7-x86_64/emu_Versioncatane.c b/builddir/O.3.14.12.5_centos7-x86_64/emu_Versioncatane.c new file mode 100644 index 0000000..a707bba --- /dev/null +++ b/builddir/O.3.14.12.5_centos7-x86_64/emu_Versioncatane.c @@ -0,0 +1 @@ +char epics_emuLibRelease[] = "catane"; diff --git a/builddir/O.3.14.12.5_centos7-x86_64/emu_Versioncatane.d b/builddir/O.3.14.12.5_centos7-x86_64/emu_Versioncatane.d new file mode 100644 index 0000000..28b2801 --- /dev/null +++ b/builddir/O.3.14.12.5_centos7-x86_64/emu_Versioncatane.d @@ -0,0 +1 @@ +emu_Versioncatane.o: emu_Versioncatane.c diff --git a/builddir/O.3.14.12.5_centos7-x86_64/emu_Versioncatane.o b/builddir/O.3.14.12.5_centos7-x86_64/emu_Versioncatane.o new file mode 100644 index 0000000000000000000000000000000000000000..29d0ba942cd5b61a5e6625b22f299c228e0451a7 GIT binary patch literal 2328 zcmbVO&2G~`5FRI?w1kFM5rV29xe|yJu+y}mf6x*sf;OViQVFh+<7^X)#HnnjYPs|g zIP)$X`UqSQyap$bIKYg((`*+@NQ~s2*>Ap?osDPLIeoVCJYyKZV!$ShW{d)yWkz-_ zHft~ili)g$;|qY7h~;8@JPyB*BU43>g-@1-G02TyCTh+YBXx-e!?=y(M3(GWjA`R; zp_tDWW(!j{0I<eJ(I{eyIcOBid5pdT`TQmlFhdoxh4uX7e53euCUX<xZ{d?vJf5V} z#)a5_A4kLZRhYyv{td8d14Mt=d@F*`8~DlYY&VV$z4szIITWz<>Wx`9tM;nBWG*gL zstaqCidothZFAd+65LvwH?9716^Cf(i;a%(Mc}zObpp4$alE>0k+Wl3yGy2Zu-B-k zE?e#n`l6gvQErPP(Hk80g&&psmN@j>(85~Ft)bUzx4odeYcJWAs$E&MA2nTM4Z;-* zS86U-A!av`z2mj^MNc@P0JrM|09*C?x>>?4&Hr;p0CsrNkDM0jC`fddtw<b4V7IXy zz;1;h*n#Ldc3ZTDou=m>4A2+bPOBA&qYG{)aQu$Ikc83mu%V=l*}--PecCkG{vZ-I zmTHBO<G#~g>Hke<sRi(fJ5fndQ*6~tdVGY;p-J(h#!Y;+L_yr>(k7+H-$RUARFB^# za*F8j739$Rx^Vn!&7pH2qF>KRAtiZkzR7qzWid~}K!=QE10Ovn;U8&0*-X^=sB`zw zqhmz=DkDs(S?Syt=t!#{CXxuQlj^5;q1WF;OwUP?KWIRqn@bg)OI=79T_~zNki;)4 zh&IQwK9ZOoFK@5-)>Kn)9P3jhr^>UG`&z|0j<IPp^xh*M$A4g=)OtM4)0R4u2WnLY zTtnVfeDvR+UQ^ooKjp!hN53li`l?U0iI;=#zg3Lw?D<<@B+=Q_olt#g6%wA>d5G(` z3Fp^u1IA^uUMvUmT+tBb(=YkAWC1^mnq0^Ew6d@B3evuEX<rGMk9R~Bu}v<ngmBsg z?}Yk_gmF4&BvcOx<6$y|8L0{99wCU&1@k2hR;0oBXE}eO;h*GuTWabHu9+a-3+0Lb Ih!BYK2eOd14FCWD literal 0 HcmV?d00001 diff --git a/builddir/O.3.14.12.5_centos7-x86_64/emu_registerRecordDeviceDriver.cpp b/builddir/O.3.14.12.5_centos7-x86_64/emu_registerRecordDeviceDriver.cpp new file mode 100644 index 0000000..b8b743c --- /dev/null +++ b/builddir/O.3.14.12.5_centos7-x86_64/emu_registerRecordDeviceDriver.cpp @@ -0,0 +1,61 @@ +/* THIS IS A GENERATED FILE. DO NOT EDIT! */ +/* Generated from ../../builddir/3.14.12.5/dbd/emu.dbd */ + +#include <string.h> + +#include "epicsStdlib.h" +#include "iocsh.h" +#include "registryCommon.h" + +extern "C" { + +epicsShareExtern void (*pvar_func_checkMTRBrakeRegistrar)(void); +epicsShareExtern void (*pvar_func_homeMtrAutoRegistrar)(void); +epicsShareExtern void (*pvar_func_register_func_FACTOR_CONVERSION)(void); +epicsShareExtern void (*pvar_func_register_func_ANGLE_CALCUL)(void); +epicsShareExtern void (*pvar_func_register_func_CREATE_TAB)(void); +epicsShareExtern void (*pvar_func_register_func_INIT_TAB)(void); +epicsShareExtern void (*pvar_func_register_func_CREATE_PROJXY)(void); +epicsShareExtern void (*pvar_func_register_func_CREATE_REPORT)(void); + +int emu_registerRecordDeviceDriver(DBBASE *pbase) +{ + if (!pbase) { + printf("pdbbase is NULL; you must load a DBD file first.\n"); + return -1; + } + + (*pvar_func_checkMTRBrakeRegistrar)(); + (*pvar_func_homeMtrAutoRegistrar)(); + (*pvar_func_register_func_FACTOR_CONVERSION)(); + (*pvar_func_register_func_ANGLE_CALCUL)(); + (*pvar_func_register_func_CREATE_TAB)(); + (*pvar_func_register_func_INIT_TAB)(); + (*pvar_func_register_func_CREATE_PROJXY)(); + (*pvar_func_register_func_CREATE_REPORT)(); + return 0; +} + +/* registerRecordDeviceDriver */ +static const iocshArg registerRecordDeviceDriverArg0 = + {"pdbbase",iocshArgPdbbase}; +static const iocshArg *registerRecordDeviceDriverArgs[1] = + {®isterRecordDeviceDriverArg0}; +static const iocshFuncDef registerRecordDeviceDriverFuncDef = + {"emu_registerRecordDeviceDriver",1,registerRecordDeviceDriverArgs}; +static void registerRecordDeviceDriverCallFunc(const iocshArgBuf *) +{ + emu_registerRecordDeviceDriver(*iocshPpdbbase); +} + +} // extern "C" +/* + * Register commands on application startup + */ +static int Registration() { + iocshRegister(®isterRecordDeviceDriverFuncDef, + registerRecordDeviceDriverCallFunc); + return 0; +} + +static int done = Registration(); diff --git a/builddir/O.3.14.12.5_centos7-x86_64/emu_registerRecordDeviceDriver.d b/builddir/O.3.14.12.5_centos7-x86_64/emu_registerRecordDeviceDriver.d new file mode 100644 index 0000000..52cdf69 --- /dev/null +++ b/builddir/O.3.14.12.5_centos7-x86_64/emu_registerRecordDeviceDriver.d @@ -0,0 +1,18 @@ +emu_registerRecordDeviceDriver.o: emu_registerRecordDeviceDriver.cpp \ + /opt/epics/bases/base-3.14.12.5/include/epicsStdlib.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h \ + /opt/epics/bases/base-3.14.12.5/include/os/Linux/osdStrtod.h \ + /opt/epics/bases/base-3.14.12.5/include/iocsh.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h \ + /opt/epics/bases/base-3.14.12.5/include/registryCommon.h \ + /opt/epics/bases/base-3.14.12.5/include/dbStaticLib.h \ + /opt/epics/bases/base-3.14.12.5/include/dbFldTypes.h \ + /opt/epics/bases/base-3.14.12.5/include/dbBase.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTypes.h \ + /opt/epics/bases/base-3.14.12.5/include/ellLib.h \ + /opt/epics/bases/base-3.14.12.5/include/dbDefs.h \ + /opt/epics/bases/base-3.14.12.5/include/link.h \ + /opt/epics/bases/base-3.14.12.5/include/errMdef.h \ + /opt/epics/bases/base-3.14.12.5/include/cantProceed.h \ + /opt/epics/bases/base-3.14.12.5/include/registryRecordType.h \ + /opt/epics/bases/base-3.14.12.5/include/recSup.h diff --git a/builddir/O.3.14.12.5_centos7-x86_64/emu_registerRecordDeviceDriver.o b/builddir/O.3.14.12.5_centos7-x86_64/emu_registerRecordDeviceDriver.o new file mode 100644 index 0000000000000000000000000000000000000000..b1fb15263e1851fb608c0ccc565cf4b117073d6f GIT binary patch literal 14904 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 EZ-q@4eE<Le literal 0 HcmV?d00001 diff --git a/builddir/O.3.14.12.5_centos7-x86_64/libemu.so b/builddir/O.3.14.12.5_centos7-x86_64/libemu.so new file mode 100755 index 0000000000000000000000000000000000000000..9e4d178cdd5354e13f5316e191c25ff61f711324 GIT binary patch literal 83357 zcmeFa349b)_CH$HORBp%-PO?5O;`er1PDklK~zxG1QO_AkN^P@P!b>*6d{tJ(NT;> zk%(d9HsTB_IxaZsh|4JIr~y=PkLWnK%$RXaTt?iGaT(tCd+Xj#)5355@ALlez0do+ zDNWb;o_o%@_nv!eyH)3KaY@-km#%ASb89DPL>>JcPN6JlJgi%$P#dEeTA`Ms4HU9o zDRZ#h8z(wkwb!(`V9;6y{wgO5h<#iTYQH7m@DrKNUg^02sW)bd!yhvxE(o>HrvNs! z_c>7WV9&puvK#6994V*vl;u|bQT-y)yN?m@7yHYkJ+)VQ)1b$8{;zIfDL7r$cPPJX z^gDuTFRK@Qvr**6-=vdgYVY>k^8Mx?e%s@OWlvsn?X(Wp-DcrVYWBci7XIia1AlE= zEYqb${JzkT<}0sj^RTQp{`%rC8-H>94aDDJ_#1>jZpuf49VmW>;CCqga`D%<wCcN0 zU;i?6Yv;y?I<CC6<*}BpLNEMPo4@;<+5HNRowxjn53aee;N?WkwB}Vc6H5N_`FX$T zW&C*my&r!+<B4Ctv*_<7#^k@6!ssD>+?ro&WCK&SKcPd)hbe6B5jf~zeEKb(Dk$ly zL-6l{LeGQ9SAu^q`#gN&2a$jN5b|RVAwL~_`aXTDL4Oa{o~eiM!>mKpd)y)9*B(NC z`yu34qJanVL*fv2<{zT{?;b+_-b3)4QSZV0a1rEtXuY)fw776xrTEpf81_B2Ozn+P zk|B3*Vo&+@^0?rr^TwYfe`gw>eeHRWdH5UAuYguA?VlyAY1#xFm|+}wS<~Z^<LvrD zp7l1$cB*=(O8HG`@?Xk+X=(ERf;rmRoz~8A!cMPW)cb2G-<BpHmhIV?=C{`*KP=nB za|gHnvOOJXc50=(CgoMXwE6STID7fB`E~VGE9&RZ*XA!-wxnL0zZg4herd&&`HQMo zRG+b=uD*Ij#gqw4moKZXs9LbJ+9^AD$^3;4RWwkwbjbw}oP6&5>C(c4rB!ux)peSq zx8nSXE0-;-U$T5z(V|6K-8n1j7i+cWR;`%780`7Vwu2^2FDa@hnO{DA>g3s{9#X3G z<kE`y6-DC@DIm@KPa;JpPbw>!KcT2>!pyQm+L>51p<?Rv`4gs|Jga2-jMAwmYjxG< zz*S4D&M&3^l8BV*{fz2!R#q=tSiNGx^0UvbTDGW8TUb-Q@T@5n)5ou<I;;AiqU9@= zpRuCqY^`=>eVwpcdv5tk$A0zVit4)hqGgLFEUm6uAqyugU$(4zVf}>VE0;M^wdYQ# zsRD1Q!|L|$0d+e~TmdsR%g?T!Qoo{TW&QG$-luT8MXPI<EUc?oa(4Bk>iP*QSFET; zl}TR3@<~%Frf7BbD;C#7M60V^v1HkQ9^mOE<x{6uXw_%0OiqC5)eD!eSX5kn?vjPo z#VeMaTfIVCvV37(O?mC21q-U`svV@9?6hD$43sTdFufYCfyB}!3u^0YR#aCl8d<k| zWIpkVdXfbs7cC_@iez2=qJ@VaPIxro*-7e*g$w7`B{dd0{Q1?3s_Lt71TCnma}FSF ze)Y0N)I|M|(I%CZj-N1p)W}gIk8%!A`HO=wNp;f>%fW6<|BwGso>G0pIYrarz$^PK z!5xWPI~_c3EFUGyiJfv+vRvKYsq;Y_Z!)me$ooIVSNET_Y5Ybh-<Za)8tvFwlg8gD zvDz#9)lz;_ntbC3$Ij+7etw?A-;&0!9q#bk)A+@506Nn6XUcjz)A(^&@18V%o8<3H z<5$Xh!;|8o0jghxvfg+ae}$|!H;vzTxYPdpG=7J)KPHWzFZtzZ{Bg40$~1n1thXkO z-y!R*P2)F8`weOQxa7B{@yEz|H>UA-9_jRJQyRZqUXM1X@h_9@+>*w>Uh;RR@jIpc zjx>IuwBMP=|DCk6CylS{hZ6^mqfg3brSZo|`|&jXCMlnr##i<eY5d2ee0duGXlZ|T z8vn0SzA}xk>^G+IKalck()gpL{nj+TF2`|w8eiGplEx28`L;CvC~1FZ8h@~qZ%^YZ z`&#LN{#WM{Um8CyvD&NSPMuG3)8xzZ<?)rqFD!8QW77D0<awq%jlbq-N4_$Rug)hm zY5c;Gj(lwzzeBdCA&tLT*4vuKzf9J<F^zw>^yj8De%ldFy_?hcjj}yk()b;+-u5(p zqpY_hjsK9Ww=<33DC^ym#&4DV-IvC1ll6ut$3=sEPP4TOWxeq<{u8p^+%$fN>{oso zUz7YXY5aCIzG?ghHNI*5R>`kP<KHIdd2JehyKHAe8eh%x^=W){9^074-ze>GO5>~Z z*yc38vfrM@-y++;JB`0V+V4o?zoN!Bjj!zcPC9VBI;8z@8vnP_epVWPx3nKm<171x zX?#tt`y|r%>!tnjG=7J)KRb=D>^G$GJEeSM8vi%a{+cwtTlTj#jj!x)PUEZd{FXHS zb<%!Y8eg5~cc$@`{mwMLI?wM(<6k4~?@QyW^SoAe;5aJ#@icx&_BS_;-zx3rr|}0! z`7vpHWq)=Wf4G#dOyf67`!#9&aZ<iEjj!ytrtuR}etjChR@&c~#;=s}o6`8o{?0Uh zuAHCkY5YoQe|H-HOliL(jj!x$ay?a@4>wEu;WWNa+K;F4+ogPd8eidGtT)I-#Ps!* zJ#vvTeLbdK^3&HjHcNi`Iz+2ltd#2+s$XrxofCd;8h?hoZ^=*NtNY8sG`@NcDNo~< zsr#igepuF<zTQ(QuNRxr<ZqJahs|mHN_l>4OXF+uI@g}YSMBLY<8RE97d|<j%0HXs z{fQc9#aH89Gu1hMGoYUOL|L1{SFUFb4JmvN8FFh(;itYwSd+p}UFvO3;pZwN*so9F ztG2RuV+!9)k>8ZU52Wxnr||ov@VBJ!Q`f!QQutguSKH1M{y@dVzCDG1SPFl43V%Qf zzaxb|G=-lf*V_#6<fFGJji>Na{hXV^=a{K2KZQ?QY8#Wnmyg_{s4#`^SHjpQQuwL< zEKlKQrpV7u;RjRrl_~sC3cn_WZ>8{SQ~2Q&enSesM+(0&g`c`^ye5SoNs(_&;oB+v z^(p*l3V&k?KbFGZl)~?o!cR1P?n|uoesN@6OI+So@9jJsg^8wTeA^wN{YNbr9oO~` zUW8w3Kp`mN8WwhS?8i2E4l!0?wXSx7rxWv#>}nHuGBKw}*Jgpo6LV^GZ4~%eVjg;3 ztpblC<`n5_6nHo>r$$$;z=sj@5bLTGxDPR>LRY!KJ&Ad!brlM15_3v)<qPa0=2Ym4 z3;YARUc)KS6&CnwVh(+mCh(`k9P+L`{|005`@|gTt`33UChkGpF7Phmp2TgyiI$_@ zio&BU$M?*Ki{b6g^I>I&_xDG|AtQagxYZhPnFCwAK9oTI2efl$V%WY!^GAuMeWCMQ zr)|eTEgFSF4Aj@B?eE}tBwD<$K@jpUq{wgG=T0<lOKko0#Dw0Scx~TGp&UIzDDQ%D zqWQV~?^D0=_#2_8tsI(YI=&Z*QDyT-^_j4D%@J{}^K5jXvjz=5?Ky8P1odyWFXlEf z+1{q(H|IjFeh3<Oe}U7uJ~N^JTd-kkfBR`&r@(+Upi#rtbrR@q_147NE6Opr-&o-+ zkd+P@2U!Tx%6$U`8c;$M%znd~(*_P^>=m=Y`Pw?w`vHy$YtHlEShHWZ>|Nk&r2ycI zmi-RpFtk7~S##e1#yS-;&qE9f)*K;h&3W-_>-2W$1#g8V>|X-j`Lz}H-YD?t+ZICy ze{GAcIbHbM^NrOb7ltc^;U4(~ZE#7qKb)2quf5_8%%Q~EU$f<jwU4rsiM2O4tx0yE z<Z^Z=PHUor;aqFoa2!izEv4Z^%lL5F*cXbdYquuG?kuu?v#rGcT3O4iaANEp>o;v> zV|SrwTd}{r=(4TWWgci1HSP0StABu(t=xZ=G;c3xE86;*%R1#9>$&~f#1{J|4uF+= z)NY($N(!F0a<>;XZPl&Z*R7r&-Rfy)Sg~T=XT>TqeAc{e)~P$JQ=hXU9+%at*yT$! zwS`N@zO~}{;^y|m)(%%f-<r^$OX%B5#<tg=k6!dHY8kJ8W6kRiI$Dh?ipHXIr@n>1 zx8brrtBygzsh*;yZ7xWi?txxP@f^>pUM$DR%{v`GNxeDbd?fvC<vxQVjPR-3U{ZtY zS=l}uZJ)ih*cwo*fkn>8;5Zn_a|tYXR;MU>E=6y2wD01M&u&ed&(3_DiIL+;2SdgI zoPqJo!a1jGt(tm?rm=e2+OQnC#M*pN99-)%`oFa4Uz)Y96Jt`+++JeczZC;*t)u@F zEeQ<Z3yGG=VGQ4Pj4Z~t$oHak*$d7H2CUU>po*KHwN80{>ldzq=SvFSY3X;LGj>~x znzm!8JSK+9^kHy(7#tr4XKT1<>}M<f-uzZ#>pw6yFJO3z#_q1qD{h&KK?%d<J@k^X zyI1vV+73EA-h)!`iae`KLO8ick#BN~y$1c@p_kbDv1`iZyC%1kwR#%*ch7GK<1E(Z zfjp}D8tq^C`P_oG)3(dwTXghZ(b381=uY;x(7N_H^cfv3^u1zTb~j2fRfE>*TR@dG zZ?kf}GjRef+WIMaTd;RxOXl_LZPRmlvV$N@^wbnREgt*kiua3~pHFsmXUW*D^~V;q zl<GU6*ZA}fTz(p#E*iUY)nLqU*N#G5ZonNcb|qkkb`)YX$r3v`yAssq6q?KKIOpR6 z9QvGBJ3MQIg6B%^;BQQyofmg~_KfVeb=lK6RZ34lUg^PKo-5%j&l;ukMc4I^RQA{2 z;G8GK<hgv8wa$gXPc(0BezWNxR$^<HEAjnXP5*GidlO%1`XR%*;xn|c>EE)W@UF*N z-6>eAo8bAZ)gKC;TlN#YOlx(A;CXfw;_8P!U}UV-?+TuGM<K3gf@fQ+cY}x0tR00o z12#VWG%v<uzpg*4sCidW^EXAqzAkBgtq4t<*y3qHk%lp^AAvz^#Z_{0%joq5Z8*9T zP0xj`VH5Whjoo_Qp5o@VVtq%+*lmfH%uDJIYni0)KsOto9=mN-v}uQHN0CRMA66MV zio}TUq$>P=`SUAh73_sW3ifwhh)c)Q(9^n>@ggG1pB8r-r*~s<r*U#OhGnhmgl;VE zG)4k9ztZ(E20|SE-SZpQ>m~o<W&8N?IDdEj?R!U}`~2Q=RPP@|`Dm6ud64qQeiY>c zS$@+&%KfMn_A^<2(Lu`j`3uUw!`Y<kwDj_#Sw%BTn}05<m^lMC6TEWpLWm0t58AS| zw>Z}sbuBGz{;F(ke9Gk?TI*KAF_7lj%sS<Z$t@%9KsC6Pc&DtT+*8)#$;AzWmHSay z^IxspmscI7=BJgr6<3M@IOezFJTe={{HKYrZ>`)@Hg*SKM}1bJ`G-W)4i5}n{5pgs ze`ROEez2yr6d(Q*3>Q7YVY70-vvU8oY8vl5aPj%3$O_wIXdTB3juVr0z&=jYFQ5*X z-@3AM%GeJ;?5WQ!x%?gLvggr>vgTchVW{&<PbtoYtoI=plX5F@Qak<I(zVy~T#Pat zd84d#zr!Rc*bg_H++sW3W?z41V~XYRJGmvZr)*OXw$EwLHk{|!m={E2K0`<KQoRdc zUt;Wg_5EQn(fq>2+o33nz)m#3MuC;@qa{C~CA?37AX;*)wXQc>a&k-NMpRvF<vyEe z-XZHpTj5D--P`aJ9fPYwE-q#B-Ymea&8fRE*)QXG9nw!6gVLr>w0HLIvazqOydSl{ z`%SSm?ZpynBro;Wl^<ga&>r6FqPEiJJt*#Ba@f~hi6ZHs(ZWG&9R6Q5k!{I>b4H;p z?^(G!(U^Cne|jdGgnwRl{PV&}>7P#6osD~z_v(8~2R#m-K=-rv*r~2*IQSrP`ZKUS zt<4(QW?gxMXj%&=FIrg37H<8(<#^~-aj6;h9&D{TxfSEmAD5|o?EP#K{$4?w-h$<w zvRz^4`gAJVg*%MdqFr5{g#J%}uEf}X)ejKOYQOj)DkYjk8Tjx7C070euKT=n?d1(< z2I|g5GsP{(7pUvmZ>(wU*2rDfl@rlqG{Soi9yK7`2w|%N_4PpY&%}8RDVkSwTG8p- zQ;#<1_!CD3jx`()T~mI>wIKKBu2;qWZ(SugIk0}z^DJC*K^V5_4;a?E&Vc7IDjc`6 zoG@5Rb22-x{6@GlEI46sK6^=&Wa0P192>v&LUs{kPls&j+CTAJ0q5?7ZJrO%jiosd z4-4_I5D!DV>lHN0nTM#UpHuC@%o^QhQ%zC>%{rK6i|4@RZCywGgy)N$U$a~7UH7r? zY0nqD5s%~Ptzd6g6~tO+kYRz5X#TNaZ|4;763y?C`2z-G?o${Qt?L*Xbe=a@(uor2 z52QYEyMucW&*a7B<r#_Q*Tu8heP8Y0U$7U~v+#}*d`X~bg^%bvcu5h@#LatfXOMQk z$S1m9&`PX5eoszZh;>~7EbA|-Slo2{#G!G`jRz}H&#HbqbXwd(^So0*voTlX^{!xV zY4cB=Ltp@nFrnKAx_bQ>(Xq1TPdWoAYTj1RcKNRQohbfsNE}aZPs!HqaMRvqT^Mxk zTbyn<mAP5vXIG~_zcu}!*B{yRgR8zj44R8u)qNZ;K>xth=o+zyT`ANSH+dUTm7Z2E zoaTc}LEGYH?|evzwS(^KDXe;+qrt;J!sb!9x_9pWa{qqOpn_c(yQjQp6qIwI+<6~O z?ONO%wSnetU)&1)Ow5Vo^;g>Y&VZd(*byd#v8U)%*y$JyJJqlQ+n6EmK#0_?r|6ow zFufH51-rV&L*$V5AEf<!soGYsYp&3S^~<2#Wk6Mp?@Tc=rOhuFRg^ZrF|*(c(L&CO z*Z!Ft#A;~i^%44}xzjl_B*z<#>pU7YVZ7ff!Z@;-g@4kEc6f3?X`j8o3771D5$=X~ z2XH`joqI)9D|^mu?o6I`ocT}d>rsk*QS)=1$D^X6vCpl1bFQeunH;LBZsqR!(vQdg zgn4|`!g)B}9zeC?c;mAz@U05-G!J|=aoX{h2VU~{WB32l@s~b7FvoP5@2da8nYUts zo(F*AGciyepPz`rM%tfI@D4=6IFfW6z1m6})F*>T@!<QJRDA&B7H-}>m-CpXi?SSF zqS?;rY=jw%+CLI&$ysaXJcQd?&O+y?{tOo+Exmnm{?_51y0iUrIe!b<3ie`dU4z;> z?}1TP@?Pgawz}o`Qz&`|L?7qTi-M;-*kc}_3h{znofl9H6a0Bhah%vt66{4o3nYIp zX7A$WqlSX_6ijJdr6@?=PaL9spW~qH%txiP%=s@G_|;*U{3g|t^YIY+Td2S1vjdJ# zR*qiY3?rS-O4EBgk4xzpD~Vo(a&+tWNr~PL^%%R)Bhl%8a1I-D5y}oYKGNI6@h@nT zj`99`AnGoqy_Vx&b;FxDAiGM@%%neN3iGL#1e3ksC4m#-UKr5pai@v{nHPgr9I$Lp z_ca0&c5d^Y<n!=Maau~X_xPtN_LipGLmix^+RD%6so<BE59sf~&j%l)j?3E)bv{^w zQj9Cl2YKk+|Eco<o{!}7$vO;i*OM@HKzs05a>?gg;E_bj(wzK6^CyXxc{#P6)vU6m zo(InRiRLdmj}kaK8#WTnU7Xa%L8o&a*pD^+z3+rX%Y`{u0XwP`0?j+WUzFo1XxsW} z&*s+>&2M*hcEQ*s&#)Hptlm8v7q@b}6PNF=pNi$knry6GV~NJQToKC@F;fvE6!Bv} zDg3q~z7j-18wYzkCd~5~=+1tqdkb#E_J7tXuCK6uE94Su@&A~v{wS4gpb{GR%P(gS z_~16>1Ks4uya#^!3me>iy8EkLQx=rVXqI-l4;O0M55+<t`9qxg*Z4G_t<@h|esNM1 zgjq6u`t+&O;}d31pI&luMf}+KjEbq{@hK%mGiFXNi65jK-z1MOE143XF|}+~NpV~n z`&Ie$l8L3WFFLk-d}&_Elw+m6`7l3!Qb~pOtMVyD6O_!arcCAM#3vU`DJi&U<dmti zPDc5m^=Clej2DgPm$JWX@A&COCzZsfPMnCwo>Ej=k^Yr&U4bUP@jkC=N&S*#XJ`wZ zZ-wiZ*G|F5vMX0qYb7gIEMFnMNyeAJ__$ZAt69DRzx7r1E9>yN@|5N09w;*dGU*M* zhtYYWDf8Lf1^mJp)+S6T{vRai7$qs3R9rHvbVA8R$D-0a(ch8q_5`hH0oqfyuxgpK zD1FYC5Io~|Z+lMs?Ty?XJJFm`Q8c|Go|rnNBu*P8#TZV_<RpuiPn}U(!H>92={rzm zrBhInD4mpmt0zqriU)igEk2m1IehMW_L6#NFTe-JXJHTKgz}1sWkr*;v+GxsFRfZw zy@=EdxLBBQoN%b|7fQ?P@FjPh_ABLp@);w?&zy0p#!i>dm_GwwgD1=2obEz^154T2 zyrP*EQ}aY)`6ah-g;tApgTlgz@>dvl_=T04=4<4o#n}!$Piar}Q~Mw0b6(Nx(it-< zWG#obH*!Y#lu7@S9oC2G^B>z)UUG7A87q`04*5;_;PdkapPe^&QG9UX*uhhd9XvxD zTsLy?(v^-q`7wEXNnQNpnPp|i#m`^9GJf{Ty88Ii<yDK~Rq^8S#qq^UmR93uMP2<! z*^K}6rMjj*QrG*sk7G<4Ka1P>!T$XlLHj=1zrO=FXSpBm-_Q8Beb{$kzom2k{(acz z;$k$$1&j-HIrh7;=bOZR*f(OIg*%V+*pI<}GxoEw-${%IxiGKh*ymzD8~Z}+*I-|X z{d(*hu-}AzEB2k(Z^7P&$JTc8u@8HIzlA>b3G5TtZ^E8$Dm$@XgZ=F9P#^X?vCqPV zX*c%y*mq)|z<wY0mDv0CqCV`iuy4ga7yC`v*I?g{{Tl2$vEPI}g9&|D<jci=6ZQ%0 zJF({*(1v}e7yB*PZ^Yh*g~{F6*I*xpA9rKVd+UAJH(=j@g~?6WcVfR2du~|46`Ov+ zbWLvv>wPl~Un_i_18zV3#ovdofVEI~Vkm2}6*$k=sGZp7xZy|U97aXz7vpdChx_+G zONQLYpNGFN#`Hnz%WWL?_4wO@u@!HD6QS^G*VIr}liS^2H$&kGAzvckdJa@k$X6Oz z?yx4}iC%29`!N1GF()obu}l6-_^ZSn0^ThpH}XHkU(G@IKY?F+5WWq&4F}<m0KYMf z&%PIf&wHj055V|Pc%5r}D67R?5{h5tDGKGT_7;Wmn=*<+<?i)vGn79elv@;vLj<DZ zL%t%>HMa9A*oor-3{y6_k$*e*S>UIBSHQ9PGx%Zfhf%sH6mD{z9>Vjp*r>-?HQGzn zBmdij*vkPQftJGFC|ZEM)h-NqlY3GqK0lN-K@5l(@6nLUg<an0X~m&%Icnv&mVwV_ z;_Jvq=dN;<hO$<>i$n1y&nado3ntOuNdecSBsgGPuYx|G*=JGTg$k#KeC+4#;B!sj z1oBJS&-(4Eqbz?0<@->6I?JcA{Ne-3KScQ$Jd%%1mY<R=XS+Q(#%H5^A<NP37T4rZ z)>UlxY7Yjh$vY{OkM`$I2*r!ks7;a+vJ5K4&|kyV0;#{wRh%6EVvhd=j{g+LLUP;_ zfm1`dvr;AkwS|AL<2eWR(Cp;Kal04%jR)aB1OEDh@ZSZ$75ra}Klp5KIzJQhw=s>+ zd65Ht1Ni@GUX($O^>Iwp#&$D6ne9uRFSL6h`0USV6c+P$Vko}AIpB+>f5rGiZa3s^ zpqv<A*Ge^jV*F7)8_Qne(?L<*J-#ge5akUhZ|c^sQu=J42j|*Ol#5RTD?(u&MWey* z2YwjWf>P><;{o$o91o{r0y_u9_`tMK7LI`lazawC0(!a76PNfy>dieskMrm%=#@k7 zf7d*E7xrplFZFyl0`+_gegpXRpq+kUTC-p6x@)oO7|XEHe>u3O?1cPTWT3CE8KydI zIp=?rXW<%&m+Hxlew_z?{BQgB4<UDYC_F<Qv`MM|694tUe?9PD5B%2y|MkHCJ04K+ zy(*qp#qX-tRPln2O~vQpRzkdi5lsB3xH=V=tKx7~+^v#Rdlh%9u!@gU@wF<RwsN?V zIB>7xXBAh)&8j%r4ymW&V3nNOt2kJNRs5@pcWspV@k7+F;#rlxiepuAt13=a#cSYE zLwx_uJ^$3E;<{8ks*2l6)uXSurRu4;Qx#{b;!0EXaC;-RR6P}Eq~b?a98szsZdZPx zr{af3PmeogM>#U7dVG}Ty?SbWD*jW&d#d=(R6X^qma6Ai@BUTuFJ2lKO!h5RUd=xh z$Eo5rRh(wGC5KXRnu@RHU!h#VQSp~5-cre_y^6O~SjAbYxXMOlCr?QnxL0wLimT!! zReYq1hg9*8N>1%n{G-Au?y*CyK*_y|V^nf#ui_XLR`H7}UQxv-rjFCW=98MgDh}~r z^Y>u$NyQtg_(By=m|7p_6UR7poK+m5iW^jMf~k53oli2}NyP)I_`g&=zjQ`weJbux z#rdhYzEnN)AbRRJyG|Z22RqK>qul}hQ^%Q#%TsZ9sr6-|zVzcv#owuTI~8A-s)x^G z#FpAW6<4R?=v3TXs$S?IdMaK{#mA|5xKuqpSK|@;fc~jCI2HG%;@nd8xL(h5UTQm4 ze4FB_cqfR7O~tdZK5i<GP04>G7ZDWxE)9!@LQj<kq#=cwOM{!jIcb==G`J~WRY=US z;->OosWDJ_jl^02$}1<vDJJrHaZev`Q?X68vYgMM+|(TZ?%(^D6Yr4?Q^#nnJm}Q1 z$Ms-tYObCs+o$HBiiwhJJb=fAyi`l(W8?EIHy)eZRE*3P*%8IBl@+OWCgdWEI>uCe z_>@VsKVQn@y_>+QUMzPA{I*oY60X44I@SOG=2zv-OYiU_eI3qoa{s2>e=PTV<vv4B zoS57Xk^7_NexlsZlKaJSf3DoGmiynx{hf0Eh}=IX_ixI5dOO2|9ZoV{G{?az9yA&M znXV{t+wemaNcM^~{RO4sLRB27n*S>PQysr5&XV(tb6UlFN^`&1RjTXiFG?JSs$a!{ zs<=;e{Hu7+^!j<8WBtka&O_K&ah@u!b0IPeEvrTj!3h(Njprhh;IR1Ukz+<486TBj zFgky1K|wrsdiA1sqN?8E=Zzhvam~v)uH;eaxJ(Nt8+l;mj{LirL5{rg(dy($;$ZR* zL(P#_eacWbum_6E_Pm65^p3ph<8^6r3XTKe(!Q9Z<W=srOQnE%b{V1+()OI1F72fS zN<Xbw+l`(&P4(#?qDgwT8m)sk%H{EVk7AdeVL{Z*)SRxPC$a|JmqE^GOg+~zv&nIJ z>jB&sf$bV|rr;PaQRYINu3cm2gX5lpGpFm=D?oZYUZlj*++1#T9d{#tJ;qNsKe~LL za-0Ue;@;ooGyVvb43BHseux-*@uL~{VQ6$?9xF03Vcc!pgC2Q|LHP9=Yao(g90A%e zE`_qss0YVyya-7X=DjyzCcyCbsLcHd#N4G>=$F^W>~TI;GYo`ZGjFD{`=s$efeX+i zciCMigpqNul<S_x@00^;(H8e~Q4p9#V>33;OlIx5=v>8Zpu>TMP;$=<g3bzbVs5%; z(P8nxd#J#D3hBeN;Pn7rA8m$w<`Q@^?4J7<pulKK&7+hSxCB4$(}cSNOK9nI*6h>F zkI<wn_kuWhnF}=cLLr{HP;)O5!kNo7cQq+bW|ih%Oe!ODvF1L5l+Q6$LsMbR+<>~X z+)G!&RDdsO+-Flr3!Ft4EF<j-@H-~=a?+l_%WPjQ>5RbnXt4Vn(!R{<26$iv{RyM| zRzK`Mmmf|BZl}U|6w(4ObILT3b~znApR~v6=mn%RoYwtHc66UGbn%x-LyeB1li0dT z97Do0mr8|4QCrx(dJOcOny;7$t6Jb~*1U$a9^m^?cQa|1Q}dOi-A>JGrJ=o|=3ifu zG}KBVEl|puuXYUGM*13ID6_U|k><WO#n5%q(4Elox!3=ehOWVn`$iUEUfnAO@#cTB z;Byw-;`EIHuI`Oa-*{lTZzb)?T#B*0jbw(?>fe)=qj@`RhBd1NEy{Iox)@V4d@t?X zEebfd-GAUj4|6uV@8K*DbK1G@<r~N_CzSg>PQWlHg!_-2T44^O`+iQ1FbBfDnFAW8 zi`@@!NW$!!`$76BOn<o_qTj>pnEPRNSTi~LW89B!MuP%uoO=uVs|EOxt@|<dAU80H z2h!trfzC%~S^bmjfcpeUdU`wu((8K(zrnL%*sNz2-d=mb2z-rOJ#Q9CEx@=jZ*S5* z$iIfYo1)%6B+Y-LzASJ55wIZUf_K1ALhBM*h+hHSu;!+acc1|ooC1AtpVwCm&|@@; z%@#Dwm(hC}ExZOtW%OAGHV#r$lF^s6M{`psqaVLq>v<CR?UvDJXcR&%07hSuTA> zF!~(>`uNPMx-&E*dlKly0csij&w<EgfpMt77(jY;;AHaSQ$Vi?tfB5e(pP5I*HvrA zVWh7L#L;qN5WU<Qn8mtssJk;zL*2oYc_DBfM$8yO`lY}{kTix;zCE%EZ8mbB0PWKw zeku>6o5Ffz2DOJD2aQ}kayP3uoM4z92~lhW>lm&_zM+9Uf)RS8nk6F%M(UB@6C6R1 zuSbq$+w%!V>5&r&3J6B)k%g>h6v5GYWG1_QB<mTYM;>6CM-z<IBV%dpD1u}4$P^5Z zaWuhkx?NRQs~N}4gBuHVyS8?jW{f!lAfZQ!S<l!N0Ofk*b4VM<UIZ{(kE~~<$E^XV z)FVf*3*)W@sDTbkj_1j|77b;|2{)spL6026=A3vpK%*WBv!sx%UZY3&p4KR0bFS1Q zO)MGDS+iERS1wwt853A?l^$updo-h%bEs91tYJMR9EA0{eQwoK&6s#0#M<=;-*y|5 z2;R^m7qZd>=gV$A@*@YXl$E+%kyZ}LWE$|fA~&(8CsC}>6?v2`C?i<niqx`X$}<4# zU6J(!C)2=2SA<tWV=AY_ZLY|*G+oY;+g%YaE1gEun_Ll-U^+pED`FAMAjon@Y=R1c za(9FQPR2}vHSS1%f>{J@?#Lj5Qwa9CBWJME*#!BXNG?lGC8+U4@(AV-Z1hA%5zHmn z?TPSn5Mv%e*c%zglG6wh-bfL_=>(15$V7tq1Y5k3lL#sa_IM-wrpTxw$jyk%Bv?RD znGu;ou#jMVMue$>jYS0Q8IeT<)dW7nuF{OfoDzkGy+AY0Aek`ig_==AvfQv2X~q(g zvke=^<(VWa4I5*B7RegJ#*x01WUXP>XvWzj8w`7iW-KGwXxL|J#&VKt4Erq2s3qBI z*q9dQkX&!rXKTg^k{b;hQ@oDkCc|E?8TBML8#a!Dl_a+q_BonyF3C2-UZEN1k=$w6 zb(+yYvfZ%jHRF7eyA6A#W?VqB1MRIxM}Ngh&`E%<UP$mM0XlmT!RG|%?ka+R5}?Bu z6YL>Cmm3MbCP1ezA^4U6-M*AyF9AB<M6izlUB8Ur2Lg2da)O@-(EZf}|0aL~t{~8S z0C2$?0v7?C&`jVVfE%tP$RL0t))M##;EJmVOaeHgg&>mv?pQ|<B7j4FO%V3k%a+3- ztvtQk1aQdJ1X%=d$TbB02;h)w3E~8B$aMrc1aQdp1i1uo$ZrTn5Wpcf5abiUA?pc7 z6Tl%i5{w~$Lw-vzjsOn%9YG-h9I}C+m;esBi6B7$huln1MgWK0LQqZshioLMAb>+| zC74YBhulUmj{pw&JwYV_9CACsB7kZ*<PL%w0yyMOf~5p-$Xx`r1aQbEf_eft<Zgln z0yyLk1Q!y(A@>k862Kw%5?n?AhulZ7h5!!vBf(V!aLD}xtpsq$W`gSo;E)Fh))T-X z4-#x3fI}W4*hm0}JWOyq0UYutf=vW)$Rh;z62Kvk5^N@bL$(k+OaO;GMzF;f`H<(@ z$9bA)^F_J{o*>xgi~N(|&jk7Y$R>g(32OY2eFRStZ1hKdCU}})w?E?IIlYY_Y(@-% ztpo`(l1Z?QpwW!<AlOc@#f-!Vo*~#{M*0#wOOP9g{Dr2UBd82S2D4-b!TLaCIKfVW z_CVwag69c*nUVLX^8!I(W@Ic&UL<J9jGRF562a!o2%`s$mkByEBNGT-A&3Vft8pqZ zUgZg8b}+(Z?nXO7WiZ084~^FdYJ!pL33d_G1|z>Ec%7gj7`cVu4T8pCg!iY$UkKI& zBX<+LNzfXM{E^_V1nYy5hX{5PYz#&i6lT0duqhaMlHhHE&B4evf_DhE1S1SYH{K;^ z3r1cd_#45_U}O%#-wE1-k-rnXN3c5>`GBB<pd%PzmIvb>1f9Xi7X<GU><LD`CisA0 zUodhLFZ3T0Xrah$1RoLjLXo=&J|+l<B6V<|@d-gzDDognItk*T$fE>Z1i7Kep9wxC z$PY!f5`0E5CKP#&;B$h)P^5v@z92}1BJZ%|p9JNhNC&}}1hYetbrjn}P#KDR!IG~C zYC@5(3BD$%4Mo;d>>GlHP~>}-d`r+6iu^?I9l@GVMCaVuOVApMWDtB$us#$C5bPt^ z7>eA)E9<{_hTQ~*5d1*!2RMY_M}m7pk$VY#BKTt{axLrmnP77$@(4@*P4HkS@&v(t zf`>!VHUdp2dL$HmmPi+9ODOsRkxQV*L(x}>+yebM6n%rpBhXW!=vzcyf!adRzY}E$ zv@I0<fXEQ&nNajS-iP`GdM*^*!!o}>J3~<}$Q!0WFNC5$5CsH!DHP=wfJUZ3uY{r= z-aZBeY7a%H(`HEL`Q?pJ^b{gXpxvQpe-1=gpm#&jmAsqlAy7vsx{Q)N1^O@)ts{yE z)ESC45ZMBK9*Rz*m8d{_LeXZH#RU2`6kSKuOQ3zB=(R*y0{s+<t|#g(kY+`1BI+ZM z$BN!Y)K?&%6}^k7pFo*bl%EM2*#d>F=n|s-0@+q{8PNcNvaIM9>cs`>XGNbR8YocQ zif$u1OrRVq`Z|3!NT6IRx|=9Rpb=K|Z$yIy%D1BL6Ack)v=!x2pD|RRF;?^wqFjN- zS<$bEh6z+?MQ<b;E>N)*-A{D5KnW{qvDG64Dzl<CQJz5MR<t+KNP#M>=quDaLZI1J zbO-y8FVH+IdORfy1gf;6Oj2Tu5@?YX<tLZMkpk6N(Nj3mqXk-OMduM6B~Yyuts**F zpn5C1nCKXR8m#D_Fo}#Y0$pfD`HI9CD^Q~qeVk>-3UrwjUCy%O1X^Q7pJv%Ofv&Qm z&k!9iP^%Svp6CRDuCt;SQtw28)}yy9D->u0#)zm$pp6(KqVWRVjxi#dAkZd^5mB)~ z_hM9tN(9=Bmhs#%QJ{x0Ml72o&=xCtGiy%>^k*x|Pv(tMf!eI-CYDVW=ou?|E&Xzm zKs&AIV=OBZ=p{>w@nMaROTF#`G0wq!EEhP}!KWzPPYce4y4Oce@LC+nUf%+e_n-=| z?`)FwIMaE34J7%b>Gd^{<a4Iiw~k~~kT;Utf|2(6ZU>pg1+=F?^yUwk=L_BY0s3%3 z!I+|x<Nh<0eUX2F?e%?v-@a}e^U5D1r(Z2D#=8Fs=xcJ3_gT`|^bNm4Vz_LsT<U(3 z`po__u_Bh|6l?t#X?iBX5d8Ho)AS%gnE(Zv9wNG2pd&TiBDx2E1B%dBJxn-YJ5Bc> ziI%;<*6>SFJ%_Dnm#tAT1Nw%e@v6;fO^(x=_y}}EA3}Y7!NC3mLn-tj7y}0r<`VKY zVBmb#I*g*rFaq(Vgu{jA;&_DMa8|0%9@qkp=_9Deug&`}(eyl)EP+1<97Dm8)EdBd zaQYD>(RA+m6;N>^Wn1I;!6w2Qu-7+)vQ*P2I!zy#NmB_{!<FfQhq2!$5jGLNN5`DZ z;r$s_2i{C0QwfiR+&~XY%Ly+g{43!!Lel`8N#Pl6#|lExxeCHJ31_pFvsls5a1gt9 zD$Dp<bYL3<^f`nLd@I`TbxctGHc>o?GMc6WE%XgF=+R+fYTU*iy$J=!kGE4^pXO9_ z2P?`7Iu+f;lBps53|e47roVdS6#<KzzTuCsn)CY{2j1IP(+2A^{q7F&y*WVzR-EL# zfR&T!w8G6&yxYpRw6Z<j%Gaq@)a-(lLG;M)+J9l?SiI29`5@hj^X<EAiyCNHd6vF< zaL+HSG}4NDa9WSdBOQj*Bk5cmNZFWWdZDh~6?S)N2h9vhHxo%UlP^m#aEH^(qja}o zc6gi$^$p|URcGKH<-nb1Vc`G5;dqQ=)kXLvg!L!H(DeYk532f;gxNNrn2b+zy76@6 zOvX0CR|&=J+s3NBu<p#h?SxAJIo+Nmc$r|OrawpUHY^Vnb8iQsHt=U28#{SW?Z-$C z)Hp!T6F!EI0R~>m*1bS@4Z1S$Cc+m9Yw>z(AdhbSCBiPk`#42jCj4hM;3X`5h43$! zMgvc$?yH3518}!IaTq9Ue3jfsOunj&tN(oQUQeDjY(+}hu;){OZ+N$sHk?V8^!}Z2 z1?FveToes278BKB?pDm+?AGrbX1iiOA*PYT+$oudN1R#VaN8tz#8@1^zP|Jr+uQpD znCtx}>ecf8i8h#6Dgg=Dn?JZW#0M1~?F=|TzT0E66mID+H9tgc@<p3_8)RJKU&NCy z#pFvjmrK09lP~JLzAD(sSd1U}Hc-9-RIlxv^>O(YP`+hzKY%lV`>JLrxv#;jbGMK* zd|n^z_y(bLw`cDWXs`cFoSZ!0SAebgOYnlu^V24Z_}2tM|4cgU--VWX{!Kc|e-35# zla8B9VaKEC1i9us8qx*GH}62D9+v=P%%fT27NF3)lloo(66R4foFPED`7*@}0cM*` z1b&?^tu&9LwSay$K#h40b%HuuTx*uGq=x|YW-m4;qPL=?!DO;fPcMB6K%;p)JCmjV z3gA-Hpy}Rv9jrB(ds&jLHvz0M`_jM={dW*+HT$sS2>nig_2xi=d;vC^xda6QY%-4^ z7$v}F^Js!2b>6~kF-NnfM~SwznH$)gWAtX!^Nbeg%O?EJcPu2bJh!rw{;$}r+em8u z$!y2(*<GK1GZ>z`*xN8JhDU?v_5BeDZxPXcz~Dp><Z?I#_eRByXyP@m_qcip$XCiC zk9XN#2v~cmWr<h1mUyLWWnz}QE%8d%60dZvH4w?L#4BCvQcQWDMN585z0x(lMn^E` z)}tft>G;W*VPS@QeNp^|edJyRiHwTD#CO6w?z_>qjM;3WdlrjMrA7Az<jxi3PMVol zLGF(v=T||u$FK0ylh0;71;yf?eBXn*`0<q2Clr1|GnIU|7vVkHX8ffnQQlE<-^r@0 zo&clAiw6j4?hXt@#sU_(-(md=1=)iNi}-S|$M;lVD>V1>=uyUE7tVAU27Y|RV=|Ur z1={~I+p=sf#58|D(#uDK^!Y0>6EbSa5BqPX)pJN^`T71U0|D<iu>8-Ht|Oh}-%6SK zqflS2|6`oNGFGx{Bm4&I#>;M8hy3-lc^>J}@Ff+_xPgt@z(x@lX8g*J(e;m~;6+ZO zu3#mrc=PM?pTVA9+!u7%A0xkUAm}XrSL9zZ6m;A_hx|+PK<D~DV27G`!<6s8o(;Kd zI2tuZbAL~v8XI+G@Eq(T&dOLbi<N&$!7H80=aF7}0u1>4!&%8yY<<{YMt%!vTXVOw zU`ZA2kgUwOnyvMJNSSLXqxo+leI0H3{DUceeKADB{&VPr-%uvYuB+2BZkP;q+~3M} zuO~a#e=F%5NssXFp<{nbGx`3DX!3XDk8%38fqfh2zn&&<Du<my$1gY2FA2vlx6m); z{zf)oBXwtEPV)Vq*LQ{Z<y`doIN7|uH^uK*Xk^f|*T)It^>Jc(eH<sR?;oJWlY|kg zf}GcP27aTl8{kg8f)hZ$1B_nR2+ZT6*H>t^ULm+o3zE~l*C%MSULlVZ9)(%wQ)Q0+ zVN!igxB48R-h=9MD$of>eU4DidKi7v7wXwK4><KM>{eXZt+=pTaiOF50NXHLpOsV` z->o>lTXB51;&?}K1V%_7qyIXoIHp^1Ot<2gZpAS|G4?%%Qy(YX^iooJT(|N#p)A}q zjv7us1*yf}W^+dgWxr4LbyT<VsBYy^-O7U0diTcxrU%t!A7?qS=^IAFQXeryL8|LB zwcg`d&s-G(06i&sBSia(ft|}r@50?vU!ggdnjL`sju`F;ACCKuY<;Ht8+~TBUZLk_ z>s5ho^Ptad&xyD{`H5qh$d~fNoDw_?42OrDN)oK3cU)DHU?mNJ{U@YUg3oeTk*f~B z2dSsusVTB44J!C$gNB%B&~cSgzPs1IPB!Q`Ht2z5gN|c^J_YQz{NR<SUaO=V=#9yV zW7qzol5dlh*sNsGK-FuTmCOU|ck%yRi6%C>cEDq-<TTEcMyVqog5chzrgHCTtmyh= zMW?Z%R|v)IJB<^_I1Er6r~=Laj9)8FPD~qNbk5)u+u0@s@a!TseZzyObKvumT?xH@ zZ%J^5W5n-{Pm4?O!)nlu4q1MkWa=9h;N&o<0Y$f<5rg>leCQw$>p(P<xDiB74*rfm z+|g0hAFdRiMyXKTM}qSG2TKd5fYAE)k(%sT0$Q9_7dq2QiyxIz*j-S7r>c8kNrm6c zO19UHbJ8HbVsB+7+dzCx;$;vOLqIT5!y_PAv-SzwNa3uZQg|AOAr#hy<duN&ow5n5 zl+!lK2SGUW_VlvGWZ6)jP*r@-3CRXlp@F%3Si_9mAGxc@&A=H+pO(w_M*8$&pG%YZ zQe`-$hErxZC5BU1(+=lZH$K9VIbDkC8y=$dVKg)&m!GS_`ib04%bm>K^bxc=oF&7_ zA5QLY%EKa0$BokB*rY`-&KJ321z|?+*^q!mCbfXYChn$>sD$WnmJBC<IJv_qk0IiD zx=mVKNDelA!+o$g=oS=h9}40RAP&m~@h1>-N$}zHaS%D;feI>^XJWgSO`*K!8@=L| zT*~RE<x)?dmrH~CjJTQS$jZaSIX}711vCDhY{?DIILcEOrxGs-`BHJQqmOnjz~MaT zT@>{m2I3PC>qvYJVh4$zL5#xzGq@EhlOUW+8PPUT_5jL+^rs|fXb^_Be~ql@0W@P2 zw4Af37O#{1=aS7sn<pQ#J9)!-)CVs`-F~+U1IugTDJbGFRg72OAA?}_a+oTBEAJ!B z6uqy*RMA;^6|_0PVXDxpyf0{Tu)|bwRe9&o<}inuKRqs-mdRUQFHDFh5U-Z^a{xk% z`+(zjC%=&X4(2j>mve-Y#FO(vnmeahNUB)9i~)doV_AFs>7qnM;W;I5u;jc3QKI7O zoRSjOdjX$w{caUGCrUDT|9cnsqJ?fPZx-vl_|HOe<3y($88-lC@@DllC5d+UY4e_s zg=C|W+zL4IGnDu?@!@Rbb0)~UNglC~@_!PyxyiHa5kIrZFU`UcjHR_{PIdWLVk9zN z;)Hb`O$y<go_X|W!MnITWxUKQ3QynN#oDMlU_RsT`Q<Q}@wWyR@&~tttntX%FzMG8 z;FotoobWxxU3S66XmG}TG|1`a803?LR`41;k+G{DBqyLK(MI=V(_SOfVQ6*)GhFL~ zI^?>>1*{cY`p4J((Z~O;Yy5Xz0|&(a_t!N-o{S#9#!+J3%-L?O?}2v#)*1L+W&In! zy2YF>F6&kNx~*bxJl2Dtz1Fil+^iws7}nR&^;r|}m7(9N0&QAH;5T3`$8V;!5;8&S z8~lc>+wp5zr$aJq9f98-)<>|@)7lAs#JV59wsjY@qMCauKt>*yZ?IOFvi1@_0p%WJ zBGXh_PeNO>8X>A%m*CgsEX^1*cA?bk<LlWT$)y>iqLVneG-Grx%^1$o%vP8%=J2E- zR%wjxRT`svmByIQMWUXi_=&I)5kc{66qyPhs^xp&lvNs|vJ!lo?`KyXs6=^3NvzTs zRn1`Zyzu}bO{~%w3s@vpX^e$}?1A}bEP9*@&r*S{a8_xI#qFRo{(>K8mBv^)2d6c$ zN@Jv~(ikbLG)BrQjghiSW2CIo7%8hXMm@jHc2;SOmF$|cN@Jv~(io|$G{za#XhX)C zJim%n8sk@gWuv%CW2CIo7^^<O`PEsaF)rqZP0lKf(fB23XO+gd<U7#LDvfa|Zz7#l z8l#Dsc%4-m<FYT%K)Fg|)V$BiKVju!mBv_;11+&iW2CIo7;E{tle0==q^!~ysjD=` zk|Ut&tkM`)v$bNC#z<MEF;Z4(jO%;Crn5?8IIA>KtkM`aWP$Ch(ikbLG)BrQjghiS zW2CIo7#r9(XO+gdsXy#Et2D;V^oz4fW86Z&IIA>9a+M|r1LgJ26u+E{ULPkL-U5qX ze)yF^(_SAZjMvAB<@Ir#yuSNEi&Yw5j2~{{AC1Cqtk)<Wdy6;$^g1xI#KZg|9v4~S zL4J|oiU+_&obFlT;ZKmT!2`1Q$v6?{P5OgL^`>t1CZXPg_cBd9#2ob|aiH~X$C*Gs zU;iwrcz(Cy`Q3`=cPpOnD0WcsOg#sy2Tp^}>{dLpTk*_p#WNj6u}X7_ep*uTly1dS zx)o39Ry;*0_FBgp&l7I?ZBqHXZsqfYvT)OR)NuMKNUfJx;+Zd$|C&^u->p2qTX}xB zvLLlyVu@#(P_}W;<@9%2xAL@Z<!Rl@g4FsrOFZfh2<Kw4=^OYVy|Yjgq&k*(`iRAj zIh)1Z9Z$qc^gN1+Suux|>N6d^IYO^O>*MF>uW0*)-u+3v6{&hFl->uNco()yJzfX6 z=^JdE7yF6&E~MVP!vV!iypWpL17^P`mC8_ce`iUlKbLy?r!Oh>naW{X(D92(&QDgd zfR((GtYiTzF-D-0FaMV-aaM5l{GyV-Co8d8Ng=E{J+WEI`K)CB|7s-zUZ=Y*;xy1k z3QuXHoE=;?3wPX(%PwL?4<;+Rh!uTCC}!qGoF6%;vY$AJ1*`>(N2JL!(j1C)zz5I? zy{b?O;8m*F^bId2>#Sm(f2LJ2OjWG&JHj48s`5}833aE=DmLK^!0dU_<Rwm>e)sI7 zq;YLv4|dkAS4t7JaHDVFUH@TAB>T6}%syX&Ta}rO)8f+3prg@}Mp-UW%Ar8ta2sso zOhnN}6y;0<;W`4uJP?aWoB`q)5Q8^MRrEz{LntdAqK8n%b#=`UD!I;c%;n_6lWkJx zKu_X<9^26KA>APbZg6a(J>Q}|LoP>=K4S=DGxUlfzvFJ&kUP1Xp4$e|VJsO&{xEWf zQ63g~&Q*yrjwT12zF{I9KjbMC!Q%7WRSbE9yJ<t-<8FHH9*7NN$uRPVkvoj?u*j3K zO5M>!4mN$mdRqJ*MX>0?DGU~a+)W#j#ohGWxDFF68Akpva)(hKD+@eJt7Ig{kb_O% zFeU_7=cDK}xGm>65WgWY5yYz`rh)Jk;Le~NmPL6H&~TPJg%<z{0}p{X{5<Gz+k$Dp zSEDJXg=4ksD`aVMu1y*3h~sw<F9s^fNU3D&8`{{uvr+Up>uCTncoc{x5T}#i_l~cF z7}1FK-JygNSYs2yf}qT0<WQ>}gciS3w&bs9XG$B<oI$*<sAMZMlI@s`Gh@ylP}C1H zIe!8%lSCVcbtGN{;l`0Oq7Cify2TI*W0uamWeBCkd=*j+kP><i@IZ_2J$Osd%0awH zskAYRlP%$sM9wED`jm#g1~DH~F6U<u>q+=<!VhAAM=%4!hinODocdXIDawTO6C`Np zTM&mgz`xwSf=Bq60<Z9Ji8o1pMkLA8;&UWZ9$pZ{iC?Ut<vkn5w33TXDtC*s=+xs< zn8z~D^f>F$^49f$WYl4*tSfnws4f?sR7#b+)s&QrPAXqY-cOVq<fyA;D9)PIP=~29 zoj7Y&hdWG_#w71?s*iG*t*S|b(0TnBhp7^f<c%fsc!yc5B;SUM^kRppQio*nQ6Ye~ zinXJFT-{n12gmPL@%I@&qT)>69Ui45;R~_4b<1QSsWJg&3<h*ow{BY`N>q*?r=%Zy zaK|c9(kRb5PDy|zoA?mwcdNWSPRT6r^m`r@B`V{ND9Pj##SZXA+dXpKYxBE8GG6Ko zS;nJ)nY{h~N=c%HV%_WG40s7kR!Z_85D@EL{_b@zzq9W34PCcKJUF=3RU+Sjyl&_@ zI9K`Ijnka^3b^oPyu?}NJR*kR;E1>mjN-zV@iH&OJezbEJ4;(;a%qcKr-)eE8qF0k z<L?Dr5i|bwAo={k?K9glsyArk5kAE8q~I8Ivp#-^s*U2hm~kKL;}PN%^Vv-s^%_pf zhFBNlF(OK|qj-fh#JZTn(6amDAVgdiPNz;RzaPTf(vu8ah$FK5L!JM7WBKVyl{eu3 zkyw851(W-Y9ym40FPKDFzo&E%I9?xvoJCmwXb>u_-*eIwAQ9H@DZ5Mf%n9rFOk+fX z2<!Ju7X>1$-!tPbnh|0Bo{IZGJ7N8vnT(ip!umZaVf~&1!}@7ch4p*pb^wWJcTY-K zzb7TE-*Z4%zh}YWE*v5YG*2?D-;)gM_awvmJ;|_sPfA$7r-q$SVf~(^jW8v``aLOO z{hpMteosnRzb7TE-;)y7?>Qi>-*fKsG|IqkPfA$7Cnc=klM>eNNeS!s{EDqZ{sPYW zu;*e%L^y_0!umZaVf~&<rNX1AE$mr60eX(Y6%#p%B9z;c64viY3G4Tyg!Ow42<!L! z`l_U%l(2qJN?5<=8dl&EVf~(zuzt^VvPE~YC!Y0p&=5cU@!ZG)thn8ab6b|@=6|t( zU+#EP!umZaVf~)&uzpWUSidJFtlx7$Sifh}l{j^Xuzt_otSo#pyyE!-C%Oph_uRu- zF2edf_ufyEVf~)_H~~dizvqvfS|Y69b3dns2<!K3=75T@e$N9Ok}&(`d5}I5Vf~(m z=yws;?|GOVmSO##M;SCO!uma1*k32C-;)y7?|GaJm0|s!C)oiJ*6;1{8b~Z?;5Q|# zKckn97K^a{j4YCx2<y-2O`2i-@6rIn`ZM~Fbi(>G`X56rrg+F0!03Gh<>Ne^ks8*Y zF|a2JWLUrWP|>(*KP1J6ibe~`9tbZT<GcJz+PWVnXx|lAfU5;ACB25UC$N-sGihJo zZ=|mzof+6cdM)X2-~^nNeOHmT10Rv!LOLt(1?hF9`vo2${cF<kz);Fx!xrQQjwXFA zn~;y*eusTe+#1T{1ODCv&_$7az@L(Qz@M6Yz~Ao&D2eaT+AXus?kE&m;4iZ;NhkS$ z*^l3yI>`sj?0uk}<O60(@&Pj?`GA>{e85aeK47LKA20`TE;z{t%$##jm6LqHOi4aq zrX(LQhf==XX7T|umpLAMx{Zs!W)9<EhIO0C2TYlKz`ol6kjV#ZCLb_m@&TL42TYlK zz^-PAOg>;U`G6^t57<mTV9MkJHrGtd0yc8AZZr9SDU%P_Og>=B<O4R7512CffIXJh zWby%f3NEmwOg<20@&WUhU<`NKdX&ir%rRL23EgJ$0dwpifO6gboa1=xNPyY8&5#iD zxUm40y3IvQb6hb%4Rly?JTE!5y3OPR<_S|#(xBT+K46|W2cS{6!z_`>2kd9qHko|D z=I0aUc+Q%&dX&irOqqPZX7T~Em~*IAx0!svEa4!m*P~26V9MkJHed9cGWmeb<O61c z^JTYg{|ISQCLgf*7;8?Z0iVle@&WTCiWRzSe(YeD5iD`pOg>;vS&3G!ciBunV9MkJ zHZP^7Og>;U`G6^t57<mTU{0gyO)i_s2h8aN9WL7<m_d-`wwZjutRN_N+r0^960C9C zOg>=FB4~5lg9uI`*ypyHe88MdkngdXe84=FpvGh85zHaj=&_l6z?@64+ha3C!kkAC z_S#H7V4g;h@Y+QLrxP@KZ6+Tu=M!x4+DtxRRub&-+DtxRRuSZ8*i1fPE+DAPu$g?o zTu87!!)EdUa}hy%hRx&yW;KD&h*oLlVor%dBf3B{&mfsFq6;;%hGe-BU8I>yNX|B* z)tY%G$x0)Nu|JDsjS)RVGnbOAHKH||c{a%gBf3O0myv8VqGxL6a*}I|=vkUsOS097 zVp^O-a=j5fTQgUX+-O8G#p_6JGNQ|okcH%CBZ{M7CCM#D^c>ARmt>m}U7?xhk=$uS z>ol{0WV;cq*Ua-t?lz(;HS+?J9cV9-512Cf006owlMeu(voiSr0J<xa4*;OUGWh@i zx-63q0HD*C@F@S5rqS(73HB18<1+aG0J?q|OMYMpIxmwC0HFIa`2YYMa0SIQ9{^k+ zlMevE2{QQr0Nfyx4*<XsGWh@iTp^PW0KgeC`2YaiA(IaPz#%gEK$OV`OqqND01lDK z2LRv@nS1~M4w1<R0N{}8)}fs_J^(mGCLaKRLuB#+0663Zise%b4w1<R0N@ard;kCr zk;w-D;1HR7000h=$p--75Se@c01lDK2LRv@nS1~M4w1<R0N{{Y*@D?@0URQe4*<X+ zGWh@i93qnsM45cRyn{M5&_VJ6Qzjn(fJ0>R0RT8;6UFK&28YPx0|0P{Og;brhsfju z0C0#*J^%oR$m9b6aEMGk004)`<O2Y3h)g~J0Efur0|0P{Og;brhsfju0C32|Y}@T@ z8yq5&4*<X+GWh@i9P%i|Hd71^k;w-D;1HR7z~=W~=Hom~wE1klqcfi%*yppEe8BuO zLB8K+@&WTnf*QZg<OAkY1RMP}lMk3r6YTceE}qld2*Re#cTnb5f`n=FZJfD{pwYDX ziI};aV2f$T2%aI>W7<qUU_MKb8?gUE)6Wr925crDFn18F57@&Ab`rD)Y`()XpC|BT z+V4^41%kp%o5=^v7YQ0N?Gp%IBG{a1Gx>n|GC^miJ%QjAf_Tto@&WTzo=|27Z6+Tu z+X*UzHj@vSuMyM)Z6+TucM;SEZ6+TuUngh?+DtxRzCq9!w3&Rs{0qUFpv|a5^G$-* zpv~k1=3fcc2W=)FFn1Gd4BAXSV7^7LDQGkKfcZAT=AgZe;2nZ3L7T}3%y$Xef;N*6 zn13VK8MK*v!2CNwd(dX`0rNeA-9ekl2h0wFj-but1Li*nI)nBX1n(2<3EE6PV17Wb zFK9FQfcYVT7P4<6_=vz4vYC9q{FopdvYC9q{DdGYWHb4I*+~!&*^d%*5#)w!CLb_A zCCCriTM0fR7!$IYe8BvipfF@J`GENaK_X-``GEOPg7T2vLGUHP?2ygm1Lhur%8<?E z1Lju*H6feH2h6VtYC|@Y518K&G=%K$S@JDGW5{Om0rNY8H6dH)+}TUe8nT&u!2F(I zeaL3=0dpV0#*oeA1Ex$qU^DrEDU%P_cM-_s12&Tnm@@f*&Ex~7Og>;g!V;N$z-ICR zQzjpXwGpV~12HBaFjew_7?Tf}D)~U{RU(yqAjaearb<2#dy7aVABZvefT@xX#6BQW z$p>OgK47Zk12HBaFjew_7?Tf}D)~T+&vm9sJ`iK_0aGO(i1AxtQzajWG5LV0k`Kg~ ze85!62V(s>5GwgVjL8Q~m3$z^<O8NkJ`iK_0aGO(h;h-~RLKWo(`ZE{ABZvefT@xX z#JJFIs^kMPCLb_W@`2cTB9(j~b`z0GJ`lT&NF^VL-9@C555$;!z*NZxVoQir@_`tW z511<XKx_;3RPuq?lSC@{Kx`Y4N<I){@&QvNABgem7E>i3i1DKnQzajWG5LV0k`Kg~ ze85!62V$QPspJDOCLb_W@`2cmL@N0}jL8Q~m3$y(vDGU1K#a);OqF~f#`Q&0B_D_} z`GBdC55#t`4=VXUjL8Q~m3$yJo=7Dhh%xzqsge)GPT@$a<O4A#A23z&ff$nym@4@| zjL8Q~m3$!fC!BOlm3$y}CflNt55$;!z*NZxVoW|@s^kN)r&*?w55%4!QppEm&l9QS z12HBaFjew_*efhk$p>Pu6RG3_vE4)}`9O@x2TYZGAof0yN<I+#gh(YHh%M*2LnR-G zeZ?}Bd?3c;1Exwo5M%NIQzajWan09M$p>OgK47Zk1F^?gmP|g-iw|pjT*|r+#5hf0 zK9&od>tG+Apaf1PA0S62ABd22k`MGJ=_DT*M$$<>Fq$NvGrhhONk#=ZnWU3^U?#}k zT!UB+q7Q!{I$TIq0`%qAoaPjr9Fcq=5V;0yuWvnm`-zWHGGpY(usr#pm?>gDgL{ue z&~Jb-pTY01fMqSfn9tx(cY*W;81otYnRGa?3+pz)f0ND%Fy=G3pL9HXX$Z8Y6Xa$y z<};`Zke_`A7S)3;0mfuA<}>IPpfH;;pFytxiEPGv1~UXG&t}YL&=6pDHe)`6e*G*o zu`-)6pFx}^0cx@t^BD~4SD@0`Y{q;Bdk9dU&6v+%L}$jvhHS=s27BpeLaZ_Scy=aB zACHntvkjW=t)B;LP1%h33})+B0IbR8i_PE=o&TCxYc^v(gGcD%T9rMJAYXuu*^K!N z76`B@n=zlkQ37nvX3S^sNIe6Wv@O|;`3xQ<+SZoMn9txbdJF1#M(fX*&*1M&5%U?m zm7NSQ<}-L3NiD#b&*1ObU0+}`7{R;PTgH4I3!c~aAcj;-M>bnbKXN&of_szVMzjIf zVs$~Eq+Uf}9ZPKbh7TYU-(KLrWeoRb0)R5SFyuCn2>{w<DZU8c%YQw<Mkr>zkOOx^ zHk1d61O)+-d1LU1GYb{z!5bm77;rEitMndR;c#EQdDY-*JhSON=flbFt2<T=DWGhG zFAm&SZ&@|u6;@>rf+hFW8!sOEI$@MBXE({d6ub&Xhg?M1??@rowkr2C+1fQ=+>8$z z&>ws_pymE3`M(E$yX2qC4zjj^`ZOWbbClDaw;=Sb6sn_;%Xb`P{O&nP$4uwj&|zbw zf)6i$P?P)WHrRsCmL}z<iEk3TKF0owQDIBPSRLo!2@2cVaDGP~+Qb1L&hN-WcauE4 znLV6zBMe{(ZhBlaQADE$`f@1P(>`33>~jS~v=QGy-2W&`Zej_4Fe~Wx5fkBK|4tTd zW0CmTN$M3xh=bwv(Y0RR8({SmTJ<pKdzq8@XUg6M^*%&SrQ|`}4G)OH%zGN*p`~KJ zJF;vWPO$G7SfkYn(J!BV2hN|KThSVBjkw=YTL{H2CkmeDUAIgP?WCS|r$xcff<y*i z{kc_6Y$p-6le`*CW{GvnT-Y+#v=art3Q8^~3Z5jR;DsF-w(NXJt7780+$3Y-OChXc z;%@?}V&X}wn0V4ECZ2RMCY~S}6Hkzgi6=<L#1j;%n0SI@Ogup{CY~S}6MrU}n2d?9 z1xUukv&G4nc!Fe1{N(`2nE3Gk$(Z<BfMiVkxv-XuiC+znjEQfBSTZL5cL2$lc!Fe1 zJV7!ho*)?$KMWul6VJ9KW8$wuJ->*FXD4M$JV_N3&+e+2cpBmPaV&UV-vdCIbMeDw z2af|mE{9WaHz;mILj-)U?=c-;2Fp6vhMX0`uWnt9iR!XOfOcDRad>&G(?EMQ*S{d` z?N1Zor69xJ_;I)h_Xv9jyRq+CwNUd8VQWC1t9ggA(5FQ%rSd@XBM*~2tO)$b#k4hu z0~&dZ+#Gr-vJq8#b3a54XfzAm&Kq18>+=rVjRId8WWwHp23Ya)MS^!!IRrI7zgO}e z$=>)h7lpi|XRrn3FrVc;`r)MfF^>ER6dA*I`Fd8ZI79P}r3gLwIQAJ&;|E{4l4Mmb zn(-dnMDk9O<2r=E$N05*pDZ$UL4(oD843Kjo!s^KihkK@R5cy<um3xe4O{_R85i&+ zzK^e+!bUG9EAfAg)2NX}QuAMrAEP&EzM(n|dlyBGJ|unrhM%&G{=Ccb^9_|Tfd8Dd zCIat`xHFqv6fy>K4czw(T))$IOC`@}lhAYDMyhK5_rdqwN;=D*LH=!|^Zloj|9jF2 z|4>XH-|eI;{V$S#2k8cXF*@P9lXR<p0A=pt@Ne?3qn%Cs8ho>#cZj~bYe8@EUrYWU za81+N{JUxA9@5*i*jE5vAKMnY0y19TSs-0(vhUvQFz;#r>CZnGT(9pE{PubVV)`-c zrk-V^8T!-U_GZ=@{djVFk4utTpK)k|9wl4-GYDsa=B97pBYfYdC>*^CCZ5BEx!=R1 zoYH&XK18_r-3{`hi0_PMva*qFQUVtYvFRI*hn)eOLHf-2E?LSpX#=l8+tdHK1%1OK zkU#8Z2&kesro4XqpohTPzdvUacKTu0q?B{9Uq8Oz_wobFZK`eBl(=XDLYe(;)h==d z^O|gK;z?#OugT`!f^0wsyybsI^$24Szx42s!6LjX^Gm_uC+~yBcP~LQ2G2%idPtDP zz`7+!k(MSbNRf=Dhag1?nx29bm;VUKp|8=yxjYX2?zn7mCJ#=2Cn-;GL-$Z<_$lD{ z-Rd7L8u~LGKH_S@RDI2O0h&WCmWa{zyKkTFcp;b3V+-)d(WZ~0;xsYrG7N(EgxzF_ zpTEEW96+<$6#RL#8Bmhnztmv9a9arnx<-S@!=IZ!8JfqrpnII_w)a9#Ej=4Wes@^5 z0k?|!U}UCrhx&$k=sk^aFPO>E0)Z32f}xn^4jmgfE>Ma#c_bf~d#?o%@-jSnAV2{f zz{rJkKirl3qIzkB96#=?xCY`5bxQ?;Nt<KP=uAMLQw3oVsZ&DZa90>&6*z(QIzTzx zt&Hoy5RGl<DeQYyD<a(@V=yP}6#IZtS?Vo~ur#L2mi8J5TSuV6tf)S;x6^t|8rtt8 zod6Xae^G5HTGwwRn#CF^OUD&v-7vm4yPWM!cF%?0_eWk3**zD0I{+~0(0DhX=)e>R z(Zf;<0S@Y}@qqernlIHch}Vzr&3pU7S6-@XuB@xa!`=|7;T_uh0F9yD_4GrBa~%T( zV!(z0XgzeA8s05-VsEzZaLIrl9L9)|`iZ@}-7rq{Kd+m)EJW{cF#j)4GiRg`fX_MM zJ8(kzQwAKRX37Wy2GkVBR8xZ;RD&H#oxYZuzW+ye-vS=jah*4dOHt5+5Jl?!Ts^FZ zB|J&dltfVk@gPA01h80u1SR!yvAY14#6GwW5TqQ5k}1cnzc_k*wwlisXva>al(Ce? zwOz^iEZ2@BC$+7#wk$iJ6Mc&6#%|);jBTZjTlYUR^WS^--d&20oqk_?CC)u_=A1KU z&YU?j_b%?tYWm>$;tSHLYm6tX^?f7gR;cAd;}#eBoiwyIt_Q`%emBCo{Bl!zsgJ1Z zBYgQuKM~Vk9>~HMuBhwtD+7IgRj@O!_JxO>G)^*jo!{fvcA(?y)W9xs-D|~fuRjMq zw&qN+#XHW4O<pX(4N@o`bfeGrK{E($(tJ?-X2S<>5)6FEClwL5iY&w|-_@kG9e(!i zOT~RUg9xGM@}2BPP>87RAWFPWkUbsB_fV0v&ZnYx3f+1i{r{-TuBZ!>=hK7N(1X_+ z55B<nV2Ol*z<ZJL;ERJkV|?@y-}$gu@yku=Wj><Lb%HL79=pO9BK~w`od;hP@Zi&P zT3cy2v|Z~vGvZ~)nXjia!-GXt>%rnr0S^{;xXHNX&BkZ7>x!S>!cikM+I0o^#ho`C zN9$adj@ux#Hg(>Rli&7F;LX86`G0+$N4#(K7Z7XAWU#h=+LwTAXI7cmgWfIkd|*;Q z_F~QimvAPy)E^j#y?Uk(PWxAw(Q#!!3>*S4noXUU*qaOk8)@zId`-a75pDgsvu@}h z>ar<1_WIFJvhP5aD+;*o4S`beWIx+rYKPxPrgjO7oZ7LbJFTf5<1RX}PhNa}Os^kl z6|th@FD4tVAOEQ*_ClMCQGaT$UrwICHn4nMQy&lm>qx93FN}$t3yo`B#PE7?hu2fG z@uZ&K*I#O<cE1;~hV+Ldr(!!*2IC}p*G}!yOLg-)ou$rEt`>D9eu<Z1*+wrD;`Q~5 zzH6^U&nGb3?m1@~n(B!iF<I%LD8WtK%8nm1>E3`xmY_RHJvW(V6xxQ?uDA2<&3?;F z=nAg&v^#LDIUH+r1Uz7z5v)~eQ1X(aMZF<w#@Ii!;Rg>~lEMES9i8%jXQiB0oyAhM zGh51~E1ff`O4g+9>pHsEcXao3+}4>Zq!((LtWpCblWt${aNp$cL`Pc0Xr|=hQnu1D zkDAm%u5iFWx@4qQ%`Vye!oqNFCQz2l<+CQ6nyAervgu+uWAf$fT&_|rA0Dg~($!qC z5MUZuDizCBgV;1v%PmyfbA`=l60Wmaxbg307k%Ox=d7x;RDHK|<iwHIzpE?_ZrQkH z<I><yKecOc*WhSn*I!(4xKvwmj#Nj4@X)56pKM87&^m=r4_Y>_Y#Cm&a{KUSHh-pT zYIth%m%3W>txq`B){Y;yei%PZ?YInropa(va64^rq<1-ORj0h;u8$va&YL~H*s}hD zj0pN{%evLWM~_Wyp6YTge|qP0f@|F@>98c*CD|#-?fa0%oNX_xY`J@lAXa`?(#Kn_ zZyTPUd3>?7ckz(Z^QyD$<ztJ_IJdm&w9PuZpFZ|=r>8Z3!Q4{IEf>uFan1bqjk0jI z+;Kr`d2?p5Jd7s3{LU@TPabHQi^ZI4Ti=X1f376GSdtIKBz^0F);IsAxKz6fP1)+K z+4O|7SanvNc-C3m<gA(%d9BAJHM%-S_BiKka%ww(iuFjcxN^@*=g205b<XQpkIX%{ zJM**7RhxY7_Xv2WB)Z|+4%=^b&ferK?$BbeIpCg^?=lEyRmaYyjk_Ls#@W5eX*W_n zA-r0Lp^%h?JDsH+_uPK>2hovt_X2j#>DYM$T8ue^Pdl47ee2G<o_$1kv{@S}vM>ZS zoK<^Trw`w8`@MHP;{5)DC!DV-X=F?5XHQx49@OkCJndZZXzTi-bJhvxP!&EUEG;)& z(3JDGA**zL$kTe&>~k&GuC3fP?EJ=qZ#oxka`v}wy5l{^oY&ODU;dF(Y}piZ&Tm;C zbGEeXjXB>`54XsO-hg4(q6TG5pK^@XD&@|F+)U?OI^DUnaf7>IeS0~ZnNL;QF=%T` zo%(20Z>V<)xgGbNGdcVY7Q~!(#0W%|d@)m7Ky0aG4|eu+ba!-jbvB7GBgsU2-}ZsN zom&&VI|n){Rf#l}Y9^DNH6y=j0}i4aT9hjSi&t57u?W!^74;SKD8qXwUFHQ3DXeD5 z7mXvU-)SO>vnu9%Rh>M~DV@CLp}UU!-qp@R>zX#_zLU<SF{kU~<?H_SKXZ<B3@_ff z-}!6RI=geaHsrkj!55rThqL<OJx*y;*Zgio1gCNWZV+4f>dKFOAM~%)=DMBQ(~G<3 zoK>%`-Gd0_9DLY0=j1VG>0#%*s&jD1v~$*@PTQMn2S?zPFHZlf+Vqpo%#O7`at`hI z?C$B^wdvz`cHVn=%{lU@!QI)}bH(nObIuDl-}hMiuj#rTUHNh6aBIhF$KYkHvp28% zz4rLKJ_Jm>_5LgGc+Y!V@K;4K`D5W0mH7Y6bGDC;47k0M$<cqb<CGSA7gA;GIsbSs zIxa5`afugwMV)jmIq95zvd!5KfBJV1o^&?GobEaonrWR~>nxshem8bfd(!I<yl_qX zfbPwwSGM*!hflO_p5A%uoO8_y>k6Iiwdv&-ryr^<-q~5H?S&h_DQc}9zE`x@oTWFB zU9^s~4DYEOzjIpqOR+VsDLdg&OM}jhuR4d~&RKh$Lnp+ozw<9^`?uZg?0=yStJT>d z&h_+hU0!XCH}<X%z^_`=eQ)bsr@8jf;pbNtzw}BbF)%ioNV<bV!vl?1GhWQmf#!5p zHjGRNM^&@FL98)>>6cyZFwzBr7eHC|@NXoXFJVwS{jG00ZIABWJT?7yt#f-nGk@z| z=Z1${&P7pL_ei`^kNj$_8;JU+UQcH8HP@{6vSqUZ?9VRd(%JrUZZTW#NS8{|La!U3 zISs7WnkMw4b8^LWWxl~IAhQD3oq#hlTd}+~beWlnYO0z`59>uK3OOS{oEVkA7&#Zl zcHZ}xy*i!Bo)?{qURc|*2KEFMf5dS%#oE3-cyG&jKzD(^MadKrnUIw<cq&`2U{#ye zr<23+<m#L+=Chp!)tSjIW*3U3e6~>S%(rXrX$NDctame+T)A_!!<#wXG^mP|ceR@- z-T2z%P@%f6N8zu@^Oylkswm&%%w?;6*utr@fIo&uzQ>SGRLi--TvAnXa|ICT$_#r_ zmCERhVy&VIGrfhmg{;aIDp-%JQnl=s@b~q_!eUC2v?N(cW+j=EBqzy!Ne)P|AW2@5 zf~v^j)__W;Ht342kG+aFYVo@Vwf3Sy8heCzk1Cz@PatSVw<_fdIW?O~SNkB;9ZB@| zSBq1l!%4M}#u4ElDXHG6ZSL4aHyTiyx0xPQNv8^Kb|EWvmXZabO-V8%Nm`POBw0yj zC7F|CUXq+7`z1LbiRR4<RFI^I#YcK9RjCe?ifK)MP|#&bDw1fuYHD_&m_nD-^2sc^ z2|A=CnUN$dNk$T}dudjZIZ1Mo?3d(#TBu~T>Uqf)Bq>UwMI98VEJ;NYO;=MTOl+#0 zueg=mk*vz(DpF(0pzs7%#s>&9<x~Mmmul5r#cFQ$u$rx+pOMT+l9nU`Iq9lEvy#k7 zGA{`_qKa-uazK&=N%E2uB!TNJE{voqy6m7}%92zh(b8%vzmTh7D8eeG#Z=jy#Ur2> zAxy3>G0>YFaK{p(JN8VAmb1or^t0wrM)^;ZDuZaDa3u0bHa~-JA>h5*UuVSoGHPIW zc-LtEfMn)T21hGk;GtgFBMTj5U<hhnC=Lq6qCk~^uO<ZnrE}?WQB_MwQiw^yl$RtW z$&4ggc19o=Y$2uP&Z(K1xst431)swx8!J|F^1v(k{gNDzWI+{*5THkh9@uuY42tut z>q!cY7Ew}o+OA3#+7_X=j2=8y%izvKmm-E75?xqEP=I$M*{>>a1JD-tXZ7Ruv|#fp zI}3LQR1*K}tHCu2)g)qv)?=Vh%Xe?U5G$q+n859iKpA`0qKrdT&cZ>lBYGYYBMlcE z9@@3DZwiq`@<yaukb3;u_xR?O3f{&GlD%6&;>v3Wm65n2gIbm5Qx);;l8q(q=wwpz z8o6jH(C#uOqan~B^bG`+Mr+kx@yV<z%K(EB;5Um13rG+amU8GafCzbuhzm%xq2MQr zhznZW=t72(6-b1@MTCfSDxXRl)`DQPkb?s0-atTIL|{OIVOj=V#=aFv;&F#9Nem3^ zLR&;FIz;ydRnFk+o@S=%-L-9az`nLoi}|c*P=Lo&=J6^eo<s1<FW{@JnFHt`6qJo% zc|C&}5@D%43y%J+(s!y@!?$u0K2mx@C`#x^3~U>kNG7HSCwKKFhemg)R3=rbV!VME z!=Q*4M}W}Inhd`hKEp$jMubFFfOILWSi|RaNMOYpKBq&1*`tQf=a4KYoK21?q=wJr zkU;+$K8s7I;M#z+6d13DFWr#%hQSor%qD}qeaX>;+c&yvY9KKoN^5KCA+=#Wro-CI z0_>03GmqhjZYvj!lfhA;I%20RL=+y3XKI+t6`b3h#rJ3Oc1mS1vr7kwmm51RU@F*_ zt!8G*x-VT<zq-m5+{(c+;uj*(Fifaw1(}AknRt3WRi<5g6KeOMp1t&~M~Uw4lsCfa z-<9=d&_5E0Fwpgop9%O$Qq7hnwxLWXvjWW-0-5yTNkAYH6(#%>CH%k}C6Rta3`c^t z7A24ts&H^YV0lo)z(Z1#(1ZD1`<2%gaWIUflG?UwGTs;0uNmS!UES-uZtw1n-;_Xe zx2LKG-+uee@%H?N^+>9<LiVn?EWTmOrIAgQ)AM&>jngiLbMf}kb@BGuv7tVdN*}05 z0&|xNWrWmJCR0|KB03Ol6dywZ9kZfi7CNTOhvEAv5JBaP>04<Eh7f}6qFFN3;FSe% z%#<sOsv=%4ky?xP=0zL#nz`7}uA!tW@d;0mZYH~sI;`MJxoQz_U1S<g<tu8ytyH?* zF85FhaUZjdt8F(^n^l@yMwD`gMqLTBZdLV%$x#GiH(SVfWtD2NG?GnKYUQjNm~w~u zwSYtATs5odT$z4g55)BOQ~`5s_8^8iMxhHEAHdR7O->9X+$p#n)>Tz`2a5%Z@!S4^ z;ofOiYt<W4B|D3$7fWaiKwV)awP@;N6GfOR?ZO0Qs#_=)=Hfc3^OS8ad<&{#{2*G3 z)wBk(><hgXO6z)N(Dk*FD~}m?rn5=~ZIE5EjY!XD(+419YdLiQt)0y+WD7;bcBG3n z^gI?dn0|GQl?oa}<xMF}mC&!Iv*n5G!CJPE&Xy%YqzW0>5itQ>gcU@gx~rDg%9XRJ zj8$zH0;I8=JZBV?Tac+*j6b2axft&Stk%uSM>k%3O=(g32nBswJE4+}(*~@d!z8qd zdzhZ{t3=>Y6BD}cy+{MM#mYsr)6Ek$;}qI-kUCz=)-a1eCF89_(qVot$uJfs-Laa7 zrVCmd+*^zIsu%aMa&Zn$t_JpC9B7}x!ty|Nq+0G9=~vLhyx>=eW{AIr0!FQ6CuC(> z#Uiw#?dX<LnQrCEt;gKfncI4EyG^-^)f7g%Tb!Mhu#2|zi{n&aSQ%d0p)l6y9oiFh zj}DZ}ML0Yd1{MePu#gt&UXvk(Hxuv%y)>HJC2@1Ik}XdmGHX8VM`+E2MEWGvMZ=}f z*nLIxo;;X{bLCTWIm{guEvh7P^tkp$u5mJsajm6WT*$ClqME#_@LX0?c&+k7h=dQQ z5ph*^h~M?%CuU3|Oo*9k6%3G(;-dDl3B(U9HcZbT1n7Q&V7-8MMJ@O{M@Y~K((}5B zo@%CH+V?bX?+j*1S*TfG@FQs57&Q$j!%o{=%xH72X|VJeZI3xs$>70&(!H$fH4&~y zo@2DTZ5v2R1T$q=b-L-|LM>lV+S!H*ne3A8t?X<vTdDRIGJOkK=^JU_hV^KoTPxHm zS#dt}fP`D^{iQ`2hQp)7qcGuM?<Af#iP~+U?L*s#RB0iXpGfv5Cnqene`un2E4oph z_+fxvS<e{G-HD;(fbXYZ%vG^6@$85umaFo5lk#`F!$TuONzBOkl3rNk;f{#^o=b%} zl0zc{vKBV=$uD`3ZX&Dy+BEHTDm5_VqdS9oy1jjU0|;Kyk7E<=1fmN>^o=D4hkLhq zK1vCGtf+57-{^!q9N@tR5AVSxY`{9c9~eEvnlO_W>+2<MAKJFv>gii<24ngFOlbt5 z2e9yCZlbSum+GCE##AenN^la57E)=Mr*$t6Bod<u3r~y=(tdal?WY+qUrM~S8V-$& zcnY#^4s7NPsa{nZP{esXN5f&fxuwN1%&L08Boo@whGDXQP^%1sB&bv0D5|El>#N!d zZ6_wTs%qYyFV@N!F=cFAfv|@4Dgtia&0`q(W3g<fy1J)s^U73+<#`#mTqT3wXDWDJ zDPSQhLa<(j<ZelNRNj*1Gg$th^pL$Dmb+eZ%X0>Xv3<adyz8ldM+*sa`6>pcDx@%Z zBYUJ+(7GR%G3yCT7PpNgM=;4`%X2wA#hD+JQ{`d&u54Zw_Lk?iB2M;i-P$`bpelGJ zWAMh=@bKbp8y?--JM6l66mW;!(|A*9-Y!b0$;ou2>%t>?rVqbcRiJ}Bipwa~1(}&K zEIzw?^qWg4qla&%yjZ7Uzgfk)I`ZZ4(g{lpyxWnNonRTuV6ls352i*uEn<O(1!lHT z^Ciec-;ez%JO+93SgB&_#d=qkn=HW6U**IEbEWw)ta?i&=!Pc|ELBJF)C|%Q2*zt9 zsksktyYvzwBOHs8l(Zfkr}_;By~iw)gKu@Ad6(^xMlXF)jD?@{Dol?En@jtxN3K}F zBUJ_~6u4JSuh!fyID;_Fl&XH)A?6g7cx})v8Y@{#-fkR7p6qBEYpIkpQ$N7ma?7v$ z5vIAV*n_21Rd>uRdQ@zn+gX|`ZBJF^^*iO}BD|KsB6#)D;Qh01v^Y3kg(vVnRD6op zr!BBT)n01D@2HKh0M*M;D*Qc+zGNRLxne3qFu?dqbH)JGYf&ouH~VVANQZd5Dlk`o z@%1R<TbAm6{H!2XOeJIw4Y|JWqX?djUmWCeRC&cRGqM$wMYb;Quo?MTRW8UQc*vq! zRY~<+Usl&H6LY^UIh!Tdtym`RVZZD_&4n@}+E1g6NJblxj5ea$s1emhjYu|bM73!n zP|~y!rp#C0KxbHU-{@H`yTyXE0eUsewc2v|{Wl(M`gpYI2OBm0V56pwH*WgDrcFml z)25rUw`)X;>ROJrVlP|q6WeA-9f>V7LvK7&-4E}&E*5c5ThJ15QK>E5#+VulJEw!a z<078-sO_Pr?A?(N@s$4c4Bvd&JA@IGkACEWuy-#rBOAoa1v&%x>F-#%?H<YaJ_|1R zD1veVp<Iqa_cHSvKC*TB%Qka4e(RGfrp9+#@E#vUuxwFU9y5>l$kyejZ04grGr><; zRI4hZL&RN(kwabNI-4bM7vetemtnXYcOmZEekBCIAE|_xANYby^{9lnzxT_$N{mW= zD*F`5<y&f+jU{_bO&c0N{hZ}m;i<ZppnQlZ7iJLz@Tjc4rr1wq15vp?>~(aKAiEK= z5Yw5H(?;ZqDSZ-<fPqRu$VzEY!_J)Ftfa68FRDT}1mj=(_0mKJ%Sz}62Fps=aRwW# zL*Q^d7*0>>omHif)o5h67L5#7qLIQHyjX{9`Xg6N?IB1*g6}D>+W+iz<sO2xl%_LM z{PYzom$t&Fjt<#GbjV^xjSksz>+)l^SE(F^EJ0cXRd5tfdfJW=JYZ3XIV+Z#k<)SH z0<v|P8GmS(&TTNX$JnLMS!Oe|OBmY3a2T7RjgqEA+mx}#WaC=7&=P_)HjMn*Wz5ih zKu3@R-dBbg4)>rk#IXxeh7e$sF)H}!e+~7dOcc?soM2bV_sMcOsuEjfhFyB5S~SxV z5e&<=pk<k}#_w1$Qd_vA1;?Jg$1~Y9LD`eZXmB{T%nal9nd*qqfC%=sEr14=o!u<8 z5oYYhdX6Cb8jHc$a=3$pH{3(u4R?*^HA?#_M-c5VvIx^`7_~GGs}?fC>|T)haxJ9) zU`Q$X$XKqJnk0CcUEHrway|rew^%F)33k;HGIyI#Nbrt2Lgog1LV|Lpxm>1d<|chY zf_v)-nalcw1ozhwGFS5n2_C5<WbPrK&}inTtE}Z@KOVU-7zrjkRD$4?Md?Vx%&bpG zP!2kf3v}l$GjqhJBlv(%w|beG5BPKhANT1lSZ3zKJ{`f|4$?6r`;E&5m%Ypyg1wB^ z5~Qs_MbI}}WGxpqoA@j3M!U4A?q$NXL5u3~?7{Z7sC8c3*|rw7-fJh@(V}i!CQL7H zQ5!tpW=ljD!gtsPi!OxekfICWy&m1VWx{kb(S`64kM6c*!ZefAYb@=jUGiBvt|#mr z<Bs58;!A$HV(LDEZ&;KWI9|>^Z-aM*1y|z}cgt%4KTYEUbh#d~cPyX?e$qot%RY8; zea%OG%YtwDsHe{|RLAWdvIu_NL+$yN1%Ke9-m>7?UK{t^XhAuGTrS8eS@3;6>TwG` z<)hf<b3HR830~l#rf;=ix4k>+*IsJ-h|Rq0(M2L?D%3%kp<ixe7d_?m+8Dvld#G`O zU-VF81pmrIjT1cSp~eWV^(;Mpl?8A1Q3N-7sIe^;lmnBD4aXm};Bg;C@ZVSzo_OB9 z%nUmoD=&gy@K_TB=?kDD_~$;=-x9RF3|qh4)@CzzdR{O-Xu)Y8b<BcvBLpCVFZomi z|J0&%3z(t1iEg(1yB=$TAUzON1bt^r&>8o5ZZ<|RZBYo_?_Oqxo(gpd-tV!F6QuKk zilFbu<Kf|~JuU3X+LUzbYdp6dYvA55x6#+-plRa{V^NP!{DUo(GwCgr0sNGMfW8`2 z_YnNC=eB!pwB1g}Y*kCDrmkIo#qy{vp<ntXbd@o$hxQOmdY!wpVwstuPseb=?!)qj z-InugpCHI?(QosZdBmq9$d1u;%=o>OU@!d-kM$mc3`9^Q+-*QL=%H8ICavvdqd>VD zEa7PTE4&IPsDs~Q6NcSSGqzj4<8j?fE`M&g*QYlSxftKzf={kyh7$)|@X6H_#x`rp zuqSEC)2QRAMs+;ZsE(&rH>l&O)y?W)P?niD?688P$1-lhufwhi6dTS^Dx8FWpP^1o zGB*B4A4TtuS+5mNMmWx$f+PHAo_9~aX+e59CU@GLP9vOQb3om&F+ONr;p6r$Y=lpE zqc`!g1-}&_<3!}xCJ8Iy)m}3bG#`hzkkLR-23Tn!P8CAOY2n6zi3o4>%#omlJ{cgR zi5LJx93#N6^?SiF{5~1Lg^fhdr(ssAr}YCO^PJ0LDn*cnA}Jk=1|pt$hDC@VNQ03y zY&7C&MA=VRE{F)*lB9Gs+K_nWw|h2Cg>6bw+W0FT=}g$vBn_LJc$&ZFg`b&lFOZa8 z%}7Fg*t3Z@7VuN{948{uacmEGHk*r%?YT)?>dz~49C383n3`**BX#D43{nnGKcdeO z<lNh$9@`Rb9XS0a8Hf#|Q?OyobJdPt*9dZ8#nk*?MjAFBZP+{;#`%hMFz+{PKH9MP z1`X>EH;fXSwT>a0bf2@~=PUM(pMkz<L5>!ns5d)++~L|A{D?%ea-fivd4DmQp;ORs zF}0td?;II|{_=4@)uZ`X2lM{IZGX3&`TaH8euA{P_zQi<e^S{`kZlIpcEVg4u;OOc zX9yr2^IUTy&=6$HV=70GEhjhgKl1`djz)RL3j`?|hejYb^Rx)+Cdk&4^cQU=!xZ_M zKjCRLOYjf9Nus2vY1o>~pJ`XjE%+%ne9_G)k5x1OHCxXa>L+X4FI{F;T%3_SES5{1 zt84+51q83QDD!fl8KdlkD;FNG2?iOHkv9}^O^(f=>>V`{yxT)f5ZvyeCJ7E%RAas3 zwzR`zOcD$-M)l$=C;nvt^djh<vPLrUHz-(wV309d<3204;Hf%Euz1QE$++KROcD$- zMr)*7J?t?~68z{XYb0aEV@whZGM-M2<E-(xCu@RWP}caeE%$Czf&%d7kl;r=SyKdq zvJw$luULkkc#M+-|EEP6|6=Ye`@1>Zg5VAhbuYo47G-#u%lL#=ws(u_k!++#a+!Lx zc(RfNDPAg#_CU0Tan|rtukjNES&hgV_bO$J@p6OUHcyWUf^4qgWscg#ROF#Ds#=1o z@vl;1YKmY`wL}Be5>#!wr`i-jDkG{TmYMTaoANru0_|1?J2s}8^l>vr*3r0AD4zPE znFNE3QNJZ4Z4Rpv3^FztJhnl<=^1B|;FA_5s!lF5_nc2i@Jn@s;g*+d=@TAfk|1Ro zV=(t=pO9d%hNvq?YZz}-!?@Q5iiO`24A#)xN)(F_Ly%e<7h;ZLK}axIL$m{*v5lrp z5l;vP87CtVi;S!W(+t5NW7KL<#?w^w`4-c~U$u9rN>K06jZ(ND!S7ot<3-HLp1yK5 z82uFgX-|BTAi0dc7zut#Mk<5eCCFboF<c2!6OlE(%p7X~p)c4#QSk|i|DLDneFQ1c zxCL{*`1``*<JKZ_e5YKnD#5!w)C9pHi!xSaF6R>xd~Y405$&g}^m>mmNifJ5bsjQO zMcA5PzbETng4EC0nmPVz4_gxqRvI0J(Ml7nbkM8xK7y>q^Z;|RQM+9DwTob|(&)ha zr5V|_({3hf%z3I#5Dcms4Fz4MX=<~*!-WXmZBfQwY{t8h@eYqMNifJ5b%QOIVVB1^ zNpRGn8rMk19UfznV309d<CtaO8XRpT=$^7hGVb+jBp76j*0|3yls(2tf{$BN<2I5p z?J*_^1{qJM#&Op8s3&WJU{F?c%uopmz=TBbF;CVM!Jw?@P&jTGKJ77168x-1HMRs9 zU-TH01cQuGOGFvR8!<+k9c4^3VvM%&b*m!(av1(aaFv~+O&giJ+FPwm61=O9&<gZ! z(HfGCYDg}#hBaOdNrJ%|qE?I6Fy5$!ajym{jwnu$HMFQhp5_Fi@)M2ZCmP64MCCs= zPr1BbZW~Nm^Z`Mt)!5HCMZfCJ$CCs(?Vp<QPd&yY!60MQ)X^Hp8`T(f&?sY~5o6Rr zU$QDvKdko%o?2BhvKmAJf<eaSHIf?LK`_V|osWKKRXxL-$R-JL-fr9-Wc;b$9R!1n z(e5B4tARrkywX!*g5cE_B}$AhGk2R$NHADwv@4^PCRpiJo~$W?tVSwLc$IGS2?+)( zjdsepmf<3MH-@C}AaAr^!n}COBqJ*aieOOI+v|Y^J!R2)KoJbeiW+i@ZOf!*j7fq| z)HRcVf_E}<>4z~vFvuA77c#OM_zS_jr^Ez7Ir>p9<1ftprcX#PSn26BGr>v=o~$W? ztj72YbC3Ik1cQ}E`{|cvWZTf21cNn3n|a)-`0qVcCkcMeLroC;vPBs`X6}1FA;FdQ z4{8me=@36<r62PclLUi|QBNQvRfH!H{Guo8UV_xmcmi`Vs~T4N1cQ~Hj)@Yi^h;i) z_Yq_@#uJ!xyh`sQ7_2nv3BNQW+jiQ`WR2hR+B88hsA@D&#cjvh^9tpenBbGPsIeQ6 z@fwe+(N~5uw)EHS{Sx)qCm(on#ar#?ZrOUCdaM2Nx74{m$937VCGc+C!!OliP*9BE zGZtkOW9~Vhkl>4Tgq~;%@a+s=0{wwq6Mf#^!}QnNsnWIgefD0k_b~l2i~o?l^JA-L zo6wKhzMHrAoW0AjwvDc&)$@<+o$sQ)*+l;zTl|@}{#JXxsEI!7E&efkf85@Gy9xal zEnW_(mg^0B=L*JP{WLsB#%(*>?Y-OH*EeZ@$>M+A-rsNUA811VipBGLBMy+CHKFJJ zkUzM>=zP-N^~q6wGd!pnJx~Ag2rWPl=gDK_UnwV3HM%+~hx6DiMRnl&X>*?^R47)n z9dm_Rhu&whJ(p2BhrQJ1RY&G<0i5QJT|;yUw&;|NEbB5Z%CL!GN*F9u!lq^&dhd=7 zy+2*YEHWr7%05}DBRlWvU8&r8Y{}&142PR4m$6ZR<{-R34KiVsdLTvXl)@H#&;#4k zNz$RKG~#El>stpl$k4kyc4V?MwK+(_wp`fj#%6PcS&?FjX0U0(B6HYRE=w3@B8csn z2wF*vO#KVvE(eGFaRbN3%XYBwetk%yol-n(2cVz+{O3jT|IqUD{*0xhueN%e2H1$3 z{QUv>8Ekle%`!^8LPLHzX+W+m_$MUfFWJ9-=UvY04qo9HvmJ$q<DUNCwtqOld%`kP z4C~>266OCpz~6PYVc>m><qzv`(JBLgWrE}1h4Q}rJVVL)!|j)!e}nv=!C@eB@y>n} zeo-yVzXY7v#F|YV6^FpZ`(-BUrBYY$lHYWL{KqXn?^{9!Uu~Ire;~xqV8Z*4FAUZu zhi%qh$3pyHw^JwYwmUthu>SwT^0Pl*xBR^G%O(m4*Z+8k|Fw4+O5Tr!+8?g}c!+=B z?S`NCDm%uYz5cUV^}7Jt@Q?nnZ!oTl_6_P=#9r)wQ>xUb0Eml`zhwDKmOo4%&i@DS zN)ySyWcim)lmCxH{6{VSQOp0Cl^_UQ@c=B~*YQtCSpUY6IC3~Actqb+m+e^Eo%*vM zzXP(M{_~@8%{Xu0H6PVEKOsNwZ=fj1ug2nrc+A|MH#aXOAMgJSB|-j|EdNWEe~%Of zu6O_z@JIM3ve^E3B90tRvax~deLCkSY&S9TE520GMTEVR|JD$m>hS(^loJk;_S^d7 zp~6sBwE+>viJXl6>Ho@fP->L+vL^fwiDTn>%>IFt$wm2ZYQn$f3x?xa`^Rz3_}5$h zu>D^As^NI_B66BL+sgahP3qtIUkv?CHXcw4`Iwi#HVEUSta6pXKF`2r8N#&Z15e+v zB>HyUHHI?me_?*fhpN#0M{hBd&s&GP4%qkOAN`*5x5Vd0^>=MD{P|D-57)0NYmzvy z4ClWfi35$fKB>n$itCPg{0hbOL_Pit#dShGekBeq4`K}LV5P-*Jy`0%Dx9zD@n?DS za6SHP#rd@!e~x#;Z$188#rd!vze;hQtH-w~&R_NT^AzW$di-j|d8ZzKzT$jRk6)uW zPt@brD#rhM`~`^T@gPdWj=E4WUIz;ug+a$S94K(q#ftGYfQJ8Fq8K;p@pds4L;`kH zcvWNw9Ay_j5qkRs7Qr`uVsdz<RD}NO5XNL36_4O$oUBkklJH!2U5{J~R@^Vyb<P@F zy3OLb?z+L^591zFYjJRKTw^$Hk8AuT>SK1k;r#ln#$T*>q%z0*S2TXDid#9Hhh+Y0 zr035xebi6nFSbPg)gjYKxD))A5Wd^ukB0E_Cs46Kzay)!DUFZ%?XOumFNNg%b4?%h z|7U=2)UHoiIqc#;vh_-w68&Gf${_wN@^XE{;vbFcteUsM_I1jUz>4c3OaDF6OGo2E z&*|$d@QM8ALwI>Pr0Wgg@3QzGhVV&?U;Pdvm-0&%-(~TyuQ25g0N=<CPf*S~4IQ%j zTDJJO#oNap^#>N;W$`y#`p;YZz7YMNS$rvkmzO-!-lG<8hk-h2@h@3CNB&uuoP_>$ zi|5P5i-8ya>9YP0c70uE@moUpE-UBgErxE&(r>1Gi{EVV2`i^3BxlCb$8R-+{0oP& zrQZ;uf5755hVb&DUfaRS;W9(Eyb=6M7N55IoUn4nLUR7l(s$W|hh{Ck9GWh1<M_6? z#*A72{D#Fd&NH68L3+FX2eZEZyT-3l{kNICbu0D1EPhJ}-v)x1TBSCH@K;*=#t^<o z<1bO`L+#oO{Hgqw2Q9JR>4(o-I}o3M9Bt1Ke#YWov3UBq>=vT^Erh2(|1g9<X6aRj zu@C*3ezL{lIRiau>GxSY{rp*rKWg#!8FA`G;Kk1$4cX^Q7JoE^r~e-h;s2AB|GJg` zAuIn4E9avj`oFdKr$YFjSbQmjr~f}0!vEaXd$iM3xWU$Y-Wj%EEdD(f&v7wk7xeaV zUR`79AGP=)OWzH=*k@m;UXG*JE&YV0=XlxDZ4lw{vTsLR7aX?^#POnr3_d(w;ugOp zG+y3k8;a)Zi{s^32){||ze*hq;YTh0-68xwi(d-i4_Z5XIAn+WE&jJc`1e@+2Sa#{ z$Hzl>*=D5Ccsvfgj2E6qwbr)xvljn~wR6?t|D=hWX6ul@0DTN^NM5<y3b41o(fH{4 zM2Z{f`S+UsqR6^bwup>jU3!UaFKf9><JYP#yIvyxMvafIhh;YruBk{X_svc4<G`OE zSPyfZb_n=*P=JNs+XVkxz;g{5WIF+TBYnOMywtnew)afS^c^iH`keAt8h?)Bj}8Yc zeG3>x&dXzQjiLV6S-i6Hi5~*qP+9@@mIc0%o=Z*W9|!*0dJ#JJ3E&&q;S0cvp09-T z{I10xACGJPeL7W2zIPV-cnB{K&W-exZ=i)<S$ej&y9xcB8h=T|-?mx&Ga)}5243X9 z7SjJ<6Zwxc!GEL){<$W2`M7vB>J5*JKWRe$8t{$m|AQv<@~!0>6@9)w6Zl4UK3~(@ zP72(v2VU%RG-Urii+??2x3}3jS06vud}Cd258+>Yr)YQY@Va%)C3DwbkgYd6A%niF zIX!mv#c2?4OVfp;PpXw_ZFaT;XJ@!O`V!baej@3*IA?>xU2LhH#-R`RajXH#bu&eG zZlO4nT5vNs$OOj#)t2<`^9$K(Hq)_T-MV){aswh9w^7KMU+{1W366d+C(*c>T0Vam zEan$LozvSr*OAtr`4&C8r|y6wdpwvNyyBg};x$F~Pj;gM>dWiI)fWYX*B3OYs{X99 z`W!dj51e$Ht~=>~8^#BZRv@natO%a{z*2Kig114we;`bg^A)(4zLBa^do+gZ!0jCh z!ENOY8FNAP!Y4bBh6?gX2H9jka)<_r>$E3l9km?$K%F&p-~^Sr17uEd0El<0f>#62 z2Qkg_%7g8r{&J)Q`!9HK0y}`a_cPCp_?h?5WneQ%(eT^@68UU_Qx}5g0?>q%7C4cC zXB)`f92h`iD$BfI3+p9C;4F)Pd3gSUha$O$pgR7!3OuMHaQ1`PvwpY#`XOdVk3E5) zKG$elbJrbA^x`PsfnEIwaVFkb*lz7VIyg8npwDQ+`Dma>j`VrdnM%>cIW8F-BIWi^ z@9G`FQB(Ds#mmVIp)*6?=I{i2WTA^Q46u#8HnV89W6@36vljYrP*?@AR}SmhvSr)w z(AGY;r=zFiwuT3~cxMka+QD5%+_#zGnx6LHg|oM5k?jn3C^>>H`PpBvqf8-5IR&B7 zK{%ScA+hVGmr|m+KI<T40dvMgJ@RezlUX1zqEub{iyRl>3#+3uog?SaNSB+Fyl{eB z1!ri=fh<ZNtL5{uVdmV7y2->lpCWMJ1!S5E0*6ZRq#o^XEVUD|IW<WR0g$8K+^qg9 y7f-PvIkX9XsiF_|s5h0+gbtK4C+e62eZ+{IMpw_}w<};r-y(i-eY2x;?Ee8WRF<j$ literal 0 HcmV?d00001 diff --git a/builddir/O.3.14.12.5_eldk56-e500v2/.dependencies_includes b/builddir/O.3.14.12.5_eldk56-e500v2/.dependencies_includes new file mode 100644 index 0000000..8a5e18d --- /dev/null +++ b/builddir/O.3.14.12.5_eldk56-e500v2/.dependencies_includes @@ -0,0 +1 @@ +DEPENDENCIES_INCLUDES = -I/opt/epics/modules/scanning/2.0.5/3.14.12.5/include -I/opt/epics/modules/scanning/2.0.5/3.14.12.5/include/os/Linux -I/opt/epics/modules/scanning/2.0.5/3.14.12.5/include/os/default -I/opt/epics/modules/streamdevice/2.7.1/3.14.12.5/include -I/opt/epics/modules/streamdevice/2.7.1/3.14.12.5/include/os/Linux -I/opt/epics/modules/streamdevice/2.7.1/3.14.12.5/include/os/default -I/opt/epics/modules/asyn/4.27.0/3.14.12.5/include -I/opt/epics/modules/asyn/4.27.0/3.14.12.5/include/os/Linux -I/opt/epics/modules/asyn/4.27.0/3.14.12.5/include/os/default -I/opt/epics/modules/ecat2db/0.3.1/3.14.12.5/include -I/opt/epics/modules/ecat2db/0.3.1/3.14.12.5/include/os/Linux -I/opt/epics/modules/ecat2db/0.3.1/3.14.12.5/include/os/default -I/opt/epics/modules/sscan/2.10.1/3.14.12.5/include -I/opt/epics/modules/sscan/2.10.1/3.14.12.5/include/os/Linux -I/opt/epics/modules/sscan/2.10.1/3.14.12.5/include/os/default -I/opt/epics/modules/busy/1.6.0/3.14.12.5/include -I/opt/epics/modules/busy/1.6.0/3.14.12.5/include/os/Linux -I/opt/epics/modules/busy/1.6.0/3.14.12.5/include/os/default -I/opt/epics/modules/calc/3.6.1/3.14.12.5/include -I/opt/epics/modules/calc/3.6.1/3.14.12.5/include/os/Linux -I/opt/epics/modules/calc/3.6.1/3.14.12.5/include/os/default -I/opt/epics/modules/pcre/8.36.0/3.14.12.5/include -I/opt/epics/modules/pcre/8.36.0/3.14.12.5/include/os/Linux -I/opt/epics/modules/pcre/8.36.0/3.14.12.5/include/os/default -I/opt/epics/modules/seq/2.1.10/3.14.12.5/include -I/opt/epics/modules/seq/2.1.10/3.14.12.5/include/os/Linux -I/opt/epics/modules/seq/2.1.10/3.14.12.5/include/os/default -I/opt/epics/modules/dataacquisition/1.0.1/3.14.12.5/include -I/opt/epics/modules/dataacquisition/1.0.1/3.14.12.5/include/os/Linux -I/opt/epics/modules/dataacquisition/1.0.1/3.14.12.5/include/os/default -I/opt/epics/modules/fastacquisition/1.1.0/3.14.12.5/include -I/opt/epics/modules/fastacquisition/1.1.0/3.14.12.5/include/os/Linux -I/opt/epics/modules/fastacquisition/1.1.0/3.14.12.5/include/os/default diff --git a/builddir/O.3.14.12.5_eldk56-e500v2/EMU_CALCULS.d b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_CALCULS.d new file mode 100644 index 0000000..7b2da41 --- /dev/null +++ b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_CALCULS.d @@ -0,0 +1,15 @@ +EMU_CALCULS.o: ../.././src/EMU_CALCULS.c \ + /opt/epics/bases/base-3.14.12.5/include/aSubRecord.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTypes.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h \ + /opt/epics/bases/base-3.14.12.5/include/link.h \ + /opt/epics/bases/base-3.14.12.5/include/dbDefs.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsMutex.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsAssert.h \ + /opt/epics/bases/base-3.14.12.5/include/os/Linux/osdMutex.h \ + /opt/epics/bases/base-3.14.12.5/include/ellLib.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTime.h \ + /opt/epics/bases/base-3.14.12.5/include/os/Linux/osdTime.h \ + /opt/epics/bases/base-3.14.12.5/include/registryFunction.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsExport.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h diff --git a/builddir/O.3.14.12.5_eldk56-e500v2/EMU_CALCULS.dc b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_CALCULS.dc new file mode 100644 index 0000000..729f96d --- /dev/null +++ b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_CALCULS.dc @@ -0,0 +1,36 @@ +EMU_CALCULS.o: ../.././src/EMU_CALCULS.c \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/stdc-predef.h \ + /opt/epics/bases/base-3.14.12.5/include/aSubRecord.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTypes.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h \ + /opt/epics/bases/base-3.14.12.5/include/link.h \ + /opt/epics/bases/base-3.14.12.5/include/dbDefs.h \ + /opt/eldk-5.6/ifc1210/sysroots/i686-eldk-linux/usr/lib/powerpc-linux-gnuspe/gcc/powerpc-linux-gnuspe/4.8.2/include/stddef.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsMutex.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsAssert.h \ + /opt/epics/bases/base-3.14.12.5/include/os/Linux/osdMutex.h \ + /opt/epics/bases/base-3.14.12.5/include/ellLib.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTime.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/time.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/features.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/sys/cdefs.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/wordsize.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/gnu/stubs.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/gnu/stubs-32.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/time.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/types.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/typesizes.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/timex.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/xlocale.h \ + /opt/epics/bases/base-3.14.12.5/include/os/Linux/osdTime.h \ + /opt/epics/bases/base-3.14.12.5/include/registryFunction.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsExport.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/math.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/huge_val.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/huge_valf.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/huge_vall.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/inf.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/nan.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/mathdef.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/mathcalls.h diff --git a/builddir/O.3.14.12.5_eldk56-e500v2/EMU_CALCULS.o b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_CALCULS.o new file mode 100644 index 0000000000000000000000000000000000000000..486ca7c0070e9161bd1084df47d0370be89fc867 GIT binary patch literal 5744 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 Gx&H!sj2+bg literal 0 HcmV?d00001 diff --git a/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-CHECKBRAKE.c b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-CHECKBRAKE.c new file mode 100644 index 0000000..61f7985 --- /dev/null +++ b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-CHECKBRAKE.c @@ -0,0 +1,339 @@ +/* Generated with snc from EMU_MTR-CHECKBRAKE.i */ + +/* Program "checkMTRBrake" */ +#include <string.h> +#include <stddef.h> +#include <stdio.h> +#include <limits.h> +#include "epicsTypes.h" +#include "seqCom.h" + +/* Variable declarations */ +# line 13 "../.././src/EMU_MTR-CHECKBRAKE.st" +static short ErrorBrakeMtrGet = 0; +# line 19 "../.././src/EMU_MTR-CHECKBRAKE.st" +static short statusMTRMov = 0; +# line 23 "../.././src/EMU_MTR-CHECKBRAKE.st" +static short ErrorBrakeMtrSet = 0; +# line 27 "../.././src/EMU_MTR-CHECKBRAKE.st" +static short brakeMtrCMD = 0; +# line 31 "../.././src/EMU_MTR-CHECKBRAKE.st" +static short brakeMtrGET = 0; +# line 37 "../.././src/EMU_MTR-CHECKBRAKE.st" +static short AbortscanMtrCMD = 0; +# line 41 "../.././src/EMU_MTR-CHECKBRAKE.st" +static short countErrors = 0; + +/* C code definitions */ +# line 8 "../.././src/EMU_MTR-CHECKBRAKE.st" +#include <stdio.h> +# line 9 "../.././src/EMU_MTR-CHECKBRAKE.st" +#include <string.h> +# line 10 "../.././src/EMU_MTR-CHECKBRAKE.st" +#include <stdlib.h> + +/* Program init func */ +static void G_prog_init(struct UserVar *pVar) +{ +} + +/****** Code for state "init" in state set "ss1" ******/ + +/* Delay function for state "init" in state set "ss1" */ +static void D_ss1_0_init(SS_ID ssId, struct UserVar *pVar) +{ +# line 46 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_delayInit(ssId, 0, (1.0)); +} + +/* Event function for state "init" in state set "ss1" */ +static seqBool E_ss1_0_init(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 46 "../.././src/EMU_MTR-CHECKBRAKE.st" + if (seq_delay(ssId, 0) && (seq_pvConnectCount(ssId) == seq_pvChannelCount(ssId))) + { + *pNextState = 1; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "init" in state set "ss1" */ +static void A_ss1_0_init(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 48 "../.././src/EMU_MTR-CHECKBRAKE.st" + printf("\nWAIT\n"); +# line 49 "../.././src/EMU_MTR-CHECKBRAKE.st" + ErrorBrakeMtrSet = 0; +# line 50 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_pvPut(ssId, 2/*ErrorBrakeMtrSet*/, 0); + } + return; + } +} + +/****** Code for state "waiting" in state set "ss1" ******/ + +/* Delay function for state "waiting" in state set "ss1" */ +static void D_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar) +{ +# line 56 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_delayInit(ssId, 0, (0.1)); +} + +/* Event function for state "waiting" in state set "ss1" */ +static seqBool E_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 56 "../.././src/EMU_MTR-CHECKBRAKE.st" + if (seq_efTestAndClear(ssId, 1/*ErrorBrakeMtrEvent*/) && (ErrorBrakeMtrGet == 1) && (seq_delay(ssId, 0))) + { + *pNextState = 2; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "waiting" in state set "ss1" */ +static void A_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 58 "../.././src/EMU_MTR-CHECKBRAKE.st" + printf("\nERRROR CURRENT : BRAKE OFF \n"); +# line 59 "../.././src/EMU_MTR-CHECKBRAKE.st" + brakeMtrCMD = 1; +# line 60 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_pvPut(ssId, 3/*brakeMtrCMD*/, 0); +# line 61 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_delay(ssId, 0); +# line 62 "../.././src/EMU_MTR-CHECKBRAKE.st" + ErrorBrakeMtrSet = 0; +# line 63 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_pvPut(ssId, 2/*ErrorBrakeMtrSet*/, 0); + } + return; + } +} + +/****** Code for state "count" in state set "ss1" ******/ + +/* Delay function for state "count" in state set "ss1" */ +static void D_ss1_0_count(SS_ID ssId, struct UserVar *pVar) +{ +# line 74 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_delayInit(ssId, 0, (1.0)); +# line 80 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_delayInit(ssId, 1, (1.0)); +} + +/* Event function for state "count" in state set "ss1" */ +static seqBool E_ss1_0_count(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 69 "../.././src/EMU_MTR-CHECKBRAKE.st" + if (countErrors > 3) + { + *pNextState = 3; + *pTransNum = 0; + return TRUE; + } +# line 74 "../.././src/EMU_MTR-CHECKBRAKE.st" + if ((seq_delay(ssId, 0)) && (statusMTRMov == 1)) + { + *pNextState = 1; + *pTransNum = 1; + return TRUE; + } +# line 80 "../.././src/EMU_MTR-CHECKBRAKE.st" + if ((seq_delay(ssId, 1)) && (statusMTRMov == 0)) + { + *pNextState = 1; + *pTransNum = 2; + return TRUE; + } + return FALSE; +} + +/* Action function for state "count" in state set "ss1" */ +static void A_ss1_0_count(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 71 "../.././src/EMU_MTR-CHECKBRAKE.st" + printf("\nERRROR CURRENT : STOP MEASURE \n"); + } + return; + case 1: + { +# line 76 "../.././src/EMU_MTR-CHECKBRAKE.st" + printf("\nERRROR CURRENT : PROBLEM SOLVED \n"); +# line 77 "../.././src/EMU_MTR-CHECKBRAKE.st" + countErrors = 0; + } + return; + case 2: + { +# line 82 "../.././src/EMU_MTR-CHECKBRAKE.st" + countErrors = countErrors + 1; + } + return; + } +} + +/****** Code for state "stopMeasure" in state set "ss1" ******/ + +/* Delay function for state "stopMeasure" in state set "ss1" */ +static void D_ss1_0_stopMeasure(SS_ID ssId, struct UserVar *pVar) +{ +# line 89 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_delayInit(ssId, 0, (1.0)); +} + +/* Event function for state "stopMeasure" in state set "ss1" */ +static seqBool E_ss1_0_stopMeasure(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 89 "../.././src/EMU_MTR-CHECKBRAKE.st" + if (seq_delay(ssId, 0)) + { + *pNextState = 1; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "stopMeasure" in state set "ss1" */ +static void A_ss1_0_stopMeasure(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 90 "../.././src/EMU_MTR-CHECKBRAKE.st" + printf("\n ABORT\n"); +# line 91 "../.././src/EMU_MTR-CHECKBRAKE.st" + AbortscanMtrCMD = 1; +# line 92 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_pvPut(ssId, 5/*AbortscanMtrCMD*/, 0); +# line 93 "../.././src/EMU_MTR-CHECKBRAKE.st" + countErrors = 0; + } + return; + } +} + +/************************ Tables ************************/ + +/* Channel table */ +static seqChan G_channels[] = { + /* chName, offset, varName, varType, count, eventNum, efId, monitored, queueSize, queueIndex */ + {"{PREFIX}:PBI-EM:CURRENT_ERR_GET", (size_t)&ErrorBrakeMtrGet, "ErrorBrakeMtrGet", "short", 1, 3, 1, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}.MOVN", (size_t)&statusMTRMov, "statusMTRMov", "short", 1, 4, 0, 1, 0, 0}, + {"{PREFIX}:PBI-EM:CURRENT_ERR_SET", (size_t)&ErrorBrakeMtrSet, "ErrorBrakeMtrSet", "short", 1, 5, 0, 1, 0, 0}, + {"{PREFIX}:PBI-EM:VER-BRAKE_SET", (size_t)&brakeMtrCMD, "brakeMtrCMD", "short", 1, 6, 0, 1, 0, 0}, + {"{PREFIX}:PBI-EM:VER-BRAKE_GET", (size_t)&brakeMtrGET, "brakeMtrGET", "short", 1, 7, 2, 1, 0, 0}, + {"{DEVICE}:MTR-ABORT.PROC", (size_t)&AbortscanMtrCMD, "AbortscanMtrCMD", "short", 1, 8, 0, 1, 0, 0} +}; + +/* Event masks for state set "ss1" */ +static const seqMask EM_ss1_0_init[] = { + 0x00000000, +}; +static const seqMask EM_ss1_0_waiting[] = { + 0x0000000a, +}; +static const seqMask EM_ss1_0_count[] = { + 0x00000010, +}; +static const seqMask EM_ss1_0_stopMeasure[] = { + 0x00000000, +}; + +/* State table for state set "ss1" */ +static seqState G_ss1_states[] = { + { + /* state name */ "init", + /* action function */ A_ss1_0_init, + /* event function */ E_ss1_0_init, + /* delay function */ D_ss1_0_init, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_init, + /* state options */ (0) + }, + { + /* state name */ "waiting", + /* action function */ A_ss1_0_waiting, + /* event function */ E_ss1_0_waiting, + /* delay function */ D_ss1_0_waiting, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_waiting, + /* state options */ (0) + }, + { + /* state name */ "count", + /* action function */ A_ss1_0_count, + /* event function */ E_ss1_0_count, + /* delay function */ D_ss1_0_count, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_count, + /* state options */ (0) + }, + { + /* state name */ "stopMeasure", + /* action function */ A_ss1_0_stopMeasure, + /* event function */ E_ss1_0_stopMeasure, + /* delay function */ D_ss1_0_stopMeasure, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_stopMeasure, + /* state options */ (0) + }, +}; + +/* State set table */ +static seqSS G_state_sets[] = { + { + /* state set name */ "ss1", + /* states */ G_ss1_states, + /* number of states */ 4, + /* number of delays */ 2 + }, +}; + +/* Program table (global) */ +seqProgram checkMTRBrake = { + /* magic number */ 2001010, + /* program name */ "checkMTRBrake", + /* channels */ G_channels, + /* num. channels */ 6, + /* state sets */ G_state_sets, + /* num. state sets */ 1, + /* user var size */ 0, + /* param */ "", + /* num. event flags */ 2, + /* encoded options */ (0 | OPT_CONN | OPT_NEWEF), + /* init func */ G_prog_init, + /* entry func */ NULL, + /* exit func */ NULL, + /* num. queues */ 0 +}; + +/* Register sequencer commands and program */ +#include "epicsExport.h" +static void checkMTRBrakeRegistrar (void) { + seqRegisterSequencerCommands(); + seqRegisterSequencerProgram (&checkMTRBrake); +} +epicsExportRegistrar(checkMTRBrakeRegistrar); diff --git a/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-CHECKBRAKE.d b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-CHECKBRAKE.d new file mode 100644 index 0000000..5cff764 --- /dev/null +++ b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-CHECKBRAKE.d @@ -0,0 +1,14 @@ +EMU_MTR-CHECKBRAKE.o: EMU_MTR-CHECKBRAKE.c \ + /opt/epics/bases/base-3.14.12.5/include/epicsTypes.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h \ + /opt/epics/modules/seq/2.1.10/3.14.12.5/include/seqCom.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h \ + /opt/epics/modules/seq/2.1.10/3.14.12.5/include/pvAlarm.h \ + /opt/epics/modules/seq/2.1.10/3.14.12.5/include/pvType.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTime.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTypes.h \ + /opt/epics/bases/base-3.14.12.5/include/os/Linux/osdTime.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsThread.h \ + /opt/epics/bases/base-3.14.12.5/include/os/Linux/osdThread.h \ + /opt/epics/modules/seq/2.1.10/3.14.12.5/include/seq_release.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsExport.h diff --git a/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-CHECKBRAKE.dc b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-CHECKBRAKE.dc new file mode 100644 index 0000000..2cde58d --- /dev/null +++ b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-CHECKBRAKE.dc @@ -0,0 +1,48 @@ +EMU_MTR-CHECKBRAKE.o: EMU_MTR-CHECKBRAKE.c \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/stdc-predef.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/string.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/features.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/sys/cdefs.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/wordsize.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/gnu/stubs.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/gnu/stubs-32.h \ + /opt/eldk-5.6/ifc1210/sysroots/i686-eldk-linux/usr/lib/powerpc-linux-gnuspe/gcc/powerpc-linux-gnuspe/4.8.2/include/stddef.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/xlocale.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/stdio.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/types.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/typesizes.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/libio.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/_G_config.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/wchar.h \ + /opt/eldk-5.6/ifc1210/sysroots/i686-eldk-linux/usr/lib/powerpc-linux-gnuspe/gcc/powerpc-linux-gnuspe/4.8.2/include/stdarg.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/stdio_lim.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/sys_errlist.h \ + /opt/eldk-5.6/ifc1210/sysroots/i686-eldk-linux/usr/lib/powerpc-linux-gnuspe/gcc/powerpc-linux-gnuspe/4.8.2/include-fixed/limits.h \ + /opt/eldk-5.6/ifc1210/sysroots/i686-eldk-linux/usr/lib/powerpc-linux-gnuspe/gcc/powerpc-linux-gnuspe/4.8.2/include-fixed/syslimits.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/limits.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/posix1_lim.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/local_lim.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/linux/limits.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/posix2_lim.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/xopen_lim.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTypes.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h seqCom.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/stdlib.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/waitflags.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/waitstatus.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/endian.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/endian.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/byteswap.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/byteswap-16.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/sys/types.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/time.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/sys/select.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/select.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/sigset.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/time.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/sys/sysmacros.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/pthreadtypes.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/alloca.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/stdlib-float.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsExport.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h diff --git a/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-CHECKBRAKE.i b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-CHECKBRAKE.i new file mode 100644 index 0000000..3ec36e0 --- /dev/null +++ b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-CHECKBRAKE.i @@ -0,0 +1,102 @@ +# 1 "../.././src/EMU_MTR-CHECKBRAKE.st" +# 1 "<command-line>" +# 1 "/opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/stdc-predef.h" 1 3 4 +# 1 "<command-line>" 2 +# 1 "../.././src/EMU_MTR-CHECKBRAKE.st" + + + + + +program checkMTRBrake + +%%#include <stdio.h> +%%#include <string.h> +%%#include <stdlib.h> + + +short ErrorBrakeMtrGet; +assign ErrorBrakeMtrGet to "{PREFIX}:PBI-EM:CURRENT_ERR_GET"; +monitor ErrorBrakeMtrGet; +evflag ErrorBrakeMtrEvent; +sync ErrorBrakeMtrGet ErrorBrakeMtrEvent; + +short statusMTRMov; +assign statusMTRMov to "{PMACPREFIX}:{MOTOR_NAME1}.MOVN"; +monitor statusMTRMov; + +short ErrorBrakeMtrSet; +assign ErrorBrakeMtrSet to "{PREFIX}:PBI-EM:CURRENT_ERR_SET"; +monitor ErrorBrakeMtrSet; + +short brakeMtrCMD; +assign brakeMtrCMD to "{PREFIX}:PBI-EM:VER-BRAKE_SET"; +monitor brakeMtrCMD; + +short brakeMtrGET; +assign brakeMtrGET to "{PREFIX}:PBI-EM:VER-BRAKE_GET"; +monitor brakeMtrGET; +evflag brakeMtrGETEvent; +sync brakeMtrGET brakeMtrGETEvent; + +short AbortscanMtrCMD; +assign AbortscanMtrCMD to "{DEVICE}:MTR-ABORT.PROC"; +monitor AbortscanMtrCMD; + +short countErrors=0; + +ss ss1 +{ + state init { + when (delay(1.0) && (pvConnectCount() == pvChannelCount())) + { + printf("\nWAIT\n"); + ErrorBrakeMtrSet=0; + pvPut(ErrorBrakeMtrSet); + } state waiting + } + + state waiting + { + when(efTestAndClear(ErrorBrakeMtrEvent)&&(ErrorBrakeMtrGet==1)&&(delay(0.1))) + { + printf("\nERRROR CURRENT : BRAKE OFF \n"); + brakeMtrCMD=1; + pvPut(brakeMtrCMD); + delay(1); + ErrorBrakeMtrSet=0; + pvPut(ErrorBrakeMtrSet); + }state count + } + + state count + { + when(countErrors>3) + { + printf("\nERRROR CURRENT : STOP MEASURE \n"); + }state stopMeasure + + when((delay(1.0)) && (statusMTRMov==1)) + { + printf("\nERRROR CURRENT : PROBLEM SOLVED \n"); + countErrors=0; + }state waiting + + when((delay(1.0)) && (statusMTRMov==0)) + { + countErrors=countErrors+1; + }state waiting + } + + + state stopMeasure + { + when(delay(1.0)){ + printf("\n ABORT\n"); + AbortscanMtrCMD=1; + pvPut(AbortscanMtrCMD); + countErrors=0; + }state waiting + } + +} diff --git a/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-CHECKBRAKE.o b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-CHECKBRAKE.o new file mode 100644 index 0000000000000000000000000000000000000000..66aec5b2d7560113d9321a05843e9a9203884340 GIT binary patch literal 6752 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 literal 0 HcmV?d00001 diff --git a/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-CHECKBRAKE_snl.dbd b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-CHECKBRAKE_snl.dbd new file mode 100644 index 0000000..d71c5ef --- /dev/null +++ b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-CHECKBRAKE_snl.dbd @@ -0,0 +1 @@ +registrar (checkMTRBrakeRegistrar) diff --git a/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-HOME_AUTO.c b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-HOME_AUTO.c new file mode 100644 index 0000000..0b2209c --- /dev/null +++ b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-HOME_AUTO.c @@ -0,0 +1,394 @@ +/* Generated with snc from EMU_MTR-HOME_AUTO.i */ + +/* Program "homeMtrAuto" */ +#include <string.h> +#include <stddef.h> +#include <stdio.h> +#include <limits.h> +#include "epicsTypes.h" +#include "seqCom.h" + +/* Variable declarations */ +# line 13 "../.././src/EMU_MTR-HOME_AUTO.st" +static short HOMCPTFLAG = 0; +# line 17 "../.././src/EMU_MTR-HOME_AUTO.st" +static short statusMTRMov = 0; +# line 21 "../.././src/EMU_MTR-HOME_AUTO.st" +static short mtrPlaced = 0; +# line 27 "../.././src/EMU_MTR-HOME_AUTO.st" +static short mtrStop = 0; +# line 31 "../.././src/EMU_MTR-HOME_AUTO.st" +static short homeCMD = 0; +# line 35 "../.././src/EMU_MTR-HOME_AUTO.st" +static short mtrPosCons = 0; +# line 39 "../.././src/EMU_MTR-HOME_AUTO.st" +static short brakeMtrCMD = 0; +# line 43 "../.././src/EMU_MTR-HOME_AUTO.st" +static short brakeMtrGET = 0; +# line 50 "../.././src/EMU_MTR-HOME_AUTO.st" +static short scanPS_Sts = 0; +# line 55 "../.././src/EMU_MTR-HOME_AUTO.st" +static short scanMTR_Sts = 0; +# line 61 "../.././src/EMU_MTR-HOME_AUTO.st" +static short homeSTART = 0; +# line 68 "../.././src/EMU_MTR-HOME_AUTO.st" +static short plimSTATUS = 0; + +/* C code definitions */ +# line 8 "../.././src/EMU_MTR-HOME_AUTO.st" +#include <stdio.h> +# line 9 "../.././src/EMU_MTR-HOME_AUTO.st" +#include <string.h> +# line 10 "../.././src/EMU_MTR-HOME_AUTO.st" +#include <stdlib.h> + +/* Program init func */ +static void G_prog_init(struct UserVar *pVar) +{ +} + +/****** Code for state "init" in state set "ss1" ******/ + +/* Delay function for state "init" in state set "ss1" */ +static void D_ss1_0_init(SS_ID ssId, struct UserVar *pVar) +{ +# line 77 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_delayInit(ssId, 0, (1.0)); +} + +/* Event function for state "init" in state set "ss1" */ +static seqBool E_ss1_0_init(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 77 "../.././src/EMU_MTR-HOME_AUTO.st" + if (seq_delay(ssId, 0) && (seq_pvConnectCount(ssId) == seq_pvChannelCount(ssId))) + { + *pNextState = 1; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "init" in state set "ss1" */ +static void A_ss1_0_init(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 79 "../.././src/EMU_MTR-HOME_AUTO.st" + homeSTART = 0; +# line 80 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 10/*homeSTART*/, 0); +# line 81 "../.././src/EMU_MTR-HOME_AUTO.st" + printf("\nWAIT\n"); + } + return; + } +} + +/****** Code for state "waiting" in state set "ss1" ******/ + +/* Delay function for state "waiting" in state set "ss1" */ +static void D_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar) +{ +} + +/* Event function for state "waiting" in state set "ss1" */ +static seqBool E_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 87 "../.././src/EMU_MTR-HOME_AUTO.st" + if (seq_efTestAndClear(ssId, 3/*homeSTARTEvent*/) && (homeSTART == 1) && (plimSTATUS == 0)) + { + *pNextState = 2; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "waiting" in state set "ss1" */ +static void A_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 89 "../.././src/EMU_MTR-HOME_AUTO.st" + printf("\nSTART HOME PROCEDURE\n"); + } + return; + } +} + +/****** Code for state "startHOME" in state set "ss1" ******/ + +/* Delay function for state "startHOME" in state set "ss1" */ +static void D_ss1_0_startHOME(SS_ID ssId, struct UserVar *pVar) +{ +# line 96 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_delayInit(ssId, 0, (1.0)); +} + +/* Event function for state "startHOME" in state set "ss1" */ +static seqBool E_ss1_0_startHOME(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 96 "../.././src/EMU_MTR-HOME_AUTO.st" + if ((scanPS_Sts == 0) && (scanMTR_Sts == 0) && (statusMTRMov == 0) && (seq_delay(ssId, 0))) + { + *pNextState = 3; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "startHOME" in state set "ss1" */ +static void A_ss1_0_startHOME(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 97 "../.././src/EMU_MTR-HOME_AUTO.st" + printf("\n GO HOME\n"); +# line 98 "../.././src/EMU_MTR-HOME_AUTO.st" + brakeMtrCMD = 1; +# line 99 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 6/*brakeMtrCMD*/, 0); +# line 100 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_delay(ssId, 0); +# line 101 "../.././src/EMU_MTR-HOME_AUTO.st" + HOMCPTFLAG = 1; +# line 102 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 0/*HOMCPTFLAG*/, 0); +# line 103 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_delay(ssId, 0); +# line 104 "../.././src/EMU_MTR-HOME_AUTO.st" + homeCMD = 1; +# line 105 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 4/*homeCMD*/, 0); + } + return; + } +} + +/****** Code for state "limitON" in state set "ss1" ******/ + +/* Delay function for state "limitON" in state set "ss1" */ +static void D_ss1_0_limitON(SS_ID ssId, struct UserVar *pVar) +{ +} + +/* Event function for state "limitON" in state set "ss1" */ +static seqBool E_ss1_0_limitON(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 111 "../.././src/EMU_MTR-HOME_AUTO.st" + if (seq_efTestAndClear(ssId, 4/*plimSTATUSEvent*/) && (plimSTATUS == 1)) + { + *pNextState = 4; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "limitON" in state set "ss1" */ +static void A_ss1_0_limitON(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 113 "../.././src/EMU_MTR-HOME_AUTO.st" + printf("\nLIMIT HIGH\n"); +# line 114 "../.././src/EMU_MTR-HOME_AUTO.st" + HOMCPTFLAG = 0; +# line 115 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 0/*HOMCPTFLAG*/, 0); + } + return; + } +} + +/****** Code for state "breakON" in state set "ss1" ******/ + +/* Delay function for state "breakON" in state set "ss1" */ +static void D_ss1_0_breakON(SS_ID ssId, struct UserVar *pVar) +{ +# line 121 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_delayInit(ssId, 0, (1.0)); +} + +/* Event function for state "breakON" in state set "ss1" */ +static seqBool E_ss1_0_breakON(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 121 "../.././src/EMU_MTR-HOME_AUTO.st" + if (seq_delay(ssId, 0)) + { + *pNextState = 0; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "breakON" in state set "ss1" */ +static void A_ss1_0_breakON(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 123 "../.././src/EMU_MTR-HOME_AUTO.st" + printf("\nINIT POSITION\n"); +# line 124 "../.././src/EMU_MTR-HOME_AUTO.st" + HOMCPTFLAG = 0; +# line 125 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 0/*HOMCPTFLAG*/, 0); +# line 126 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_delay(ssId, 0); +# line 127 "../.././src/EMU_MTR-HOME_AUTO.st" + printf("\nBRAKE ON\n"); +# line 128 "../.././src/EMU_MTR-HOME_AUTO.st" + homeCMD = 1; +# line 129 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 4/*homeCMD*/, 0); +# line 130 "../.././src/EMU_MTR-HOME_AUTO.st" + homeSTART = 0; +# line 131 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 10/*homeSTART*/, 0); +# line 132 "../.././src/EMU_MTR-HOME_AUTO.st" + brakeMtrCMD = 0; +# line 133 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 6/*brakeMtrCMD*/, 0); + } + return; + } +} + +/************************ Tables ************************/ + +/* Channel table */ +static seqChan G_channels[] = { + /* chName, offset, varName, varType, count, eventNum, efId, monitored, queueSize, queueIndex */ + {"{PMACPREFIX}:{MOTOR_NAME1}-HOMCPTFLAG", (size_t)&HOMCPTFLAG, "HOMCPTFLAG", "short", 1, 5, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}.MOVN", (size_t)&statusMTRMov, "statusMTRMov", "short", 1, 6, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}-AXISSTS", (size_t)&mtrPlaced, "mtrPlaced", "short", 1, 7, 1, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}.SPMG", (size_t)&mtrStop, "mtrStop", "short", 1, 8, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}-HOMCMD", (size_t)&homeCMD, "homeCMD", "short", 1, 9, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}", (size_t)&mtrPosCons, "mtrPosCons", "short", 1, 10, 0, 1, 0, 0}, + {"{PREFIX}:PBI-EM:VER-BRAKE_SET", (size_t)&brakeMtrCMD, "brakeMtrCMD", "short", 1, 11, 0, 1, 0, 0}, + {"{PREFIX}:PBI-EM:VER-BRAKE_GET", (size_t)&brakeMtrGET, "brakeMtrGET", "short", 1, 12, 2, 1, 0, 0}, + {"{DEVICE}:PS.BUSY", (size_t)&scanPS_Sts, "scanPS_Sts", "short", 1, 13, 0, 1, 0, 0}, + {"{DEVICE}:MTR.BUSY", (size_t)&scanMTR_Sts, "scanMTR_Sts", "short", 1, 14, 0, 1, 0, 0}, + {"{DEVICE}:PROC-AUTO-HOME", (size_t)&homeSTART, "homeSTART", "short", 1, 15, 3, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}-PENDLSTS", (size_t)&plimSTATUS, "plimSTATUS", "short", 1, 16, 4, 1, 0, 0} +}; + +/* Event masks for state set "ss1" */ +static const seqMask EM_ss1_0_init[] = { + 0x00000000, +}; +static const seqMask EM_ss1_0_waiting[] = { + 0x00018008, +}; +static const seqMask EM_ss1_0_startHOME[] = { + 0x00006040, +}; +static const seqMask EM_ss1_0_limitON[] = { + 0x00010010, +}; +static const seqMask EM_ss1_0_breakON[] = { + 0x00000000, +}; + +/* State table for state set "ss1" */ +static seqState G_ss1_states[] = { + { + /* state name */ "init", + /* action function */ A_ss1_0_init, + /* event function */ E_ss1_0_init, + /* delay function */ D_ss1_0_init, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_init, + /* state options */ (0) + }, + { + /* state name */ "waiting", + /* action function */ A_ss1_0_waiting, + /* event function */ E_ss1_0_waiting, + /* delay function */ D_ss1_0_waiting, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_waiting, + /* state options */ (0) + }, + { + /* state name */ "startHOME", + /* action function */ A_ss1_0_startHOME, + /* event function */ E_ss1_0_startHOME, + /* delay function */ D_ss1_0_startHOME, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_startHOME, + /* state options */ (0) + }, + { + /* state name */ "limitON", + /* action function */ A_ss1_0_limitON, + /* event function */ E_ss1_0_limitON, + /* delay function */ D_ss1_0_limitON, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_limitON, + /* state options */ (0) + }, + { + /* state name */ "breakON", + /* action function */ A_ss1_0_breakON, + /* event function */ E_ss1_0_breakON, + /* delay function */ D_ss1_0_breakON, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_breakON, + /* state options */ (0) + }, +}; + +/* State set table */ +static seqSS G_state_sets[] = { + { + /* state set name */ "ss1", + /* states */ G_ss1_states, + /* number of states */ 5, + /* number of delays */ 1 + }, +}; + +/* Program table (global) */ +seqProgram homeMtrAuto = { + /* magic number */ 2001010, + /* program name */ "homeMtrAuto", + /* channels */ G_channels, + /* num. channels */ 12, + /* state sets */ G_state_sets, + /* num. state sets */ 1, + /* user var size */ 0, + /* param */ "", + /* num. event flags */ 4, + /* encoded options */ (0 | OPT_CONN | OPT_NEWEF), + /* init func */ G_prog_init, + /* entry func */ NULL, + /* exit func */ NULL, + /* num. queues */ 0 +}; + +/* Register sequencer commands and program */ +#include "epicsExport.h" +static void homeMtrAutoRegistrar (void) { + seqRegisterSequencerCommands(); + seqRegisterSequencerProgram (&homeMtrAuto); +} +epicsExportRegistrar(homeMtrAutoRegistrar); diff --git a/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-HOME_AUTO.d b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-HOME_AUTO.d new file mode 100644 index 0000000..8f7967a --- /dev/null +++ b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-HOME_AUTO.d @@ -0,0 +1,14 @@ +EMU_MTR-HOME_AUTO.o: EMU_MTR-HOME_AUTO.c \ + /opt/epics/bases/base-3.14.12.5/include/epicsTypes.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h \ + /opt/epics/modules/seq/2.1.10/3.14.12.5/include/seqCom.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h \ + /opt/epics/modules/seq/2.1.10/3.14.12.5/include/pvAlarm.h \ + /opt/epics/modules/seq/2.1.10/3.14.12.5/include/pvType.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTime.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTypes.h \ + /opt/epics/bases/base-3.14.12.5/include/os/Linux/osdTime.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsThread.h \ + /opt/epics/bases/base-3.14.12.5/include/os/Linux/osdThread.h \ + /opt/epics/modules/seq/2.1.10/3.14.12.5/include/seq_release.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsExport.h diff --git a/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-HOME_AUTO.dc b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-HOME_AUTO.dc new file mode 100644 index 0000000..d75e436 --- /dev/null +++ b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-HOME_AUTO.dc @@ -0,0 +1,48 @@ +EMU_MTR-HOME_AUTO.o: EMU_MTR-HOME_AUTO.c \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/stdc-predef.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/string.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/features.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/sys/cdefs.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/wordsize.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/gnu/stubs.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/gnu/stubs-32.h \ + /opt/eldk-5.6/ifc1210/sysroots/i686-eldk-linux/usr/lib/powerpc-linux-gnuspe/gcc/powerpc-linux-gnuspe/4.8.2/include/stddef.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/xlocale.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/stdio.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/types.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/typesizes.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/libio.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/_G_config.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/wchar.h \ + /opt/eldk-5.6/ifc1210/sysroots/i686-eldk-linux/usr/lib/powerpc-linux-gnuspe/gcc/powerpc-linux-gnuspe/4.8.2/include/stdarg.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/stdio_lim.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/sys_errlist.h \ + /opt/eldk-5.6/ifc1210/sysroots/i686-eldk-linux/usr/lib/powerpc-linux-gnuspe/gcc/powerpc-linux-gnuspe/4.8.2/include-fixed/limits.h \ + /opt/eldk-5.6/ifc1210/sysroots/i686-eldk-linux/usr/lib/powerpc-linux-gnuspe/gcc/powerpc-linux-gnuspe/4.8.2/include-fixed/syslimits.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/limits.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/posix1_lim.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/local_lim.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/linux/limits.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/posix2_lim.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/xopen_lim.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTypes.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h seqCom.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/stdlib.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/waitflags.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/waitstatus.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/endian.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/endian.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/byteswap.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/byteswap-16.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/sys/types.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/time.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/sys/select.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/select.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/sigset.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/time.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/sys/sysmacros.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/pthreadtypes.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/alloca.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/stdlib-float.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsExport.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h diff --git a/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-HOME_AUTO.i b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-HOME_AUTO.i new file mode 100644 index 0000000..79348df --- /dev/null +++ b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-HOME_AUTO.i @@ -0,0 +1,142 @@ +# 1 "../.././src/EMU_MTR-HOME_AUTO.st" +# 1 "<command-line>" +# 1 "/opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/stdc-predef.h" 1 3 4 +# 1 "<command-line>" 2 +# 1 "../.././src/EMU_MTR-HOME_AUTO.st" + + + + + +program homeMtrAuto + +%%#include <stdio.h> +%%#include <string.h> +%%#include <stdlib.h> + + +short HOMCPTFLAG; +assign HOMCPTFLAG to "{PMACPREFIX}:{MOTOR_NAME1}-HOMCPTFLAG"; +monitor HOMCPTFLAG; + +short statusMTRMov; +assign statusMTRMov to "{PMACPREFIX}:{MOTOR_NAME1}.MOVN"; +monitor statusMTRMov; + +short mtrPlaced; +assign mtrPlaced to "{PMACPREFIX}:{MOTOR_NAME1}-AXISSTS"; +monitor mtrPlaced; +evflag mtrPlacedEvent; +sync mtrPlaced mtrPlacedEvent; + +short mtrStop; +assign mtrStop to "{PMACPREFIX}:{MOTOR_NAME1}.SPMG"; +monitor mtrStop; + +short homeCMD; +assign homeCMD to "{PMACPREFIX}:{MOTOR_NAME1}-HOMCMD"; +monitor homeCMD; + +short mtrPosCons; +assign mtrPosCons to "{PMACPREFIX}:{MOTOR_NAME1}"; +monitor mtrPosCons; + +short brakeMtrCMD; +assign brakeMtrCMD to "{PREFIX}:PBI-EM:VER-BRAKE_SET"; +monitor brakeMtrCMD; + +short brakeMtrGET; +assign brakeMtrGET to "{PREFIX}:PBI-EM:VER-BRAKE_GET"; +monitor brakeMtrGET; +evflag brakeMtrGETEvent; +sync brakeMtrGET brakeMtrGETEvent; + + +short scanPS_Sts; +assign scanPS_Sts to "{DEVICE}:PS.BUSY"; +monitor scanPS_Sts; + + +short scanMTR_Sts; +assign scanMTR_Sts to "{DEVICE}:MTR.BUSY"; +monitor scanMTR_Sts; + + + +short homeSTART; +assign homeSTART to "{DEVICE}:PROC-AUTO-HOME"; +monitor homeSTART; +evflag homeSTARTEvent; +sync homeSTART homeSTARTEvent; + + +short plimSTATUS; +assign plimSTATUS to "{PMACPREFIX}:{MOTOR_NAME1}-PENDLSTS"; +monitor plimSTATUS; +evflag plimSTATUSEvent; +sync plimSTATUS plimSTATUSEvent; + +ss ss1 +{ + state init { + when (delay(1.0) && (pvConnectCount() == pvChannelCount())) + { + homeSTART=0; + pvPut(homeSTART); + printf("\nWAIT\n"); + } state waiting + } + + state waiting + { + when(efTestAndClear(homeSTARTEvent)&&(homeSTART==1)&&(plimSTATUS==0)) + { + printf("\nSTART HOME PROCEDURE\n"); + }state startHOME + } + + + state startHOME + { + when((scanPS_Sts==0) && (scanMTR_Sts==0) && (statusMTRMov==0) && (delay(1.0))){ + printf("\n GO HOME\n"); + brakeMtrCMD=1; + pvPut(brakeMtrCMD); + delay(1); + HOMCPTFLAG=1; + pvPut(HOMCPTFLAG); + delay(1); + homeCMD=1; + pvPut(homeCMD); + }state limitON + } + + state limitON + { + when(efTestAndClear(plimSTATUSEvent)&&(plimSTATUS==1)) + { + printf("\nLIMIT HIGH\n"); + HOMCPTFLAG=0; + pvPut(HOMCPTFLAG); + }state breakON + } + + state breakON + { + when(delay(1.0)) + { + printf("\nINIT POSITION\n"); + HOMCPTFLAG=0; + pvPut(HOMCPTFLAG); + delay(1); + printf("\nBRAKE ON\n"); + homeCMD=1; + pvPut(homeCMD); + homeSTART=0; + pvPut(homeSTART); + brakeMtrCMD=0; + pvPut(brakeMtrCMD); + }state init + } + +} diff --git a/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-HOME_AUTO.o b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-HOME_AUTO.o new file mode 100644 index 0000000000000000000000000000000000000000..758fd68e93de489bf2f3b4fe122545edc96af3c8 GIT binary patch literal 7928 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 boU#Wm0@rE`Slqw6f!Crv7lSUczpnfr+>{5! literal 0 HcmV?d00001 diff --git a/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-HOME_AUTO_snl.dbd b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-HOME_AUTO_snl.dbd new file mode 100644 index 0000000..1386530 --- /dev/null +++ b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-HOME_AUTO_snl.dbd @@ -0,0 +1 @@ +registrar (homeMtrAutoRegistrar) diff --git a/builddir/O.3.14.12.5_eldk56-e500v2/EMU_REPORT_FILE.d b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_REPORT_FILE.d new file mode 100644 index 0000000..3655c14 --- /dev/null +++ b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_REPORT_FILE.d @@ -0,0 +1,15 @@ +EMU_REPORT_FILE.o: ../.././src/EMU_REPORT_FILE.c \ + /opt/epics/bases/base-3.14.12.5/include/aSubRecord.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTypes.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h \ + /opt/epics/bases/base-3.14.12.5/include/link.h \ + /opt/epics/bases/base-3.14.12.5/include/dbDefs.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsMutex.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsAssert.h \ + /opt/epics/bases/base-3.14.12.5/include/os/Linux/osdMutex.h \ + /opt/epics/bases/base-3.14.12.5/include/ellLib.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTime.h \ + /opt/epics/bases/base-3.14.12.5/include/os/Linux/osdTime.h \ + /opt/epics/bases/base-3.14.12.5/include/registryFunction.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsExport.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h diff --git a/builddir/O.3.14.12.5_eldk56-e500v2/EMU_REPORT_FILE.dc b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_REPORT_FILE.dc new file mode 100644 index 0000000..24f2ef9 --- /dev/null +++ b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_REPORT_FILE.dc @@ -0,0 +1,59 @@ +EMU_REPORT_FILE.o: ../.././src/EMU_REPORT_FILE.c \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/stdc-predef.h \ + /opt/epics/bases/base-3.14.12.5/include/aSubRecord.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTypes.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h \ + /opt/epics/bases/base-3.14.12.5/include/link.h \ + /opt/epics/bases/base-3.14.12.5/include/dbDefs.h \ + /opt/eldk-5.6/ifc1210/sysroots/i686-eldk-linux/usr/lib/powerpc-linux-gnuspe/gcc/powerpc-linux-gnuspe/4.8.2/include/stddef.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsMutex.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsAssert.h \ + /opt/epics/bases/base-3.14.12.5/include/os/Linux/osdMutex.h \ + /opt/epics/bases/base-3.14.12.5/include/ellLib.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTime.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/time.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/features.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/sys/cdefs.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/wordsize.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/gnu/stubs.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/gnu/stubs-32.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/time.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/types.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/typesizes.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/timex.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/xlocale.h \ + /opt/epics/bases/base-3.14.12.5/include/os/Linux/osdTime.h \ + /opt/epics/bases/base-3.14.12.5/include/registryFunction.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsExport.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/math.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/huge_val.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/huge_valf.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/huge_vall.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/inf.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/nan.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/mathdef.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/mathcalls.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/string.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/stdlib.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/waitflags.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/waitstatus.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/endian.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/endian.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/byteswap.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/byteswap-16.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/sys/types.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/sys/select.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/select.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/sigset.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/sys/sysmacros.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/pthreadtypes.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/alloca.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/stdlib-float.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/stdio.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/libio.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/_G_config.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/wchar.h \ + /opt/eldk-5.6/ifc1210/sysroots/i686-eldk-linux/usr/lib/powerpc-linux-gnuspe/gcc/powerpc-linux-gnuspe/4.8.2/include/stdarg.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/stdio_lim.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/sys_errlist.h diff --git a/builddir/O.3.14.12.5_eldk56-e500v2/EMU_REPORT_FILE.o b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_REPORT_FILE.o new file mode 100644 index 0000000000000000000000000000000000000000..37fe2400c79153181212dd8aaa5ded12a847a698 GIT binary patch literal 1784 zcma)7%}Z2K6hChqZ7Qv)BqAY3Xu>ETDiVVlq~oZOW0Q@v33MEvI^=xt-ZMrJ=a~=^ zE(BXwQiux|EnJ4!M(m#mBwE?R+P1LYxpVL9DN!9b_x#T1J@4E*cS^DT9?hqbOB&Sz zdkns6B8R9|L^M#4Y8bt&KRlQX_}02!Q{~D>3Y2zzYs<)Wt{fhewtv(*jOQG3UOD~+ z_-6wZYms^i_K7kgKjFz=m-(BVzp_Ug?R&JivP$ntUw#(3Ui&I_BUg*e({kx6Y;X6A ztUFsy0I`A6+I}(OP&>!7eZHQSI<}*A*uQ#Y=kvnsr>2XM6cso(xnpnj?=(LX`5J95 zV4uhc5&B%`J{Pb*dVN3OP)N4xis)dhGZ`Bmj3w?5CSeWFG={T{;jvJ-uPq#J3qNF= zrH7}cWlC=}+7@c)9T>VEYSklp3!4LAKiJoq7|P_v^Q8GPaow89+Nn`U+bqjTg-l~A zrQ1f)CVebrr$`^QEYgK_B5$_<=Go4f&3dc!Smn@kKASai$js$!Lq{WxmYqsJAw7|Z z>alp2o+?a>Cb+Zzr4R!7j#SA6z8&8rX2D;_R0mcVuxb(ukL?VY^Vx^{Mc1TW0m(3g z#Y^fw-h`2-_pi8Hh~XS>ToAe<Rj(NaZ+{=4H-WjoO6lYNI>4MGjt`JyZh#eW4fZFb zRQo=L?y2wMdq?e6JUiZp_f@xp^+#Z?%lm<}5iI8!Nn#)Kh?Edanpu|a$}vm@@Ckv$ zBH}Ln)<rE=&w=GPu&TYlGS5hos>jl&jQG?g#B#4^!Te6}w+F!|!Jc}RJm(FtB2`c6 zO1gGG9e!6vmMG@>r0%IN{NA~9JfG(Ua5s1zO>=%dnBzL64p=6{d*&qS@wvDJ|7lkN zfPU(j&gXYq*?0(`2W3$n3b1iZSFeT`8hmrd{LiKC#{mT>79Wx?(Qwb*{+OPoqtBCR zOk^zEFo(ydbLrtf`OKLfxa>?m*Eu#uMj?~7l9{a0YuM3g)8uEvwI%bt@noFv#Ejbr zA**0!a`reCo~Gmmf7`CycjaZG(g84jPc`Zu-@(x+dl5eYWnaWKQuqxfrtmJVr@|-| cQ1<}mDE`R!d~sI7&SS?p2z(V7Bx3x(03><rU;qFB literal 0 HcmV?d00001 diff --git a/builddir/O.3.14.12.5_eldk56-e500v2/emu_Versioncatane.c b/builddir/O.3.14.12.5_eldk56-e500v2/emu_Versioncatane.c new file mode 100644 index 0000000..a707bba --- /dev/null +++ b/builddir/O.3.14.12.5_eldk56-e500v2/emu_Versioncatane.c @@ -0,0 +1 @@ +char epics_emuLibRelease[] = "catane"; diff --git a/builddir/O.3.14.12.5_eldk56-e500v2/emu_Versioncatane.d b/builddir/O.3.14.12.5_eldk56-e500v2/emu_Versioncatane.d new file mode 100644 index 0000000..28b2801 --- /dev/null +++ b/builddir/O.3.14.12.5_eldk56-e500v2/emu_Versioncatane.d @@ -0,0 +1 @@ +emu_Versioncatane.o: emu_Versioncatane.c diff --git a/builddir/O.3.14.12.5_eldk56-e500v2/emu_Versioncatane.o b/builddir/O.3.14.12.5_eldk56-e500v2/emu_Versioncatane.o new file mode 100644 index 0000000000000000000000000000000000000000..ab90c900b777038ffb35c1d7bf949d37e1d3c4c4 GIT binary patch literal 801 zcma)4Jx{|x40S?F3oL+OVkr}?1SeE=;A5kLE`^~Ih^<P(2_i^>dWQrP{FMGhHa2*^ zoI|$OlJlPJcRt6u&&%;u5C&9PKs(^I1kH)Qhz3s4r44E)k&SXqG#U=iI^EIDZLc#> zC#p}R%tvOU7-(lDJ_)n>-I991QBtunq#g^~hp@~fMV9Ftg1oR=q2-aWQS$8WT=ugE zA<w<)50n%CpO$~x_qvq@x&zeP@I|`ACHrANZoYcI7II<@Pfme6>#>i|f!m%laE<-K zBf#0U5Ra^3+k(rT9J6l1#GB|CLrH?(gU{jX@HIHkx9NGUU-*Mu4=yJCBo?gl4f_3- zBqN$tH6PdJaP``KE|y)nHYhe7@gKzXy>fqk6T80L!a|y)v$yG;o|&}B%lE7j(ywV^ Prl^e5c%ol)WHkK&cF8*` literal 0 HcmV?d00001 diff --git a/builddir/O.3.14.12.5_eldk56-e500v2/emu_registerRecordDeviceDriver.cpp b/builddir/O.3.14.12.5_eldk56-e500v2/emu_registerRecordDeviceDriver.cpp new file mode 100644 index 0000000..b8b743c --- /dev/null +++ b/builddir/O.3.14.12.5_eldk56-e500v2/emu_registerRecordDeviceDriver.cpp @@ -0,0 +1,61 @@ +/* THIS IS A GENERATED FILE. DO NOT EDIT! */ +/* Generated from ../../builddir/3.14.12.5/dbd/emu.dbd */ + +#include <string.h> + +#include "epicsStdlib.h" +#include "iocsh.h" +#include "registryCommon.h" + +extern "C" { + +epicsShareExtern void (*pvar_func_checkMTRBrakeRegistrar)(void); +epicsShareExtern void (*pvar_func_homeMtrAutoRegistrar)(void); +epicsShareExtern void (*pvar_func_register_func_FACTOR_CONVERSION)(void); +epicsShareExtern void (*pvar_func_register_func_ANGLE_CALCUL)(void); +epicsShareExtern void (*pvar_func_register_func_CREATE_TAB)(void); +epicsShareExtern void (*pvar_func_register_func_INIT_TAB)(void); +epicsShareExtern void (*pvar_func_register_func_CREATE_PROJXY)(void); +epicsShareExtern void (*pvar_func_register_func_CREATE_REPORT)(void); + +int emu_registerRecordDeviceDriver(DBBASE *pbase) +{ + if (!pbase) { + printf("pdbbase is NULL; you must load a DBD file first.\n"); + return -1; + } + + (*pvar_func_checkMTRBrakeRegistrar)(); + (*pvar_func_homeMtrAutoRegistrar)(); + (*pvar_func_register_func_FACTOR_CONVERSION)(); + (*pvar_func_register_func_ANGLE_CALCUL)(); + (*pvar_func_register_func_CREATE_TAB)(); + (*pvar_func_register_func_INIT_TAB)(); + (*pvar_func_register_func_CREATE_PROJXY)(); + (*pvar_func_register_func_CREATE_REPORT)(); + return 0; +} + +/* registerRecordDeviceDriver */ +static const iocshArg registerRecordDeviceDriverArg0 = + {"pdbbase",iocshArgPdbbase}; +static const iocshArg *registerRecordDeviceDriverArgs[1] = + {®isterRecordDeviceDriverArg0}; +static const iocshFuncDef registerRecordDeviceDriverFuncDef = + {"emu_registerRecordDeviceDriver",1,registerRecordDeviceDriverArgs}; +static void registerRecordDeviceDriverCallFunc(const iocshArgBuf *) +{ + emu_registerRecordDeviceDriver(*iocshPpdbbase); +} + +} // extern "C" +/* + * Register commands on application startup + */ +static int Registration() { + iocshRegister(®isterRecordDeviceDriverFuncDef, + registerRecordDeviceDriverCallFunc); + return 0; +} + +static int done = Registration(); diff --git a/builddir/O.3.14.12.5_eldk56-e500v2/emu_registerRecordDeviceDriver.d b/builddir/O.3.14.12.5_eldk56-e500v2/emu_registerRecordDeviceDriver.d new file mode 100644 index 0000000..52cdf69 --- /dev/null +++ b/builddir/O.3.14.12.5_eldk56-e500v2/emu_registerRecordDeviceDriver.d @@ -0,0 +1,18 @@ +emu_registerRecordDeviceDriver.o: emu_registerRecordDeviceDriver.cpp \ + /opt/epics/bases/base-3.14.12.5/include/epicsStdlib.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h \ + /opt/epics/bases/base-3.14.12.5/include/os/Linux/osdStrtod.h \ + /opt/epics/bases/base-3.14.12.5/include/iocsh.h \ + /opt/epics/bases/base-3.14.12.5/include/shareLib.h \ + /opt/epics/bases/base-3.14.12.5/include/registryCommon.h \ + /opt/epics/bases/base-3.14.12.5/include/dbStaticLib.h \ + /opt/epics/bases/base-3.14.12.5/include/dbFldTypes.h \ + /opt/epics/bases/base-3.14.12.5/include/dbBase.h \ + /opt/epics/bases/base-3.14.12.5/include/epicsTypes.h \ + /opt/epics/bases/base-3.14.12.5/include/ellLib.h \ + /opt/epics/bases/base-3.14.12.5/include/dbDefs.h \ + /opt/epics/bases/base-3.14.12.5/include/link.h \ + /opt/epics/bases/base-3.14.12.5/include/errMdef.h \ + /opt/epics/bases/base-3.14.12.5/include/cantProceed.h \ + /opt/epics/bases/base-3.14.12.5/include/registryRecordType.h \ + /opt/epics/bases/base-3.14.12.5/include/recSup.h diff --git a/builddir/O.3.14.12.5_eldk56-e500v2/emu_registerRecordDeviceDriver.o b/builddir/O.3.14.12.5_eldk56-e500v2/emu_registerRecordDeviceDriver.o new file mode 100644 index 0000000000000000000000000000000000000000..d7dcf9fccc2736a946b23a4f9c9258d6d4ef63a6 GIT binary patch literal 3384 zcmbVOOK%fb6h3xL;(!xE8%hc(ok&&{Bsv6$s`Q~MW5;<=V_U9MwY1V?;!F|?J7dj^ z5mb~IvFVbkNZp_msa4kf2_T`0B?}f^Rb6y}sxD~Nz5AUz_l|}Up;3=?=AOrQzkBX$ zX0{8(`9v~7p(JP&b|ldEgs4k2EfAA5Mn~DYGtql?J)PXmeNP9@+#>q+0j0MeC3kP5 zfA?hX+4lXvM~xl2d-KC?>gFk;uTJ&tmb$44`01FRiTNWje>CQg#r*M@uSNZt6;zL! zZlS)J2^zVc<~m60-ssXI<~g&{>wVPg{T83oi{`^Ts6WeG%){e!8$`?tuKz93wS3{Y zH@cJEo$hI_SJp7~?kth2<C~?R2A)@>h{zsNAIIBktE-l0YYk5;Ef<ULYuB8P*6Mh^ z)^w~j&C=#_bJ}{NY2)E~zRrE@R>yShjfUsjZq=?k?%JGvrBS!%+{P8#4LOMx^7;3) z$%WGLDQ#Mx(a&+`G&BWG8kOb7*1AK96a`g{a60j2l~UJ@#EFauP9ikMamZsbhDVG+ zgYrAc+!14Y<KVBuWb_-xp&*|{GZ&aNtFXBMJKt~QffmBJro<IvxC{M8F2L#DwU%$K zlJ5C#&~7TrwVRgi+gE+k*DT*6ebw_w7tsyJKPOEFptI%rowf|seaBTu?#X?0*U_6! z-D*lq7*|0@L@@SQeVX*T(`wmU7<tR_Z5>PdHioEQCcRS0>xGLs-D-ElvIh0oo94P} zwQM=veKi_Ty!ibRja!~jd%z*yJ(d$tWy3u54<1v{*Pz^=a~bGc(ii6qsUrNS1iMdk z8bLlCQCx&S9P1rmxK9)pyonHmD893>BmFa3_;;aP-vOE9`V1)dk@HP-VOO9^6vqb$ zC>v(xJ|4U-%r^k#9P`zn(fS_C92y~tqYO{kFf+gK1Im1ZP{p?bJIeP2{wP$5;`kf^ zWy8$;jz<>Ce0)VX$NX2JQNE`#heinR0gDHX@C|WX)i)$_?0*eqK5@Na{t5dFs1oMj z{CBeDGXhC2;_-?wg9l?+@5vSoOY&0ChEK+@`~>B7mm+Y{bE<GZ1Hg7N049C3w*y-| z)f^wdQ#Q;YUgIp3*Y8y*=XkzHpz`d&qCSrE9xGAfM#kjSz#Wt@0^=Bzzn9#PectN` z-{6nHRS;96_>`~OFrK2`Un<Bg$ikfTBm5%IV~2ty--j%e&)_T;D&C*hc>&7(ipWRS zUGVW7LIEG2w`(%MZ*unUNk0Xj&(A|BuV-53Wm@oYJ{0gBhVxVgxPQEU-jh&(=lu!= zKCg2q@cG<@YZfFE;aQaaS=B-Me7}T9zbjoyp7<f=^ZbNJ{2$Nz;w<ny9%EokDS0NA zpN{#t=lqv{g!Ov6O?!W%^H#Gt-`T2@xlk<UjG}3JomF$m+y|+7sd)bU-ptH8XRi~( zruK#z?uNGy%oJm$*PJbz+E*;sTnD>Z-?ZzOFV?C#*Sc(1#eaxvxe>so)3Pu6uF>(G z7o}BI0o%Nhua&E2zFhjGQ2ltRT#67qk2FdP#e$hPiuvW@o}hfSVAKj`&B*NuSt>2n zUJ8&Lm1_CIr=RUfBT>~trChE3*FRai<9pO_>fUBW{_zD~us;0LCgi|zqU~oe9}%5Y z_u&a%4>F#>JMj$_2kbD;tq`2!qsmU>m8opp?_<iwH5gMicwSdF-r2{MJ&xZBWoty^ z%FYtKsq9IjgUUXQd&4%rx2Et~P;t1bX8y0xA~g>%hVLCj)X(<}H4m%4s9D5o0uqdc V7@@W#)<N`Lls1ps#_LeT{{{0;{;mK3 literal 0 HcmV?d00001 diff --git a/builddir/O.3.14.12.5_eldk56-e500v2/libemu.so b/builddir/O.3.14.12.5_eldk56-e500v2/libemu.so new file mode 100755 index 0000000000000000000000000000000000000000..a3dee129989aeb00e9e12b416081c5f5f5bf7958 GIT binary patch literal 26344 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 literal 0 HcmV?d00001 diff --git a/builddir/O.3.15.2_Common/emu_subRecordFunctions.dbd b/builddir/O.3.15.2_Common/emu_subRecordFunctions.dbd new file mode 100644 index 0000000..25aa99a --- /dev/null +++ b/builddir/O.3.15.2_Common/emu_subRecordFunctions.dbd @@ -0,0 +1,6 @@ +function (FACTOR_CONVERSION) +function (ANGLE_CALCUL) +function (CREATE_TAB) +function (INIT_TAB) +function (CREATE_PROJXY) +function (CREATE_REPORT) diff --git a/builddir/O.3.15.2_centos7-x86_64/.dependencies_includes b/builddir/O.3.15.2_centos7-x86_64/.dependencies_includes new file mode 100644 index 0000000..28a7f21 --- /dev/null +++ b/builddir/O.3.15.2_centos7-x86_64/.dependencies_includes @@ -0,0 +1 @@ +DEPENDENCIES_INCLUDES = -I/opt/epics/modules/scanning/2.0.5/3.15.2/include -I/opt/epics/modules/scanning/2.0.5/3.15.2/include/os/Linux -I/opt/epics/modules/scanning/2.0.5/3.15.2/include/os/default -I/opt/epics/modules/streamdevice/2.7.1/3.15.2/include -I/opt/epics/modules/streamdevice/2.7.1/3.15.2/include/os/Linux -I/opt/epics/modules/streamdevice/2.7.1/3.15.2/include/os/default -I/opt/epics/modules/asyn/4.27.0/3.15.2/include -I/opt/epics/modules/asyn/4.27.0/3.15.2/include/os/Linux -I/opt/epics/modules/asyn/4.27.0/3.15.2/include/os/default -I/opt/epics/modules/ecat2db/0.3.1/3.15.2/include -I/opt/epics/modules/ecat2db/0.3.1/3.15.2/include/os/Linux -I/opt/epics/modules/ecat2db/0.3.1/3.15.2/include/os/default -I/opt/epics/modules/sscan/2.10.1/3.15.2/include -I/opt/epics/modules/sscan/2.10.1/3.15.2/include/os/Linux -I/opt/epics/modules/sscan/2.10.1/3.15.2/include/os/default -I/opt/epics/modules/busy/1.6.0/3.15.2/include -I/opt/epics/modules/busy/1.6.0/3.15.2/include/os/Linux -I/opt/epics/modules/busy/1.6.0/3.15.2/include/os/default -I/opt/epics/modules/calc/3.6.1/3.15.2/include -I/opt/epics/modules/calc/3.6.1/3.15.2/include/os/Linux -I/opt/epics/modules/calc/3.6.1/3.15.2/include/os/default -I/opt/epics/modules/pcre/8.36.0/3.15.2/include -I/opt/epics/modules/pcre/8.36.0/3.15.2/include/os/Linux -I/opt/epics/modules/pcre/8.36.0/3.15.2/include/os/default -I/opt/epics/modules/seq/2.1.10/3.15.2/include -I/opt/epics/modules/seq/2.1.10/3.15.2/include/os/Linux -I/opt/epics/modules/seq/2.1.10/3.15.2/include/os/default -I/opt/epics/modules/dataacquisition/1.0.1/3.15.2/include -I/opt/epics/modules/dataacquisition/1.0.1/3.15.2/include/os/Linux -I/opt/epics/modules/dataacquisition/1.0.1/3.15.2/include/os/default -I/opt/epics/modules/fastacquisition/1.1.0/3.15.2/include -I/opt/epics/modules/fastacquisition/1.1.0/3.15.2/include/os/Linux -I/opt/epics/modules/fastacquisition/1.1.0/3.15.2/include/os/default diff --git a/builddir/O.3.15.2_centos7-x86_64/EMU_CALCULS.d b/builddir/O.3.15.2_centos7-x86_64/EMU_CALCULS.d new file mode 100644 index 0000000..e3a9c42 --- /dev/null +++ b/builddir/O.3.15.2_centos7-x86_64/EMU_CALCULS.d @@ -0,0 +1,17 @@ +EMU_CALCULS.o: ../.././src/EMU_CALCULS.c \ + /opt/epics/bases/base-3.15.2/include/aSubRecord.h \ + /opt/epics/bases/base-3.15.2/include/epicsTypes.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h \ + /opt/epics/bases/base-3.15.2/include/compilerDependencies.h \ + /opt/epics/bases/base-3.15.2/include/compiler/gcc/compilerSpecific.h \ + /opt/epics/bases/base-3.15.2/include/link.h \ + /opt/epics/bases/base-3.15.2/include/dbDefs.h \ + /opt/epics/bases/base-3.15.2/include/epicsMutex.h \ + /opt/epics/bases/base-3.15.2/include/epicsAssert.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdMutex.h \ + /opt/epics/bases/base-3.15.2/include/ellLib.h \ + /opt/epics/bases/base-3.15.2/include/epicsTime.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdTime.h \ + /opt/epics/bases/base-3.15.2/include/registryFunction.h \ + /opt/epics/bases/base-3.15.2/include/epicsExport.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h diff --git a/builddir/O.3.15.2_centos7-x86_64/EMU_CALCULS.dc b/builddir/O.3.15.2_centos7-x86_64/EMU_CALCULS.dc new file mode 100644 index 0000000..be9a4f9 --- /dev/null +++ b/builddir/O.3.15.2_centos7-x86_64/EMU_CALCULS.dc @@ -0,0 +1,27 @@ +EMU_CALCULS.o: ../.././src/EMU_CALCULS.c /usr/include/stdc-predef.h \ + /opt/epics/bases/base-3.15.2/include/aSubRecord.h \ + /opt/epics/bases/base-3.15.2/include/epicsTypes.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h \ + /opt/epics/bases/base-3.15.2/include/compilerDependencies.h \ + /opt/epics/bases/base-3.15.2/include/compiler/gcc/compilerSpecific.h \ + /opt/epics/bases/base-3.15.2/include/link.h \ + /opt/epics/bases/base-3.15.2/include/dbDefs.h \ + /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/stddef.h \ + /opt/epics/bases/base-3.15.2/include/epicsMutex.h \ + /opt/epics/bases/base-3.15.2/include/epicsAssert.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdMutex.h \ + /opt/epics/bases/base-3.15.2/include/ellLib.h \ + /opt/epics/bases/base-3.15.2/include/epicsTime.h /usr/include/time.h \ + /usr/include/features.h /usr/include/sys/cdefs.h \ + /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \ + /usr/include/gnu/stubs-64.h /usr/include/bits/time.h \ + /usr/include/bits/types.h /usr/include/bits/typesizes.h \ + /usr/include/bits/timex.h /usr/include/xlocale.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdTime.h \ + /opt/epics/bases/base-3.15.2/include/registryFunction.h \ + /opt/epics/bases/base-3.15.2/include/epicsExport.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h /usr/include/math.h \ + /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \ + /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \ + /usr/include/bits/nan.h /usr/include/bits/mathdef.h \ + /usr/include/bits/mathcalls.h diff --git a/builddir/O.3.15.2_centos7-x86_64/EMU_CALCULS.o b/builddir/O.3.15.2_centos7-x86_64/EMU_CALCULS.o new file mode 100644 index 0000000000000000000000000000000000000000..47f8a6dbac3c2d1de705f1b5c075603bd26ac436 GIT binary patch literal 39936 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௓j|O0R{bY!v(p4!eDig!qtJ2vYJr!m6_qn!cbYT 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 literal 0 HcmV?d00001 diff --git a/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-CHECKBRAKE.c b/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-CHECKBRAKE.c new file mode 100644 index 0000000..61f7985 --- /dev/null +++ b/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-CHECKBRAKE.c @@ -0,0 +1,339 @@ +/* Generated with snc from EMU_MTR-CHECKBRAKE.i */ + +/* Program "checkMTRBrake" */ +#include <string.h> +#include <stddef.h> +#include <stdio.h> +#include <limits.h> +#include "epicsTypes.h" +#include "seqCom.h" + +/* Variable declarations */ +# line 13 "../.././src/EMU_MTR-CHECKBRAKE.st" +static short ErrorBrakeMtrGet = 0; +# line 19 "../.././src/EMU_MTR-CHECKBRAKE.st" +static short statusMTRMov = 0; +# line 23 "../.././src/EMU_MTR-CHECKBRAKE.st" +static short ErrorBrakeMtrSet = 0; +# line 27 "../.././src/EMU_MTR-CHECKBRAKE.st" +static short brakeMtrCMD = 0; +# line 31 "../.././src/EMU_MTR-CHECKBRAKE.st" +static short brakeMtrGET = 0; +# line 37 "../.././src/EMU_MTR-CHECKBRAKE.st" +static short AbortscanMtrCMD = 0; +# line 41 "../.././src/EMU_MTR-CHECKBRAKE.st" +static short countErrors = 0; + +/* C code definitions */ +# line 8 "../.././src/EMU_MTR-CHECKBRAKE.st" +#include <stdio.h> +# line 9 "../.././src/EMU_MTR-CHECKBRAKE.st" +#include <string.h> +# line 10 "../.././src/EMU_MTR-CHECKBRAKE.st" +#include <stdlib.h> + +/* Program init func */ +static void G_prog_init(struct UserVar *pVar) +{ +} + +/****** Code for state "init" in state set "ss1" ******/ + +/* Delay function for state "init" in state set "ss1" */ +static void D_ss1_0_init(SS_ID ssId, struct UserVar *pVar) +{ +# line 46 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_delayInit(ssId, 0, (1.0)); +} + +/* Event function for state "init" in state set "ss1" */ +static seqBool E_ss1_0_init(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 46 "../.././src/EMU_MTR-CHECKBRAKE.st" + if (seq_delay(ssId, 0) && (seq_pvConnectCount(ssId) == seq_pvChannelCount(ssId))) + { + *pNextState = 1; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "init" in state set "ss1" */ +static void A_ss1_0_init(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 48 "../.././src/EMU_MTR-CHECKBRAKE.st" + printf("\nWAIT\n"); +# line 49 "../.././src/EMU_MTR-CHECKBRAKE.st" + ErrorBrakeMtrSet = 0; +# line 50 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_pvPut(ssId, 2/*ErrorBrakeMtrSet*/, 0); + } + return; + } +} + +/****** Code for state "waiting" in state set "ss1" ******/ + +/* Delay function for state "waiting" in state set "ss1" */ +static void D_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar) +{ +# line 56 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_delayInit(ssId, 0, (0.1)); +} + +/* Event function for state "waiting" in state set "ss1" */ +static seqBool E_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 56 "../.././src/EMU_MTR-CHECKBRAKE.st" + if (seq_efTestAndClear(ssId, 1/*ErrorBrakeMtrEvent*/) && (ErrorBrakeMtrGet == 1) && (seq_delay(ssId, 0))) + { + *pNextState = 2; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "waiting" in state set "ss1" */ +static void A_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 58 "../.././src/EMU_MTR-CHECKBRAKE.st" + printf("\nERRROR CURRENT : BRAKE OFF \n"); +# line 59 "../.././src/EMU_MTR-CHECKBRAKE.st" + brakeMtrCMD = 1; +# line 60 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_pvPut(ssId, 3/*brakeMtrCMD*/, 0); +# line 61 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_delay(ssId, 0); +# line 62 "../.././src/EMU_MTR-CHECKBRAKE.st" + ErrorBrakeMtrSet = 0; +# line 63 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_pvPut(ssId, 2/*ErrorBrakeMtrSet*/, 0); + } + return; + } +} + +/****** Code for state "count" in state set "ss1" ******/ + +/* Delay function for state "count" in state set "ss1" */ +static void D_ss1_0_count(SS_ID ssId, struct UserVar *pVar) +{ +# line 74 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_delayInit(ssId, 0, (1.0)); +# line 80 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_delayInit(ssId, 1, (1.0)); +} + +/* Event function for state "count" in state set "ss1" */ +static seqBool E_ss1_0_count(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 69 "../.././src/EMU_MTR-CHECKBRAKE.st" + if (countErrors > 3) + { + *pNextState = 3; + *pTransNum = 0; + return TRUE; + } +# line 74 "../.././src/EMU_MTR-CHECKBRAKE.st" + if ((seq_delay(ssId, 0)) && (statusMTRMov == 1)) + { + *pNextState = 1; + *pTransNum = 1; + return TRUE; + } +# line 80 "../.././src/EMU_MTR-CHECKBRAKE.st" + if ((seq_delay(ssId, 1)) && (statusMTRMov == 0)) + { + *pNextState = 1; + *pTransNum = 2; + return TRUE; + } + return FALSE; +} + +/* Action function for state "count" in state set "ss1" */ +static void A_ss1_0_count(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 71 "../.././src/EMU_MTR-CHECKBRAKE.st" + printf("\nERRROR CURRENT : STOP MEASURE \n"); + } + return; + case 1: + { +# line 76 "../.././src/EMU_MTR-CHECKBRAKE.st" + printf("\nERRROR CURRENT : PROBLEM SOLVED \n"); +# line 77 "../.././src/EMU_MTR-CHECKBRAKE.st" + countErrors = 0; + } + return; + case 2: + { +# line 82 "../.././src/EMU_MTR-CHECKBRAKE.st" + countErrors = countErrors + 1; + } + return; + } +} + +/****** Code for state "stopMeasure" in state set "ss1" ******/ + +/* Delay function for state "stopMeasure" in state set "ss1" */ +static void D_ss1_0_stopMeasure(SS_ID ssId, struct UserVar *pVar) +{ +# line 89 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_delayInit(ssId, 0, (1.0)); +} + +/* Event function for state "stopMeasure" in state set "ss1" */ +static seqBool E_ss1_0_stopMeasure(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 89 "../.././src/EMU_MTR-CHECKBRAKE.st" + if (seq_delay(ssId, 0)) + { + *pNextState = 1; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "stopMeasure" in state set "ss1" */ +static void A_ss1_0_stopMeasure(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 90 "../.././src/EMU_MTR-CHECKBRAKE.st" + printf("\n ABORT\n"); +# line 91 "../.././src/EMU_MTR-CHECKBRAKE.st" + AbortscanMtrCMD = 1; +# line 92 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_pvPut(ssId, 5/*AbortscanMtrCMD*/, 0); +# line 93 "../.././src/EMU_MTR-CHECKBRAKE.st" + countErrors = 0; + } + return; + } +} + +/************************ Tables ************************/ + +/* Channel table */ +static seqChan G_channels[] = { + /* chName, offset, varName, varType, count, eventNum, efId, monitored, queueSize, queueIndex */ + {"{PREFIX}:PBI-EM:CURRENT_ERR_GET", (size_t)&ErrorBrakeMtrGet, "ErrorBrakeMtrGet", "short", 1, 3, 1, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}.MOVN", (size_t)&statusMTRMov, "statusMTRMov", "short", 1, 4, 0, 1, 0, 0}, + {"{PREFIX}:PBI-EM:CURRENT_ERR_SET", (size_t)&ErrorBrakeMtrSet, "ErrorBrakeMtrSet", "short", 1, 5, 0, 1, 0, 0}, + {"{PREFIX}:PBI-EM:VER-BRAKE_SET", (size_t)&brakeMtrCMD, "brakeMtrCMD", "short", 1, 6, 0, 1, 0, 0}, + {"{PREFIX}:PBI-EM:VER-BRAKE_GET", (size_t)&brakeMtrGET, "brakeMtrGET", "short", 1, 7, 2, 1, 0, 0}, + {"{DEVICE}:MTR-ABORT.PROC", (size_t)&AbortscanMtrCMD, "AbortscanMtrCMD", "short", 1, 8, 0, 1, 0, 0} +}; + +/* Event masks for state set "ss1" */ +static const seqMask EM_ss1_0_init[] = { + 0x00000000, +}; +static const seqMask EM_ss1_0_waiting[] = { + 0x0000000a, +}; +static const seqMask EM_ss1_0_count[] = { + 0x00000010, +}; +static const seqMask EM_ss1_0_stopMeasure[] = { + 0x00000000, +}; + +/* State table for state set "ss1" */ +static seqState G_ss1_states[] = { + { + /* state name */ "init", + /* action function */ A_ss1_0_init, + /* event function */ E_ss1_0_init, + /* delay function */ D_ss1_0_init, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_init, + /* state options */ (0) + }, + { + /* state name */ "waiting", + /* action function */ A_ss1_0_waiting, + /* event function */ E_ss1_0_waiting, + /* delay function */ D_ss1_0_waiting, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_waiting, + /* state options */ (0) + }, + { + /* state name */ "count", + /* action function */ A_ss1_0_count, + /* event function */ E_ss1_0_count, + /* delay function */ D_ss1_0_count, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_count, + /* state options */ (0) + }, + { + /* state name */ "stopMeasure", + /* action function */ A_ss1_0_stopMeasure, + /* event function */ E_ss1_0_stopMeasure, + /* delay function */ D_ss1_0_stopMeasure, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_stopMeasure, + /* state options */ (0) + }, +}; + +/* State set table */ +static seqSS G_state_sets[] = { + { + /* state set name */ "ss1", + /* states */ G_ss1_states, + /* number of states */ 4, + /* number of delays */ 2 + }, +}; + +/* Program table (global) */ +seqProgram checkMTRBrake = { + /* magic number */ 2001010, + /* program name */ "checkMTRBrake", + /* channels */ G_channels, + /* num. channels */ 6, + /* state sets */ G_state_sets, + /* num. state sets */ 1, + /* user var size */ 0, + /* param */ "", + /* num. event flags */ 2, + /* encoded options */ (0 | OPT_CONN | OPT_NEWEF), + /* init func */ G_prog_init, + /* entry func */ NULL, + /* exit func */ NULL, + /* num. queues */ 0 +}; + +/* Register sequencer commands and program */ +#include "epicsExport.h" +static void checkMTRBrakeRegistrar (void) { + seqRegisterSequencerCommands(); + seqRegisterSequencerProgram (&checkMTRBrake); +} +epicsExportRegistrar(checkMTRBrakeRegistrar); diff --git a/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-CHECKBRAKE.d b/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-CHECKBRAKE.d new file mode 100644 index 0000000..0b214ca --- /dev/null +++ b/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-CHECKBRAKE.d @@ -0,0 +1,19 @@ +EMU_MTR-CHECKBRAKE.o: EMU_MTR-CHECKBRAKE.c \ + /opt/epics/bases/base-3.15.2/include/epicsTypes.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h \ + /opt/epics/bases/base-3.15.2/include/compilerDependencies.h \ + /opt/epics/bases/base-3.15.2/include/compiler/gcc/compilerSpecific.h \ + /opt/epics/modules/seq/2.1.10/3.15.2/include/seqCom.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h \ + /opt/epics/modules/seq/2.1.10/3.15.2/include/pvAlarm.h \ + /opt/epics/modules/seq/2.1.10/3.15.2/include/pvType.h \ + /opt/epics/bases/base-3.15.2/include/epicsTime.h \ + /opt/epics/bases/base-3.15.2/include/epicsTypes.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdTime.h \ + /opt/epics/bases/base-3.15.2/include/epicsThread.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdThread.h \ + /opt/epics/bases/base-3.15.2/include/ellLib.h \ + /opt/epics/bases/base-3.15.2/include/epicsEvent.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdEvent.h \ + /opt/epics/modules/seq/2.1.10/3.15.2/include/seq_release.h \ + /opt/epics/bases/base-3.15.2/include/epicsExport.h diff --git a/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-CHECKBRAKE.dc b/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-CHECKBRAKE.dc new file mode 100644 index 0000000..49b22c9 --- /dev/null +++ b/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-CHECKBRAKE.dc @@ -0,0 +1,29 @@ +EMU_MTR-CHECKBRAKE.o: EMU_MTR-CHECKBRAKE.c /usr/include/stdc-predef.h \ + /usr/include/string.h /usr/include/features.h /usr/include/sys/cdefs.h \ + /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \ + /usr/include/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/stddef.h \ + /usr/include/xlocale.h /usr/include/stdio.h /usr/include/bits/types.h \ + /usr/include/bits/typesizes.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/stdarg.h \ + /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \ + /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/limits.h \ + /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/syslimits.h \ + /usr/include/limits.h /usr/include/bits/posix1_lim.h \ + /usr/include/bits/local_lim.h /usr/include/linux/limits.h \ + /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \ + /opt/epics/bases/base-3.15.2/include/epicsTypes.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h \ + /opt/epics/bases/base-3.15.2/include/compilerDependencies.h \ + /opt/epics/bases/base-3.15.2/include/compiler/gcc/compilerSpecific.h \ + seqCom.h /usr/include/stdlib.h /usr/include/bits/waitflags.h \ + /usr/include/bits/waitstatus.h /usr/include/endian.h \ + /usr/include/bits/endian.h /usr/include/bits/byteswap.h \ + /usr/include/bits/byteswap-16.h /usr/include/sys/types.h \ + /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \ + /usr/include/bits/sigset.h /usr/include/bits/time.h \ + /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \ + /usr/include/alloca.h /usr/include/bits/stdlib-float.h \ + /opt/epics/bases/base-3.15.2/include/epicsExport.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h diff --git a/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-CHECKBRAKE.i b/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-CHECKBRAKE.i new file mode 100644 index 0000000..1267f20 --- /dev/null +++ b/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-CHECKBRAKE.i @@ -0,0 +1,103 @@ +# 1 "../.././src/EMU_MTR-CHECKBRAKE.st" +# 1 "<built-in>" +# 1 "<command-line>" +# 1 "/usr/include/stdc-predef.h" 1 3 4 +# 1 "<command-line>" 2 +# 1 "../.././src/EMU_MTR-CHECKBRAKE.st" + + + + + +program checkMTRBrake + +%%#include <stdio.h> +%%#include <string.h> +%%#include <stdlib.h> + + +short ErrorBrakeMtrGet; +assign ErrorBrakeMtrGet to "{PREFIX}:PBI-EM:CURRENT_ERR_GET"; +monitor ErrorBrakeMtrGet; +evflag ErrorBrakeMtrEvent; +sync ErrorBrakeMtrGet ErrorBrakeMtrEvent; + +short statusMTRMov; +assign statusMTRMov to "{PMACPREFIX}:{MOTOR_NAME1}.MOVN"; +monitor statusMTRMov; + +short ErrorBrakeMtrSet; +assign ErrorBrakeMtrSet to "{PREFIX}:PBI-EM:CURRENT_ERR_SET"; +monitor ErrorBrakeMtrSet; + +short brakeMtrCMD; +assign brakeMtrCMD to "{PREFIX}:PBI-EM:VER-BRAKE_SET"; +monitor brakeMtrCMD; + +short brakeMtrGET; +assign brakeMtrGET to "{PREFIX}:PBI-EM:VER-BRAKE_GET"; +monitor brakeMtrGET; +evflag brakeMtrGETEvent; +sync brakeMtrGET brakeMtrGETEvent; + +short AbortscanMtrCMD; +assign AbortscanMtrCMD to "{DEVICE}:MTR-ABORT.PROC"; +monitor AbortscanMtrCMD; + +short countErrors=0; + +ss ss1 +{ + state init { + when (delay(1.0) && (pvConnectCount() == pvChannelCount())) + { + printf("\nWAIT\n"); + ErrorBrakeMtrSet=0; + pvPut(ErrorBrakeMtrSet); + } state waiting + } + + state waiting + { + when(efTestAndClear(ErrorBrakeMtrEvent)&&(ErrorBrakeMtrGet==1)&&(delay(0.1))) + { + printf("\nERRROR CURRENT : BRAKE OFF \n"); + brakeMtrCMD=1; + pvPut(brakeMtrCMD); + delay(1); + ErrorBrakeMtrSet=0; + pvPut(ErrorBrakeMtrSet); + }state count + } + + state count + { + when(countErrors>3) + { + printf("\nERRROR CURRENT : STOP MEASURE \n"); + }state stopMeasure + + when((delay(1.0)) && (statusMTRMov==1)) + { + printf("\nERRROR CURRENT : PROBLEM SOLVED \n"); + countErrors=0; + }state waiting + + when((delay(1.0)) && (statusMTRMov==0)) + { + countErrors=countErrors+1; + }state waiting + } + + + state stopMeasure + { + when(delay(1.0)){ + printf("\n ABORT\n"); + AbortscanMtrCMD=1; + pvPut(AbortscanMtrCMD); + countErrors=0; + }state waiting + } + +} diff --git a/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-CHECKBRAKE.o b/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-CHECKBRAKE.o new file mode 100644 index 0000000000000000000000000000000000000000..eb90072e5e774e56d7dacbdcb2da1571a59de2d9 GIT binary patch literal 28216 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 literal 0 HcmV?d00001 diff --git a/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-CHECKBRAKE_snl.dbd b/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-CHECKBRAKE_snl.dbd new file mode 100644 index 0000000..d71c5ef --- /dev/null +++ b/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-CHECKBRAKE_snl.dbd @@ -0,0 +1 @@ +registrar (checkMTRBrakeRegistrar) diff --git a/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-HOME_AUTO.c b/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-HOME_AUTO.c new file mode 100644 index 0000000..0b2209c --- /dev/null +++ b/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-HOME_AUTO.c @@ -0,0 +1,394 @@ +/* Generated with snc from EMU_MTR-HOME_AUTO.i */ + +/* Program "homeMtrAuto" */ +#include <string.h> +#include <stddef.h> +#include <stdio.h> +#include <limits.h> +#include "epicsTypes.h" +#include "seqCom.h" + +/* Variable declarations */ +# line 13 "../.././src/EMU_MTR-HOME_AUTO.st" +static short HOMCPTFLAG = 0; +# line 17 "../.././src/EMU_MTR-HOME_AUTO.st" +static short statusMTRMov = 0; +# line 21 "../.././src/EMU_MTR-HOME_AUTO.st" +static short mtrPlaced = 0; +# line 27 "../.././src/EMU_MTR-HOME_AUTO.st" +static short mtrStop = 0; +# line 31 "../.././src/EMU_MTR-HOME_AUTO.st" +static short homeCMD = 0; +# line 35 "../.././src/EMU_MTR-HOME_AUTO.st" +static short mtrPosCons = 0; +# line 39 "../.././src/EMU_MTR-HOME_AUTO.st" +static short brakeMtrCMD = 0; +# line 43 "../.././src/EMU_MTR-HOME_AUTO.st" +static short brakeMtrGET = 0; +# line 50 "../.././src/EMU_MTR-HOME_AUTO.st" +static short scanPS_Sts = 0; +# line 55 "../.././src/EMU_MTR-HOME_AUTO.st" +static short scanMTR_Sts = 0; +# line 61 "../.././src/EMU_MTR-HOME_AUTO.st" +static short homeSTART = 0; +# line 68 "../.././src/EMU_MTR-HOME_AUTO.st" +static short plimSTATUS = 0; + +/* C code definitions */ +# line 8 "../.././src/EMU_MTR-HOME_AUTO.st" +#include <stdio.h> +# line 9 "../.././src/EMU_MTR-HOME_AUTO.st" +#include <string.h> +# line 10 "../.././src/EMU_MTR-HOME_AUTO.st" +#include <stdlib.h> + +/* Program init func */ +static void G_prog_init(struct UserVar *pVar) +{ +} + +/****** Code for state "init" in state set "ss1" ******/ + +/* Delay function for state "init" in state set "ss1" */ +static void D_ss1_0_init(SS_ID ssId, struct UserVar *pVar) +{ +# line 77 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_delayInit(ssId, 0, (1.0)); +} + +/* Event function for state "init" in state set "ss1" */ +static seqBool E_ss1_0_init(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 77 "../.././src/EMU_MTR-HOME_AUTO.st" + if (seq_delay(ssId, 0) && (seq_pvConnectCount(ssId) == seq_pvChannelCount(ssId))) + { + *pNextState = 1; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "init" in state set "ss1" */ +static void A_ss1_0_init(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 79 "../.././src/EMU_MTR-HOME_AUTO.st" + homeSTART = 0; +# line 80 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 10/*homeSTART*/, 0); +# line 81 "../.././src/EMU_MTR-HOME_AUTO.st" + printf("\nWAIT\n"); + } + return; + } +} + +/****** Code for state "waiting" in state set "ss1" ******/ + +/* Delay function for state "waiting" in state set "ss1" */ +static void D_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar) +{ +} + +/* Event function for state "waiting" in state set "ss1" */ +static seqBool E_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 87 "../.././src/EMU_MTR-HOME_AUTO.st" + if (seq_efTestAndClear(ssId, 3/*homeSTARTEvent*/) && (homeSTART == 1) && (plimSTATUS == 0)) + { + *pNextState = 2; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "waiting" in state set "ss1" */ +static void A_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 89 "../.././src/EMU_MTR-HOME_AUTO.st" + printf("\nSTART HOME PROCEDURE\n"); + } + return; + } +} + +/****** Code for state "startHOME" in state set "ss1" ******/ + +/* Delay function for state "startHOME" in state set "ss1" */ +static void D_ss1_0_startHOME(SS_ID ssId, struct UserVar *pVar) +{ +# line 96 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_delayInit(ssId, 0, (1.0)); +} + +/* Event function for state "startHOME" in state set "ss1" */ +static seqBool E_ss1_0_startHOME(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 96 "../.././src/EMU_MTR-HOME_AUTO.st" + if ((scanPS_Sts == 0) && (scanMTR_Sts == 0) && (statusMTRMov == 0) && (seq_delay(ssId, 0))) + { + *pNextState = 3; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "startHOME" in state set "ss1" */ +static void A_ss1_0_startHOME(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 97 "../.././src/EMU_MTR-HOME_AUTO.st" + printf("\n GO HOME\n"); +# line 98 "../.././src/EMU_MTR-HOME_AUTO.st" + brakeMtrCMD = 1; +# line 99 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 6/*brakeMtrCMD*/, 0); +# line 100 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_delay(ssId, 0); +# line 101 "../.././src/EMU_MTR-HOME_AUTO.st" + HOMCPTFLAG = 1; +# line 102 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 0/*HOMCPTFLAG*/, 0); +# line 103 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_delay(ssId, 0); +# line 104 "../.././src/EMU_MTR-HOME_AUTO.st" + homeCMD = 1; +# line 105 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 4/*homeCMD*/, 0); + } + return; + } +} + +/****** Code for state "limitON" in state set "ss1" ******/ + +/* Delay function for state "limitON" in state set "ss1" */ +static void D_ss1_0_limitON(SS_ID ssId, struct UserVar *pVar) +{ +} + +/* Event function for state "limitON" in state set "ss1" */ +static seqBool E_ss1_0_limitON(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 111 "../.././src/EMU_MTR-HOME_AUTO.st" + if (seq_efTestAndClear(ssId, 4/*plimSTATUSEvent*/) && (plimSTATUS == 1)) + { + *pNextState = 4; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "limitON" in state set "ss1" */ +static void A_ss1_0_limitON(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 113 "../.././src/EMU_MTR-HOME_AUTO.st" + printf("\nLIMIT HIGH\n"); +# line 114 "../.././src/EMU_MTR-HOME_AUTO.st" + HOMCPTFLAG = 0; +# line 115 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 0/*HOMCPTFLAG*/, 0); + } + return; + } +} + +/****** Code for state "breakON" in state set "ss1" ******/ + +/* Delay function for state "breakON" in state set "ss1" */ +static void D_ss1_0_breakON(SS_ID ssId, struct UserVar *pVar) +{ +# line 121 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_delayInit(ssId, 0, (1.0)); +} + +/* Event function for state "breakON" in state set "ss1" */ +static seqBool E_ss1_0_breakON(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 121 "../.././src/EMU_MTR-HOME_AUTO.st" + if (seq_delay(ssId, 0)) + { + *pNextState = 0; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "breakON" in state set "ss1" */ +static void A_ss1_0_breakON(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 123 "../.././src/EMU_MTR-HOME_AUTO.st" + printf("\nINIT POSITION\n"); +# line 124 "../.././src/EMU_MTR-HOME_AUTO.st" + HOMCPTFLAG = 0; +# line 125 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 0/*HOMCPTFLAG*/, 0); +# line 126 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_delay(ssId, 0); +# line 127 "../.././src/EMU_MTR-HOME_AUTO.st" + printf("\nBRAKE ON\n"); +# line 128 "../.././src/EMU_MTR-HOME_AUTO.st" + homeCMD = 1; +# line 129 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 4/*homeCMD*/, 0); +# line 130 "../.././src/EMU_MTR-HOME_AUTO.st" + homeSTART = 0; +# line 131 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 10/*homeSTART*/, 0); +# line 132 "../.././src/EMU_MTR-HOME_AUTO.st" + brakeMtrCMD = 0; +# line 133 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 6/*brakeMtrCMD*/, 0); + } + return; + } +} + +/************************ Tables ************************/ + +/* Channel table */ +static seqChan G_channels[] = { + /* chName, offset, varName, varType, count, eventNum, efId, monitored, queueSize, queueIndex */ + {"{PMACPREFIX}:{MOTOR_NAME1}-HOMCPTFLAG", (size_t)&HOMCPTFLAG, "HOMCPTFLAG", "short", 1, 5, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}.MOVN", (size_t)&statusMTRMov, "statusMTRMov", "short", 1, 6, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}-AXISSTS", (size_t)&mtrPlaced, "mtrPlaced", "short", 1, 7, 1, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}.SPMG", (size_t)&mtrStop, "mtrStop", "short", 1, 8, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}-HOMCMD", (size_t)&homeCMD, "homeCMD", "short", 1, 9, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}", (size_t)&mtrPosCons, "mtrPosCons", "short", 1, 10, 0, 1, 0, 0}, + {"{PREFIX}:PBI-EM:VER-BRAKE_SET", (size_t)&brakeMtrCMD, "brakeMtrCMD", "short", 1, 11, 0, 1, 0, 0}, + {"{PREFIX}:PBI-EM:VER-BRAKE_GET", (size_t)&brakeMtrGET, "brakeMtrGET", "short", 1, 12, 2, 1, 0, 0}, + {"{DEVICE}:PS.BUSY", (size_t)&scanPS_Sts, "scanPS_Sts", "short", 1, 13, 0, 1, 0, 0}, + {"{DEVICE}:MTR.BUSY", (size_t)&scanMTR_Sts, "scanMTR_Sts", "short", 1, 14, 0, 1, 0, 0}, + {"{DEVICE}:PROC-AUTO-HOME", (size_t)&homeSTART, "homeSTART", "short", 1, 15, 3, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}-PENDLSTS", (size_t)&plimSTATUS, "plimSTATUS", "short", 1, 16, 4, 1, 0, 0} +}; + +/* Event masks for state set "ss1" */ +static const seqMask EM_ss1_0_init[] = { + 0x00000000, +}; +static const seqMask EM_ss1_0_waiting[] = { + 0x00018008, +}; +static const seqMask EM_ss1_0_startHOME[] = { + 0x00006040, +}; +static const seqMask EM_ss1_0_limitON[] = { + 0x00010010, +}; +static const seqMask EM_ss1_0_breakON[] = { + 0x00000000, +}; + +/* State table for state set "ss1" */ +static seqState G_ss1_states[] = { + { + /* state name */ "init", + /* action function */ A_ss1_0_init, + /* event function */ E_ss1_0_init, + /* delay function */ D_ss1_0_init, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_init, + /* state options */ (0) + }, + { + /* state name */ "waiting", + /* action function */ A_ss1_0_waiting, + /* event function */ E_ss1_0_waiting, + /* delay function */ D_ss1_0_waiting, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_waiting, + /* state options */ (0) + }, + { + /* state name */ "startHOME", + /* action function */ A_ss1_0_startHOME, + /* event function */ E_ss1_0_startHOME, + /* delay function */ D_ss1_0_startHOME, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_startHOME, + /* state options */ (0) + }, + { + /* state name */ "limitON", + /* action function */ A_ss1_0_limitON, + /* event function */ E_ss1_0_limitON, + /* delay function */ D_ss1_0_limitON, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_limitON, + /* state options */ (0) + }, + { + /* state name */ "breakON", + /* action function */ A_ss1_0_breakON, + /* event function */ E_ss1_0_breakON, + /* delay function */ D_ss1_0_breakON, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_breakON, + /* state options */ (0) + }, +}; + +/* State set table */ +static seqSS G_state_sets[] = { + { + /* state set name */ "ss1", + /* states */ G_ss1_states, + /* number of states */ 5, + /* number of delays */ 1 + }, +}; + +/* Program table (global) */ +seqProgram homeMtrAuto = { + /* magic number */ 2001010, + /* program name */ "homeMtrAuto", + /* channels */ G_channels, + /* num. channels */ 12, + /* state sets */ G_state_sets, + /* num. state sets */ 1, + /* user var size */ 0, + /* param */ "", + /* num. event flags */ 4, + /* encoded options */ (0 | OPT_CONN | OPT_NEWEF), + /* init func */ G_prog_init, + /* entry func */ NULL, + /* exit func */ NULL, + /* num. queues */ 0 +}; + +/* Register sequencer commands and program */ +#include "epicsExport.h" +static void homeMtrAutoRegistrar (void) { + seqRegisterSequencerCommands(); + seqRegisterSequencerProgram (&homeMtrAuto); +} +epicsExportRegistrar(homeMtrAutoRegistrar); diff --git a/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-HOME_AUTO.d b/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-HOME_AUTO.d new file mode 100644 index 0000000..5374162 --- /dev/null +++ b/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-HOME_AUTO.d @@ -0,0 +1,19 @@ +EMU_MTR-HOME_AUTO.o: EMU_MTR-HOME_AUTO.c \ + /opt/epics/bases/base-3.15.2/include/epicsTypes.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h \ + /opt/epics/bases/base-3.15.2/include/compilerDependencies.h \ + /opt/epics/bases/base-3.15.2/include/compiler/gcc/compilerSpecific.h \ + /opt/epics/modules/seq/2.1.10/3.15.2/include/seqCom.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h \ + /opt/epics/modules/seq/2.1.10/3.15.2/include/pvAlarm.h \ + /opt/epics/modules/seq/2.1.10/3.15.2/include/pvType.h \ + /opt/epics/bases/base-3.15.2/include/epicsTime.h \ + /opt/epics/bases/base-3.15.2/include/epicsTypes.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdTime.h \ + /opt/epics/bases/base-3.15.2/include/epicsThread.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdThread.h \ + /opt/epics/bases/base-3.15.2/include/ellLib.h \ + /opt/epics/bases/base-3.15.2/include/epicsEvent.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdEvent.h \ + /opt/epics/modules/seq/2.1.10/3.15.2/include/seq_release.h \ + /opt/epics/bases/base-3.15.2/include/epicsExport.h diff --git a/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-HOME_AUTO.dc b/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-HOME_AUTO.dc new file mode 100644 index 0000000..3ffb6fe --- /dev/null +++ b/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-HOME_AUTO.dc @@ -0,0 +1,29 @@ +EMU_MTR-HOME_AUTO.o: EMU_MTR-HOME_AUTO.c /usr/include/stdc-predef.h \ + /usr/include/string.h /usr/include/features.h /usr/include/sys/cdefs.h \ + /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \ + /usr/include/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/stddef.h \ + /usr/include/xlocale.h /usr/include/stdio.h /usr/include/bits/types.h \ + /usr/include/bits/typesizes.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/stdarg.h \ + /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \ + /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/limits.h \ + /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/syslimits.h \ + /usr/include/limits.h /usr/include/bits/posix1_lim.h \ + /usr/include/bits/local_lim.h /usr/include/linux/limits.h \ + /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \ + /opt/epics/bases/base-3.15.2/include/epicsTypes.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h \ + /opt/epics/bases/base-3.15.2/include/compilerDependencies.h \ + /opt/epics/bases/base-3.15.2/include/compiler/gcc/compilerSpecific.h \ + seqCom.h /usr/include/stdlib.h /usr/include/bits/waitflags.h \ + /usr/include/bits/waitstatus.h /usr/include/endian.h \ + /usr/include/bits/endian.h /usr/include/bits/byteswap.h \ + /usr/include/bits/byteswap-16.h /usr/include/sys/types.h \ + /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \ + /usr/include/bits/sigset.h /usr/include/bits/time.h \ + /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \ + /usr/include/alloca.h /usr/include/bits/stdlib-float.h \ + /opt/epics/bases/base-3.15.2/include/epicsExport.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h diff --git a/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-HOME_AUTO.i b/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-HOME_AUTO.i new file mode 100644 index 0000000..1d5294f --- /dev/null +++ b/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-HOME_AUTO.i @@ -0,0 +1,143 @@ +# 1 "../.././src/EMU_MTR-HOME_AUTO.st" +# 1 "<built-in>" +# 1 "<command-line>" +# 1 "/usr/include/stdc-predef.h" 1 3 4 +# 1 "<command-line>" 2 +# 1 "../.././src/EMU_MTR-HOME_AUTO.st" + + + + + +program homeMtrAuto + +%%#include <stdio.h> +%%#include <string.h> +%%#include <stdlib.h> + + +short HOMCPTFLAG; +assign HOMCPTFLAG to "{PMACPREFIX}:{MOTOR_NAME1}-HOMCPTFLAG"; +monitor HOMCPTFLAG; + +short statusMTRMov; +assign statusMTRMov to "{PMACPREFIX}:{MOTOR_NAME1}.MOVN"; +monitor statusMTRMov; + +short mtrPlaced; +assign mtrPlaced to "{PMACPREFIX}:{MOTOR_NAME1}-AXISSTS"; +monitor mtrPlaced; +evflag mtrPlacedEvent; +sync mtrPlaced mtrPlacedEvent; + +short mtrStop; +assign mtrStop to "{PMACPREFIX}:{MOTOR_NAME1}.SPMG"; +monitor mtrStop; + +short homeCMD; +assign homeCMD to "{PMACPREFIX}:{MOTOR_NAME1}-HOMCMD"; +monitor homeCMD; + +short mtrPosCons; +assign mtrPosCons to "{PMACPREFIX}:{MOTOR_NAME1}"; +monitor mtrPosCons; + +short brakeMtrCMD; +assign brakeMtrCMD to "{PREFIX}:PBI-EM:VER-BRAKE_SET"; +monitor brakeMtrCMD; + +short brakeMtrGET; +assign brakeMtrGET to "{PREFIX}:PBI-EM:VER-BRAKE_GET"; +monitor brakeMtrGET; +evflag brakeMtrGETEvent; +sync brakeMtrGET brakeMtrGETEvent; + + +short scanPS_Sts; +assign scanPS_Sts to "{DEVICE}:PS.BUSY"; +monitor scanPS_Sts; + + +short scanMTR_Sts; +assign scanMTR_Sts to "{DEVICE}:MTR.BUSY"; +monitor scanMTR_Sts; + + + +short homeSTART; +assign homeSTART to "{DEVICE}:PROC-AUTO-HOME"; +monitor homeSTART; +evflag homeSTARTEvent; +sync homeSTART homeSTARTEvent; + + +short plimSTATUS; +assign plimSTATUS to "{PMACPREFIX}:{MOTOR_NAME1}-PENDLSTS"; +monitor plimSTATUS; +evflag plimSTATUSEvent; +sync plimSTATUS plimSTATUSEvent; + +ss ss1 +{ + state init { + when (delay(1.0) && (pvConnectCount() == pvChannelCount())) + { + homeSTART=0; + pvPut(homeSTART); + printf("\nWAIT\n"); + } state waiting + } + + state waiting + { + when(efTestAndClear(homeSTARTEvent)&&(homeSTART==1)&&(plimSTATUS==0)) + { + printf("\nSTART HOME PROCEDURE\n"); + }state startHOME + } + + + state startHOME + { + when((scanPS_Sts==0) && (scanMTR_Sts==0) && (statusMTRMov==0) && (delay(1.0))){ + printf("\n GO HOME\n"); + brakeMtrCMD=1; + pvPut(brakeMtrCMD); + delay(1); + HOMCPTFLAG=1; + pvPut(HOMCPTFLAG); + delay(1); + homeCMD=1; + pvPut(homeCMD); + }state limitON + } + + state limitON + { + when(efTestAndClear(plimSTATUSEvent)&&(plimSTATUS==1)) + { + printf("\nLIMIT HIGH\n"); + HOMCPTFLAG=0; + pvPut(HOMCPTFLAG); + }state breakON + } + + state breakON + { + when(delay(1.0)) + { + printf("\nINIT POSITION\n"); + HOMCPTFLAG=0; + pvPut(HOMCPTFLAG); + delay(1); + printf("\nBRAKE ON\n"); + homeCMD=1; + pvPut(homeCMD); + homeSTART=0; + pvPut(homeSTART); + brakeMtrCMD=0; + pvPut(brakeMtrCMD); + }state init + } + +} diff --git a/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-HOME_AUTO.o b/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-HOME_AUTO.o new file mode 100644 index 0000000000000000000000000000000000000000..9d8bf842e433255e88636f87f0fce78665a3a349 GIT binary patch literal 33376 zcmeHwd3;>Om2O?NmbPWfvSouDgK2{>HlWQrU_iUoAX!VdykJbLEwyYJZS>*=0vH4Y zv)YgZ0uC0;umni(3j;$S112FXA(;@f&Ljbo4Kt7oF@z;#$UCR%oO?^BTWs_GeDy=O zs=oTpQm2-?wz;srsUgd86emZWqP!ZTN(D~!%2m2prDm!b>fImrU@Dt*#3dU2top%8 zg*iy9eE&_%c6?U7qw@X6?LQASZhyXU_-+3IBYNrHWZ_fwSXNaJI#2nq&^Y{rfBQRY z)(U?v-ItsIKDquiUVSpMwed+uRDl?2ZM;%9pc-o2hQv_iuYgk6Gpt)xYN}fr&!uEO z2o-LBWzCN#9RdAn+}>2;Z`?k$L^}(vzTS8xB3Di=x!-xpL1&-JLe+0Q4SeYz^z>u$ z(R6lS<M!7o_g22&vt7rHA^@N++0=(|+@RsnY{+}IPeU7(`wR_qJX5*v(eb)vBDT2r z`<46F^lV><*rT~{(7o^B@%$|RjCcFixDFa|H{PEmUy1#D2tC)v?Ovkl_qChcGc+Q* zWf;Ky0V;vMQ1^8wjWhQAl>XrOSMH_2coC+!y0gKJM~7CQaZ2)paFXNQ$+!ciDGrA> zM`6OQ+5XO2m@C@=R~?Vyg!ugWc+#cb2F*B)(lw7-kJT$G->>cnZvT08IJo_Vj><pb z1k*vibZ=_Pn(YVHR-akDw)!mg2Lj16qk8+3x>$X}lc|^1R6XESgGmf>^;6j;kSR|X zYbK2kg{#}cfyS2R`ao-YOKp8!M|-^*A6y;`2U=S~!Emr;xf);7UVVCf08355W@u>) zE^Acd1It>ppc=ojIv7?P2K!^p$#``tIjB@3QK@<ddXs8%v^Uv1uwEsS(RdQgsJ`C* z-X!Q+7mr2Hh8)1!)^I~p^)i*%Fc?oFHJM5@hufP6H>v()ytOad73;=QC^<N!?bJ5c zsq<Q!t7}`^>l=cr&Oh<I=9X|vdt`ZabA9FcT4*p)J2;R47BO0Df~ED%C$6Y(FV)?N zgzCfKL-cHP+UOgLxy)i>`MkRN6~Ws2^G|FImDO~FR;xr;bf7g92_?ZEw}Jm&BUDDW zVysK6JHjocIwlx9JrZgN!ULsnM~H{$3+3_4XJ+J25Gc+IJK?0CY6G9Mj7w1J`kbQw zpY|mpfU(xw9^_vn?#RWn1*R`5mq#*RRL-xheQ|r^zN8$UEirvjKl6>)7nZ{{g<JX; zwWm*YUqY_nOZqtp<nXNZMg1%U8Qd47Tp=J;ol5z)c`aja#<;=p{;ob{(=KanS+V?6 z+Doff1w)}QZHr^uD+{$YFZ(n-=ntGeOd4BHX>0xRx+d44roVIQ)FKlT=)LZ|7Xeb3 zixH!g<<}LAy~=t4ugJ6fxR~55OV_fqb9x7oD#ss%rraKEcl27#a`Y0)$~Hm-X6f~x z<=2_k?Yn9_2$|y5Sj_Y1_)(7*e<l0<a+s!iRb_t=2AIl!zY8e_{~s(Dn(`-DE;i+V zU^$>yR<?4mGRIULU8yjYEL~Y*Dn4DQGL;-%X*88wU1>FyJY893D&w5>;9{q#<U9RP z*<dOY9rSp}R3__6(o~9^9niAHR1S5Tp|Z_Xik<VIa<QpQcM_m&*i;U8hM{t~smyk6 z2HFl&DR=IG%8jN{p(`V%QmHF<naVs}*<&j6odqECkf|)xzU?)Y#m;uH^Muk{OZLrv zpsC{QTd|WSuD4;4%KwDjrE$0uds_%|VG&?C{_jC;0*)lQJ+T1_h~jW+^jnM;nbFTV zJ_!Vx8a&ss^&~9F&RLfYQv^2yIy$<XrH?*+%+|*oeazLzJbm=*<2ZdBuL`nrCx3gi zsta|~1^W0U)oR&%eVm|=6ZNq`A1CQ!p*~L5$0_<)q>oeeahi!iZYg#X_b!#4*MOJX zy44)XH^a;e?Ss}F|0{5ujC{yp?Sv1EuCKx<o2JzmUQ;~7E3Wa1XNFxuq#WWtB?yNi zbfQR?u(_xO2PDV;8$fgXo<L_O;8Ul=;eydZ$Tvd9baXoaQ@%BdL|(1KCd2CTiro*R zz)w&By&yu*b5PEG5e|BKF3IaV1GW@BJ@W?E0FBCn3!rGGXWkIvW}C=62g_!g$b+kP z*d~l@0?Q?)ocs`+nPbW+?Ar0Bya_oKro0);3&^SUG4LUGBOJ6-Re9&V>^gP6<<teg z%XOW)@J%R_Q``O<%H-5Ve}ytRb@9hgCP#)H*iXs$C4T}3myq!dzeVG3u<_!&%S%AY zczK0o{K^TSfFg1gdQZl$#`08B)>{s;x)YswJJDOC=X&H&`Rk~Y^n7Cq=p;SgL{9Ov zL_+1=Pz*5j;YNh158uKv1@k6UL;blK@g>I8F6`S<Q~vf$&{Ji~w_scvO?fxQrPY*2 zP<9o}$r2c-9Dj#C;#|z}<7CV6|Fb^kfu>wko#V#|ljFyUmE*^8%JJU^WoUwK9a0Xw z9RET%9&#umPB%^fCjmgQspGn!qJ`pgCzMtSF39OxWZ3z>D?aRr4}0RnVIUguVJ&V1 zw>odRf?GYot)AdkPjIUxxX~$rK{N_CdV(80!Hu5aMoVy|v(^<{=?Sj%1Xp^3E482r z(`Fr}n_S_|p73T*cr!{Ew{%e%;fNM~*%gj>!Vyn6;tA^_3AbtCsW2Oi;x<pX%@c0( zgmqDUMGp;M)#^)PjqExVG|e!LDDHF+^$f%?!N#hSvum?UJp+w89Y*d9Ef*%aIMFS+ z`&_xWEf*gp_f?iNX97^aYbu<l4@21bD#~G^DoSEH++<2MO;Kv5)8Tv9>6qz+or;-G zH2=L)h%lyi;Hu8_f1LsNbc05=x<=NGHnQ%^8kw4I<W<+m)X_$!esLp5pnB(goCcic zQNh`@0xo7ujLsiz=zKOrt$Hqln5YI=<$4iNjv!wC>ZAps<m`IZwHY04GdkL46qgbv zV>8MwxPy3+u{n;$8mY7J;P~7tc)d{|v}+37*&T_km~H||SIw>IYK~e&69&m^@c_x$ zbsOj?X`rT(HZGjWh4oZ8+6X9BN`=|T&3@Mj@1BjEteqQXqfpjnPhEgzMn^I$f%q|7 zNi$Y%zyl;_*L&d4>`S4^3C-StS$Ou%n6=Hm1GDxyNSli-a}l45=v?H3M%;5bEuw<6 zs{vO0>_?#qG(Lk_c=ijJwatDFGt!7Ha}l45=v?H3M%;`!4O79{bt7v00GdE!7A!E( zI1#h9*~OTVMr@gj_*_KiB44SaaF^z^m<rCWC2-GNQbA26Cvl;H3vE=GgA#80vAVs4 z8(js*v4MwR8q5II*0yk>H%T(gHFXr83^)a;;OyFq{`IprTevXHg=?sAJWAZ2narFL zmQn%IuU<COmA9@15GOpZaN<Xd&aTs7XDqp!tv<koy<B*f3fhlyAkRiJ%+ikCvyrXm zYYDSTSZ+*D=7T4AlH$}u1!vbk(33Z)spKFR{)Y?ZatW?|P~!LK337~mZYy!wtjHa? zzd%HO0a7q>xLg8cSLGJDm<Q7G0wQeuS(|{X7pXJxVkmlBi2)~P0;gpHXJi78$OImh z2|Okfcw8oMUM6sHCh+7;VBKhN0^Ta*!;O-@56!1oToVAqi$(6oaOX7vuMQV7lcTo# zw9(9?p=v^RTlZKkw_h+;%Uw5))pF1G(_1Fs9mP|CYu~fU?w((dX8tQwC*bA(Uzo`r z{xKKkjn&K7fl!8XXWU(Q^KOdY!D2b0&O7?X!9CejXfV$yfxXJpQi*8Z&v2HRTf_ng zaFGtlJl*tjJQ3q=;x#K+IZEk=3<}SAcy=nn>wma|f|U2FQTm(jBaR2S1V>-y>DCAF zwjDPGqtJ);?m{n3^LNo6t`O6V_iog(F9}6lBf3TDw~u+hM9=`rnd}^0P?Ya0m{Bm< znUYrsSEE@aDnI`efZ&ec5ala4G5@6eAgF+sQ5uJ33r`yIHI_SDVG}%U$cHn&zsT_w z<maP+1L(MkuJjUU9Z%JqU=ddHSvQQG;{=OPV&W`NR}PH@*^Z}Y(j3rp*hIL^${wYE zGCVygSPG~ADbt)|rlWjOj&^4%){Vw#VAOAVfJP6Qrj7xDL(4!BqDTv9XNz-OXW^#B zYd5W5@c;}{Rq+iq+TaXNDhsZ?53{Ne$-}o_>_C9OQ8T>~oSS*Y#g57<-dO|0BRqY< zqEQ+HMg|3D5h>@G>7yt|0!2-BkaAQRWTP5Oa#Uqe78pM|A57!T>1>UF(PKO^25U~f z(*eA>*sRpCm>mWoI*uJc&hf~>LMhzn(@emQmU-1vr{fTm+W;~u2!PQ(bvgo-WzMP7 zIqFMw^yb-6u*iV(J#e4^$H%}6%9Je*`;^BsESS`Ky+VEp{9$rb2N(Ififn}^Khx|T zS@1-H92MrGEf`J{tRjKsu3!fjTL{W*kp)k41;bpl1=B6IlE7K6U<Vf?1ZB3!f_xVT zedMAom~OF?)W$uFT)gg6EwW&jD;VaYE%<pXwz0(>uC5RlZC!0?Bg9Uy0!OuTai^<m z1s82y?P<D3NZ?;x!459|kf6-5XTe8Y!7vwX!SqO^3$|qvOz(EOV0$LP^giw<7jqm_ zfHlO$i3FKGa_tC@$i<UK5lNw&?WYo}g^9>T)`=FvySX;SwGif_Z6Q5s=@!~DS!i=D zu;Y$u<04zgQkz}Rxsa~EJ(K?S4Eo#C_3zxkdO4p#9cC_!0T<b=%=2syT*+X1iE<F+ z;u{2gy5O^}V3>=xV0x(2Ew*K{m_9+%1=}+Trccnl<RbeA(}#<n?kWqi8Q2N9XbX;Q zk=dU+s_&4iIe0||3D*)8PoO;WaIoO}-f(cy7EB)w7GyIpp}Bat>qLl)M_5j@?dIA- zkH|&aX!=m58*OK!GhJOPxX5O(=k2c1B_5HBw$b!KnLq-EP;LUr%5B;7)4h~+)Cv}4 z;{b8d*7ezbI4Z=tIC=na(bkn7$SUefhZ~FzE?z&Xn`SzBM;2^w1;bpl1=HsX3$huQ zFI?<*b%nS%XgSfgn`_s4L@wG!KTkK?+30|)YXukCjF~T7yUrtW(KebsPXB8`?i-9I z7j28_-5enof8e^>!Ntd1D8$8Q2r~1SYj1i)F7lTOhUm=!Q(~k4><WgtXbYy#1Qui$ zVJ2|#30K#dTx9>yiMHKbbKpJ{lcUb$qHXl^gs7d3KIs}=%SAS0W&+pnZrB)I%SGF0 z`b_v=3v%B+cQ@JMn{J;%T(n(H->C3unK=c}b2QUc#ZpvtvoKva{Dkr+DSw%Amq>;8 z2+yPQjGyvDD3|;Ngzu#MI?DfP4E_^@ze@RUDd+R8)Gs&Y00pd+@=D4VP%h<%2>%-8 zS5kh>82sl5$2XOjcvSvA20sk`XQ?KLn&W(2FcFUWn|`d9m6hXv<%xKgDo-Wi<$b;D z%GY;wm2X+HD6(ilX*|}wA(|}h>m5jKDPK^wq-=h9??6{ysyk-rR4HHA3tyvZ1#a`; zP_jHW)Z3LPUl&cp%&~NSS>?jAd7ciB)IZpr>H}ILc24=cvdXf`igH0#_01g-__kGl z#2UfRS<B$<KlCDz?Cy^Blx@ICm)trOOF$7q0bS`Ggd(go?MIlJ;E~(Vrs}?EydN6j zX%$$k9i*}*)^8btFN2{Gn4p`LEM1rC?Ms&S4$$5CIGPsl#A%}A`?)&kD?aEOf3U!} z@!%xi0~a3jEpdF62WQN`^DN)FWlft-+UQ&7?<w+aI_SIGIe7Z&RM5Bof`@07!k60F zPVOza{#xJGd;O=ZKK=OhzFGGc{l&NWv>&c4FHNo9{mANzQkzaHPo&N`seImylrQBk zGtE#vtTg4@@_VRm0`}^az=lI=<fPT}4qKV>4f+F`Sq=?b8hppR<l7wZja%j0d@uU+ zn{TByE<4q?@!?UZcIUL*+kIPa8PV-Ye_-zX@0JD@-{9No5BSeJ{KVnQvc|(Kg1|+( zV|~%Bs(%o^z8-|hqK2aJXn#W0N8p?6NJWG{$d2fbt=FY`6n^X-Y3Nv9t0KXcNZ(-B z*^#6fpN`-_a{fG3Cq#!fh2RtIrk17_Ede?rv4L(Q5=zG5bMLUKt8b|8XbRhU!Z652 zaHXnW5ee35>CN%pWK7Ga1`@sN2V&g;{2I<s8-tBO73t}Vu1~0eRDbP;D16ebX9Re* zB#aXUHO5q=KN>$f7Eh>-P<?x3MRmLVA+^y}7YtR`G}Y_R(i>6(U86o&-xQ7GWCXXH zs#lv}7^#)*!Eimya|!`}yk0Fr;u7HFb^6YodayF0znNFDo?y3%3=Jk!*I@sUHiqF& zL^qk<_w)@$lkP|E9CA+`kDvak-slboo9kOT!k{pP5nCSHk~Goi8yr|4(1%emT^0d# z5bQ(@wgx>-bR5u)b<wV~Q$vs?AeMtYJwTx$sI6|QRk1C-NyF{w?TZZzs%TfTcW^*M z>3cvIeEtueg~4f$t?x}FWARYzoK$R}D;9@k-5(w3PN<<2_`rSQs3v;PjltYAy=ysL zkt4B9v4Q0BRKK1t@T-At<7fTya663^?g;}bG5`_Kb0Xx;JD4TbNJgq_YwJTHwJg#F zb7>&fm(V{q&@n;D$j~O7WYAEngQ^1tLk1Wg;y4R+j1w^B24T;&KK-{obmb{Je_mKS zZDyz9S;PIs$m{+LCF3d-(n}(u_q5)Dh>j3TfFCribTD+_&CUo8RW34C%u>>0Xu4e6 z5<-XDQn6GFI?9_v5Pz8A%@JH~T2}*3L3UYBOsxy#Y6b`UP`))jxE^*Bd+C@Vjzehb zSMfe#|Exl5#*GBM#9wpJ4>N{f$whi#9Y(Alj(EyU2k@5=u=;4RSwR>`#<%JqRM+B9 zRO}V2f1F~(y>-h!HYrDA<z3NabRbsV4YBMS9O{SJRo-8!9W9OZr^;~zy1RSh<t=6A zgcs=o%3xw~sW}HLn9QkI2qvpa#$iX&Q!_FY?XFZ2%;uSFzR4DtY#~iU*oJCbmM^DT zsJ42!34TjoH}9R1P08rGz8J4V7{NN+(-SajaSx|C>25iCM*vd&rUt!Hy0Z#5WxdPm z9kn{N8n$@sKYsqKhaX4Y`+<##S$%tZOS^)r09fC!O!bZ(YH5H~1Y^HE+8<LLiCBCE zjQ3EOI}bAhR}Hb->#OT{oq6+W(SopoeHrICPDEH|gRsoHl4hNeonUjb>W{AP#T`W3 z8bU)n{yd1wmUjed1Nz!0Ft4I=LB$D`m4P|!aOP-?CJkPC!rVY<e=;=?J9&L<AQtcK zg6g6LaEQjcHk=IOSc<jvfzp=wfzqDVAe{X0%%^Y*!YdZ{q{l{iN7m6!-&;)wnu5zu zhyAm!o5v2vq9F)p9bU-R_Kk7!W+<PR*$(d!?hdZE9}~LPR8qCqFAIjk?Qo`xB=9T_ zEor+gFIV)!Y!0~5ppIBiIF?9O4|Lb|#UR4ww1-1u|Mm*z6l|5a!}0Hz>Q}&~YZe<U zU%dig>m3AlO#eIT8r;(}u6Hoi98H`JD*(1~*x9|`Ink+Jcgo1tw!q+bZP3GRX06+G zy+h$iKr7==^2q3U4Nkz4ffa(&G@_%7TRfZ<^m5T!&4t7~_g7!|TQ2B^Y3oYGBVB`i zsr~`8yn_SXu`SfC8ko?bjvCXAMGK%Kk<>sc5yO>^Cr`Kl(mSPER$F^wU=GaBxt}>b z&5goTlPTxicI9j-bY@J*^Y4HQ=t98xGbp~OMXZAOHddDbTSXXr>Yx+K_EFi!wh62R z>R%^p9_G~rg_mVD6ci8pmK6jd1;w=mh1CUq?H|8!U_Y@h&ylSDn5wRzuobugzzz_u zKac{Q!=N*;ZhS#uZGpcI-WI}(J$QX<NH<{ChMcU_k3k;W=1`md{7AR0#3tQVM{UEN zTofD8pH6C9jBVk9!m|L!7;Yh4e~P2~7^FU~9?zYu$!{wthCYCcTIODo38AhrW!AVd zjX>K^GWr9Tnu5Y>vg!(oulCg!1g^@iE0}XxPHjQOaBlPXf;qJXftrG1pwtxj8}nBe z%voUp@TN4ewI9w3kSF6N-@v6foE*xMc<EEt4JS5Lwhq1=E{hLh1?h0-22~_!1WIMF z)kXUx7$0<TEjwDr61UowNMc1RjIB%IYU>#U+qxWG2g`C3*TBvwCfte)tcObxB6H2s z1^2ZvZU)~~8C)&n30jp63?^e`u(V2HLBmFE9Efd*^uPs442R_ZMGAlt95T2G9hIu6 zCLfsKy0X&@sL*pH8&)5-n(7?5fyIPt2JP_U7@XsnX2T!i^0`4{CZ)iWFh1x(ol?G) zh;`6rC+R<aK7#i3+P8=-zY80!#8uAgp$*H@J_mH0C5y#?s8>N<_6aG06?lYS>zGW( z564Kx58p&*vcHW7R45OSKF&IzASk+N57{@r-!kKewx#`kz|cPL&srD`=9fw7zp<6J zQY0_qZ+@7h)UR0~<!m2qV!8zWusj7TR@wr4EGFignpbE1o6x|zn1lH?k}rmDIP4_3 z`2Jh=3HcAvm$6SDX{2%f!<RU&KRo|$15D~fi5q9)QK^3yftB1nz>yfr^~}PfQoo#F zaz0A#UTBaQau@4Qyu9--VwfZs-;HPL|F&(&_T;huli`o!&i(%dU{WVQYCYNS6pf;) zemjQzQ{|`ye%|pJ@%s&MGWow}8%om;10YBL@%$?N|1)6dQw99l=?I$87sB`Yc4GfI z{|Fj0$=`C4k<wqsSqfN=^DHQE*`lduN#4e=EV+l0ya<zej^yWv2JS!W#qSC-#qa5D zhH)bq#Q5Pg63g@W<D5v_I|2LfWH>;YB^(x2-5=qimK$l%nOdU1mNs9sR|6#N<M3p% z|4Orw|B7go_6;ljh`em|mw%+UpuNmmd>K7KetLxQpBc%r^l%Jj5zgm1#_>Fd`~c*b z7_Zi4$DO}?t=vX<737#0?}9SwY1OEQ4-wu;xV@kI++XlhBV^m)5A}>djtS=nrXBEy z_+G3)(%03H-wuC>?}r={ZLbPHBXS@<6&gj3Nk1YyKy}9do$xAw{|f4;zlw%NUy}p& z7W|?98o_^`@FfEOgz!Rv<FBVt&jNu@1zh)w>@K4A62b%I_%Pv%2;W1vzRriXTEh90 z0{-Ma1UTB|#Bn%__*FE&^))__1_&P^yoUuL_whxIg`KDM``!DF5i)QY;Y{WAj&+~A z3b|FO>xmyAh{s_><KxZmTcM46@;$=&^v3vOg!4LQd>`Rl=lpksvnPyW-ACUYa~tPA z^D}3z>KtDPVw{%}%5naLaQ-Ti@mwe%pU0c=$%OOzVI0-^6!(^lQ0CKD7Naq&`P@}I zy3OZCQ{uQArzf8h7ePev=`&&`{vqigAU^XmyR<f+yUM+$!*$2g`+KCu>88S?t78b4 zmX9a=Xp4)*O2X+f!EIecxIBHHM0mZ+^a?)nb3zY*QWfxd53n0njDdHLfe(y<<8S;k z>E8kPWLT#GGTKS`t}*xzje-AY4E)70@B?Gu9|Mm5aN>2D;Z17SsE1knSa7Vzgxt;# z#kdYP%k<)a5&djTK2qgpYOFrvGkF&BbXspe?8k)o$j$v1oLDt`X1ylihtb|+LHo@C z3-Xgtu6yPg8Pz4GTmO<0JI=l1x|XwE1&w+^_9+kB-AC`PLViE!`Q~!i9~a<2cu(G; zr2lCv>-7i+0-sTqHPu$&0UqNt)y~7id^{|`!$LePQjuj%Ej86mk(P!A_;;-$VSLjW z(NB8yd%hsP@xkZ5=H;+{wUp_BvHN<?8h?}<^T{&m9NL7>qp>8ODx1bp&-n?mU$K40 ziy*U7?CXRR0Q&nsOsb=W1j|a<cz6takZ?S&)xsa^x!>aBxry<g5RQD@>lptT;ds4_ zm)4B`7vbm+${a`a_XIwJ>Ue#GiTS+G9tP)0Ow!Mlgd-ohZ1+ryUuWTc79VxdhZ5=> zi{EJR@%jamv<tr!(FyJ1Ii2l(&Eng3Z?^cTi^uOai*MU~K=AoYr~fHIkVhRh{~5vO z>)j759B-M}&%axCZ9gYshahqMIX;Um95L3jlyLON*3)kBv5oy%Y4L6UqZV$@!?@7H z{%p1QwjTU<VKAXhThC2G567RMpI|e}aGamF^w|3U)6#P)@Hq}ybUlnZ@Y<U3Nrbch zk7=E@kHL=!K0Rhq34ybo2Q59dmfaUD9Do19{=8=4r&~C$GxWd4!jXeX;%f|?hCgKC zbx>xzFIxCA3xD34hjyH&j1m9cW8lBDaN91Kg==Xur}q*thjPSm%(<UDPZ2*7{yNFO zDkx)O+|=No3ZVk)SxNOy3n$kIF&Xn$5$d=2Xg5H0&Y6EE;kN&%pYQi<{}CUd@#gzb z)Pp$t%{k(8;ja+>Fm>vq=`Y47O7#sEuJu!WNZ?gucZ<MT{|*aByS(m3EF7_3s^4Yd zXg7cdNPA4C#|5GNROflf{jDPWIm)@e9QXYej&>7NKVacnKMF#6$7HTuzOVjJ-~p-^ zk{sK`^@J&4;b`|fje76*uo>-E5wF7HBi;#rn3f2<!oaH4!ZFUAIxYNI1|i>I;k@Rt zdC0=i&tU{1@q0sTM*JECA@OrP#8Lko1R;%BdQg8Af{^aAaMbg4jl%c}ob^9v;i$in z_^((v>gW6I{T7b;ZzcW#fwO-8U>BQF{}AyDG3byGNBw-?UTop0{~q|m#PbySc6_QV zKI-3rWJrw`j{14swpuvq;p;Pgel7KH5&TC`IizhCj{5oe!sQl@`d>maq#Xk1`0Nq* z>xQoIei0MLhtIQnEgbdpgU_c0&iW4sJRcQ8ddI@ie|`?~p@pOVxx`nr4`CH?)*le~ zLgLS{aMaK1sKUZgPXqD!w=7csD#33fey4?_{s8=8+F;?Rzl-?%;kDGiL+}TQf1`z? z{z6m^X~e=&KVPTbC2)?<(-w~NllN2pup7;xeon7geAK^_{Mj#X*3WnR<AICMo;jf` zCd6@W{*j3M<caYljW<5$#>Dun98>4#!srH3bp!8#$X{rv`pDzVdj3Wy2IesS7%8hE zS;jZedxW6CYY1-@_|v4H&u^?}EyZg{@Si6=n+5)FRKGyr{BM_BD)1>3&#MG}Ea5u^ zek1w0OW=`l2Dne)JIPPpZ@6E4{r8mM-$(s@Uf?<8&uapIjpF~7!2d>iJ`nh!<bO8J zNA`#Po-FV<^=qcU&mq0X349qX0zUt;{)Oacz2M_>X-w?`|H!~9BJhdi58t=4e!gGY zD)=*rkI&aJG2i^lMdmrWjh{&T5y5|w*3owbew@~-6yJxk{-reTPYHfK#o+~kpG*2* z7x+bl|5@Od6aKNluO-}1cG#b95<X4feKb$Zb7C((y%dKE!N+?%Onm>#`oB(kY6brj zs<#OIuN0p(0_V8%{VD4|&6rhp3jT34-@YgCJgPq+@JA?K_`DVq>;HqPDn9=*KA!r; z_r;7~LhI-Sq33$?hwqD-|0mM3U+^y{{Eq^^j{JFB;3ts&g96`4`vaf%+3xwIhsS~O z2WdV`B>Rj%NqUO}elqEwF7R)Yo+AW)CynpX0&k-DA1CmilArv;EB5CT>hEH~?;-xl z0^dz|t-yaudV&HUM|g|CAEfc+-;1(8e0{t|@UNnNMFrkW@mw$Pdnj)G0za4H#?Lp{ zZX3matKhfMI=xWf=aT=I3j7fAlYg+r`hP(BcMAT6gx?@={x$S10v|{H`i{VFC%X>_ z{0bVcM+ANt*?nB#f2Dr$^%(pAL*o61;PVgoUKKcg2ZD)zh{t+jWcSa4zk}?4B=GMT zHOl-W%HDpmoAgYg`NjH|ke;sy9RD#@Oh*g+Ak|k0yp!}?DDZ0P*G&Td6V1ch1%5u& z_XwP?^PUv=X6n~VW8l9P_~Yc~p9TI4^5<^?pGWgKm*x@2?F8!A6oJ1__)LMnMEc>M z8`6pO@N?%y0>^etH3DBx_2mL@AV1d#{2il4ojnG=S>X7OsbU%ycrW?S=X3V|cQpTQ z7X0Igf2Y6?P<-zf_$uN*Ch%X;cs(odAdUMg0?#IY4vc}nC-9$=9)88i{c0mU6R4f> zb%YlS{6*4xw7}O=e=EkomkRs|sy7P!Osa<k&iApM0{^ucM#bxc{a;S;92Weu3BOk0 zQ%TRw0{<KJ_fCQHxZE#r{2m6=V*=;-@T|ajKD;dOB8unHbY9|q@juYHSm3-bEED+U zG~e0<{!6mAR^a`F^L-@S<@Ypvo@D$F6wk|q9=6N(Va#W{y9ECnj<dko?)?JaP4n|H zfwSG83Y_h}C~&sBU*K%_ZGr!i?0zV4w(FyK$o|4l6?9^p?M@ds+dW#~H<7(cfwSGE z0_XlN6FA##7dYEJOW^m>{2359+ubT~w#(P)++Uto*9tz{HUBFH?>s)kgiGBc_-vQ2 z6Inmo<?|lnZ1-nE58Hi3;J>2vdqCi9_g#Ur-A@G0cE{0qhW%l?(**8NeFo*|28CWn zg3r&ahwYkwI^K)h3W^(_Cs|J+;cJCm?$<_vv;Hjt|1r(O3xuBm(*F&?XZ^Pcob~S! z`01qoL7~5b^#5G&S^vux&d*{|<kuFC&+*vqA1xgD_>BUlw+QFB@qPC+3_K)`KfmXm zK{)fPGz*>w3qJd~)WXqjocPriZu@z<g(IJz=bQgoi+R3{^Q49JoNMt>&l-y7Hp1D@ zR^s0v`0VGc7LIm*Py9P9-1gJ_pI1zLkbgKDg7ko}8!@nYP3U=v&O2`kekbwyQ$}n? zyX@!qd_zDS?XDoZlPui!bGn5i|61bDv~c9}`kiCp$bXvnr528SUe}8)9Qjje5icbi z#S!B7dMhnH>ggr@YXyG<+At*rpW|?Wg`?e0vO8?yb{wv@aOC6vO9j()7LI&AU+l7Q z<nJT?trl*_;T{V|em<Qy_Ylr;_#w1mdfdYK**oGtv-F_;4Rl@fyv0XX_QD^g{}T8! z238*k{67fylQHzCfiTPtwQ$tGA3;d-2<Q1$NBufU;CB#SCvZRc-z;$MS3BVxpF)}s z7YY8;q~|ih4-o%Ofmad!pOzkeCx-p{NbvU)|9Jc{5G3p`@_8RVop7XKd;&BdE)e`q zXv6ev!RPmO4_SPiCk|Z)J}&SR3ID0U6NEo6@Oue=#lq459q0_C*DW0F{(<=K2z(~( zOCJe*CE=eC&T)8|;&51jHlrASgYZ%d$B@?>nmXCSk;?BER}s$hZ3o$n3j7(uHwxVR zpUhyt5%^|0FKn@JjL%;3=TZyD`0#b`HDlm62z(A*4~+;sN%$Rvb9{1Xz5GPrRfO*s zdiIi@HwFF?;RglI*H0e{{7yRG^C##$&-K7Tzh_M{0pa)`h6PB+3cQ2x3c|TxE6D#A zf%ALNjY7{gq$eS8AMIaX6*!+)E*1FyA^sH>uGcR*2I*D{$MKy_>;G<nM+m=P;5QQf z5aHZke*gNM!1?*f9|Zm|#fM)IWA|~NKcDakg;0Tn`f<yv!3v~lgfqXI#(kFHS7|nk zm*CH*^|DCt`8$nM1^;o1+v$SO-(7?S|47o`Dfs*yMX%tG(0-m0e2fLA3k3gb#J@uD zaf~rtFZi=*p6?cX9D7W634Wa7|1W}HVd(1L1V2pie@5^F#NQ|QBgB7I@Tsca5Pbgb z;$6Wf^=bmWnCJO0m;5g#9Ea~n`0J!`TqO8!)Bay$@#g}c{b?0^{$H=0DfqN3)JDPQ z_oJHxpTeLn5&Tu;=MKTAVOO^ZzWKkwD|NTvb9|l_{MV?zFIaqxPk;mt3jRzyDM9)~ z@C^#zv`jH2jz7N-J5=Ba>hO^QFQxvL5suXcRu1`M!M}$BQD^a+EPk`#A5Q!Y0%wtn z1^y$NKbH&qZi>Ur0>7H@+XVhGoo9a_@Ye}{Md1A0=b*svp#3DT$au_gK85_GW__Jj z!JUGf=P$;ST-2?rDc%wf=vKqE`Mj?nhJUQLQSbv)KU3iB(~!WcsD6pSTd97dz&okF zSKuR5e?j1Tss6UW_fws(ueo1U6qn;EXM8`^8wJkSz1;%m>)WpioUiNndqURF*Ezoz Ie7;WjzxnA}0RR91 literal 0 HcmV?d00001 diff --git a/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-HOME_AUTO_snl.dbd b/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-HOME_AUTO_snl.dbd new file mode 100644 index 0000000..1386530 --- /dev/null +++ b/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-HOME_AUTO_snl.dbd @@ -0,0 +1 @@ +registrar (homeMtrAutoRegistrar) diff --git a/builddir/O.3.15.2_centos7-x86_64/EMU_REPORT_FILE.d b/builddir/O.3.15.2_centos7-x86_64/EMU_REPORT_FILE.d new file mode 100644 index 0000000..0939ede --- /dev/null +++ b/builddir/O.3.15.2_centos7-x86_64/EMU_REPORT_FILE.d @@ -0,0 +1,17 @@ +EMU_REPORT_FILE.o: ../.././src/EMU_REPORT_FILE.c \ + /opt/epics/bases/base-3.15.2/include/aSubRecord.h \ + /opt/epics/bases/base-3.15.2/include/epicsTypes.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h \ + /opt/epics/bases/base-3.15.2/include/compilerDependencies.h \ + /opt/epics/bases/base-3.15.2/include/compiler/gcc/compilerSpecific.h \ + /opt/epics/bases/base-3.15.2/include/link.h \ + /opt/epics/bases/base-3.15.2/include/dbDefs.h \ + /opt/epics/bases/base-3.15.2/include/epicsMutex.h \ + /opt/epics/bases/base-3.15.2/include/epicsAssert.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdMutex.h \ + /opt/epics/bases/base-3.15.2/include/ellLib.h \ + /opt/epics/bases/base-3.15.2/include/epicsTime.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdTime.h \ + /opt/epics/bases/base-3.15.2/include/registryFunction.h \ + /opt/epics/bases/base-3.15.2/include/epicsExport.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h diff --git a/builddir/O.3.15.2_centos7-x86_64/EMU_REPORT_FILE.dc b/builddir/O.3.15.2_centos7-x86_64/EMU_REPORT_FILE.dc new file mode 100644 index 0000000..96272a4 --- /dev/null +++ b/builddir/O.3.15.2_centos7-x86_64/EMU_REPORT_FILE.dc @@ -0,0 +1,39 @@ +EMU_REPORT_FILE.o: ../.././src/EMU_REPORT_FILE.c \ + /usr/include/stdc-predef.h \ + /opt/epics/bases/base-3.15.2/include/aSubRecord.h \ + /opt/epics/bases/base-3.15.2/include/epicsTypes.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h \ + /opt/epics/bases/base-3.15.2/include/compilerDependencies.h \ + /opt/epics/bases/base-3.15.2/include/compiler/gcc/compilerSpecific.h \ + /opt/epics/bases/base-3.15.2/include/link.h \ + /opt/epics/bases/base-3.15.2/include/dbDefs.h \ + /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/stddef.h \ + /opt/epics/bases/base-3.15.2/include/epicsMutex.h \ + /opt/epics/bases/base-3.15.2/include/epicsAssert.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdMutex.h \ + /opt/epics/bases/base-3.15.2/include/ellLib.h \ + /opt/epics/bases/base-3.15.2/include/epicsTime.h /usr/include/time.h \ + /usr/include/features.h /usr/include/sys/cdefs.h \ + /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \ + /usr/include/gnu/stubs-64.h /usr/include/bits/time.h \ + /usr/include/bits/types.h /usr/include/bits/typesizes.h \ + /usr/include/bits/timex.h /usr/include/xlocale.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdTime.h \ + /opt/epics/bases/base-3.15.2/include/registryFunction.h \ + /opt/epics/bases/base-3.15.2/include/epicsExport.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h /usr/include/math.h \ + /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \ + /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \ + /usr/include/bits/nan.h /usr/include/bits/mathdef.h \ + /usr/include/bits/mathcalls.h /usr/include/string.h \ + /usr/include/stdlib.h /usr/include/bits/waitflags.h \ + /usr/include/bits/waitstatus.h /usr/include/endian.h \ + /usr/include/bits/endian.h /usr/include/bits/byteswap.h \ + /usr/include/bits/byteswap-16.h /usr/include/sys/types.h \ + /usr/include/sys/select.h /usr/include/bits/select.h \ + /usr/include/bits/sigset.h /usr/include/sys/sysmacros.h \ + /usr/include/bits/pthreadtypes.h /usr/include/alloca.h \ + /usr/include/bits/stdlib-float.h /usr/include/stdio.h \ + /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/stdarg.h \ + /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h diff --git a/builddir/O.3.15.2_centos7-x86_64/EMU_REPORT_FILE.o b/builddir/O.3.15.2_centos7-x86_64/EMU_REPORT_FILE.o new file mode 100644 index 0000000000000000000000000000000000000000..d0bc26a605aed315b1e9c209ca70536560894d80 GIT binary patch literal 24744 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�b+YJ6dj?u^X#|oBrJaX7K!`4FLTh#|>d`cEqfjlXf zH4}JO=4e0;IR#x)Q;Yv<GwFz_O{TK7u~b(iQ`;8K#9UfEwWj{enkltiiAX#bjhWh9 zCS4ovYOC#tL~46yOmCe&tvVfxc80Un@vcO!w{}|1jGC!OXJ^^kwl3MRtpo4PG%Q-q zcj~PRnwlGGB50LuL(BS9EK}2oj%KpaXslgqxsXUDYaO+@7Ui<BUg~(fxvS0DSr(Q@ z1=+6dm_S(&&aIQ;HGEO7ZCNamOh;XrbgZK*lTEK*kV{0eUC9K!A|4IBsbo6qfb_j9 z=^RSCyeS)o8xe_X;gb^K!t+8e7nW}O*tsh%{zs@|)!xoCRuxXZwqUTF>Pn>68A;Me zGDxyWawgNYA=a9;ALxL|cDHsWb7>O|XJtIHCf(kZH1TjIyD*lGwxtmvBd-K9u4fD4 z$#8c1v=-Caw4^l??uoU=5>b;%CnK>;W^ppx)xQ2{<vMS(Uy<(0##%AzCX!yCG^w0C zV2$E^d22iwS!)upo_1r~1n22kIBK0|vSG>LtFy&h+q>eiMAD?A@?1;8DUV>gV<?|9 zt&z@fS3=q#y=aZ((yftXJlCBtQS>bn?aCN=R}n_ih9rU{iX?`l9Z3h0P9$AO)*xAn zB#xvTNdid{Nean2BxxkpeHK>E#FL4RO8h>ep}D!a>7o`F!R1Yf?2Hx@M|%<(dCrKg zb%)by<$0ax9+Q;9F6)wb^rCFKE78${(TT~Jb;z^GO6g(RmcnFqImKuFbdyZ<gpsr% zi6Dt0i6Lo6(t)HCNf(keNY)~WBk4wxFu6p2J%Uo;>yV_8WRPT$<V>txq7{!wA2S%o zg^QP0&abqKvvNvZ{j|EX>+374mPwl%!&%3x&px%Xx;vXo#AbKI<QZjGMC9~ol7!Qd z&e^iqtD!n7tCviztZrZ0G~Y;&mdbo=NF^h7RB|$Z5CXf@q~}wo*l1u5*@@kekN{#z zVs3ZKWRRvNU2Y%Fuq-c=>ItV?+hrljT*Io2Q62p&oYs^)OvWNim`tuMZshT}EE@dA zp*<_{?cX4pq9C0nEma$iXvVa)g`?55$y%5|u}oOBOvJD&Ygg3NDJ`Zgo#`<hDXe@n z98*I+x-!v>l!=5Bt+9BlJ0_v-j>{}=Zd!c7{1q)G5>Ctd>q&%V0oV!GH+-0Rt?lt} zN5;jcE!XZAU*GDoYblwNS0in0tXNdc=uK*FG-|g*)0#`<GO_3sBiXu4I2uk#&>-S6 z{xVTzJ@;>TCe@Yb>Ki1P@~z2uv^Ck@j+x)x6_F^(8(|r#a3t%R-nU?CJCoh9+KB8( ziCAqk))R{-Q|NkaceRaob*wvA+m`E!N26Wo+9fsa^3fWREXmAS)$WR6M_=9~Bzt7N zOVTF$Us&dNkF0k|WL5OY<dsAgM2{?WNn}Cv$WoU?7DSIMbxEv)BrI76J+jm#kv{jx zQkO*5L60o;H2M@x%KV7+^|*ezbXnH6+xD<c_H@T&Y}?Zqt5}Z=PZAAk$Chd$$(#T? zR}x8Cp0caS!tY;<7|p(G%SG96cgoHcTR<k0v@Iv^yTp=a<>dXABvDA&Pq58OB7M!t zd#m<%LVB2!_f(RsHPN>D$?k51DJNfTB(awCHz)6&B$58+<Xw{_*0HoXC-0P6TjfVC z_3lGv7t~Y}j;zffk!hEa$tLquUiV-Ex`sC-a@{s2c1{}kCBdRtcbm+g)^02*>2N)g zDYA59JzdFM#<cci!xB+HXA*KHFx^-eSPssq-A(OCN5ku7hPl}lNg{6|E6cq<8|wB; z$j-E5mkYKKf5Cz;*-m5$UIEwgxgMW=V<4Bu`MGo&3sP=5+Hx6OaAdgKBm%h<S6Zf1 zF6oGcT&SekG1)=wrK%O)r%x0Ash;?vaAvK^yGN=$_I_nq!$P@$EStN`RUs=G^U1cw zZh$SuZUE=a!?s{>A7PH(#iaQi-C3#B*e2P_Qit?FHf`(04US25hBM+yF0F0pa6-1* zDDPhEZ9v;vxrq=@8<L3_E^3RHoY!FF*9&Qr;mVSE*CQ8E*$2Z&+K|X4wzmuOJ}Xxu zN$hFP343R?G@O=Ikd;X<$r>awZL)GrlEj`!z_Jcfu+||-Bgr7K8*$DsL>DhuzIc91 z(~`xw9S9?7LlQv}MG}*cx8ep5q60}Mk}f1`kk}Kl&&Q;4NfJnsNK#1FA(1O}Oe&Xz z;lnhP3$UzQsWOQwlc+L@Dw9&BB<)C~zNFOGCDT(PBDU0+M2!+QBvNA%H6~GG5;Z1K zV-htcQDahSlq6^8V@xiB|J$X@4fRnM1i6sO0yc46w=?miEY-dpDwV%ja6yXTLe+P% z!0AZ1I~<XQ_bq~!<ibTQi=;oP4lLV<JA-J*McH2MK;`b&MCHa#wt5+9agk19W!i0H zn)^7@;AWtsD+XU-B-pM~5hPJ0_Jr&yDC~w$AR?LSLb3+QS|o8K-AEEhl1Ng<ESx`o zW@VM!pq%>uygzYYXh!gRO<=<^6X-1qj2T=U+9ux{%7l;QIr&Cv4?O9qqir89%`Gjv zzF=-?#dU=XOAiDJ+Dj|umzK>fwcn&_GV8l#Uo$nb*}2b7Z>3}LaE-mUsKM>HscDn# zye6H5K=%5YdXdOviC8tVWy#$RVXQ6J(b|=0Pnw#jwZm;~vYC1%d5_8&mNniXchLEz zWo5*CeyP#aMC9^-O|B-9%*JXYfYq|K%H6sv6zgnt*E9D1|Nc=aMe&7Ee}$bR42S;S ziE+q3@I*(xi5+u<&T?oU&){(r>ha%d<;%J~CQAz5_Z-n-^DIC0hpr3Xm*MmOS{~o} zQU4VA%RhYm_L*Vc3FO7$KO1Q4`h5o9Ut35Lt>*~SeL~*-jGvDa;)gNv<vm{|%(q3% zzQg@0U4AKt0m?gc-sN)cc=aD*{Y$G{VbqVhb^Yzav`>_1=VA@_eRT#sHZRug@yb7C zAAcM3Ia{hf(Rnw0Ncq+FfqDP_;63Q_SIddx^}lYlE8+JS^dAr3b^mt?(>_sh8|%MW zomA4?DtV7r|LWE7A`kxDhe7@F=<}HR?-2%{zMW#)<D~KKbErJ;%RhYm{_{aOdA#y9 z_E9pQ1LryL<^1Pfme0##%}ZEbb6?K$r^NtM)5NT1`ISB+KYjc?-Y>@S;@7*{<?wMq z{BYgy<$YX-2|H%(3fs&2e<ODOq1%7Fwj=+xsjk#6cC1|FNcq$C<NugAUj22`UHM<Q zkG@pb-*-Y8$QLxPf1t3Hg~y$-Xvgtd0)D&*gUgdQbs)wCdH$hs)XE=tC4?MU_x>n6 z=IZ0l6!t~S=k&bfXh2nnR|m&A3f=3=W6l)X6?F`je(9^6%TwrnS$|A{!oHVe{ip2z z-gKP!%(GdFj;VPed1b$gKC96EZv}lCMzj1Kua#{d!h1f1-}oW?wh!TVe+a){_^`Zj z^z-~UPl5lpd*`FSKGihOuQQU!?N{^sDW-K{^OAXUn_HJGSa4B8OKZ#AdCd*2$9-(l zcc+~9b+M1}?pbcL+yhMi4CVjt!Ibn9ho6C1-q=Il!{dB8c-gco25a7PH@<GK!rtTg zVzF_+5B|Rm&o2j*11k?NEIdyF%7Oe?Tb^$Mlmq$k7SD70(*knrfu4(L550f+`#|*1 z_YoNf+uV-fI+Q~L<UrqXATRiyVkrOrHT3iEatlFUaOisdOIP@jH*<Z5-@m>8r?}<# zID7tEwr3Vgdj1kS)TH=K=J)aU`CmoD<haCr^z~~LC-iE?yRd=F(d|C^@(1Bij<oye z<9}eie!P6WS1|u}mH$D;ZKvYn80Rl2ej3|(pW^p1ZeLeCL;j57mDJBGzM1X$z2Z9< zw^tP3K>vSHd?4HZ55>1~y#A^9%gpaDXg+S!8Mh+V@A*BvlnqjR8T}4Zd>HeWEB<}z zO2x0Eo}{>+-%}KSgZ|G_{1Ev?ivNcFYE}F;^0?w-I1hUj{|o(ZQhYQ0+^+b^oIkr2 z-_7_xtoXT%=MNOG;y6B|_zup8=M+E8cK%86e{#M2UGdMb{U0d4oP0LRL1JI>`OjDU zY_@-e;&T{>HpTB?{)FOpa$Rgtyq@{5SNufA^G?ObF%I`DzLfsIrFew=M~eG+{#<b% z&*v5Q@j0ycx7eOH6!-0sn<abrIDeDlJ6Lh=f0W{J#$l4;-haK~7gNtx{5|?<Qr!1< zx#GS(ZHm`0o(aW$dp0P(nfiLg|G+rhp}4R2e#O7Q_3Pv9<GGK19#{Eq;`}_I_-3xV z7ZksZe*C=f{!fM>#|J9EkJ})|!{_(yuTcCT=f_0F|IPN)D(?5UnTq>;tU+<VZ}@TW z?OD$DU!wB+b=|JGUtjAK_i?{caX&wAP~4B#EsFd3^99BIc-^bG@6RKO`*{99@x5-i z%+rcr&hdLr@i)0H{-}5-^S`C|U7T0%Djp^;<~;K8zmD-AuK0I2?voYwe(Dv!iTn6$ z#r=A3QhX2f3dOyjh~m%Ef2ZPe7$1Kh<ok68`4*M`dyLy>6fYvbOYu`VUSC!GFO1Kl ziWgEpq4**055G{nk?nj@@ulRiD*go9`KIDSIlk_nsOZ0MznFX!+w0@=EXz+){HNRp z>J|SI<A1K=-cOU_y_|n56hFd#wJClx`3A*bq`qG9>*)U$#iz5scPPG#{r#rmU!tEM zD!z^D;u*z@sGn2(PL9i;6d%dB{ax|vs6SBrdHNa5c=+*pjqM+$xW9f+R{STNw^J40 zLG9O#_x~%lW0A`L2;09(@eK2KDBeq+Rs1cs{~E>Da=v|9@%uO~pI7{D_RHVT`u6+l z`p;GVF3yJ+6i>0<R~1jNoo^{##yAwxpRac}+f%0aAIU$W_%8bK-}Ag5|GnremH%eW zhw~I~p}t)4MXYzN;-6!GdKLHk!Yzt_o9(<)@ez#A1B#DBN91@^@fNoKNyQV?zf$~5 z^nXb4+vw*niqB`g|5E%L%<ukroBsVU&HN*{AN%;Xb3Tk${88qwQT%)4=P3Ro@<zq? zlP_2NY4SG3e@UKHyqo+=#a|-dqWCN1|DpJ6<aaCnI{6;O-y;96;_s6GL~;Kp_cw|c z@e%LKikFbTuDF|3#=NgMr->QF`tgD9iIk>7asM1`lHwy+K{E==;r+bM3NBXsRPIad zioeVJ8O8l0)s2duML$~=FX8@qo8m*szoPgE@`n|_oc@2H_&DZ&M)8x$pI3Y>{Tx=@ z-ygiG_;mUyV8DGm&mkYG_#E=FiZ_s-s`&Zj(-mJrK40+`@}-JjOn#Z-qq*;`QT!zG zD-_579D!q#;-`{tSG<P&4#lUE->>)#^1X`BCVxWldE~!T9RFAsj^8QXO#YhU7n1)| z@fG9)`0~P!?<M5J6<<wWsd$XMTJbgHGZjygFH}5B-lF(=^04ApktY-{;rji!;zP+d zE1u!?<}-?qV*W2GK92lB#r^g8F~v`2{vRt|MgD8WtI7YM_!ROZil0UPZ^dVkm+-}a zAK$s;<%%yLpQ!i+<n@X#B|lg3<>VJAzKVRM;;rN{#iQhD#k<I_R{Rqj$D0(tmi%*y z-$4Fl#Us4mct~-7U$sy1&(hB`ir-HDg5o*)|FhzInExHcA0Z!rmr`>0ar`#<2*tlo zK0)!v$?FvVG5NWQKSSQExWCU^rT9VS?^OIn@*c%sBHyI=E9AE*{u=o%#dEx$_?qGy z$RAVuYVw~bzKQ&x;{HDDPl|t<`QK3dR`LSAaQEZ2le|pv?{GekQ~Vz0KSS|*$!9A5 zHS$KqA0l6&_+Ij;;{Luct@sa_f1~10k$+n8pON3L_%F!sQ~cNDdli44{7J>#KZYs) z?u+97d%{bK52l|ZiVq`yU-1*k2lK|#kK;pb8Jf|GpUnJKidT_OSG=11JjJJwFH`(1 z^3{sZB2Oqjm;6e_7m(km_yy!U6<<pJWySsXpNAD+#r!{1yp{Zb;!*P7D*g|~`8CDg z;C26BivN>5gdg|F;l~UAk|T~26))uX#EFWB$fqbignW+TCy*~zyqx?}#mADbQG7gk zui}%*uUGtZ@*RrTk$+L~Gs*WT?%xl6Pw__P|C!>8$e&Yu8TnzwKSutR;+K-Ue;%%X zy!`JJ=i^5ba`<t)i}(4975DG^FIN2HuDFRR{tU0bNyYv1q791s=S81Xd?Bw#+Y~>O z&u5-e+&@SCmEy0{&mR?khJKDHeu(q=J;iThd_wrKiyS^~jWFaGq4;+lHkFEx;rGNd z6u+7IXDD7p{|$;?&+FPU#Y^eGRq=!DZ(Q-8v)=WJ=a~O`#aA=`t%_gGao?r*JIw!8 z#a|@<w&DZW{-+ebmHb)7gB-8lEB-jg>#vG`lKpyD@vpKyA^d1b4nMwc($7f6FDIX% zc#OPO@i_S`#qZ|$HYt7|`3lAFr=N)8%Nd__ivN}SK(FHWF>ad_-@$R*ruZjV@9m2F z_t4KPewf#t-;<*{HpRyG9mRQjU<UGsCCJYyZu6g*$Kj{aQe(!G`|%2Jy`TOe`RA$p z{`Voxc|8Bul^5o5Ji_@p$K{edj{Ik{J)g+q$bSyobCcp<XFNZzxPR~RWyKFN|DHUK zdRtlVBY7P4{+#3cIJuAiIn4ip;unwy@S{38eEv2k&4fITapB`EGbN8>TsAZR`FR}q zE6J}R_v5vg^X(?Z%Ngg-Dt<Ea-<{`w41MF{0hNCi*Ts{HujD@Pd&Mtfz2$W3+xchK ru|V+@{d0KizQL()OYpHlUp(o?bZ~rpoIS6kfmq_tAJb@fUP=8wO<6lV literal 0 HcmV?d00001 diff --git a/builddir/O.3.15.2_centos7-x86_64/emu_Versioncatane.c b/builddir/O.3.15.2_centos7-x86_64/emu_Versioncatane.c new file mode 100644 index 0000000..a707bba --- /dev/null +++ b/builddir/O.3.15.2_centos7-x86_64/emu_Versioncatane.c @@ -0,0 +1 @@ +char epics_emuLibRelease[] = "catane"; diff --git a/builddir/O.3.15.2_centos7-x86_64/emu_Versioncatane.d b/builddir/O.3.15.2_centos7-x86_64/emu_Versioncatane.d new file mode 100644 index 0000000..28b2801 --- /dev/null +++ b/builddir/O.3.15.2_centos7-x86_64/emu_Versioncatane.d @@ -0,0 +1 @@ +emu_Versioncatane.o: emu_Versioncatane.c diff --git a/builddir/O.3.15.2_centos7-x86_64/emu_Versioncatane.o b/builddir/O.3.15.2_centos7-x86_64/emu_Versioncatane.o new file mode 100644 index 0000000000000000000000000000000000000000..bd59d49936246b7bd374f82a9cb4ae2bc647d6a6 GIT binary patch literal 2328 zcmbVO&2G~`5FW>&w1kFM0YO!eTnR*5u-&wwe~=O>f;OViQVFh+<7^X)#I9_ov|RcK zoOzqR02eOs8k|5v2xjcvX1le7#7N$m{bs(|S!Z^glV{t{bD9Q1G}wUQOrQX#xuIQ4 z%o<F<IJi#i_zd7BV)+CgP3Y%x<SOVf@zH4*f&A!Y3e9UHq%P5*X?JiO)5%Umo7C<V zO9j0+U7WZHfHgKsS_xCkK%-<AkbM^lg$)eA3>DCe>xIXKM(OEP?iTWI<C9iAnx<36 zg~UIPqo(~Tj^miT1FTvD)*m$AvM}-jKi!?>CTw=#xlt3n+g@vr^_UYeh`bLhK0aWX zB)c2*nVsga+w73_f`dNuW4muAxlGJuw+3FX-S$Fz$6B(=kF3R}iy=X@Vjit7H<v50 z`Ra{PH!9YuwPY+Vlq(Bs<+3rm$J)l06Q{VjHfNaqc;K^Yhxsh@T%0afaBxDmTg5~s z%{qp;vt*e2yNx=yT_*(Ctk>6#SzKZ6p9=t3(Q!X^TBzeN)m>r5>?j7SjlBR?D~iAh zS<kWBtTpH~J%2wyUt&A0R>%&|xt-AQI}9mlM9;%+;x=Xn%MJSU&cO16m|0k=8O4tK zPWe6mdpb=mfKSqiQkI%z%Vyf+Lu3X`;tv})_0>`ZNuzU{l*+%47`3R%-=g3QQTb(z zq4iY}{MU*@jeUrIH78MK`MLSV`FP5bI1U3HGLkAjYEHsG(SWj%s<Tmz-9?XzQSevJ zFt`><jeUWRtomUrWr#Yde)=uc`kRQUIf?m$1{AuvWKm<O5ecIUMV1FV@QVzhE%-to za!lp_<^gnJ$|86|pP*CNa@@RhU(2`}JBd!U_b6WQKgwjZRX)wLmOAAJYLyeNVcb=G z)b~$6Q`Y)F`N5e(zbxwdvQM@tE)U=T$e6J83%f`?dge~3zN`uf&+I(J)!RhmS8oG> z^JWzVa;?J^1rhP|CNGK(_*qos2F@p?eVtX1^_9!|!ts1!M^urp$t5ZwoObb^KosgL z5`oj#orLNk5jfpnBvYwMaM2?KiE|<1uk*MSDW2B-%;!%OoKInk8`Kw~W`e|CD1Y)t Hgg}(PUuw0i literal 0 HcmV?d00001 diff --git a/builddir/O.3.15.2_centos7-x86_64/emu_registerRecordDeviceDriver.cpp b/builddir/O.3.15.2_centos7-x86_64/emu_registerRecordDeviceDriver.cpp new file mode 100644 index 0000000..6efb851 --- /dev/null +++ b/builddir/O.3.15.2_centos7-x86_64/emu_registerRecordDeviceDriver.cpp @@ -0,0 +1,68 @@ +/* THIS IS A GENERATED FILE. DO NOT EDIT! */ +/* Generated from ../../builddir/3.15.2/dbd/emu.dbd */ + +#include <string.h> + +#include "epicsStdlib.h" +#include "iocsh.h" +#include "registryCommon.h" + +#define epicsExportSharedSymbols +#include "shareLib.h" + +extern "C" { + +typedef void (*reg_func)(void); +epicsShareExtern reg_func pvar_func_checkMTRBrakeRegistrar, + pvar_func_homeMtrAutoRegistrar, pvar_func_register_func_ANGLE_CALCUL, + pvar_func_register_func_CREATE_PROJXY, + pvar_func_register_func_CREATE_REPORT, + pvar_func_register_func_CREATE_TAB, + pvar_func_register_func_FACTOR_CONVERSION, + pvar_func_register_func_INIT_TAB; + +int emu_registerRecordDeviceDriver(DBBASE *pbase) +{ + static int executed = 0; + if (!pbase) { + printf("pdbbase is NULL; you must load a DBD file first.\n"); + return -1; + } + + if (executed) { + printf("Warning: Registration already done.\n"); + } + executed = 1; + + pvar_func_checkMTRBrakeRegistrar(); + pvar_func_homeMtrAutoRegistrar(); + pvar_func_register_func_ANGLE_CALCUL(); + pvar_func_register_func_CREATE_PROJXY(); + pvar_func_register_func_CREATE_REPORT(); + pvar_func_register_func_CREATE_TAB(); + pvar_func_register_func_FACTOR_CONVERSION(); + pvar_func_register_func_INIT_TAB(); + return 0; +} + +/* emu_registerRecordDeviceDriver */ +static const iocshArg rrddArg0 = {"pdbbase", iocshArgPdbbase}; +static const iocshArg *rrddArgs[] = {&rrddArg0}; +static const iocshFuncDef rrddFuncDef = + {"emu_registerRecordDeviceDriver", 1, rrddArgs}; +static void rrddCallFunc(const iocshArgBuf *) +{ + emu_registerRecordDeviceDriver(*iocshPpdbbase); +} + +} // extern "C" + +/* + * Register commands on application startup + */ +static int Registration() { + iocshRegister(&rrddFuncDef, rrddCallFunc); + return 0; +} + +static int done = Registration(); diff --git a/builddir/O.3.15.2_centos7-x86_64/emu_registerRecordDeviceDriver.cpp.tmp b/builddir/O.3.15.2_centos7-x86_64/emu_registerRecordDeviceDriver.cpp.tmp new file mode 100644 index 0000000..34dc9a5 --- /dev/null +++ b/builddir/O.3.15.2_centos7-x86_64/emu_registerRecordDeviceDriver.cpp.tmp @@ -0,0 +1,70 @@ +/* THIS IS A GENERATED FILE. DO NOT EDIT! */ +/* Generated from ../../builddir/3.15.2/dbd/emu.dbd */ + +#include <string.h> + +#include "epicsStdlib.h" +#include "iocsh.h" +#include "iocshRegisterCommon.h" +#include "registryCommon.h" + +#define epicsExportSharedSymbols +#include "shareLib.h" + +extern "C" { + +typedef void (*reg_func)(void); +epicsShareExtern reg_func pvar_func_checkMTRBrakeRegistrar, + pvar_func_homeMtrAutoRegistrar, pvar_func_register_func_ANGLE_CALCUL, + pvar_func_register_func_CREATE_PROJXY, + pvar_func_register_func_CREATE_REPORT, + pvar_func_register_func_CREATE_TAB, + pvar_func_register_func_FACTOR_CONVERSION, + pvar_func_register_func_INIT_TAB; + +int emu_registerRecordDeviceDriver(DBBASE *pbase) +{ + static int executed = 0; + if (!pbase) { + printf("pdbbase is NULL; you must load a DBD file first.\n"); + return -1; + } + + if (executed) { + printf("Warning: Registration already done.\n"); + } + executed = 1; + + pvar_func_checkMTRBrakeRegistrar(); + pvar_func_homeMtrAutoRegistrar(); + pvar_func_register_func_ANGLE_CALCUL(); + pvar_func_register_func_CREATE_PROJXY(); + pvar_func_register_func_CREATE_REPORT(); + pvar_func_register_func_CREATE_TAB(); + pvar_func_register_func_FACTOR_CONVERSION(); + pvar_func_register_func_INIT_TAB(); + return 0; +} + +/* emu_registerRecordDeviceDriver */ +static const iocshArg rrddArg0 = {"pdbbase", iocshArgPdbbase}; +static const iocshArg *rrddArgs[] = {&rrddArg0}; +static const iocshFuncDef rrddFuncDef = + {"emu_registerRecordDeviceDriver", 1, rrddArgs}; +static void rrddCallFunc(const iocshArgBuf *) +{ + emu_registerRecordDeviceDriver(*iocshPpdbbase); +} + +} // extern "C" + +/* + * Register commands on application startup + */ +static int Registration() { + iocshRegisterCommon(); + iocshRegister(&rrddFuncDef, rrddCallFunc); + return 0; +} + +static int done = Registration(); diff --git a/builddir/O.3.15.2_centos7-x86_64/emu_registerRecordDeviceDriver.d b/builddir/O.3.15.2_centos7-x86_64/emu_registerRecordDeviceDriver.d new file mode 100644 index 0000000..0b6bdca --- /dev/null +++ b/builddir/O.3.15.2_centos7-x86_64/emu_registerRecordDeviceDriver.d @@ -0,0 +1,21 @@ +emu_registerRecordDeviceDriver.o: emu_registerRecordDeviceDriver.cpp \ + /opt/epics/bases/base-3.15.2/include/epicsStdlib.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdStrtod.h \ + /opt/epics/bases/base-3.15.2/include/epicsTypes.h \ + /opt/epics/bases/base-3.15.2/include/compilerDependencies.h \ + /opt/epics/bases/base-3.15.2/include/compiler/gcc/compilerSpecific.h \ + /opt/epics/bases/base-3.15.2/include/errMdef.h \ + /opt/epics/bases/base-3.15.2/include/iocsh.h \ + /opt/epics/bases/base-3.15.2/include/registryCommon.h \ + /opt/epics/bases/base-3.15.2/include/dbStaticLib.h \ + /opt/epics/bases/base-3.15.2/include/dbFldTypes.h \ + /opt/epics/bases/base-3.15.2/include/dbBase.h \ + /opt/epics/bases/base-3.15.2/include/ellLib.h \ + /opt/epics/bases/base-3.15.2/include/dbDefs.h \ + /opt/epics/bases/base-3.15.2/include/link.h \ + /opt/epics/bases/base-3.15.2/include/cantProceed.h \ + /opt/epics/bases/base-3.15.2/include/devSup.h \ + /opt/epics/bases/base-3.15.2/include/registryRecordType.h \ + /opt/epics/bases/base-3.15.2/include/recSup.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h diff --git a/builddir/O.3.15.2_centos7-x86_64/emu_registerRecordDeviceDriver.o b/builddir/O.3.15.2_centos7-x86_64/emu_registerRecordDeviceDriver.o new file mode 100644 index 0000000000000000000000000000000000000000..1fcd8c19be2496c0c1352c6526b8fb41c2f8c459 GIT binary patch literal 15600 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 E06R)Gl>h($ literal 0 HcmV?d00001 diff --git a/builddir/O.3.15.2_centos7-x86_64/libemu.so b/builddir/O.3.15.2_centos7-x86_64/libemu.so new file mode 100755 index 0000000000000000000000000000000000000000..1ab359bac40cdee69a7f6b5e0220887f7f4277c7 GIT binary patch literal 83617 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 ANB{r; literal 0 HcmV?d00001 diff --git a/builddir/O.3.15.2_eldk56-e500v2/.dependencies_includes b/builddir/O.3.15.2_eldk56-e500v2/.dependencies_includes new file mode 100644 index 0000000..28a7f21 --- /dev/null +++ b/builddir/O.3.15.2_eldk56-e500v2/.dependencies_includes @@ -0,0 +1 @@ +DEPENDENCIES_INCLUDES = -I/opt/epics/modules/scanning/2.0.5/3.15.2/include -I/opt/epics/modules/scanning/2.0.5/3.15.2/include/os/Linux -I/opt/epics/modules/scanning/2.0.5/3.15.2/include/os/default -I/opt/epics/modules/streamdevice/2.7.1/3.15.2/include -I/opt/epics/modules/streamdevice/2.7.1/3.15.2/include/os/Linux -I/opt/epics/modules/streamdevice/2.7.1/3.15.2/include/os/default -I/opt/epics/modules/asyn/4.27.0/3.15.2/include -I/opt/epics/modules/asyn/4.27.0/3.15.2/include/os/Linux -I/opt/epics/modules/asyn/4.27.0/3.15.2/include/os/default -I/opt/epics/modules/ecat2db/0.3.1/3.15.2/include -I/opt/epics/modules/ecat2db/0.3.1/3.15.2/include/os/Linux -I/opt/epics/modules/ecat2db/0.3.1/3.15.2/include/os/default -I/opt/epics/modules/sscan/2.10.1/3.15.2/include -I/opt/epics/modules/sscan/2.10.1/3.15.2/include/os/Linux -I/opt/epics/modules/sscan/2.10.1/3.15.2/include/os/default -I/opt/epics/modules/busy/1.6.0/3.15.2/include -I/opt/epics/modules/busy/1.6.0/3.15.2/include/os/Linux -I/opt/epics/modules/busy/1.6.0/3.15.2/include/os/default -I/opt/epics/modules/calc/3.6.1/3.15.2/include -I/opt/epics/modules/calc/3.6.1/3.15.2/include/os/Linux -I/opt/epics/modules/calc/3.6.1/3.15.2/include/os/default -I/opt/epics/modules/pcre/8.36.0/3.15.2/include -I/opt/epics/modules/pcre/8.36.0/3.15.2/include/os/Linux -I/opt/epics/modules/pcre/8.36.0/3.15.2/include/os/default -I/opt/epics/modules/seq/2.1.10/3.15.2/include -I/opt/epics/modules/seq/2.1.10/3.15.2/include/os/Linux -I/opt/epics/modules/seq/2.1.10/3.15.2/include/os/default -I/opt/epics/modules/dataacquisition/1.0.1/3.15.2/include -I/opt/epics/modules/dataacquisition/1.0.1/3.15.2/include/os/Linux -I/opt/epics/modules/dataacquisition/1.0.1/3.15.2/include/os/default -I/opt/epics/modules/fastacquisition/1.1.0/3.15.2/include -I/opt/epics/modules/fastacquisition/1.1.0/3.15.2/include/os/Linux -I/opt/epics/modules/fastacquisition/1.1.0/3.15.2/include/os/default diff --git a/builddir/O.3.15.2_eldk56-e500v2/EMU_CALCULS.d b/builddir/O.3.15.2_eldk56-e500v2/EMU_CALCULS.d new file mode 100644 index 0000000..e3a9c42 --- /dev/null +++ b/builddir/O.3.15.2_eldk56-e500v2/EMU_CALCULS.d @@ -0,0 +1,17 @@ +EMU_CALCULS.o: ../.././src/EMU_CALCULS.c \ + /opt/epics/bases/base-3.15.2/include/aSubRecord.h \ + /opt/epics/bases/base-3.15.2/include/epicsTypes.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h \ + /opt/epics/bases/base-3.15.2/include/compilerDependencies.h \ + /opt/epics/bases/base-3.15.2/include/compiler/gcc/compilerSpecific.h \ + /opt/epics/bases/base-3.15.2/include/link.h \ + /opt/epics/bases/base-3.15.2/include/dbDefs.h \ + /opt/epics/bases/base-3.15.2/include/epicsMutex.h \ + /opt/epics/bases/base-3.15.2/include/epicsAssert.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdMutex.h \ + /opt/epics/bases/base-3.15.2/include/ellLib.h \ + /opt/epics/bases/base-3.15.2/include/epicsTime.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdTime.h \ + /opt/epics/bases/base-3.15.2/include/registryFunction.h \ + /opt/epics/bases/base-3.15.2/include/epicsExport.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h diff --git a/builddir/O.3.15.2_eldk56-e500v2/EMU_CALCULS.dc b/builddir/O.3.15.2_eldk56-e500v2/EMU_CALCULS.dc new file mode 100644 index 0000000..45a1cb2 --- /dev/null +++ b/builddir/O.3.15.2_eldk56-e500v2/EMU_CALCULS.dc @@ -0,0 +1,38 @@ +EMU_CALCULS.o: ../.././src/EMU_CALCULS.c \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/stdc-predef.h \ + /opt/epics/bases/base-3.15.2/include/aSubRecord.h \ + /opt/epics/bases/base-3.15.2/include/epicsTypes.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h \ + /opt/epics/bases/base-3.15.2/include/compilerDependencies.h \ + /opt/epics/bases/base-3.15.2/include/compiler/gcc/compilerSpecific.h \ + /opt/epics/bases/base-3.15.2/include/link.h \ + /opt/epics/bases/base-3.15.2/include/dbDefs.h \ + /opt/eldk-5.6/ifc1210/sysroots/i686-eldk-linux/usr/lib/powerpc-linux-gnuspe/gcc/powerpc-linux-gnuspe/4.8.2/include/stddef.h \ + /opt/epics/bases/base-3.15.2/include/epicsMutex.h \ + /opt/epics/bases/base-3.15.2/include/epicsAssert.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdMutex.h \ + /opt/epics/bases/base-3.15.2/include/ellLib.h \ + /opt/epics/bases/base-3.15.2/include/epicsTime.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/time.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/features.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/sys/cdefs.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/wordsize.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/gnu/stubs.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/gnu/stubs-32.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/time.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/types.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/typesizes.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/timex.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/xlocale.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdTime.h \ + /opt/epics/bases/base-3.15.2/include/registryFunction.h \ + /opt/epics/bases/base-3.15.2/include/epicsExport.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/math.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/huge_val.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/huge_valf.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/huge_vall.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/inf.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/nan.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/mathdef.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/mathcalls.h diff --git a/builddir/O.3.15.2_eldk56-e500v2/EMU_CALCULS.o b/builddir/O.3.15.2_eldk56-e500v2/EMU_CALCULS.o new file mode 100644 index 0000000000000000000000000000000000000000..851b58d8bdfca95f19095a43612c18b75fdbe72b GIT binary patch literal 5744 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 KXYfmhU;8hO=p`)x literal 0 HcmV?d00001 diff --git a/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-CHECKBRAKE.c b/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-CHECKBRAKE.c new file mode 100644 index 0000000..61f7985 --- /dev/null +++ b/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-CHECKBRAKE.c @@ -0,0 +1,339 @@ +/* Generated with snc from EMU_MTR-CHECKBRAKE.i */ + +/* Program "checkMTRBrake" */ +#include <string.h> +#include <stddef.h> +#include <stdio.h> +#include <limits.h> +#include "epicsTypes.h" +#include "seqCom.h" + +/* Variable declarations */ +# line 13 "../.././src/EMU_MTR-CHECKBRAKE.st" +static short ErrorBrakeMtrGet = 0; +# line 19 "../.././src/EMU_MTR-CHECKBRAKE.st" +static short statusMTRMov = 0; +# line 23 "../.././src/EMU_MTR-CHECKBRAKE.st" +static short ErrorBrakeMtrSet = 0; +# line 27 "../.././src/EMU_MTR-CHECKBRAKE.st" +static short brakeMtrCMD = 0; +# line 31 "../.././src/EMU_MTR-CHECKBRAKE.st" +static short brakeMtrGET = 0; +# line 37 "../.././src/EMU_MTR-CHECKBRAKE.st" +static short AbortscanMtrCMD = 0; +# line 41 "../.././src/EMU_MTR-CHECKBRAKE.st" +static short countErrors = 0; + +/* C code definitions */ +# line 8 "../.././src/EMU_MTR-CHECKBRAKE.st" +#include <stdio.h> +# line 9 "../.././src/EMU_MTR-CHECKBRAKE.st" +#include <string.h> +# line 10 "../.././src/EMU_MTR-CHECKBRAKE.st" +#include <stdlib.h> + +/* Program init func */ +static void G_prog_init(struct UserVar *pVar) +{ +} + +/****** Code for state "init" in state set "ss1" ******/ + +/* Delay function for state "init" in state set "ss1" */ +static void D_ss1_0_init(SS_ID ssId, struct UserVar *pVar) +{ +# line 46 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_delayInit(ssId, 0, (1.0)); +} + +/* Event function for state "init" in state set "ss1" */ +static seqBool E_ss1_0_init(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 46 "../.././src/EMU_MTR-CHECKBRAKE.st" + if (seq_delay(ssId, 0) && (seq_pvConnectCount(ssId) == seq_pvChannelCount(ssId))) + { + *pNextState = 1; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "init" in state set "ss1" */ +static void A_ss1_0_init(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 48 "../.././src/EMU_MTR-CHECKBRAKE.st" + printf("\nWAIT\n"); +# line 49 "../.././src/EMU_MTR-CHECKBRAKE.st" + ErrorBrakeMtrSet = 0; +# line 50 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_pvPut(ssId, 2/*ErrorBrakeMtrSet*/, 0); + } + return; + } +} + +/****** Code for state "waiting" in state set "ss1" ******/ + +/* Delay function for state "waiting" in state set "ss1" */ +static void D_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar) +{ +# line 56 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_delayInit(ssId, 0, (0.1)); +} + +/* Event function for state "waiting" in state set "ss1" */ +static seqBool E_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 56 "../.././src/EMU_MTR-CHECKBRAKE.st" + if (seq_efTestAndClear(ssId, 1/*ErrorBrakeMtrEvent*/) && (ErrorBrakeMtrGet == 1) && (seq_delay(ssId, 0))) + { + *pNextState = 2; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "waiting" in state set "ss1" */ +static void A_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 58 "../.././src/EMU_MTR-CHECKBRAKE.st" + printf("\nERRROR CURRENT : BRAKE OFF \n"); +# line 59 "../.././src/EMU_MTR-CHECKBRAKE.st" + brakeMtrCMD = 1; +# line 60 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_pvPut(ssId, 3/*brakeMtrCMD*/, 0); +# line 61 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_delay(ssId, 0); +# line 62 "../.././src/EMU_MTR-CHECKBRAKE.st" + ErrorBrakeMtrSet = 0; +# line 63 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_pvPut(ssId, 2/*ErrorBrakeMtrSet*/, 0); + } + return; + } +} + +/****** Code for state "count" in state set "ss1" ******/ + +/* Delay function for state "count" in state set "ss1" */ +static void D_ss1_0_count(SS_ID ssId, struct UserVar *pVar) +{ +# line 74 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_delayInit(ssId, 0, (1.0)); +# line 80 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_delayInit(ssId, 1, (1.0)); +} + +/* Event function for state "count" in state set "ss1" */ +static seqBool E_ss1_0_count(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 69 "../.././src/EMU_MTR-CHECKBRAKE.st" + if (countErrors > 3) + { + *pNextState = 3; + *pTransNum = 0; + return TRUE; + } +# line 74 "../.././src/EMU_MTR-CHECKBRAKE.st" + if ((seq_delay(ssId, 0)) && (statusMTRMov == 1)) + { + *pNextState = 1; + *pTransNum = 1; + return TRUE; + } +# line 80 "../.././src/EMU_MTR-CHECKBRAKE.st" + if ((seq_delay(ssId, 1)) && (statusMTRMov == 0)) + { + *pNextState = 1; + *pTransNum = 2; + return TRUE; + } + return FALSE; +} + +/* Action function for state "count" in state set "ss1" */ +static void A_ss1_0_count(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 71 "../.././src/EMU_MTR-CHECKBRAKE.st" + printf("\nERRROR CURRENT : STOP MEASURE \n"); + } + return; + case 1: + { +# line 76 "../.././src/EMU_MTR-CHECKBRAKE.st" + printf("\nERRROR CURRENT : PROBLEM SOLVED \n"); +# line 77 "../.././src/EMU_MTR-CHECKBRAKE.st" + countErrors = 0; + } + return; + case 2: + { +# line 82 "../.././src/EMU_MTR-CHECKBRAKE.st" + countErrors = countErrors + 1; + } + return; + } +} + +/****** Code for state "stopMeasure" in state set "ss1" ******/ + +/* Delay function for state "stopMeasure" in state set "ss1" */ +static void D_ss1_0_stopMeasure(SS_ID ssId, struct UserVar *pVar) +{ +# line 89 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_delayInit(ssId, 0, (1.0)); +} + +/* Event function for state "stopMeasure" in state set "ss1" */ +static seqBool E_ss1_0_stopMeasure(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 89 "../.././src/EMU_MTR-CHECKBRAKE.st" + if (seq_delay(ssId, 0)) + { + *pNextState = 1; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "stopMeasure" in state set "ss1" */ +static void A_ss1_0_stopMeasure(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 90 "../.././src/EMU_MTR-CHECKBRAKE.st" + printf("\n ABORT\n"); +# line 91 "../.././src/EMU_MTR-CHECKBRAKE.st" + AbortscanMtrCMD = 1; +# line 92 "../.././src/EMU_MTR-CHECKBRAKE.st" + seq_pvPut(ssId, 5/*AbortscanMtrCMD*/, 0); +# line 93 "../.././src/EMU_MTR-CHECKBRAKE.st" + countErrors = 0; + } + return; + } +} + +/************************ Tables ************************/ + +/* Channel table */ +static seqChan G_channels[] = { + /* chName, offset, varName, varType, count, eventNum, efId, monitored, queueSize, queueIndex */ + {"{PREFIX}:PBI-EM:CURRENT_ERR_GET", (size_t)&ErrorBrakeMtrGet, "ErrorBrakeMtrGet", "short", 1, 3, 1, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}.MOVN", (size_t)&statusMTRMov, "statusMTRMov", "short", 1, 4, 0, 1, 0, 0}, + {"{PREFIX}:PBI-EM:CURRENT_ERR_SET", (size_t)&ErrorBrakeMtrSet, "ErrorBrakeMtrSet", "short", 1, 5, 0, 1, 0, 0}, + {"{PREFIX}:PBI-EM:VER-BRAKE_SET", (size_t)&brakeMtrCMD, "brakeMtrCMD", "short", 1, 6, 0, 1, 0, 0}, + {"{PREFIX}:PBI-EM:VER-BRAKE_GET", (size_t)&brakeMtrGET, "brakeMtrGET", "short", 1, 7, 2, 1, 0, 0}, + {"{DEVICE}:MTR-ABORT.PROC", (size_t)&AbortscanMtrCMD, "AbortscanMtrCMD", "short", 1, 8, 0, 1, 0, 0} +}; + +/* Event masks for state set "ss1" */ +static const seqMask EM_ss1_0_init[] = { + 0x00000000, +}; +static const seqMask EM_ss1_0_waiting[] = { + 0x0000000a, +}; +static const seqMask EM_ss1_0_count[] = { + 0x00000010, +}; +static const seqMask EM_ss1_0_stopMeasure[] = { + 0x00000000, +}; + +/* State table for state set "ss1" */ +static seqState G_ss1_states[] = { + { + /* state name */ "init", + /* action function */ A_ss1_0_init, + /* event function */ E_ss1_0_init, + /* delay function */ D_ss1_0_init, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_init, + /* state options */ (0) + }, + { + /* state name */ "waiting", + /* action function */ A_ss1_0_waiting, + /* event function */ E_ss1_0_waiting, + /* delay function */ D_ss1_0_waiting, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_waiting, + /* state options */ (0) + }, + { + /* state name */ "count", + /* action function */ A_ss1_0_count, + /* event function */ E_ss1_0_count, + /* delay function */ D_ss1_0_count, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_count, + /* state options */ (0) + }, + { + /* state name */ "stopMeasure", + /* action function */ A_ss1_0_stopMeasure, + /* event function */ E_ss1_0_stopMeasure, + /* delay function */ D_ss1_0_stopMeasure, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_stopMeasure, + /* state options */ (0) + }, +}; + +/* State set table */ +static seqSS G_state_sets[] = { + { + /* state set name */ "ss1", + /* states */ G_ss1_states, + /* number of states */ 4, + /* number of delays */ 2 + }, +}; + +/* Program table (global) */ +seqProgram checkMTRBrake = { + /* magic number */ 2001010, + /* program name */ "checkMTRBrake", + /* channels */ G_channels, + /* num. channels */ 6, + /* state sets */ G_state_sets, + /* num. state sets */ 1, + /* user var size */ 0, + /* param */ "", + /* num. event flags */ 2, + /* encoded options */ (0 | OPT_CONN | OPT_NEWEF), + /* init func */ G_prog_init, + /* entry func */ NULL, + /* exit func */ NULL, + /* num. queues */ 0 +}; + +/* Register sequencer commands and program */ +#include "epicsExport.h" +static void checkMTRBrakeRegistrar (void) { + seqRegisterSequencerCommands(); + seqRegisterSequencerProgram (&checkMTRBrake); +} +epicsExportRegistrar(checkMTRBrakeRegistrar); diff --git a/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-CHECKBRAKE.d b/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-CHECKBRAKE.d new file mode 100644 index 0000000..0b214ca --- /dev/null +++ b/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-CHECKBRAKE.d @@ -0,0 +1,19 @@ +EMU_MTR-CHECKBRAKE.o: EMU_MTR-CHECKBRAKE.c \ + /opt/epics/bases/base-3.15.2/include/epicsTypes.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h \ + /opt/epics/bases/base-3.15.2/include/compilerDependencies.h \ + /opt/epics/bases/base-3.15.2/include/compiler/gcc/compilerSpecific.h \ + /opt/epics/modules/seq/2.1.10/3.15.2/include/seqCom.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h \ + /opt/epics/modules/seq/2.1.10/3.15.2/include/pvAlarm.h \ + /opt/epics/modules/seq/2.1.10/3.15.2/include/pvType.h \ + /opt/epics/bases/base-3.15.2/include/epicsTime.h \ + /opt/epics/bases/base-3.15.2/include/epicsTypes.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdTime.h \ + /opt/epics/bases/base-3.15.2/include/epicsThread.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdThread.h \ + /opt/epics/bases/base-3.15.2/include/ellLib.h \ + /opt/epics/bases/base-3.15.2/include/epicsEvent.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdEvent.h \ + /opt/epics/modules/seq/2.1.10/3.15.2/include/seq_release.h \ + /opt/epics/bases/base-3.15.2/include/epicsExport.h diff --git a/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-CHECKBRAKE.dc b/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-CHECKBRAKE.dc new file mode 100644 index 0000000..25e5619 --- /dev/null +++ b/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-CHECKBRAKE.dc @@ -0,0 +1,51 @@ +EMU_MTR-CHECKBRAKE.o: EMU_MTR-CHECKBRAKE.c \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/stdc-predef.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/string.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/features.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/sys/cdefs.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/wordsize.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/gnu/stubs.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/gnu/stubs-32.h \ + /opt/eldk-5.6/ifc1210/sysroots/i686-eldk-linux/usr/lib/powerpc-linux-gnuspe/gcc/powerpc-linux-gnuspe/4.8.2/include/stddef.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/xlocale.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/stdio.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/types.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/typesizes.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/libio.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/_G_config.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/wchar.h \ + /opt/eldk-5.6/ifc1210/sysroots/i686-eldk-linux/usr/lib/powerpc-linux-gnuspe/gcc/powerpc-linux-gnuspe/4.8.2/include/stdarg.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/stdio_lim.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/sys_errlist.h \ + /opt/eldk-5.6/ifc1210/sysroots/i686-eldk-linux/usr/lib/powerpc-linux-gnuspe/gcc/powerpc-linux-gnuspe/4.8.2/include-fixed/limits.h \ + /opt/eldk-5.6/ifc1210/sysroots/i686-eldk-linux/usr/lib/powerpc-linux-gnuspe/gcc/powerpc-linux-gnuspe/4.8.2/include-fixed/syslimits.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/limits.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/posix1_lim.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/local_lim.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/linux/limits.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/posix2_lim.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/xopen_lim.h \ + /opt/epics/bases/base-3.15.2/include/epicsTypes.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h \ + /opt/epics/bases/base-3.15.2/include/compilerDependencies.h \ + /opt/epics/bases/base-3.15.2/include/compiler/gcc/compilerSpecific.h \ + seqCom.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/stdlib.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/waitflags.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/waitstatus.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/endian.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/endian.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/byteswap.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/byteswap-16.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/sys/types.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/time.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/sys/select.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/select.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/sigset.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/time.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/sys/sysmacros.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/pthreadtypes.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/alloca.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/stdlib-float.h \ + /opt/epics/bases/base-3.15.2/include/epicsExport.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h diff --git a/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-CHECKBRAKE.i b/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-CHECKBRAKE.i new file mode 100644 index 0000000..3ec36e0 --- /dev/null +++ b/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-CHECKBRAKE.i @@ -0,0 +1,102 @@ +# 1 "../.././src/EMU_MTR-CHECKBRAKE.st" +# 1 "<command-line>" +# 1 "/opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/stdc-predef.h" 1 3 4 +# 1 "<command-line>" 2 +# 1 "../.././src/EMU_MTR-CHECKBRAKE.st" + + + + + +program checkMTRBrake + +%%#include <stdio.h> +%%#include <string.h> +%%#include <stdlib.h> + + +short ErrorBrakeMtrGet; +assign ErrorBrakeMtrGet to "{PREFIX}:PBI-EM:CURRENT_ERR_GET"; +monitor ErrorBrakeMtrGet; +evflag ErrorBrakeMtrEvent; +sync ErrorBrakeMtrGet ErrorBrakeMtrEvent; + +short statusMTRMov; +assign statusMTRMov to "{PMACPREFIX}:{MOTOR_NAME1}.MOVN"; +monitor statusMTRMov; + +short ErrorBrakeMtrSet; +assign ErrorBrakeMtrSet to "{PREFIX}:PBI-EM:CURRENT_ERR_SET"; +monitor ErrorBrakeMtrSet; + +short brakeMtrCMD; +assign brakeMtrCMD to "{PREFIX}:PBI-EM:VER-BRAKE_SET"; +monitor brakeMtrCMD; + +short brakeMtrGET; +assign brakeMtrGET to "{PREFIX}:PBI-EM:VER-BRAKE_GET"; +monitor brakeMtrGET; +evflag brakeMtrGETEvent; +sync brakeMtrGET brakeMtrGETEvent; + +short AbortscanMtrCMD; +assign AbortscanMtrCMD to "{DEVICE}:MTR-ABORT.PROC"; +monitor AbortscanMtrCMD; + +short countErrors=0; + +ss ss1 +{ + state init { + when (delay(1.0) && (pvConnectCount() == pvChannelCount())) + { + printf("\nWAIT\n"); + ErrorBrakeMtrSet=0; + pvPut(ErrorBrakeMtrSet); + } state waiting + } + + state waiting + { + when(efTestAndClear(ErrorBrakeMtrEvent)&&(ErrorBrakeMtrGet==1)&&(delay(0.1))) + { + printf("\nERRROR CURRENT : BRAKE OFF \n"); + brakeMtrCMD=1; + pvPut(brakeMtrCMD); + delay(1); + ErrorBrakeMtrSet=0; + pvPut(ErrorBrakeMtrSet); + }state count + } + + state count + { + when(countErrors>3) + { + printf("\nERRROR CURRENT : STOP MEASURE \n"); + }state stopMeasure + + when((delay(1.0)) && (statusMTRMov==1)) + { + printf("\nERRROR CURRENT : PROBLEM SOLVED \n"); + countErrors=0; + }state waiting + + when((delay(1.0)) && (statusMTRMov==0)) + { + countErrors=countErrors+1; + }state waiting + } + + + state stopMeasure + { + when(delay(1.0)){ + printf("\n ABORT\n"); + AbortscanMtrCMD=1; + pvPut(AbortscanMtrCMD); + countErrors=0; + }state waiting + } + +} diff --git a/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-CHECKBRAKE.o b/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-CHECKBRAKE.o new file mode 100644 index 0000000000000000000000000000000000000000..66aec5b2d7560113d9321a05843e9a9203884340 GIT binary patch literal 6752 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 literal 0 HcmV?d00001 diff --git a/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-CHECKBRAKE_snl.dbd b/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-CHECKBRAKE_snl.dbd new file mode 100644 index 0000000..d71c5ef --- /dev/null +++ b/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-CHECKBRAKE_snl.dbd @@ -0,0 +1 @@ +registrar (checkMTRBrakeRegistrar) diff --git a/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-HOME_AUTO.c b/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-HOME_AUTO.c new file mode 100644 index 0000000..0b2209c --- /dev/null +++ b/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-HOME_AUTO.c @@ -0,0 +1,394 @@ +/* Generated with snc from EMU_MTR-HOME_AUTO.i */ + +/* Program "homeMtrAuto" */ +#include <string.h> +#include <stddef.h> +#include <stdio.h> +#include <limits.h> +#include "epicsTypes.h" +#include "seqCom.h" + +/* Variable declarations */ +# line 13 "../.././src/EMU_MTR-HOME_AUTO.st" +static short HOMCPTFLAG = 0; +# line 17 "../.././src/EMU_MTR-HOME_AUTO.st" +static short statusMTRMov = 0; +# line 21 "../.././src/EMU_MTR-HOME_AUTO.st" +static short mtrPlaced = 0; +# line 27 "../.././src/EMU_MTR-HOME_AUTO.st" +static short mtrStop = 0; +# line 31 "../.././src/EMU_MTR-HOME_AUTO.st" +static short homeCMD = 0; +# line 35 "../.././src/EMU_MTR-HOME_AUTO.st" +static short mtrPosCons = 0; +# line 39 "../.././src/EMU_MTR-HOME_AUTO.st" +static short brakeMtrCMD = 0; +# line 43 "../.././src/EMU_MTR-HOME_AUTO.st" +static short brakeMtrGET = 0; +# line 50 "../.././src/EMU_MTR-HOME_AUTO.st" +static short scanPS_Sts = 0; +# line 55 "../.././src/EMU_MTR-HOME_AUTO.st" +static short scanMTR_Sts = 0; +# line 61 "../.././src/EMU_MTR-HOME_AUTO.st" +static short homeSTART = 0; +# line 68 "../.././src/EMU_MTR-HOME_AUTO.st" +static short plimSTATUS = 0; + +/* C code definitions */ +# line 8 "../.././src/EMU_MTR-HOME_AUTO.st" +#include <stdio.h> +# line 9 "../.././src/EMU_MTR-HOME_AUTO.st" +#include <string.h> +# line 10 "../.././src/EMU_MTR-HOME_AUTO.st" +#include <stdlib.h> + +/* Program init func */ +static void G_prog_init(struct UserVar *pVar) +{ +} + +/****** Code for state "init" in state set "ss1" ******/ + +/* Delay function for state "init" in state set "ss1" */ +static void D_ss1_0_init(SS_ID ssId, struct UserVar *pVar) +{ +# line 77 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_delayInit(ssId, 0, (1.0)); +} + +/* Event function for state "init" in state set "ss1" */ +static seqBool E_ss1_0_init(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 77 "../.././src/EMU_MTR-HOME_AUTO.st" + if (seq_delay(ssId, 0) && (seq_pvConnectCount(ssId) == seq_pvChannelCount(ssId))) + { + *pNextState = 1; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "init" in state set "ss1" */ +static void A_ss1_0_init(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 79 "../.././src/EMU_MTR-HOME_AUTO.st" + homeSTART = 0; +# line 80 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 10/*homeSTART*/, 0); +# line 81 "../.././src/EMU_MTR-HOME_AUTO.st" + printf("\nWAIT\n"); + } + return; + } +} + +/****** Code for state "waiting" in state set "ss1" ******/ + +/* Delay function for state "waiting" in state set "ss1" */ +static void D_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar) +{ +} + +/* Event function for state "waiting" in state set "ss1" */ +static seqBool E_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 87 "../.././src/EMU_MTR-HOME_AUTO.st" + if (seq_efTestAndClear(ssId, 3/*homeSTARTEvent*/) && (homeSTART == 1) && (plimSTATUS == 0)) + { + *pNextState = 2; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "waiting" in state set "ss1" */ +static void A_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 89 "../.././src/EMU_MTR-HOME_AUTO.st" + printf("\nSTART HOME PROCEDURE\n"); + } + return; + } +} + +/****** Code for state "startHOME" in state set "ss1" ******/ + +/* Delay function for state "startHOME" in state set "ss1" */ +static void D_ss1_0_startHOME(SS_ID ssId, struct UserVar *pVar) +{ +# line 96 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_delayInit(ssId, 0, (1.0)); +} + +/* Event function for state "startHOME" in state set "ss1" */ +static seqBool E_ss1_0_startHOME(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 96 "../.././src/EMU_MTR-HOME_AUTO.st" + if ((scanPS_Sts == 0) && (scanMTR_Sts == 0) && (statusMTRMov == 0) && (seq_delay(ssId, 0))) + { + *pNextState = 3; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "startHOME" in state set "ss1" */ +static void A_ss1_0_startHOME(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 97 "../.././src/EMU_MTR-HOME_AUTO.st" + printf("\n GO HOME\n"); +# line 98 "../.././src/EMU_MTR-HOME_AUTO.st" + brakeMtrCMD = 1; +# line 99 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 6/*brakeMtrCMD*/, 0); +# line 100 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_delay(ssId, 0); +# line 101 "../.././src/EMU_MTR-HOME_AUTO.st" + HOMCPTFLAG = 1; +# line 102 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 0/*HOMCPTFLAG*/, 0); +# line 103 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_delay(ssId, 0); +# line 104 "../.././src/EMU_MTR-HOME_AUTO.st" + homeCMD = 1; +# line 105 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 4/*homeCMD*/, 0); + } + return; + } +} + +/****** Code for state "limitON" in state set "ss1" ******/ + +/* Delay function for state "limitON" in state set "ss1" */ +static void D_ss1_0_limitON(SS_ID ssId, struct UserVar *pVar) +{ +} + +/* Event function for state "limitON" in state set "ss1" */ +static seqBool E_ss1_0_limitON(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 111 "../.././src/EMU_MTR-HOME_AUTO.st" + if (seq_efTestAndClear(ssId, 4/*plimSTATUSEvent*/) && (plimSTATUS == 1)) + { + *pNextState = 4; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "limitON" in state set "ss1" */ +static void A_ss1_0_limitON(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 113 "../.././src/EMU_MTR-HOME_AUTO.st" + printf("\nLIMIT HIGH\n"); +# line 114 "../.././src/EMU_MTR-HOME_AUTO.st" + HOMCPTFLAG = 0; +# line 115 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 0/*HOMCPTFLAG*/, 0); + } + return; + } +} + +/****** Code for state "breakON" in state set "ss1" ******/ + +/* Delay function for state "breakON" in state set "ss1" */ +static void D_ss1_0_breakON(SS_ID ssId, struct UserVar *pVar) +{ +# line 121 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_delayInit(ssId, 0, (1.0)); +} + +/* Event function for state "breakON" in state set "ss1" */ +static seqBool E_ss1_0_breakON(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 121 "../.././src/EMU_MTR-HOME_AUTO.st" + if (seq_delay(ssId, 0)) + { + *pNextState = 0; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "breakON" in state set "ss1" */ +static void A_ss1_0_breakON(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 123 "../.././src/EMU_MTR-HOME_AUTO.st" + printf("\nINIT POSITION\n"); +# line 124 "../.././src/EMU_MTR-HOME_AUTO.st" + HOMCPTFLAG = 0; +# line 125 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 0/*HOMCPTFLAG*/, 0); +# line 126 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_delay(ssId, 0); +# line 127 "../.././src/EMU_MTR-HOME_AUTO.st" + printf("\nBRAKE ON\n"); +# line 128 "../.././src/EMU_MTR-HOME_AUTO.st" + homeCMD = 1; +# line 129 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 4/*homeCMD*/, 0); +# line 130 "../.././src/EMU_MTR-HOME_AUTO.st" + homeSTART = 0; +# line 131 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 10/*homeSTART*/, 0); +# line 132 "../.././src/EMU_MTR-HOME_AUTO.st" + brakeMtrCMD = 0; +# line 133 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 6/*brakeMtrCMD*/, 0); + } + return; + } +} + +/************************ Tables ************************/ + +/* Channel table */ +static seqChan G_channels[] = { + /* chName, offset, varName, varType, count, eventNum, efId, monitored, queueSize, queueIndex */ + {"{PMACPREFIX}:{MOTOR_NAME1}-HOMCPTFLAG", (size_t)&HOMCPTFLAG, "HOMCPTFLAG", "short", 1, 5, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}.MOVN", (size_t)&statusMTRMov, "statusMTRMov", "short", 1, 6, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}-AXISSTS", (size_t)&mtrPlaced, "mtrPlaced", "short", 1, 7, 1, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}.SPMG", (size_t)&mtrStop, "mtrStop", "short", 1, 8, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}-HOMCMD", (size_t)&homeCMD, "homeCMD", "short", 1, 9, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}", (size_t)&mtrPosCons, "mtrPosCons", "short", 1, 10, 0, 1, 0, 0}, + {"{PREFIX}:PBI-EM:VER-BRAKE_SET", (size_t)&brakeMtrCMD, "brakeMtrCMD", "short", 1, 11, 0, 1, 0, 0}, + {"{PREFIX}:PBI-EM:VER-BRAKE_GET", (size_t)&brakeMtrGET, "brakeMtrGET", "short", 1, 12, 2, 1, 0, 0}, + {"{DEVICE}:PS.BUSY", (size_t)&scanPS_Sts, "scanPS_Sts", "short", 1, 13, 0, 1, 0, 0}, + {"{DEVICE}:MTR.BUSY", (size_t)&scanMTR_Sts, "scanMTR_Sts", "short", 1, 14, 0, 1, 0, 0}, + {"{DEVICE}:PROC-AUTO-HOME", (size_t)&homeSTART, "homeSTART", "short", 1, 15, 3, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}-PENDLSTS", (size_t)&plimSTATUS, "plimSTATUS", "short", 1, 16, 4, 1, 0, 0} +}; + +/* Event masks for state set "ss1" */ +static const seqMask EM_ss1_0_init[] = { + 0x00000000, +}; +static const seqMask EM_ss1_0_waiting[] = { + 0x00018008, +}; +static const seqMask EM_ss1_0_startHOME[] = { + 0x00006040, +}; +static const seqMask EM_ss1_0_limitON[] = { + 0x00010010, +}; +static const seqMask EM_ss1_0_breakON[] = { + 0x00000000, +}; + +/* State table for state set "ss1" */ +static seqState G_ss1_states[] = { + { + /* state name */ "init", + /* action function */ A_ss1_0_init, + /* event function */ E_ss1_0_init, + /* delay function */ D_ss1_0_init, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_init, + /* state options */ (0) + }, + { + /* state name */ "waiting", + /* action function */ A_ss1_0_waiting, + /* event function */ E_ss1_0_waiting, + /* delay function */ D_ss1_0_waiting, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_waiting, + /* state options */ (0) + }, + { + /* state name */ "startHOME", + /* action function */ A_ss1_0_startHOME, + /* event function */ E_ss1_0_startHOME, + /* delay function */ D_ss1_0_startHOME, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_startHOME, + /* state options */ (0) + }, + { + /* state name */ "limitON", + /* action function */ A_ss1_0_limitON, + /* event function */ E_ss1_0_limitON, + /* delay function */ D_ss1_0_limitON, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_limitON, + /* state options */ (0) + }, + { + /* state name */ "breakON", + /* action function */ A_ss1_0_breakON, + /* event function */ E_ss1_0_breakON, + /* delay function */ D_ss1_0_breakON, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_breakON, + /* state options */ (0) + }, +}; + +/* State set table */ +static seqSS G_state_sets[] = { + { + /* state set name */ "ss1", + /* states */ G_ss1_states, + /* number of states */ 5, + /* number of delays */ 1 + }, +}; + +/* Program table (global) */ +seqProgram homeMtrAuto = { + /* magic number */ 2001010, + /* program name */ "homeMtrAuto", + /* channels */ G_channels, + /* num. channels */ 12, + /* state sets */ G_state_sets, + /* num. state sets */ 1, + /* user var size */ 0, + /* param */ "", + /* num. event flags */ 4, + /* encoded options */ (0 | OPT_CONN | OPT_NEWEF), + /* init func */ G_prog_init, + /* entry func */ NULL, + /* exit func */ NULL, + /* num. queues */ 0 +}; + +/* Register sequencer commands and program */ +#include "epicsExport.h" +static void homeMtrAutoRegistrar (void) { + seqRegisterSequencerCommands(); + seqRegisterSequencerProgram (&homeMtrAuto); +} +epicsExportRegistrar(homeMtrAutoRegistrar); diff --git a/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-HOME_AUTO.d b/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-HOME_AUTO.d new file mode 100644 index 0000000..5374162 --- /dev/null +++ b/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-HOME_AUTO.d @@ -0,0 +1,19 @@ +EMU_MTR-HOME_AUTO.o: EMU_MTR-HOME_AUTO.c \ + /opt/epics/bases/base-3.15.2/include/epicsTypes.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h \ + /opt/epics/bases/base-3.15.2/include/compilerDependencies.h \ + /opt/epics/bases/base-3.15.2/include/compiler/gcc/compilerSpecific.h \ + /opt/epics/modules/seq/2.1.10/3.15.2/include/seqCom.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h \ + /opt/epics/modules/seq/2.1.10/3.15.2/include/pvAlarm.h \ + /opt/epics/modules/seq/2.1.10/3.15.2/include/pvType.h \ + /opt/epics/bases/base-3.15.2/include/epicsTime.h \ + /opt/epics/bases/base-3.15.2/include/epicsTypes.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdTime.h \ + /opt/epics/bases/base-3.15.2/include/epicsThread.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdThread.h \ + /opt/epics/bases/base-3.15.2/include/ellLib.h \ + /opt/epics/bases/base-3.15.2/include/epicsEvent.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdEvent.h \ + /opt/epics/modules/seq/2.1.10/3.15.2/include/seq_release.h \ + /opt/epics/bases/base-3.15.2/include/epicsExport.h diff --git a/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-HOME_AUTO.dc b/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-HOME_AUTO.dc new file mode 100644 index 0000000..75e936a --- /dev/null +++ b/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-HOME_AUTO.dc @@ -0,0 +1,51 @@ +EMU_MTR-HOME_AUTO.o: EMU_MTR-HOME_AUTO.c \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/stdc-predef.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/string.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/features.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/sys/cdefs.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/wordsize.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/gnu/stubs.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/gnu/stubs-32.h \ + /opt/eldk-5.6/ifc1210/sysroots/i686-eldk-linux/usr/lib/powerpc-linux-gnuspe/gcc/powerpc-linux-gnuspe/4.8.2/include/stddef.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/xlocale.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/stdio.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/types.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/typesizes.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/libio.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/_G_config.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/wchar.h \ + /opt/eldk-5.6/ifc1210/sysroots/i686-eldk-linux/usr/lib/powerpc-linux-gnuspe/gcc/powerpc-linux-gnuspe/4.8.2/include/stdarg.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/stdio_lim.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/sys_errlist.h \ + /opt/eldk-5.6/ifc1210/sysroots/i686-eldk-linux/usr/lib/powerpc-linux-gnuspe/gcc/powerpc-linux-gnuspe/4.8.2/include-fixed/limits.h \ + /opt/eldk-5.6/ifc1210/sysroots/i686-eldk-linux/usr/lib/powerpc-linux-gnuspe/gcc/powerpc-linux-gnuspe/4.8.2/include-fixed/syslimits.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/limits.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/posix1_lim.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/local_lim.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/linux/limits.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/posix2_lim.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/xopen_lim.h \ + /opt/epics/bases/base-3.15.2/include/epicsTypes.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h \ + /opt/epics/bases/base-3.15.2/include/compilerDependencies.h \ + /opt/epics/bases/base-3.15.2/include/compiler/gcc/compilerSpecific.h \ + seqCom.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/stdlib.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/waitflags.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/waitstatus.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/endian.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/endian.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/byteswap.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/byteswap-16.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/sys/types.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/time.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/sys/select.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/select.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/sigset.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/time.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/sys/sysmacros.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/pthreadtypes.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/alloca.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/stdlib-float.h \ + /opt/epics/bases/base-3.15.2/include/epicsExport.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h diff --git a/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-HOME_AUTO.i b/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-HOME_AUTO.i new file mode 100644 index 0000000..79348df --- /dev/null +++ b/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-HOME_AUTO.i @@ -0,0 +1,142 @@ +# 1 "../.././src/EMU_MTR-HOME_AUTO.st" +# 1 "<command-line>" +# 1 "/opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/stdc-predef.h" 1 3 4 +# 1 "<command-line>" 2 +# 1 "../.././src/EMU_MTR-HOME_AUTO.st" + + + + + +program homeMtrAuto + +%%#include <stdio.h> +%%#include <string.h> +%%#include <stdlib.h> + + +short HOMCPTFLAG; +assign HOMCPTFLAG to "{PMACPREFIX}:{MOTOR_NAME1}-HOMCPTFLAG"; +monitor HOMCPTFLAG; + +short statusMTRMov; +assign statusMTRMov to "{PMACPREFIX}:{MOTOR_NAME1}.MOVN"; +monitor statusMTRMov; + +short mtrPlaced; +assign mtrPlaced to "{PMACPREFIX}:{MOTOR_NAME1}-AXISSTS"; +monitor mtrPlaced; +evflag mtrPlacedEvent; +sync mtrPlaced mtrPlacedEvent; + +short mtrStop; +assign mtrStop to "{PMACPREFIX}:{MOTOR_NAME1}.SPMG"; +monitor mtrStop; + +short homeCMD; +assign homeCMD to "{PMACPREFIX}:{MOTOR_NAME1}-HOMCMD"; +monitor homeCMD; + +short mtrPosCons; +assign mtrPosCons to "{PMACPREFIX}:{MOTOR_NAME1}"; +monitor mtrPosCons; + +short brakeMtrCMD; +assign brakeMtrCMD to "{PREFIX}:PBI-EM:VER-BRAKE_SET"; +monitor brakeMtrCMD; + +short brakeMtrGET; +assign brakeMtrGET to "{PREFIX}:PBI-EM:VER-BRAKE_GET"; +monitor brakeMtrGET; +evflag brakeMtrGETEvent; +sync brakeMtrGET brakeMtrGETEvent; + + +short scanPS_Sts; +assign scanPS_Sts to "{DEVICE}:PS.BUSY"; +monitor scanPS_Sts; + + +short scanMTR_Sts; +assign scanMTR_Sts to "{DEVICE}:MTR.BUSY"; +monitor scanMTR_Sts; + + + +short homeSTART; +assign homeSTART to "{DEVICE}:PROC-AUTO-HOME"; +monitor homeSTART; +evflag homeSTARTEvent; +sync homeSTART homeSTARTEvent; + + +short plimSTATUS; +assign plimSTATUS to "{PMACPREFIX}:{MOTOR_NAME1}-PENDLSTS"; +monitor plimSTATUS; +evflag plimSTATUSEvent; +sync plimSTATUS plimSTATUSEvent; + +ss ss1 +{ + state init { + when (delay(1.0) && (pvConnectCount() == pvChannelCount())) + { + homeSTART=0; + pvPut(homeSTART); + printf("\nWAIT\n"); + } state waiting + } + + state waiting + { + when(efTestAndClear(homeSTARTEvent)&&(homeSTART==1)&&(plimSTATUS==0)) + { + printf("\nSTART HOME PROCEDURE\n"); + }state startHOME + } + + + state startHOME + { + when((scanPS_Sts==0) && (scanMTR_Sts==0) && (statusMTRMov==0) && (delay(1.0))){ + printf("\n GO HOME\n"); + brakeMtrCMD=1; + pvPut(brakeMtrCMD); + delay(1); + HOMCPTFLAG=1; + pvPut(HOMCPTFLAG); + delay(1); + homeCMD=1; + pvPut(homeCMD); + }state limitON + } + + state limitON + { + when(efTestAndClear(plimSTATUSEvent)&&(plimSTATUS==1)) + { + printf("\nLIMIT HIGH\n"); + HOMCPTFLAG=0; + pvPut(HOMCPTFLAG); + }state breakON + } + + state breakON + { + when(delay(1.0)) + { + printf("\nINIT POSITION\n"); + HOMCPTFLAG=0; + pvPut(HOMCPTFLAG); + delay(1); + printf("\nBRAKE ON\n"); + homeCMD=1; + pvPut(homeCMD); + homeSTART=0; + pvPut(homeSTART); + brakeMtrCMD=0; + pvPut(brakeMtrCMD); + }state init + } + +} diff --git a/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-HOME_AUTO.o b/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-HOME_AUTO.o new file mode 100644 index 0000000000000000000000000000000000000000..758fd68e93de489bf2f3b4fe122545edc96af3c8 GIT binary patch literal 7928 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 boU#Wm0@rE`Slqw6f!Crv7lSUczpnfr+>{5! literal 0 HcmV?d00001 diff --git a/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-HOME_AUTO_snl.dbd b/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-HOME_AUTO_snl.dbd new file mode 100644 index 0000000..1386530 --- /dev/null +++ b/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-HOME_AUTO_snl.dbd @@ -0,0 +1 @@ +registrar (homeMtrAutoRegistrar) diff --git a/builddir/O.3.15.2_eldk56-e500v2/EMU_REPORT_FILE.d b/builddir/O.3.15.2_eldk56-e500v2/EMU_REPORT_FILE.d new file mode 100644 index 0000000..0939ede --- /dev/null +++ b/builddir/O.3.15.2_eldk56-e500v2/EMU_REPORT_FILE.d @@ -0,0 +1,17 @@ +EMU_REPORT_FILE.o: ../.././src/EMU_REPORT_FILE.c \ + /opt/epics/bases/base-3.15.2/include/aSubRecord.h \ + /opt/epics/bases/base-3.15.2/include/epicsTypes.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h \ + /opt/epics/bases/base-3.15.2/include/compilerDependencies.h \ + /opt/epics/bases/base-3.15.2/include/compiler/gcc/compilerSpecific.h \ + /opt/epics/bases/base-3.15.2/include/link.h \ + /opt/epics/bases/base-3.15.2/include/dbDefs.h \ + /opt/epics/bases/base-3.15.2/include/epicsMutex.h \ + /opt/epics/bases/base-3.15.2/include/epicsAssert.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdMutex.h \ + /opt/epics/bases/base-3.15.2/include/ellLib.h \ + /opt/epics/bases/base-3.15.2/include/epicsTime.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdTime.h \ + /opt/epics/bases/base-3.15.2/include/registryFunction.h \ + /opt/epics/bases/base-3.15.2/include/epicsExport.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h diff --git a/builddir/O.3.15.2_eldk56-e500v2/EMU_REPORT_FILE.dc b/builddir/O.3.15.2_eldk56-e500v2/EMU_REPORT_FILE.dc new file mode 100644 index 0000000..94ada79 --- /dev/null +++ b/builddir/O.3.15.2_eldk56-e500v2/EMU_REPORT_FILE.dc @@ -0,0 +1,61 @@ +EMU_REPORT_FILE.o: ../.././src/EMU_REPORT_FILE.c \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/stdc-predef.h \ + /opt/epics/bases/base-3.15.2/include/aSubRecord.h \ + /opt/epics/bases/base-3.15.2/include/epicsTypes.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h \ + /opt/epics/bases/base-3.15.2/include/compilerDependencies.h \ + /opt/epics/bases/base-3.15.2/include/compiler/gcc/compilerSpecific.h \ + /opt/epics/bases/base-3.15.2/include/link.h \ + /opt/epics/bases/base-3.15.2/include/dbDefs.h \ + /opt/eldk-5.6/ifc1210/sysroots/i686-eldk-linux/usr/lib/powerpc-linux-gnuspe/gcc/powerpc-linux-gnuspe/4.8.2/include/stddef.h \ + /opt/epics/bases/base-3.15.2/include/epicsMutex.h \ + /opt/epics/bases/base-3.15.2/include/epicsAssert.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdMutex.h \ + /opt/epics/bases/base-3.15.2/include/ellLib.h \ + /opt/epics/bases/base-3.15.2/include/epicsTime.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/time.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/features.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/sys/cdefs.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/wordsize.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/gnu/stubs.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/gnu/stubs-32.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/time.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/types.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/typesizes.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/timex.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/xlocale.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdTime.h \ + /opt/epics/bases/base-3.15.2/include/registryFunction.h \ + /opt/epics/bases/base-3.15.2/include/epicsExport.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/math.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/huge_val.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/huge_valf.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/huge_vall.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/inf.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/nan.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/mathdef.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/mathcalls.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/string.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/stdlib.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/waitflags.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/waitstatus.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/endian.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/endian.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/byteswap.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/byteswap-16.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/sys/types.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/sys/select.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/select.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/sigset.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/sys/sysmacros.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/pthreadtypes.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/alloca.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/stdlib-float.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/stdio.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/libio.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/_G_config.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/wchar.h \ + /opt/eldk-5.6/ifc1210/sysroots/i686-eldk-linux/usr/lib/powerpc-linux-gnuspe/gcc/powerpc-linux-gnuspe/4.8.2/include/stdarg.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/stdio_lim.h \ + /opt/eldk-5.6/ifc1210/sysroots/ppce500v2-linux-gnuspe/usr/include/bits/sys_errlist.h diff --git a/builddir/O.3.15.2_eldk56-e500v2/EMU_REPORT_FILE.o b/builddir/O.3.15.2_eldk56-e500v2/EMU_REPORT_FILE.o new file mode 100644 index 0000000000000000000000000000000000000000..37fe2400c79153181212dd8aaa5ded12a847a698 GIT binary patch literal 1784 zcma)7%}Z2K6hChqZ7Qv)BqAY3Xu>ETDiVVlq~oZOW0Q@v33MEvI^=xt-ZMrJ=a~=^ zE(BXwQiux|EnJ4!M(m#mBwE?R+P1LYxpVL9DN!9b_x#T1J@4E*cS^DT9?hqbOB&Sz zdkns6B8R9|L^M#4Y8bt&KRlQX_}02!Q{~D>3Y2zzYs<)Wt{fhewtv(*jOQG3UOD~+ z_-6wZYms^i_K7kgKjFz=m-(BVzp_Ug?R&JivP$ntUw#(3Ui&I_BUg*e({kx6Y;X6A ztUFsy0I`A6+I}(OP&>!7eZHQSI<}*A*uQ#Y=kvnsr>2XM6cso(xnpnj?=(LX`5J95 zV4uhc5&B%`J{Pb*dVN3OP)N4xis)dhGZ`Bmj3w?5CSeWFG={T{;jvJ-uPq#J3qNF= zrH7}cWlC=}+7@c)9T>VEYSklp3!4LAKiJoq7|P_v^Q8GPaow89+Nn`U+bqjTg-l~A zrQ1f)CVebrr$`^QEYgK_B5$_<=Go4f&3dc!Smn@kKASai$js$!Lq{WxmYqsJAw7|Z z>alp2o+?a>Cb+Zzr4R!7j#SA6z8&8rX2D;_R0mcVuxb(ukL?VY^Vx^{Mc1TW0m(3g z#Y^fw-h`2-_pi8Hh~XS>ToAe<Rj(NaZ+{=4H-WjoO6lYNI>4MGjt`JyZh#eW4fZFb zRQo=L?y2wMdq?e6JUiZp_f@xp^+#Z?%lm<}5iI8!Nn#)Kh?Edanpu|a$}vm@@Ckv$ zBH}Ln)<rE=&w=GPu&TYlGS5hos>jl&jQG?g#B#4^!Te6}w+F!|!Jc}RJm(FtB2`c6 zO1gGG9e!6vmMG@>r0%IN{NA~9JfG(Ua5s1zO>=%dnBzL64p=6{d*&qS@wvDJ|7lkN zfPU(j&gXYq*?0(`2W3$n3b1iZSFeT`8hmrd{LiKC#{mT>79Wx?(Qwb*{+OPoqtBCR zOk^zEFo(ydbLrtf`OKLfxa>?m*Eu#uMj?~7l9{a0YuM3g)8uEvwI%bt@noFv#Ejbr zA**0!a`reCo~Gmmf7`CycjaZG(g84jPc`Zu-@(x+dl5eYWnaWKQuqxfrtmJVr@|-| cQ1<}mDE`R!d~sI7&SS?p2z(V7Bx3x(03><rU;qFB literal 0 HcmV?d00001 diff --git a/builddir/O.3.15.2_eldk56-e500v2/emu_Versioncatane.c b/builddir/O.3.15.2_eldk56-e500v2/emu_Versioncatane.c new file mode 100644 index 0000000..a707bba --- /dev/null +++ b/builddir/O.3.15.2_eldk56-e500v2/emu_Versioncatane.c @@ -0,0 +1 @@ +char epics_emuLibRelease[] = "catane"; diff --git a/builddir/O.3.15.2_eldk56-e500v2/emu_Versioncatane.d b/builddir/O.3.15.2_eldk56-e500v2/emu_Versioncatane.d new file mode 100644 index 0000000..28b2801 --- /dev/null +++ b/builddir/O.3.15.2_eldk56-e500v2/emu_Versioncatane.d @@ -0,0 +1 @@ +emu_Versioncatane.o: emu_Versioncatane.c diff --git a/builddir/O.3.15.2_eldk56-e500v2/emu_Versioncatane.o b/builddir/O.3.15.2_eldk56-e500v2/emu_Versioncatane.o new file mode 100644 index 0000000000000000000000000000000000000000..ab90c900b777038ffb35c1d7bf949d37e1d3c4c4 GIT binary patch literal 801 zcma)4Jx{|x40S?F3oL+OVkr}?1SeE=;A5kLE`^~Ih^<P(2_i^>dWQrP{FMGhHa2*^ zoI|$OlJlPJcRt6u&&%;u5C&9PKs(^I1kH)Qhz3s4r44E)k&SXqG#U=iI^EIDZLc#> zC#p}R%tvOU7-(lDJ_)n>-I991QBtunq#g^~hp@~fMV9Ftg1oR=q2-aWQS$8WT=ugE zA<w<)50n%CpO$~x_qvq@x&zeP@I|`ACHrANZoYcI7II<@Pfme6>#>i|f!m%laE<-K zBf#0U5Ra^3+k(rT9J6l1#GB|CLrH?(gU{jX@HIHkx9NGUU-*Mu4=yJCBo?gl4f_3- zBqN$tH6PdJaP``KE|y)nHYhe7@gKzXy>fqk6T80L!a|y)v$yG;o|&}B%lE7j(ywV^ Prl^e5c%ol)WHkK&cF8*` literal 0 HcmV?d00001 diff --git a/builddir/O.3.15.2_eldk56-e500v2/emu_registerRecordDeviceDriver.cpp b/builddir/O.3.15.2_eldk56-e500v2/emu_registerRecordDeviceDriver.cpp new file mode 100644 index 0000000..6efb851 --- /dev/null +++ b/builddir/O.3.15.2_eldk56-e500v2/emu_registerRecordDeviceDriver.cpp @@ -0,0 +1,68 @@ +/* THIS IS A GENERATED FILE. DO NOT EDIT! */ +/* Generated from ../../builddir/3.15.2/dbd/emu.dbd */ + +#include <string.h> + +#include "epicsStdlib.h" +#include "iocsh.h" +#include "registryCommon.h" + +#define epicsExportSharedSymbols +#include "shareLib.h" + +extern "C" { + +typedef void (*reg_func)(void); +epicsShareExtern reg_func pvar_func_checkMTRBrakeRegistrar, + pvar_func_homeMtrAutoRegistrar, pvar_func_register_func_ANGLE_CALCUL, + pvar_func_register_func_CREATE_PROJXY, + pvar_func_register_func_CREATE_REPORT, + pvar_func_register_func_CREATE_TAB, + pvar_func_register_func_FACTOR_CONVERSION, + pvar_func_register_func_INIT_TAB; + +int emu_registerRecordDeviceDriver(DBBASE *pbase) +{ + static int executed = 0; + if (!pbase) { + printf("pdbbase is NULL; you must load a DBD file first.\n"); + return -1; + } + + if (executed) { + printf("Warning: Registration already done.\n"); + } + executed = 1; + + pvar_func_checkMTRBrakeRegistrar(); + pvar_func_homeMtrAutoRegistrar(); + pvar_func_register_func_ANGLE_CALCUL(); + pvar_func_register_func_CREATE_PROJXY(); + pvar_func_register_func_CREATE_REPORT(); + pvar_func_register_func_CREATE_TAB(); + pvar_func_register_func_FACTOR_CONVERSION(); + pvar_func_register_func_INIT_TAB(); + return 0; +} + +/* emu_registerRecordDeviceDriver */ +static const iocshArg rrddArg0 = {"pdbbase", iocshArgPdbbase}; +static const iocshArg *rrddArgs[] = {&rrddArg0}; +static const iocshFuncDef rrddFuncDef = + {"emu_registerRecordDeviceDriver", 1, rrddArgs}; +static void rrddCallFunc(const iocshArgBuf *) +{ + emu_registerRecordDeviceDriver(*iocshPpdbbase); +} + +} // extern "C" + +/* + * Register commands on application startup + */ +static int Registration() { + iocshRegister(&rrddFuncDef, rrddCallFunc); + return 0; +} + +static int done = Registration(); diff --git a/builddir/O.3.15.2_eldk56-e500v2/emu_registerRecordDeviceDriver.cpp.tmp b/builddir/O.3.15.2_eldk56-e500v2/emu_registerRecordDeviceDriver.cpp.tmp new file mode 100644 index 0000000..34dc9a5 --- /dev/null +++ b/builddir/O.3.15.2_eldk56-e500v2/emu_registerRecordDeviceDriver.cpp.tmp @@ -0,0 +1,70 @@ +/* THIS IS A GENERATED FILE. DO NOT EDIT! */ +/* Generated from ../../builddir/3.15.2/dbd/emu.dbd */ + +#include <string.h> + +#include "epicsStdlib.h" +#include "iocsh.h" +#include "iocshRegisterCommon.h" +#include "registryCommon.h" + +#define epicsExportSharedSymbols +#include "shareLib.h" + +extern "C" { + +typedef void (*reg_func)(void); +epicsShareExtern reg_func pvar_func_checkMTRBrakeRegistrar, + pvar_func_homeMtrAutoRegistrar, pvar_func_register_func_ANGLE_CALCUL, + pvar_func_register_func_CREATE_PROJXY, + pvar_func_register_func_CREATE_REPORT, + pvar_func_register_func_CREATE_TAB, + pvar_func_register_func_FACTOR_CONVERSION, + pvar_func_register_func_INIT_TAB; + +int emu_registerRecordDeviceDriver(DBBASE *pbase) +{ + static int executed = 0; + if (!pbase) { + printf("pdbbase is NULL; you must load a DBD file first.\n"); + return -1; + } + + if (executed) { + printf("Warning: Registration already done.\n"); + } + executed = 1; + + pvar_func_checkMTRBrakeRegistrar(); + pvar_func_homeMtrAutoRegistrar(); + pvar_func_register_func_ANGLE_CALCUL(); + pvar_func_register_func_CREATE_PROJXY(); + pvar_func_register_func_CREATE_REPORT(); + pvar_func_register_func_CREATE_TAB(); + pvar_func_register_func_FACTOR_CONVERSION(); + pvar_func_register_func_INIT_TAB(); + return 0; +} + +/* emu_registerRecordDeviceDriver */ +static const iocshArg rrddArg0 = {"pdbbase", iocshArgPdbbase}; +static const iocshArg *rrddArgs[] = {&rrddArg0}; +static const iocshFuncDef rrddFuncDef = + {"emu_registerRecordDeviceDriver", 1, rrddArgs}; +static void rrddCallFunc(const iocshArgBuf *) +{ + emu_registerRecordDeviceDriver(*iocshPpdbbase); +} + +} // extern "C" + +/* + * Register commands on application startup + */ +static int Registration() { + iocshRegisterCommon(); + iocshRegister(&rrddFuncDef, rrddCallFunc); + return 0; +} + +static int done = Registration(); diff --git a/builddir/O.3.15.2_eldk56-e500v2/emu_registerRecordDeviceDriver.d b/builddir/O.3.15.2_eldk56-e500v2/emu_registerRecordDeviceDriver.d new file mode 100644 index 0000000..0b6bdca --- /dev/null +++ b/builddir/O.3.15.2_eldk56-e500v2/emu_registerRecordDeviceDriver.d @@ -0,0 +1,21 @@ +emu_registerRecordDeviceDriver.o: emu_registerRecordDeviceDriver.cpp \ + /opt/epics/bases/base-3.15.2/include/epicsStdlib.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h \ + /opt/epics/bases/base-3.15.2/include/os/Linux/osdStrtod.h \ + /opt/epics/bases/base-3.15.2/include/epicsTypes.h \ + /opt/epics/bases/base-3.15.2/include/compilerDependencies.h \ + /opt/epics/bases/base-3.15.2/include/compiler/gcc/compilerSpecific.h \ + /opt/epics/bases/base-3.15.2/include/errMdef.h \ + /opt/epics/bases/base-3.15.2/include/iocsh.h \ + /opt/epics/bases/base-3.15.2/include/registryCommon.h \ + /opt/epics/bases/base-3.15.2/include/dbStaticLib.h \ + /opt/epics/bases/base-3.15.2/include/dbFldTypes.h \ + /opt/epics/bases/base-3.15.2/include/dbBase.h \ + /opt/epics/bases/base-3.15.2/include/ellLib.h \ + /opt/epics/bases/base-3.15.2/include/dbDefs.h \ + /opt/epics/bases/base-3.15.2/include/link.h \ + /opt/epics/bases/base-3.15.2/include/cantProceed.h \ + /opt/epics/bases/base-3.15.2/include/devSup.h \ + /opt/epics/bases/base-3.15.2/include/registryRecordType.h \ + /opt/epics/bases/base-3.15.2/include/recSup.h \ + /opt/epics/bases/base-3.15.2/include/shareLib.h diff --git a/builddir/O.3.15.2_eldk56-e500v2/emu_registerRecordDeviceDriver.o b/builddir/O.3.15.2_eldk56-e500v2/emu_registerRecordDeviceDriver.o new file mode 100644 index 0000000000000000000000000000000000000000..237bba8277280903bc27e12a8e8d0468d64a9eac GIT binary patch literal 3468 zcmbtX-*4Mg6h2O~E*tIELD|MOhAUO5L&IxFg|dO5PMVgEEQvx2V<361<F?U~II^9p zLt{<V7kEKTn}m>1$5XW@#2>%|6F;=a{RJQ-gm~a#ARZ^ecdmVdYwefBk&f^8opbIv z=U!hs&RQ-%qa+mSi9*A`5kvAgQHN+!M2yivdYaMok?!5gsl-<12JJYpL3HgFrPgjI zwm!xD&e87OYroLI+P8lV>znlb#y_3p`s+j|J|>#lq?@NyQm%rpzt$O8KSuQ7vA(TB zCpiK>6yw7&elW(5#JC#cqcJ`f<>?Dp8T#Eo?;Gg%a;k4DJwii;4ym0hozxrHhc~<3 z3NSHFU+8wh@5I+1Upudx^I|>6IXCC!x}6#k=SQypCDFaVZ|y6c@y=#vl6wyONS>M^ zlD%A=qoiDCq>;!yr#`l~stXIIXR9?&EzIZhuc()tw%TZWzFK$8s%om!nQ3*gR=06+ zJzwKF@0f10)?7NRmhGjQ=ewp~bDFAIcWtwJNv%3fTO+&CHeBJh-Lh>tZgtvTsaf{4 zTU)W+UR|QuZ1%J|Hd~lKrcP>U?IagSL6gvgUYf5p7adZP6m&ksZsmhAB`@pB;Q?X9 z*~N(s<R0mJhV)%JWj7O<efnDVhEm_%uj@bmw1@O3f|yYZ^7c&0_)HK#)30X{Dum-& z0i=8^?o7X)3F0*GQo}bFNW(@1<FZ7qT{kt~UiC?<n!ZWeg6EMYtV@o6GK3s}$)@YK zTcOGF9al#3OrE2;j#hUpvmVCu?9%863u;ejlcZTrqhU8ux#{?}hV6Y3C9I32l}cGH zcQ&J$t+v?OpdWkLSai*X9WM8=1{G0!1Ny^gygiiZ5c9xykmWE`V!(lMTwaClhw^;( z4M3j{xj2__t%64-H~~a_zxjkj<Csg4wO)pS=S1VuGAQ&hoq)<YfCF`0ZbG@g9Z=by z4$S$&^(tQjm!MK)4qltYfP?(5<@3q;c0y&o3UH*q1ZZ?#4;Q!F2YLOxUz~4O=wp5X z8qLRbxV9A8(|a&T3^>SpG79B<{D`oR^YQ*i^YI!Y^Ta)XiM;Lh!S}&se}kcq`A1OB zCmwM;+(&>rP$`_7{hx&+pA$&p3tXNQFt~6G>zCn(fhF-(F!rt-!@~E8_dOI5$7_)y z<9>vJvA7W!ZUbMJK^W!QZ$&WR;4&_wP~N|%pd82R-3JZN9uW2MzT9CHimV%{$)25m zptcHd0LnQz-w>4VbtK<z)JSk$DKekra_rfY)csQ$c|@|FFXWN@!q2sP0w+HYsEPM6 ze&(@J@%g;Z@_EX`AK7=2kJr!><m2;Zg$90`GxtND1n2X!4(0t!h5pbj^0B`s$hQ~d zlhDBPxzBH)JW3wA#eBX;J;8jwe?0-`eeVf4pTi%dA$0z>oh!UYLIS_?LX4MUd?m&| zkMZwf{8w;Z&pkAQB__~TAVIxED#rN?2@(E>|1fJ-t3|F`t!B-7eWu;C$e7I+GkV@I zy!L`IXFSGq<9vQ%f^+cvX?u}iNHf>nB`-?GLC(K4{_vE!w7qIuZQri))Jgujpw^1% z8jHwoSj)C`@oc4>am|ai{2Xy30n1LqKI^-B+js8gmY*m=HoY*L&ly=gpPkP~a%>OE zmUDU~XOzmtGw0rYR8%=vDwZpcimK?D2Zqe(*-Ei&WQ&EjbLF?@iiHP8&K2e=2B&)X zhEl8TdsK5QZ@CnH{RJ%8AO1KKvf~iZ+FiikiJp`1-@pIEIC>;wlqsU4G6wd&>}0_? z<;PA4&ZV$Vg5i1IFYP#%2P7WGPo>0oM?WJmek%@1tm2bG;!&a_5|0r*EAeq6RpN1? z-4dfV{}B@JFSH^1=WmLUNdG%Io}V#@==mG~`rjk-pnqXs6(K=>*a&?luy0~+KER@u Jk5{3v{|oY`1r`7R literal 0 HcmV?d00001 diff --git a/builddir/O.3.15.2_eldk56-e500v2/libemu.so b/builddir/O.3.15.2_eldk56-e500v2/libemu.so new file mode 100755 index 0000000000000000000000000000000000000000..50a83f1fc870075ba3b60f7fa8e31393f29a187a GIT binary patch literal 26316 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 literal 0 HcmV?d00001 diff --git a/builddir/db/EMU.db b/builddir/db/EMU.db new file mode 100644 index 0000000..a169ecb --- /dev/null +++ b/builddir/db/EMU.db @@ -0,0 +1,5286 @@ +# File: scanBase.template +# Author: Alexander Soderqvist <alexander.soderqvist@cosylab.com> +# +# Template containing the base for a scanning application. +# This is not a scanning application by it self +# and although it can be used as stand alone component, +# it is designed to be a part of scanning application implemented +# within geenricScan.substitutions. + + +# SSCAN record + +record(sscan, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)") +{ + field(DESC, "$(SCAN_SLIT,undefined)") + + field(MPTS, "$(MAX_POINTS_SLIT,undefined)") + field(PASM, "STAY") + field(NPTS, "$(MAX_POINTS_SLIT,undefined)") + field(FPTS, "FREEZE") + field(ATIME, "0.1") + field(ACQT, "SCALAR") + field(ACQM, "NORMAL") + + #Before scan start fields + field(BSPV, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-BEFORE_SCAN") + field(BSCD, "1") + + #After scan start field- + field(ASPV, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-AFTER_SCAN") + field(ASCD, "1") + + #Detector triggers + field(T1PV, "$(DEVICE,recursive):$(SCAN_EF,undefined).EXSC") + field(T2PV, "") + field(T3PV, "") + field(T4PV, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-TRTRG.PROC") + + #Detectors + field(D01PV, "") + field(D02PV, "") + field(D03PV, "") + field(D04PV, "") + field(D05PV, "") + field(D06PV, "") + field(D07PV, "") + field(D08PV, "") + field(D09PV, "") + field(D10PV, "") + field(D11PV, "") + field(D12PV, "") + field(D13PV, "") + field(D14PV, "") + field(D15PV, "") + field(D16PV, "") + field(D17PV, "") + field(D18PV, "") + field(D19PV, "") + field(D20PV, "") + field(D21PV, "") + field(D22PV, "") + field(D23PV, "") + field(D24PV, "") + field(D25PV, "") + field(D26PV, "") + field(D27PV, "") + field(D28PV, "") + field(D29PV, "") + field(D30PV, "") + field(D31PV, "") + field(D32PV, "") + field(D33PV, "") + field(D34PV, "") + field(D35PV, "") + field(D36PV, "") + field(D37PV, "") + field(D38PV, "") + field(D39PV, "") + field(D40PV, "") + field(D41PV, "") + field(D42PV, "") + field(D43PV, "") + field(D44PV, "") + field(D45PV, "") + field(D46PV, "") + field(D47PV, "") + field(D48PV, "") + field(D49PV, "") + field(D50PV, "") + field(D51PV, "") + field(D52PV, "") + field(D53PV, "") + field(D54PV, "") + field(D55PV, "") + field(D56PV, "") + field(D57PV, "") + field(D58PV, "") + field(D59PV, "") + field(D60PV, "") + field(D61PV, "") + field(D62PV, "") + field(D63PV, "") + field(D64PV, "") + field(D65PV, "") + field(D66PV, "") + field(D67PV, "") + field(D68PV, "") + field(D69PV, "") + field(D70PV, "") + + #Positioner and step mode + field(P1PV, "$(MTRREC,undefined).ACCL") + field(P1SM, "FLY") + field(P2PV, "$(MTRREC,undefined).VELO") + field(P2SM, "FLY") + field(P3PV, "") + field(P3SM, "FLY") + field(P4PV, "$(MTRREC,undefined).VAL") + field(P4SM, "LINEAR") + + #Start, end and diff limit + field(P1SP, "") + field(P1EP, "") + field(P2SP, "") + field(P2EP, "") + field(P3SP, "") + field(P3EP, "") + field(P4SP, "") + field(P4EP, "") + + # Freeze flags, start, increment and end + field(P1FS, "FREEZE") + field(P1FI, "") + field(P1FE, "FREEZE") + field(P2FS, "") + field(P2FI, "") + field(P2FE, "") + field(P3FS, "") + field(P3FI, "") + field(P3FE, "") + field(P4FS, "") + field(P4FI, "") + field(P4FE, "") + + # Position readback PVs + field(R1PV, "") + field(R2PV, "") + field(R3PV, "") + field(R4PV, "") + + field(A1PV, "") +} +# File : scanGeneric.template +# Author: Alexander Soderqvist <alexandersoderqvist@esss.lu.se> + +# Support database for one SSCAN record. The main responsibility of this template +# is to handle before and after scan links and abort depending on mode (LINEAR, TABLE, FLY). +# It also handles reconfiguration of sscan when changing mode. +# +# All scanning logic and data collection are handled by SSCAN record, this template is an add-on +# to make it more flexible when designing applications. + +#### BEFORE AND AFTER SCAN LINKS #### + + +# Processed after every scan, independent of the scan mode. +# When processed, record defined by macro AS_LNK will be processed (optional). +# Additional after scan link may be defined if necessary. + +record(seq, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-AFTER_SCAN") +{ + field(DESC, "Links to after scan processing") + + + # Process internal records which will dispatch after scan notification + + field(DO1, "1") + field(LNK1, "$(MTRREC,undefined).SPMG") + + # Process mode specific after scan links + field(FLNK, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-AFTER_SCAN_") +} + +# Select after scan links to process according to mode + +record(seq, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-AFTER_SCAN_") +{ + field(DESC, "Links to after scan processing") + + field(SELM, "Specified") + field(SELL, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-MODE_SEL PP") + + field(DO1, "1") + field(LNK1, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-AFSTEP PP") + + field(DO2, "1") + field(LNK2, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-AFSTEP PP") + + field(DO3, "1") + field(LNK3, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-AFFLY PP") + +} + + +# Processed after scan finishes in LINEAR or TABLE mode. + +record(seq, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-AFSTEP") +{ + + field(DO1, "0") + field(LNK1, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-TR_TLCTRL.VAL PP") + + + field(DO2, "1") + field(DO3, "") + field(DO4, "") + + field(LNK2, "$(DEVICE,recursive):PROC-SLIT-AF.PROC PP") + field(LNK3, "") + field(LNK4, "") + + field(FLNK, "") +} + + +# Processed after scan is done (terminated) in FLY mode +# Optional: Process any external records given in AF_FLY_FLNK + +record(seq, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-AFFLY") +{ + field(DO1, "") + field(DO2, "") + field(DO3, "") + + field(LNK1, "") + field(LNK2, "") + field(LNK3, "") + + field(FLNK, "") +} + + +# Processed before every scan, independent of the mode. +# When processed, record defined by BS_LNK will be processed. +# If necessary more links can be added + +record(seq, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-BEFORE_SCAN") +{ + field(DESC, "Links to before scan processing") + + field(DO1, "3") + field(LNK1, "$(MTRREC,undefined).SPMG") + + field(FLNK, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-BEFORE_SCAN_") +} + +# Select before scan links to process according to mode + +record(seq, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-BEFORE_SCAN_") +{ + field(DESC, "Links to before scan processing") + + field(SELM, "Specified") + field(SELL, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-MODE_SEL PP") + + field(DO1, "1") + field(LNK1, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-BFSTEP PP") + + field(DO2, "1") + field(LNK2, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-BFSTEP PP") + + field(DO3, "1") + field(LNK3, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-BFFLY PP") + +} + + +# Processed before scan is executed in FLY mode. + +record(seq, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-BFFLY") +{ + + field(DO1, "") + field(DO2, "") + field(DO3, "") + + field(LNK1, "") + field(LNK2, "") + field(LNK3, "") + + field(FLNK, "") +} + + +# Processed before scan is executed in LINEAR or TABLE mode. + +record(seq, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-BFSTEP") +{ + + field(DO1, "1") + field(LNK1, "$(DEVICE,recursive):PROC-SLIT-BF.PROC PP") + + field(DO2, "") + field(LNK2, "") + + field(DO3, "") + field(LNK3, "") + + field(FLNK, "") +} + + +# Processed on scan abort when when in LINEAR mode. +# Optional: Process any external records given in AB_STEP_FLNK + +record(seq, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-ABSTEP") +{ + field(DO1, "0") + field(LNK1, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-TR_TLCTRL.VAL PP") + + field(DO2, "0") + field(LNK2, "$(DEVICE,recursive):$(SCAN_SLIT,undefined).EXSC PP") + + field(DO3, "1") + field(LNK3, "$(DEVICE,recursive):PROC-SLIT-AB.PROC PP") + + field(DO4, "") + field(LNK4, "") + + field(DO5, "") + field(LNK5, "") + + field(FLNK, "$(DEVICE,recursive):$(SCAN_EF,undefined)-ABORT") +} + + +# Processed on scan abort when in FLY mode. +# Optional: Process any external records given in AB_FLY_FLNK + +record(seq, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-ABFLY") +{ + field(DO1, "0") + field(LNK1, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-TR_TLCTRL.VAL PP") + + field(DO2, "0") + field(LNK2, "$(DEVICE,recursive):$(SCAN_SLIT,undefined).EXSC PP") + + field(DO3, "") + field(LNK3, "") + + field(DO4, "") + field(LNK4, "") + + field(DO5, "") + field(LNK5, "") + + field(FLNK, "") +} + + + + +### Command interface ### + + +# Abort the scan, general links. + +record(seq, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-ABORT") +{ + field(DO1, "1") + field(LNK1, "$(MTRREC,undefined).STOP PP") + + field(FLNK, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-ABORT_") +} + +# Select STEP or FLY abort depending on mode + +record(seq, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-ABORT_") +{ + field(SELM, "Specified") + field(SELL, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-MODE_SEL") + + field(DO1, "0") + field(LNK1, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-ABSTEP PP") + + field(DO2, "0") + field(LNK3, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-ABSTEP PP") + + field(DO3, "0") + field(LNK3, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-ABFLY PP") + + field(FLNK, "") +} + + +### Auto configuration records ### +# Record which handles reconfiguration of sscan due to change of mode. + +# Calcuclate mode for use with selection algoritm in seq records +# Propagate execution to configuration for that specific mode. + +record(calcout, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-MODE_SEL") +{ + field(CALC, "A + 1") + field(INPA, "$(DEVICE,recursive):$(SCAN_SLIT,undefined).P4SM CP") + +# Only execute on change, execution everytime +# also meant executin at end-of-scan when the field +# updates. This caused problems when nesting scans + field(OOPT, "On Change") + field(OUT, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-CONFLNK.PROC PP") +# field(FLNK, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-CONFLNK") +} + +# Execute mode configuration links + +record(seq, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-CONFLNK") +{ + + field(SELM, "Specified") + field(SELL, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-MODE_SEL") + + field(DO1, "1") + field(LNK1, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-STEPCONF.PROC PP") + + field(DO2, "1") + field(LNK2, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-STEPCONF.PROC PP") + + field(DO3, "1") + field(LNK3, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-FLYCONF.PROC PP") + +} + +# Configures the sscan record for on the fly: +# 1. prevent automatic recalculation of number of points +# 2. sets number of points to scan to Macro(MAX_POINTS) +# 3, 4. User defined links before setting fly mode +# + +record(seq, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-FLYCONF") +{ + field(DESC, "Sets SSCAN in OTF mode") + + field(DO1, "1") + field(DO2, "$(MAX_POINTS_SLIT,undefined)") + + field(DO3, "") + field(DO4, "") + + + field(LNK1, "$(DEVICE,recursive):$(SCAN_SLIT,undefined).FPTS PP") + field(LNK2, "$(DEVICE,recursive):$(SCAN_SLIT,undefined).NPTS PP") + + field(LNK3, "") + field(LNK4, "") + + field(FLNK, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-SET_POS_RBV") +} + + +# Configures the sscan record to: +# - automatically recalculate number of points +# - sets mode of the positioner to "LINEAR" +# +# Changes input of the common positions waveform to get values +# from sscan record (.PnCA) + +record(seq, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-STEPCONF") +{ + field(DESC, "Sets SSCAN in Step mode") + + field(DO1, "0") + + field(DO2, "") + field(DO3, "") + + field(LNK1, "$(DEVICE,recursive):$(SCAN_SLIT,undefined).FPTS PP") + + field(LNK2, "") + field(LNK3, "") + + field(FLNK, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-SET_POS_RBV") +} + + +# Configure RBV PV depending on mode + +# Set read back pv for positioner. +# Read back value for step mode are usually a scalar PV. +# For example the .RBV field on the motor record. +# +# Read back value for fly scan is usually an array. +# Due to that aggregation of positions often happens closer to the source +# due to the timing critical nature of fly scans. +# Sccan will however aggreage position from scalar also during fly scan, +# If this want to be done simply specifiy to a scalar instead. +record(sseq, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-SET_POS_RBV") +{ + field(SELM, "Specified") + field(SELL, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-MODE_SEL NPP") + + field(STR1, "$(MTRREC,undefined).RBV") + field(LNK1, "$(DEVICE,recursive):$(SCAN_SLIT,undefined).R4PV PP") + + field(STR2, "$(MTRREC,undefined).RBV") + field(LNK2, "$(DEVICE,recursive):$(SCAN_SLIT,undefined).R4PV PP") + + field(STR3, "") + field(LNK3, "$(DEVICE,recursive):$(SCAN_SLIT,undefined).R4PV PP") + +} + + +# Common record for exposing number of read positions. This is used to expose +# Number of positions collected from a separate component which aggregates positions for fly scans. +# In step mode it will simply follow the .CPT field on sscan. +# +# It updates on: +# 1) change of .CPT if in LINEAR mode, +# 2) by explicit update from external positioner control records when in FLY mode. +# In this case, the positioner control logic is responsible to process this record! +# +# When in FLY mode, it is required to process this by external component +# when provided position array is updated (Macro(POS_ARR_RBV_PV)) + +record(calc, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-NORD_POS") +{ + field(CALC, "A = 2 ? B : C") + + field(INPA, "$(DEVICE,recursive):$(SCAN_SLIT,undefined).P4SM") + + field(INPB, "0") + field(INPC, "$(DEVICE,recursive):$(SCAN_SLIT,undefined).CPT CP") + +} + + +# File : scanTRCtrl.template +# Author: Rok Stefanic <rok.stefanic@cosylab.com> +# Modified: Alexander Soderqvist <alexander.soderqvist@cosylab.com> + +# This template implements all necessary logic for acquiring timestamps on received +# timing events which generate HW triggers used by the positioner and detector. +# + +# Macro: +# TR_TLTSEL Full name of the record which holds the time-stamp of the +# HW trigger generation on the timing receiver. +# Example: DTL-Ctrl:TR-01:ACT-TL3-EV5-RBV.TIME + +# It also requires a forward link to signal when to store the timestamp. +# The forward link should be direct to SAVE_TS record and is commonly set +# from DAQDetTrigger done signal for one dimensional scans. +# On two dimensional scan the outer scan's SAVE_TS record can be forward linked +# from an after scan link on the inner scan. And TR_TLTSEL can be set to TS_START +# from the inner scan. + +# Record converts the time-stamp of HW trigger generation +# on timing receiver trigger line output + +record(stringin, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-TS") +{ + field(DTYP, "Soft Timestamp" ) + field(TSEL, "$(DEVICE,recursive):$(SCAN_EF,undefined)-TS_START.TIME" ) + field(INP, "@%Y-%m-%d %H:%M:%S.%09f" ) + + field(FLNK, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-TS_ARRAY_CONCAT") +} + + +# aSub routine concatenates all incoming time-stamps to an array + +record(aSub, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-TS_ARRAY_CONCAT") +{ + field(DESC, "Concatenate time-stamps") + field(INAM, "concatTSArrayInit") + field(SNAM, "concatTSArrayProcess") + + field(FTA, "STRING") + field(INPA, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-TS.VAL NPP") + + field(FTB, "LONG") + field(INPB, "$(DEVICE,recursive):$(SCAN_SLIT,undefined).CPT NPP") + + field(NOVA, "$(MAX_POINTS_SLIT,undefined)") + field(FTVA, "STRING") + field(OUTA, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-TS_ARR.VAL PP") + + field(FLNK, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-TS_START_") +} + + +# Internal record to determine if trigger is the first +# trigger of the current scan. If so, then record +# -TS_START will be processed which will holed +# the time-stamp when the scan was started. +# Time-stamp is obtained directly from the timing +# receiver (time when the timing event was received +# and HW trigger signal was generated) + +record(calcout, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-TS_START_") +{ + field(DESC, "Process ts of first trigger") + field(CALC, "A = 0 ? 0 : 1") + + field(INPA, "$(DEVICE,recursive):$(SCAN_SLIT,undefined).CPT NPP") + + field(DOPT, "Use OCAL") + field(OOPT, "When Zero") + field(OCAL, "1") + + field(OUT, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-TS_START.PROC PP") +} + + +# Record is processed when the first timing event is +# received - generating the first HW trigger signal +# in the timing receiver. This time-stamp is the actual +# time when scan started. + +record(longin, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-TS_START") +{ + field(DESC, "TS of first trigger") + field(MDEL, "-1") + + field(TSEL, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-TS.TIME") +} + + +# Array containing all time-stamps gathered during the scan + +record(waveform, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-TS_ARR") +{ + field(NELM, "$(MAX_POINTS_SLIT,undefined)") + field(FTVL, "STRING") +} + + +# Trigger end of scan timestamp read-back array to be stored. +record(bi, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-EOS_TS_RBV") +{ + field(INP, "$(DEVICE,recursive):$(SCAN_SLIT,undefined).DATA CP") + field(FLNK, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-TS_ARR_RBV") +} + + +# Store acquired time-stamps when scan is finished +# NOTE: this record will not be updated during the scan! + +record(waveform, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-TS_ARR_RBV") +{ + field(DISV, "0") + field(SDIS, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-EOS_TS NPP") + + field(NELM, "$(MAX_POINTS_SLIT,undefined)") + field(FTVL, "STRING") + + field(INP, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-TS_ARR") + + # Set the time of the record to the beginning of the scan + # (time of the first timing trigger) + field(TSEL, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-TS_START.TIME") +} + +# Record that MUST be processed once acquisition on the detector is triggered +# acquisition ends. It is necessary that DAQ functions in blocking mode, +# where this process is processed when DAQ finishes and unblocks. +# The record will trigger saving the time-stamp into the internal time-stamp array. +# +# The record will not be processed when the scan is not active. +# This enables the inner scan to be performed without affecting the outter scan +# in a setup of 2D scan. + +record(fanout, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-SAVE_TS") +{ + field(DESC, "Save timestamp") + + # Disable record processing if the scan component is not active + # The case for this is in 2D scans and the inner scan is executed. + # Without this guard, time-stamps from the inner scan component would + # be appended to the array. + + field(DISV, "0") + field(SDIS, "$(DEVICE,recursive):$(SCAN_SLIT,undefined).BUSY NPP") + + field(LNK1, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-TS") +} +# File : scanTRDetTrig.template +# Author: Alexander Soderqvist <alexander.soderqvist@cosylab.com> + +# The purpose of this template is to provide an interface to the ESS timing receiver. +# The actual timing receiver logic still has to be provided by an external component, +# which can be found in the trAction.template of the timing receiver support. +# +# It also handles auto abort for fly scan which is related to turning of +# trigger lines at the correct moment to assure conformity in positioner and data points. +# +# This template is not meant to be used as a stand-alone component but together with scanGeneric.template. + +# Controls trigger generation on trigger liens on the timing receiver. +# +# +# MACRO: +# TR_TL1 Record Name of the TR record responsible to control the output +# Example: DTL-Ctrl:TR-01:ACT-TL3-EV5 +# And TR_TL2 and TR_TL3 for controlling more trigger lines. +# +# TL_ENBL_VAL Value written to enable reaction to events on triggler line. +# TL_DIS_VAL Value written to disable reaction to events on triggler line. + + +# INTERFACE SSCAN record detector trigger: +# Detects the first detector trigger issued by SSCAN record (when <SSCAN>.CPT == 0) +# And activate trigger lines +record(calc, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-TRTRG") +{ + field(DESC, "Detects first detector trigger") + field(CALC, "A = 0 ? 1 : 2") + + field(INPA, "$(DEVICE,recursive):$(SCAN_SLIT,undefined).CPT NPP") + + field(FLNK, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-OPSEL") +} + +record(seq, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-OPSEL") +{ + field(SELM, "Specified") + field(SELL, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-TRTRG") + + # Enable trigger lines + field(DO1, "1") + field(LNK1, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-TR_TLCTRL.VAL PP") + + # Else dact trigger lines + field(DO2, "1") + field(LNK2, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-DACT_TR.PROC PP") +} + +# INTERNAL RECORD & INTERFACE SCAN GENERIC: +# Control Trigger lines reaction to event +# "Simultaneosly" enable/disable reaction to events on multiple trigger lines. +# Note that this might be a hack. The timing receiver has to support doing this otherwise +# we have a race condition, even though it seems unlikely to actually happen. +# This will however only happen for fly scans. +record(dfanout, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-TR_TLCTRL") +{ + field(DESC, "Enable/disable TR output") + field(OMSL, "supervisory") + + field(OUTA, "") + field(OUTB, "") + field(OUTC, "") +} + +# INTERNAL RECORD: +# Deactivate trigger lines for fly scans when number of points +# is reached or the positioner is done moving. +record(calcout, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-DACT_TR") +{ + field(DESC, "Deactivate TR trigger lines") + field(CALC, "A = 2 && (B = 1 || C = D) ? 0 : 1") + field(INPA, "$(DEVICE,recursive):$(SCAN_SLIT,undefined).P4SM NPP") + field(INPB, "0") + field(INPC, "$(DEVICE,recursive):$(SCAN_SLIT,undefined).CPT NPP") + field(INPD, "$(DEVICE,recursive):$(SCAN_SLIT,undefined).NPTS NPP") + + field(OCAL, "0") + field(OOPT, "When Zero") + field(DOPT, "Use OCAL") + field(OUT, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-TR_TLCTRL PP") +# Trigger Auto abort + field(FLNK, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-AUTOABORT") +} + +# INTERNAL RECORD: +# If triggler lines were deactivated and positioner is done moving +# trigger auto abort links to finish the scan. To avoid waiting for NPTS to be collected. +record(calcout, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-AUTOABORT") +{ + field(DESC, "Auto abort fly scans") + field(CALC, "A = 0 && B = 1 ? 0 : 1") + field(INPA, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-DACT_TR NPP") + field(INPB, "0") + field(OOPT, "When Zero") + + field(OUT, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-AUTOABLNK.PROC PP") +} + +# Auto abort links. +# Abort scan and execute user defined links for any other things +# that needs to be finsihsed or reset. +record(seq, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-AUTOABLNK") +{ + field(DLY1, "0.1") + field(DO1, "0") + field(LNK1, "$(DEVICE,recursive):$(SCAN_SLIT,undefined).EXSC NPP") + + field(DLY2, "0.1") + field(DO2, "") + field(LNK2, "") + + field(DLY3, "0.1") + field(DO3, "") + field(LNK3, "") + +} +# File: scanBase.template +# Author: Alexander Soderqvist <alexander.soderqvist@cosylab.com> +# +# Template containing the base for a scanning application. +# This is not a scanning application by it self +# and although it can be used as stand alone component, +# it is designed to be a part of scanning application implemented +# within geenricScan.substitutions. + + +# SSCAN record + +record(sscan, "$(DEVICE,recursive):$(SCAN_EF,undefined)") +{ + field(DESC, "$(SCAN_EF,undefined)") + + field(MPTS, "$(MAX_POINTS_EF,undefined)") + field(PASM, "STAY") + field(NPTS, "$(MAX_POINTS_EF,undefined)") + field(FPTS, "FREEZE") + field(ATIME, "0.1") + field(ACQT, "SCALAR") + field(ACQM, "NORMAL") + + #Before scan start fields + field(BSPV, "$(DEVICE,recursive):$(SCAN_EF,undefined)-BEFORE_SCAN") + field(BSCD, "1") + + #After scan start field- + field(ASPV, "$(DEVICE,recursive):$(SCAN_EF,undefined)-AFTER_SCAN") + field(ASCD, "1") + + #Detector triggers + field(T1PV, "$(DEVICE,recursive):DAQTRG-TRG") + field(T2PV, "") + field(T3PV, "") + field(T4PV, "$(DEVICE,recursive):$(SCAN_EF,undefined)-TRTRG.PROC") + + #Detectors + field(D01PV, "$(DEVICE,recursive):BUFF-DET1") + field(D02PV, "$(DEVICE,recursive):BUFF-DET23") + field(D03PV, "") + field(D04PV, "") + field(D05PV, "") + field(D06PV, "") + field(D07PV, "") + field(D08PV, "") + field(D09PV, "") + field(D10PV, "") + field(D11PV, "") + field(D12PV, "") + field(D13PV, "") + field(D14PV, "") + field(D15PV, "") + field(D16PV, "") + field(D17PV, "") + field(D18PV, "") + field(D19PV, "") + field(D20PV, "") + field(D21PV, "") + field(D22PV, "") + field(D23PV, "") + field(D24PV, "") + field(D25PV, "") + field(D26PV, "") + field(D27PV, "") + field(D28PV, "") + field(D29PV, "") + field(D30PV, "") + field(D31PV, "") + field(D32PV, "") + field(D33PV, "") + field(D34PV, "") + field(D35PV, "") + field(D36PV, "") + field(D37PV, "") + field(D38PV, "") + field(D39PV, "") + field(D40PV, "") + field(D41PV, "") + field(D42PV, "") + field(D43PV, "") + field(D44PV, "") + field(D45PV, "") + field(D46PV, "") + field(D47PV, "") + field(D48PV, "") + field(D49PV, "") + field(D50PV, "") + field(D51PV, "") + field(D52PV, "") + field(D53PV, "") + field(D54PV, "") + field(D55PV, "") + field(D56PV, "") + field(D57PV, "") + field(D58PV, "") + field(D59PV, "") + field(D60PV, "") + field(D61PV, "") + field(D62PV, "") + field(D63PV, "") + field(D64PV, "") + field(D65PV, "") + field(D66PV, "") + field(D67PV, "") + field(D68PV, "") + field(D69PV, "") + field(D70PV, "") + + #Positioner and step mode + field(P1PV, "$(PSU2_SP,undefined)") + field(P1SM, "LINEAR") + field(P2PV, "") + field(P2SM, "FLY") + field(P3PV, "") + field(P3SM, "FLY") + field(P4PV, "$(PSU_SP,undefined)") + field(P4SM, "LINEAR") + + #Start, end and diff limit + field(P1SP, "") + field(P1EP, "") + field(P2SP, "") + field(P2EP, "") + field(P3SP, "") + field(P3EP, "") + field(P4SP, "") + field(P4EP, "") + + # Freeze flags, start, increment and end + field(P1FS, "FREEZE") + field(P1FI, "") + field(P1FE, "FREEZE") + field(P2FS, "") + field(P2FI, "") + field(P2FE, "") + field(P3FS, "") + field(P3FI, "") + field(P3FE, "") + field(P4FS, "") + field(P4FI, "") + field(P4FE, "") + + # Position readback PVs + field(R1PV, "$(PSU2_RBV,undefined)") + field(R2PV, "") + field(R3PV, "") + field(R4PV, "") + + field(A1PV, "") +} +# File : scanGeneric.template +# Author: Alexander Soderqvist <alexandersoderqvist@esss.lu.se> + +# Support database for one SSCAN record. The main responsibility of this template +# is to handle before and after scan links and abort depending on mode (LINEAR, TABLE, FLY). +# It also handles reconfiguration of sscan when changing mode. +# +# All scanning logic and data collection are handled by SSCAN record, this template is an add-on +# to make it more flexible when designing applications. + +#### BEFORE AND AFTER SCAN LINKS #### + + +# Processed after every scan, independent of the scan mode. +# When processed, record defined by macro AS_LNK will be processed (optional). +# Additional after scan link may be defined if necessary. + +record(seq, "$(DEVICE,recursive):$(SCAN_EF,undefined)-AFTER_SCAN") +{ + field(DESC, "Links to after scan processing") + + + # Process internal records which will dispatch after scan notification + + field(DO1, "") + field(LNK1, "") + + # Process mode specific after scan links + field(FLNK, "$(DEVICE,recursive):$(SCAN_EF,undefined)-AFTER_SCAN_") +} + +# Select after scan links to process according to mode + +record(seq, "$(DEVICE,recursive):$(SCAN_EF,undefined)-AFTER_SCAN_") +{ + field(DESC, "Links to after scan processing") + + field(SELM, "Specified") + field(SELL, "$(DEVICE,recursive):$(SCAN_EF,undefined)-MODE_SEL PP") + + field(DO1, "1") + field(LNK1, "$(DEVICE,recursive):$(SCAN_EF,undefined)-AFSTEP PP") + + field(DO2, "1") + field(LNK2, "$(DEVICE,recursive):$(SCAN_EF,undefined)-AFSTEP PP") + + field(DO3, "1") + field(LNK3, "$(DEVICE,recursive):$(SCAN_EF,undefined)-AFFLY PP") + +} + + +# Processed after scan finishes in LINEAR or TABLE mode. + +record(seq, "$(DEVICE,recursive):$(SCAN_EF,undefined)-AFSTEP") +{ + + field(DO1, "0") + field(LNK1, "$(DEVICE,recursive):$(SCAN_EF,undefined)-TR_TLCTRL.VAL PP") + + + field(DO2, "") + field(DO3, "") + field(DO4, "") + + field(LNK2, "$(DEVICE,recursive):PROC-PS-AF.PROC PP") + field(LNK3, "") + field(LNK4, "") + + field(FLNK, "$(DEVICE,recursive):$(SCAN_SLIT,undefined)-SAVE_TS") +} + + +# Processed after scan is done (terminated) in FLY mode +# Optional: Process any external records given in AF_FLY_FLNK + +record(seq, "$(DEVICE,recursive):$(SCAN_EF,undefined)-AFFLY") +{ + field(DO1, "") + field(DO2, "") + field(DO3, "") + + field(LNK1, "") + field(LNK2, "") + field(LNK3, "") + + field(FLNK, "") +} + + +# Processed before every scan, independent of the mode. +# When processed, record defined by BS_LNK will be processed. +# If necessary more links can be added + +record(seq, "$(DEVICE,recursive):$(SCAN_EF,undefined)-BEFORE_SCAN") +{ + field(DESC, "Links to before scan processing") + + field(DO1, "") + field(LNK1, "") + + field(FLNK, "$(DEVICE,recursive):$(SCAN_EF,undefined)-BEFORE_SCAN_") +} + +# Select before scan links to process according to mode + +record(seq, "$(DEVICE,recursive):$(SCAN_EF,undefined)-BEFORE_SCAN_") +{ + field(DESC, "Links to before scan processing") + + field(SELM, "Specified") + field(SELL, "$(DEVICE,recursive):$(SCAN_EF,undefined)-MODE_SEL PP") + + field(DO1, "1") + field(LNK1, "$(DEVICE,recursive):$(SCAN_EF,undefined)-BFSTEP PP") + + field(DO2, "1") + field(LNK2, "$(DEVICE,recursive):$(SCAN_EF,undefined)-BFSTEP PP") + + field(DO3, "1") + field(LNK3, "$(DEVICE,recursive):$(SCAN_EF,undefined)-BFFLY PP") + +} + + +# Processed before scan is executed in FLY mode. + +record(seq, "$(DEVICE,recursive):$(SCAN_EF,undefined)-BFFLY") +{ + + field(DO1, "") + field(DO2, "") + field(DO3, "") + + field(LNK1, "") + field(LNK2, "") + field(LNK3, "") + + field(FLNK, "") +} + + +# Processed before scan is executed in LINEAR or TABLE mode. + +record(seq, "$(DEVICE,recursive):$(SCAN_EF,undefined)-BFSTEP") +{ + + field(DO1, "") + field(LNK1, "$(DEVICE,recursive):PROC-PS-BF.PROC PP") + + field(DO2, "") + field(LNK2, "") + + field(DO3, "") + field(LNK3, "") + + field(FLNK, "") +} + + +# Processed on scan abort when when in LINEAR mode. +# Optional: Process any external records given in AB_STEP_FLNK + +record(seq, "$(DEVICE,recursive):$(SCAN_EF,undefined)-ABSTEP") +{ + field(DO1, "0") + field(LNK1, "$(DEVICE,recursive):$(SCAN_EF,undefined)-TR_TLCTRL.VAL PP") + + field(DO2, "0") + field(LNK2, "$(DEVICE,recursive):$(SCAN_EF,undefined).EXSC PP") + + field(DO3, "") + field(LNK3, "$(DEVICE,recursive):DAQTRG-RST.PROC PP") + + field(DO4, "") + field(LNK4, "") + + field(DO5, "") + field(LNK5, "") + + field(FLNK, "") +} + + +# Processed on scan abort when in FLY mode. +# Optional: Process any external records given in AB_FLY_FLNK + +record(seq, "$(DEVICE,recursive):$(SCAN_EF,undefined)-ABFLY") +{ + field(DO1, "0") + field(LNK1, "$(DEVICE,recursive):$(SCAN_EF,undefined)-TR_TLCTRL.VAL PP") + + field(DO2, "0") + field(LNK2, "$(DEVICE,recursive):$(SCAN_EF,undefined).EXSC PP") + + field(DO3, "") + field(LNK3, "") + + field(DO4, "") + field(LNK4, "") + + field(DO5, "") + field(LNK5, "") + + field(FLNK, "") +} + + + + +### Command interface ### + + +# Abort the scan, general links. + +record(seq, "$(DEVICE,recursive):$(SCAN_EF,undefined)-ABORT") +{ + field(DO1, "") + field(LNK1, "") + + field(FLNK, "$(DEVICE,recursive):$(SCAN_EF,undefined)-ABORT_") +} + +# Select STEP or FLY abort depending on mode + +record(seq, "$(DEVICE,recursive):$(SCAN_EF,undefined)-ABORT_") +{ + field(SELM, "Specified") + field(SELL, "$(DEVICE,recursive):$(SCAN_EF,undefined)-MODE_SEL") + + field(DO1, "0") + field(LNK1, "$(DEVICE,recursive):$(SCAN_EF,undefined)-ABSTEP PP") + + field(DO2, "0") + field(LNK3, "$(DEVICE,recursive):$(SCAN_EF,undefined)-ABSTEP PP") + + field(DO3, "0") + field(LNK3, "$(DEVICE,recursive):$(SCAN_EF,undefined)-ABFLY PP") + + field(FLNK, "") +} + + +### Auto configuration records ### +# Record which handles reconfiguration of sscan due to change of mode. + +# Calcuclate mode for use with selection algoritm in seq records +# Propagate execution to configuration for that specific mode. + +record(calcout, "$(DEVICE,recursive):$(SCAN_EF,undefined)-MODE_SEL") +{ + field(CALC, "A + 1") + field(INPA, "$(DEVICE,recursive):$(SCAN_EF,undefined).P4SM CP") + +# Only execute on change, execution everytime +# also meant executin at end-of-scan when the field +# updates. This caused problems when nesting scans + field(OOPT, "On Change") + field(OUT, "$(DEVICE,recursive):$(SCAN_EF,undefined)-CONFLNK.PROC PP") +# field(FLNK, "$(DEVICE,recursive):$(SCAN_EF,undefined)-CONFLNK") +} + +# Execute mode configuration links + +record(seq, "$(DEVICE,recursive):$(SCAN_EF,undefined)-CONFLNK") +{ + + field(SELM, "Specified") + field(SELL, "$(DEVICE,recursive):$(SCAN_EF,undefined)-MODE_SEL") + + field(DO1, "1") + field(LNK1, "$(DEVICE,recursive):$(SCAN_EF,undefined)-STEPCONF.PROC PP") + + field(DO2, "1") + field(LNK2, "$(DEVICE,recursive):$(SCAN_EF,undefined)-STEPCONF.PROC PP") + + field(DO3, "1") + field(LNK3, "$(DEVICE,recursive):$(SCAN_EF,undefined)-FLYCONF.PROC PP") + +} + +# Configures the sscan record for on the fly: +# 1. prevent automatic recalculation of number of points +# 2. sets number of points to scan to Macro(MAX_POINTS) +# 3, 4. User defined links before setting fly mode +# + +record(seq, "$(DEVICE,recursive):$(SCAN_EF,undefined)-FLYCONF") +{ + field(DESC, "Sets SSCAN in OTF mode") + + field(DO1, "1") + field(DO2, "$(MAX_POINTS_EF,undefined)") + + field(DO3, "") + field(DO4, "") + + + field(LNK1, "$(DEVICE,recursive):$(SCAN_EF,undefined).FPTS PP") + field(LNK2, "$(DEVICE,recursive):$(SCAN_EF,undefined).NPTS PP") + + field(LNK3, "") + field(LNK4, "") + + field(FLNK, "$(DEVICE,recursive):$(SCAN_EF,undefined)-SET_POS_RBV") +} + + +# Configures the sscan record to: +# - automatically recalculate number of points +# - sets mode of the positioner to "LINEAR" +# +# Changes input of the common positions waveform to get values +# from sscan record (.PnCA) + +record(seq, "$(DEVICE,recursive):$(SCAN_EF,undefined)-STEPCONF") +{ + field(DESC, "Sets SSCAN in Step mode") + + field(DO1, "0") + + field(DO2, "") + field(DO3, "") + + field(LNK1, "$(DEVICE,recursive):$(SCAN_EF,undefined).FPTS PP") + + field(LNK2, "") + field(LNK3, "") + + field(FLNK, "$(DEVICE,recursive):$(SCAN_EF,undefined)-SET_POS_RBV") +} + + +# Configure RBV PV depending on mode + +# Set read back pv for positioner. +# Read back value for step mode are usually a scalar PV. +# For example the .RBV field on the motor record. +# +# Read back value for fly scan is usually an array. +# Due to that aggregation of positions often happens closer to the source +# due to the timing critical nature of fly scans. +# Sccan will however aggreage position from scalar also during fly scan, +# If this want to be done simply specifiy to a scalar instead. +record(sseq, "$(DEVICE,recursive):$(SCAN_EF,undefined)-SET_POS_RBV") +{ + field(SELM, "Specified") + field(SELL, "$(DEVICE,recursive):$(SCAN_EF,undefined)-MODE_SEL NPP") + + field(STR1, "$(PSU_RBV,undefined)") + field(LNK1, "$(DEVICE,recursive):$(SCAN_EF,undefined).R4PV PP") + + field(STR2, "$(PSU_RBV,undefined)") + field(LNK2, "$(DEVICE,recursive):$(SCAN_EF,undefined).R4PV PP") + + field(STR3, "") + field(LNK3, "$(DEVICE,recursive):$(SCAN_EF,undefined).R4PV PP") + +} + + +# Common record for exposing number of read positions. This is used to expose +# Number of positions collected from a separate component which aggregates positions for fly scans. +# In step mode it will simply follow the .CPT field on sscan. +# +# It updates on: +# 1) change of .CPT if in LINEAR mode, +# 2) by explicit update from external positioner control records when in FLY mode. +# In this case, the positioner control logic is responsible to process this record! +# +# When in FLY mode, it is required to process this by external component +# when provided position array is updated (Macro(POS_ARR_RBV_PV)) + +record(calc, "$(DEVICE,recursive):$(SCAN_EF,undefined)-NORD_POS") +{ + field(CALC, "A = 2 ? B : C") + + field(INPA, "$(DEVICE,recursive):$(SCAN_EF,undefined).P4SM") + + field(INPB, "0") + field(INPC, "$(DEVICE,recursive):$(SCAN_EF,undefined).CPT CP") + +} + + +# File : scanTRCtrl.template +# Author: Rok Stefanic <rok.stefanic@cosylab.com> +# Modified: Alexander Soderqvist <alexander.soderqvist@cosylab.com> + +# This template implements all necessary logic for acquiring timestamps on received +# timing events which generate HW triggers used by the positioner and detector. +# + +# Macro: +# TR_TLTSEL Full name of the record which holds the time-stamp of the +# HW trigger generation on the timing receiver. +# Example: DTL-Ctrl:TR-01:ACT-TL3-EV5-RBV.TIME + +# It also requires a forward link to signal when to store the timestamp. +# The forward link should be direct to SAVE_TS record and is commonly set +# from DAQDetTrigger done signal for one dimensional scans. +# On two dimensional scan the outer scan's SAVE_TS record can be forward linked +# from an after scan link on the inner scan. And TR_TLTSEL can be set to TS_START +# from the inner scan. + +# Record converts the time-stamp of HW trigger generation +# on timing receiver trigger line output + +record(stringin, "$(DEVICE,recursive):$(SCAN_EF,undefined)-TS") +{ + field(DTYP, "Soft Timestamp" ) + field(TSEL, "$(TR_TLTSEL,recursive)" ) + field(INP, "@%Y-%m-%d %H:%M:%S.%09f" ) + + field(FLNK, "$(DEVICE,recursive):$(SCAN_EF,undefined)-TS_ARRAY_CONCAT") +} + + +# aSub routine concatenates all incoming time-stamps to an array + +record(aSub, "$(DEVICE,recursive):$(SCAN_EF,undefined)-TS_ARRAY_CONCAT") +{ + field(DESC, "Concatenate time-stamps") + field(INAM, "concatTSArrayInit") + field(SNAM, "concatTSArrayProcess") + + field(FTA, "STRING") + field(INPA, "$(DEVICE,recursive):$(SCAN_EF,undefined)-TS.VAL NPP") + + field(FTB, "LONG") + field(INPB, "$(DEVICE,recursive):$(SCAN_EF,undefined).CPT NPP") + + field(NOVA, "$(MAX_POINTS_EF,undefined)") + field(FTVA, "STRING") + field(OUTA, "$(DEVICE,recursive):$(SCAN_EF,undefined)-TS_ARR.VAL PP") + + field(FLNK, "$(DEVICE,recursive):$(SCAN_EF,undefined)-TS_START_") +} + + +# Internal record to determine if trigger is the first +# trigger of the current scan. If so, then record +# -TS_START will be processed which will holed +# the time-stamp when the scan was started. +# Time-stamp is obtained directly from the timing +# receiver (time when the timing event was received +# and HW trigger signal was generated) + +record(calcout, "$(DEVICE,recursive):$(SCAN_EF,undefined)-TS_START_") +{ + field(DESC, "Process ts of first trigger") + field(CALC, "A = 0 ? 0 : 1") + + field(INPA, "$(DEVICE,recursive):$(SCAN_EF,undefined).CPT NPP") + + field(DOPT, "Use OCAL") + field(OOPT, "When Zero") + field(OCAL, "1") + + field(OUT, "$(DEVICE,recursive):$(SCAN_EF,undefined)-TS_START.PROC PP") +} + + +# Record is processed when the first timing event is +# received - generating the first HW trigger signal +# in the timing receiver. This time-stamp is the actual +# time when scan started. + +record(longin, "$(DEVICE,recursive):$(SCAN_EF,undefined)-TS_START") +{ + field(DESC, "TS of first trigger") + field(MDEL, "-1") + + field(TSEL, "$(DEVICE,recursive):$(SCAN_EF,undefined)-TS.TIME") +} + + +# Array containing all time-stamps gathered during the scan + +record(waveform, "$(DEVICE,recursive):$(SCAN_EF,undefined)-TS_ARR") +{ + field(NELM, "$(MAX_POINTS_EF,undefined)") + field(FTVL, "STRING") +} + + +# Trigger end of scan timestamp read-back array to be stored. +record(bi, "$(DEVICE,recursive):$(SCAN_EF,undefined)-EOS_TS_RBV") +{ + field(INP, "$(DEVICE,recursive):$(SCAN_EF,undefined).DATA CP") + field(FLNK, "$(DEVICE,recursive):$(SCAN_EF,undefined)-TS_ARR_RBV") +} + + +# Store acquired time-stamps when scan is finished +# NOTE: this record will not be updated during the scan! + +record(waveform, "$(DEVICE,recursive):$(SCAN_EF,undefined)-TS_ARR_RBV") +{ + field(DISV, "0") + field(SDIS, "$(DEVICE,recursive):$(SCAN_EF,undefined)-EOS_TS NPP") + + field(NELM, "$(MAX_POINTS_EF,undefined)") + field(FTVL, "STRING") + + field(INP, "$(DEVICE,recursive):$(SCAN_EF,undefined)-TS_ARR") + + # Set the time of the record to the beginning of the scan + # (time of the first timing trigger) + field(TSEL, "$(DEVICE,recursive):$(SCAN_EF,undefined)-TS_START.TIME") +} + +# Record that MUST be processed once acquisition on the detector is triggered +# acquisition ends. It is necessary that DAQ functions in blocking mode, +# where this process is processed when DAQ finishes and unblocks. +# The record will trigger saving the time-stamp into the internal time-stamp array. +# +# The record will not be processed when the scan is not active. +# This enables the inner scan to be performed without affecting the outter scan +# in a setup of 2D scan. + +record(fanout, "$(DEVICE,recursive):$(SCAN_EF,undefined)-SAVE_TS") +{ + field(DESC, "Save timestamp") + + # Disable record processing if the scan component is not active + # The case for this is in 2D scans and the inner scan is executed. + # Without this guard, time-stamps from the inner scan component would + # be appended to the array. + + field(DISV, "0") + field(SDIS, "$(DEVICE,recursive):$(SCAN_EF,undefined).BUSY NPP") + + field(LNK1, "$(DEVICE,recursive):$(SCAN_EF,undefined)-TS") +} +# File : scanTRDetTrig.template +# Author: Alexander Soderqvist <alexander.soderqvist@cosylab.com> + +# The purpose of this template is to provide an interface to the ESS timing receiver. +# The actual timing receiver logic still has to be provided by an external component, +# which can be found in the trAction.template of the timing receiver support. +# +# It also handles auto abort for fly scan which is related to turning of +# trigger lines at the correct moment to assure conformity in positioner and data points. +# +# This template is not meant to be used as a stand-alone component but together with scanGeneric.template. + +# Controls trigger generation on trigger liens on the timing receiver. +# +# +# MACRO: +# TR_TL1 Record Name of the TR record responsible to control the output +# Example: DTL-Ctrl:TR-01:ACT-TL3-EV5 +# And TR_TL2 and TR_TL3 for controlling more trigger lines. +# +# TL_ENBL_VAL Value written to enable reaction to events on triggler line. +# TL_DIS_VAL Value written to disable reaction to events on triggler line. + + +# INTERFACE SSCAN record detector trigger: +# Detects the first detector trigger issued by SSCAN record (when <SSCAN>.CPT == 0) +# And activate trigger lines +record(calc, "$(DEVICE,recursive):$(SCAN_EF,undefined)-TRTRG") +{ + field(DESC, "Detects first detector trigger") + field(CALC, "A = 0 ? 1 : 2") + + field(INPA, "$(DEVICE,recursive):$(SCAN_EF,undefined).CPT NPP") + + field(FLNK, "$(DEVICE,recursive):$(SCAN_EF,undefined)-OPSEL") +} + +record(seq, "$(DEVICE,recursive):$(SCAN_EF,undefined)-OPSEL") +{ + field(SELM, "Specified") + field(SELL, "$(DEVICE,recursive):$(SCAN_EF,undefined)-TRTRG") + + # Enable trigger lines + field(DO1, "1") + field(LNK1, "$(DEVICE,recursive):$(SCAN_EF,undefined)-TR_TLCTRL.VAL PP") + + # Else dact trigger lines + field(DO2, "1") + field(LNK2, "$(DEVICE,recursive):$(SCAN_EF,undefined)-DACT_TR.PROC PP") +} + +# INTERNAL RECORD & INTERFACE SCAN GENERIC: +# Control Trigger lines reaction to event +# "Simultaneosly" enable/disable reaction to events on multiple trigger lines. +# Note that this might be a hack. The timing receiver has to support doing this otherwise +# we have a race condition, even though it seems unlikely to actually happen. +# This will however only happen for fly scans. +record(dfanout, "$(DEVICE,recursive):$(SCAN_EF,undefined)-TR_TLCTRL") +{ + field(DESC, "Enable/disable TR output") + field(OMSL, "supervisory") + + field(OUTA, "$(TR_TL,undefined) PP") + field(OUTB, "") + field(OUTC, "") +} + +# INTERNAL RECORD: +# Deactivate trigger lines for fly scans when number of points +# is reached or the positioner is done moving. +record(calcout, "$(DEVICE,recursive):$(SCAN_EF,undefined)-DACT_TR") +{ + field(DESC, "Deactivate TR trigger lines") + field(CALC, "A = 2 && (B = 1 || C = D) ? 0 : 1") + field(INPA, "$(DEVICE,recursive):$(SCAN_EF,undefined).P4SM NPP") + field(INPB, "0") + field(INPC, "$(DEVICE,recursive):$(SCAN_EF,undefined).CPT NPP") + field(INPD, "$(DEVICE,recursive):$(SCAN_EF,undefined).NPTS NPP") + + field(OCAL, "0") + field(OOPT, "When Zero") + field(DOPT, "Use OCAL") + field(OUT, "$(DEVICE,recursive):$(SCAN_EF,undefined)-TR_TLCTRL PP") +# Trigger Auto abort + field(FLNK, "$(DEVICE,recursive):$(SCAN_EF,undefined)-AUTOABORT") +} + +# INTERNAL RECORD: +# If triggler lines were deactivated and positioner is done moving +# trigger auto abort links to finish the scan. To avoid waiting for NPTS to be collected. +record(calcout, "$(DEVICE,recursive):$(SCAN_EF,undefined)-AUTOABORT") +{ + field(DESC, "Auto abort fly scans") + field(CALC, "A = 0 && B = 1 ? 0 : 1") + field(INPA, "$(DEVICE,recursive):$(SCAN_EF,undefined)-DACT_TR NPP") + field(INPB, "0") + field(OOPT, "When Zero") + + field(OUT, "$(DEVICE,recursive):$(SCAN_EF,undefined)-AUTOABLNK.PROC PP") +} + +# Auto abort links. +# Abort scan and execute user defined links for any other things +# that needs to be finsihsed or reset. +record(seq, "$(DEVICE,recursive):$(SCAN_EF,undefined)-AUTOABLNK") +{ + field(DLY1, "0.1") + field(DO1, "0") + field(LNK1, "$(DEVICE,recursive):$(SCAN_EF,undefined).EXSC NPP") + + field(DLY2, "0.1") + field(DO2, "") + field(LNK2, "") + + field(DLY3, "0.1") + field(DO3, "") + field(LNK3, "") + +} +# scanDetTrig.template +# Author: Alexander Soderqvist <alexander.soderqvist@esss.se> +# +# Template containing generic detector trigger logic. +# This is not a standalone component. +# It is Intended to use with DAQ specific logic, for example +# scanDetTrigNDSDAQSupp.template, as a detector trigger on sScan record. +# +# Support for a detector trigger is implemented with a one record interface: +# $(DEVICE,recursive):DAQTRG-ACQ_CTRL. Writing zero to this has to stop acquistion and +# writing 1 to this has to start acquistion. + + +# SSCAN DETECTOR TRIGGER INTERFACE: +# 1. Writes number of acqusitions to a user definable PV. +# 2. Set detector trigger as busy. +# 3. Triggers activate acquisition + +record(seq, "$(DEVICE,recursive):DAQTRG-TRG") +{ + field(DO1, "1") + field(LNK1, "$(DEVICE,recursive):DAQTRG-BUSY PP") + + field(DO2, "1") + field(LNK2, "$(DEVICE,recursive):DAQTRG-ACT_ACQ.PROC PP") + +} + +# INTERFACE DAQ DETECTOR TRIGGER SUPPORT: +# Activates acqusition on the DAQ device. +# When at the first point in the scan always activate. +# When positioner is not in FLY mode always activate. +record(calcout, "$(DEVICE,recursive):DAQTRG-ACT_ACQ") +{ + field(DESC, "Detects first detector trigger") + field(CALC, "A = 0 || B # 1 ? 0 : 1") + + field(INPA, "$(DEVICE,recursive):$(SCAN_EF,undefined).CPT NPP") + field(INPB, "$(DEVICE,recursive):$(SCAN_EF,undefined).P4SM NPP") + + field(DOPT, "Use OCAL") + field(OOPT, "When Zero") + field(OCAL, "2") + + field(OUT, "$(DEVICE,recursive):DAQTRG-ACQ_CTRL_ PP") +} + +# INTERNAL RECORD: +# Triggers start or stop of acquisition message to be sent. +# Write 1 starts acquisiton and 0 stops acquistion + +record(mbbi, "$(DEVICE,recursive):DAQTRG-ACQ_CTRL_") +{ + field(FLNK, "$(DEVICE,recursive):DAQTRG-ACQ_CTRL") + field(ONST, "Acq. stopped") + field(ONVL, "1") + field(TWST, "Acq. started") + field(TWVL, "2") +} + +# INTERFACE DAQ DEVICE +# Starts acqusition when ACQ_CTRL_ is 2 and stop when 1. + +record(sseq, "$(DEVICE,recursive):DAQTRG-ACQ_CTRL") +{ + field(SELM, "Specified") + field(SELL, "$(DEVICE,recursive):DAQTRG-ACQ_CTRL_") + + field(DO1, "") + field(STR1, "ON") + field(LNK1, "$(DAQNDSPREFIX,undefined):PBI-EM:CARD0-STAT PP") + + field(DO2, "") + field(STR2, "RUNNING") + field(LNK2, "$(DAQNDSPREFIX,undefined):PBI-EM:CARD0-STAT PP") +} + + +# SSCAN DETECTOR TRIGGER INTERFACE: +# Signals busy while being 1 and signals completion when going 1 to 0. + +record(busy, "$(DEVICE,recursive):DAQTRG-BUSY") +{ +} + + +# SCAN GENERIC INTERFACE and INTERNAL RECORD: +# Fanout with Macro that is used to trigger saving of timestamps and DAQ data rdy. +# Set busy to 0 to signal to SScan that DAQ data is ready. + +record(seq, "$(DEVICE,recursive):DAQTRG-RDY") +{ + field(DO1, "1") + field(DO2, "0") + + # Notify scanTSarray component that acquisition is done and + # timestamp can be saved. + # + # This is a necessary action needed to be done by the detector control! + field(LNK1, "$(DEVICE,recursive):$(SCAN_EF,undefined)-SAVE_TS.PROC PP") + + field(LNK2, "$(DEVICE,recursive):DAQTRG-BUSY PP") +} + +# DETECTOR INTERFACE: +# Process its output link when all detectors are done. +# Each detector's compress record has a forward link to this record. + +record(calc, "$(DEVICE,recursive):DAQTRG-DETCNT") +{ + field(CALC, "C = 1 ? A % B + 1 : 0") + field(INPA, "$(DEVICE,recursive):DAQTRG-DETCNT.VAL NPP") + field(INPB, "3") + field(INPC, "$(DEVICE,recursive):DAQTRG-BUSY.VAL NPP") + field(FLNK, "$(DEVICE,recursive):DAQTRG-DETRDY NPP") +} + +# DAQ state Guard: +# Note that if the DAQ state pv is used, there has to be a forward link +# from the state record to this record. +record(calcout, "$(DEVICE,recursive):DAQTRG-DAQSTGUARD") +{ + field(CALC, "A = B & C = 1 ? 0 : 1") + field(INPA, "$(DAQNDSPREFIX,undefined):PBI-EM:CARD0-STAT-RB") + field(INPB, "4") + field(INPC, "$(DEVICE,recursive):DAQTRG-BUSY PP") + field(OOPT, "When Zero") + field(OUT, "$(DEVICE,recursive):DAQTRG-DETRDY.PROC PP") + +} + +# INTERNAL RECORD: +# Trigger RDY_FOUT record when all detectors has fired their forwards links. +# Also check that DAQ is in the right state to be armed again, +# so next iteration can be started immediatley. If macros are unset their +# default values will ignore it and only count detectors ready. +record(calcout, "$(DEVICE,recursive):DAQTRG-DETRDY") +{ + field(CALC, "A = B & C = D ? 0 : 1") + field(INPA, "$(DEVICE,recursive):DAQTRG-DETCNT NPP") + field(INPB, "3") + field(INPC, "$(DAQNDSPREFIX,undefined):PBI-EM:CARD0-STAT-RB") + field(INPD, "4") + field(OOPT, "When Zero") + field(OUT, "$(DEVICE,recursive):DAQTRG-RDY.PROC PP") + +} + +# INTERFACE SCAN GENERIC: +# Resets the detecor trigger when a scan is aborted. +# Issues an event which lets all detectors reset as well. +# DAQ support's ACQ_CTRL record has to stop acqusition when +# writing 0 to it. + +record(seq, "$(DEVICE,recursive):DAQTRG-RST") +{ + field(DO1, "0") + field(DO2, "1") + field(DO3, "1") + + field(LNK1, "$(DEVICE,recursive):DAQTRG-BUSY.VAL PP") + field(LNK2, "$(DEVICE,recursive):DAQTRG-ACQ_CTRL_.VAL PP") + field(LNK3, "$(DEVICE,recursive):DAQTRG-DETCNT.PROC PP") + field(FLNK, "$(DEVICE,recursive):DAQTRG-RSTDET") +} + +# DETECTOR INTERFACE and SCAN GENERIC +# This reset event for detectors used for when scan is aborted. + +record(event, "$(DEVICE,recursive):DAQTRG-RSTDET") +{ + field(VAL, "55") +} +# scanDet.template +# Author: Alexander Soderqvist <alexander.soderqvist@esss.se> +# +# Generic detector for scan. +# Used with scanDetTrig.template in generic scanning. +# NOT SUPPOSED be used as a stand alone Component + + +# DAQ INTERFACE: +# Guard to avoid processing unless detector trigger on SSCAN notified busy +# This is the record where the DAQ input channels forward link should be set to. + +record(calcout, "$(DEVICE,recursive):DET1-GUARD") +{ + field(CALC, "A") + field(INPA, "$(DEVICE,recursive):DAQTRG-BUSY.VAL NPP") + + field(OOPT, "When Non-zero") + field(DOPT, "Use OCAL") + field(OCAL, "1") + field(OUT, "$(DEVICE,recursive):DET1-PULSCNT.PROC PP") +} + +# INTERNAL RECORD: +# Incoming pulse acqusition counter + +record(calcout, "$(DEVICE,recursive):DET1-PULSCNT") +{ + field(CALC, "C = 1 ? (A % ABS(B)) + 1 : 0") + field(INPA, "$(DEVICE,recursive):DET1-PULSCNT NPP") + field(INPB, "$(DAQNDSPREFIX,undefined):PBI-EM:CARD0:TriggerRepeat-RB NPP") + field(INPC, "$(DEVICE,recursive):DAQTRG-BUSY.VAL NPP") + + field(OOPT, "When Non-zero") + field(DOPT, "Use OCAL") + field(OCAL, "1") + + field(OUT, "$(DEVICE,recursive):DET1-TRGCOMP.PROC PP") +} + +# INTERNAL RECORD: +# Trigger compression of waveform record. +# This can be combined with averaging, in that case it should first trigger averaging +# of the summarized waveform and then compression is triggered from that record. + +record(calcout, "$(DEVICE,recursive):DET1-TRGCOMP") +{ + field(CALC, "A = ABS(B) ? 0 : 1") + field(INPA, "$(DEVICE,recursive):DET1-PULSCNT NPP") + field(INPB, "$(DAQNDSPREFIX,undefined):PBI-EM:CARD0:TriggerRepeat-RB NPP") + field(OOPT, "When Zero") + field(OUT, "$(DEVICE,recursive):DET1-COMPN.PROC PP") +} + +# DETECTOR TRIGGER INTERFACE: +# Set compress record to averageover N elements. +# This should be Number of samples from the data acqusition device. +# There has to be a forward link to this record for nsampels setting on DAQ. + +record(seq, "$(DEVICE,recursive):DET1-COMPN") +{ + field(DOL1, "$(DAQNDSPREFIX,undefined):$(DET1WF,undefined).NORD") + field(LNK1, "$(DEVICE,recursive):DET1-COMP.N") + field(FLNK, "$(DEVICE,recursive):DET1-COMP") +} + +# DETECTOR TRIGGER and sSCAN DETECTOR INTERFACE: +# Averages DAQ DATA array to a scalar value. +# Holds scalar value which should be referenced to by sscan's detector. + +record(compress, "$(DEVICE,recursive):DET1-COMP") +{ + field(ALG, "N to 1 Average") + field(INP, "$(DAQNDSPREFIX,undefined):$(DET1WF,undefined)") + field(N, "$(DAQBUFSIZE,undefined)") + field(FLNK, "$(DEVICE,recursive):DAQTRG-DETCNT") +} + + + +# DETECTOR TRIGGER INTERFACE: +# Resets detectors pulse counter when an abort is issued. + +record(bo, "$(DEVICE,recursive):DET1-RSTABORT") +{ + field(SCAN, "Event") + field(EVNT, "55") + field(FLNK, "$(DEVICE,recursive):DET1-PULSCNT") +} + +# DAQ INTERFACE: +# Reset puls counter if Trigger repeat on DAQ changes + +record(longin, "$(DEVICE,recursive):DET1-RSTTRGRCHG") +{ + field(INP, "$(DAQNDSPREFIX,undefined):PBI-EM:CARD0:TriggerRepeat-RB CP") + field(FLNK, "$(DEVICE,recursive):DET1-PULSCNT") +}# scanDet.template +# Author: Alexander Soderqvist <alexander.soderqvist@esss.se> +# +# Generic detector for scan. +# Used with scanDetTrig.template in generic scanning. +# NOT SUPPOSED be used as a stand alone Component + + +# DAQ INTERFACE: +# Guard to avoid processing unless detector trigger on SSCAN notified busy +# This is the record where the DAQ input channels forward link should be set to. + +record(calcout, "$(DEVICE,recursive):DET2-GUARD") +{ + field(CALC, "A") + field(INPA, "$(DEVICE,recursive):DAQTRG-BUSY.VAL NPP") + + field(OOPT, "When Non-zero") + field(DOPT, "Use OCAL") + field(OCAL, "1") + field(OUT, "$(DEVICE,recursive):DET2-PULSCNT.PROC PP") +} + +# INTERNAL RECORD: +# Incoming pulse acqusition counter + +record(calcout, "$(DEVICE,recursive):DET2-PULSCNT") +{ + field(CALC, "C = 1 ? (A % ABS(B)) + 1 : 0") + field(INPA, "$(DEVICE,recursive):DET2-PULSCNT NPP") + field(INPB, "$(DAQNDSPREFIX,undefined):PBI-EM:CARD0:TriggerRepeat-RB NPP") + field(INPC, "$(DEVICE,recursive):DAQTRG-BUSY.VAL NPP") + + field(OOPT, "When Non-zero") + field(DOPT, "Use OCAL") + field(OCAL, "1") + + field(OUT, "$(DEVICE,recursive):DET2-TRGCOMP.PROC PP") +} + +# INTERNAL RECORD: +# Trigger compression of waveform record. +# This can be combined with averaging, in that case it should first trigger averaging +# of the summarized waveform and then compression is triggered from that record. + +record(calcout, "$(DEVICE,recursive):DET2-TRGCOMP") +{ + field(CALC, "A = ABS(B) ? 0 : 1") + field(INPA, "$(DEVICE,recursive):DET2-PULSCNT NPP") + field(INPB, "$(DAQNDSPREFIX,undefined):PBI-EM:CARD0:TriggerRepeat-RB NPP") + field(OOPT, "When Zero") + field(OUT, "$(DEVICE,recursive):DET2-COMPN.PROC PP") +} + +# DETECTOR TRIGGER INTERFACE: +# Set compress record to averageover N elements. +# This should be Number of samples from the data acqusition device. +# There has to be a forward link to this record for nsampels setting on DAQ. + +record(seq, "$(DEVICE,recursive):DET2-COMPN") +{ + field(DOL1, "$(DAQNDSPREFIX,undefined):$(DET2WF,undefined).NORD") + field(LNK1, "$(DEVICE,recursive):DET2-COMP.N") + field(FLNK, "$(DEVICE,recursive):DET2-COMP") +} + +# DETECTOR TRIGGER and sSCAN DETECTOR INTERFACE: +# Averages DAQ DATA array to a scalar value. +# Holds scalar value which should be referenced to by sscan's detector. + +record(compress, "$(DEVICE,recursive):DET2-COMP") +{ + field(ALG, "N to 1 Average") + field(INP, "$(DAQNDSPREFIX,undefined):$(DET2WF,undefined)") + field(N, "$(DAQBUFSIZE,undefined)") + field(FLNK, "$(DEVICE,recursive):DAQTRG-DETCNT") +} + + + +# DETECTOR TRIGGER INTERFACE: +# Resets detectors pulse counter when an abort is issued. + +record(bo, "$(DEVICE,recursive):DET2-RSTABORT") +{ + field(SCAN, "Event") + field(EVNT, "55") + field(FLNK, "$(DEVICE,recursive):DET2-PULSCNT") +} + +# DAQ INTERFACE: +# Reset puls counter if Trigger repeat on DAQ changes + +record(longin, "$(DEVICE,recursive):DET2-RSTTRGRCHG") +{ + field(INP, "$(DAQNDSPREFIX,undefined):PBI-EM:CARD0:TriggerRepeat-RB CP") + field(FLNK, "$(DEVICE,recursive):DET2-PULSCNT") +}# scanDet.template +# Author: Alexander Soderqvist <alexander.soderqvist@esss.se> +# +# Generic detector for scan. +# Used with scanDetTrig.template in generic scanning. +# NOT SUPPOSED be used as a stand alone Component + + +# DAQ INTERFACE: +# Guard to avoid processing unless detector trigger on SSCAN notified busy +# This is the record where the DAQ input channels forward link should be set to. + +record(calcout, "$(DEVICE,recursive):DET3-GUARD") +{ + field(CALC, "A") + field(INPA, "$(DEVICE,recursive):DAQTRG-BUSY.VAL NPP") + + field(OOPT, "When Non-zero") + field(DOPT, "Use OCAL") + field(OCAL, "1") + field(OUT, "$(DEVICE,recursive):DET3-PULSCNT.PROC PP") +} + +# INTERNAL RECORD: +# Incoming pulse acqusition counter + +record(calcout, "$(DEVICE,recursive):DET3-PULSCNT") +{ + field(CALC, "C = 1 ? (A % ABS(B)) + 1 : 0") + field(INPA, "$(DEVICE,recursive):DET3-PULSCNT NPP") + field(INPB, "$(DAQNDSPREFIX,undefined):PBI-EM:CARD0:TriggerRepeat-RB NPP") + field(INPC, "$(DEVICE,recursive):DAQTRG-BUSY.VAL NPP") + + field(OOPT, "When Non-zero") + field(DOPT, "Use OCAL") + field(OCAL, "1") + + field(OUT, "$(DEVICE,recursive):DET3-TRGCOMP.PROC PP") +} + +# INTERNAL RECORD: +# Trigger compression of waveform record. +# This can be combined with averaging, in that case it should first trigger averaging +# of the summarized waveform and then compression is triggered from that record. + +record(calcout, "$(DEVICE,recursive):DET3-TRGCOMP") +{ + field(CALC, "A = ABS(B) ? 0 : 1") + field(INPA, "$(DEVICE,recursive):DET3-PULSCNT NPP") + field(INPB, "$(DAQNDSPREFIX,undefined):PBI-EM:CARD0:TriggerRepeat-RB NPP") + field(OOPT, "When Zero") + field(OUT, "$(DEVICE,recursive):DET3-COMPN.PROC PP") +} + +# DETECTOR TRIGGER INTERFACE: +# Set compress record to averageover N elements. +# This should be Number of samples from the data acqusition device. +# There has to be a forward link to this record for nsampels setting on DAQ. + +record(seq, "$(DEVICE,recursive):DET3-COMPN") +{ + field(DOL1, "$(DAQNDSPREFIX,undefined):$(DET3WF,undefined).NORD") + field(LNK1, "$(DEVICE,recursive):DET3-COMP.N") + field(FLNK, "$(DEVICE,recursive):DET3-COMP") +} + +# DETECTOR TRIGGER and sSCAN DETECTOR INTERFACE: +# Averages DAQ DATA array to a scalar value. +# Holds scalar value which should be referenced to by sscan's detector. + +record(compress, "$(DEVICE,recursive):DET3-COMP") +{ + field(ALG, "N to 1 Average") + field(INP, "$(DAQNDSPREFIX,undefined):$(DET3WF,undefined)") + field(N, "$(DAQBUFSIZE,undefined)") + field(FLNK, "$(DEVICE,recursive):DAQTRG-DETCNT") +} + + + +# DETECTOR TRIGGER INTERFACE: +# Resets detectors pulse counter when an abort is issued. + +record(bo, "$(DEVICE,recursive):DET3-RSTABORT") +{ + field(SCAN, "Event") + field(EVNT, "55") + field(FLNK, "$(DEVICE,recursive):DET3-PULSCNT") +} + +# DAQ INTERFACE: +# Reset puls counter if Trigger repeat on DAQ changes + +record(longin, "$(DEVICE,recursive):DET3-RSTTRGRCHG") +{ + field(INP, "$(DAQNDSPREFIX,undefined):PBI-EM:CARD0:TriggerRepeat-RB CP") + field(FLNK, "$(DEVICE,recursive):DET3-PULSCNT") +} + +record(fanout, "LNS-ISRC-010:PBI-EMV-FC:CurrR:OUT") { + field(SCAN,"Event") + field(EVNT,"10") + field(LNK1,"LNS-ISRC-010:PBI-EMV-FC:CurrR:SIGNAL-FUNCTION") +} + +#high treshold +record(ao, "LNS-ISRC-010:PBI-EMV-FC:CurrR:HTRESHOLD") { + field(DESC, "Current FC ") + field(EGU, "kW") + field(PREC, 4) + field(VAL,"1000000") + field(FLNK, "LNS-ISRC-010:PBI-EMV-FC:CurrR:CURSOR_FANOUT") +} +#low treshold +record(ao, "LNS-ISRC-010:PBI-EMV-FC:CurrR:LTRESHOLD") { + field(DESC, "Current FC") + field(EGU, "kW") + field(PREC, 4) + field(VAL,"-1000000") + field(FLNK, "LNS-ISRC-010:PBI-EMV-FC:CurrR:CURSOR_FANOUT") + +} +# measure minimum +record(ai, "LNS-ISRC-010:PBI-EMV-FC:CurrR:MIN") { + field(DESC, "Current FC : min") + field(EGU, "kW") + field(PREC, 2) + +} + +# measure maximum +record(ai, "LNS-ISRC-010:PBI-EMV-FC:CurrR:MAX") { + field(DESC, "Current FC : max") + field(EGU, "kW") + field(PREC, 2) + +} + + + +# measure average +record(ai, "LNS-ISRC-010:PBI-EMV-FC:CurrR:AVG") { + field(DESC, "Current FC : average") + field(EGU, "kW") + field(PREC, 2) + +} + +record(ao, "LNS-ISRC-010:PBI-EMV-FC:CurrR:Trig") { + field(VAL, "0") +} + + +# measure integral +record(ai, "LNS-ISRC-010:PBI-EMV-FC:CurrR:Integral") { + field(DESC, "Current FC : integral") + field(PREC, 2) + +} + + + +# measure width +record(ai, "LNS-ISRC-010:PBI-EMV-FC:CurrR:WIDTH") { + field(DESC, "Current FC : width") + field(EGU, "ms") + field(PREC, 4) + +} + +# measure effective width +record(ai, "LNS-ISRC-010:PBI-EMV-FC:CurrR:EFF_WIDTH") { + field(DESC, "Current FC : width") + field(EGU, "ms") + field(PREC, 4) + +} + +# +record(bo, "LNS-ISRC-010:PBI-EMV-FC:CurrR:Visible") { + field(VAL, "1") +} + +# Size of the display signals (CurrR_X et CurrR_Y) +record(ao, "LNS-ISRC-010:PBI-EMV-FC:CurrR:SIZE") { + field(VAL,"520") + } + +# Signal Y reduce to 520 element +record(waveform, "LNS-ISRC-010:PBI-EMV-FC:CurrR_Y") { + field(FTVL, "FLOAT") + field(NELM, "520") + field(FLNK,"LNS-ISRC-010:PBI-EMV-FC:CurrR_YFREQ") +} + +#X Axis : number of sample +record(waveform, "LNS-ISRC-010:PBI-EMV-FC:CurrR_X") { + field(FTVL, "FLOAT") + field(NELM, "520") +} + +#X Axis : in ms +record(waveform, "LNS-ISRC-010:PBI-EMV-FC:CurrR_XMS") { + field(FTVL, "FLOAT") + field(NELM, "520") +} + +#Number of pulse since the initialization of the variable +record(calc, "LNS-ISRC-010:PBI-EMV-FC:CurrR_YFREQ") { + field(VAL, "0") + field(CALC, "VAL+1") +} + + +#Function that compute avg,min,max and produced a reduced signal limited to 520 +record(aSub, "LNS-ISRC-010:PBI-EMV-FC:CurrR:SIGNAL-FUNCTION") { + field(PREC, 2) + + field(FTA, "FLOAT") + field(NOA,16000) + field(INPA, "LNS-ISRC-010:PBI-EMV-FC:CurrR") + field(FTB, "FLOAT") + field(NOB,1) + field(INPB, "LNS-ISRC-010:PBI-EMV-FC:CurrR:SIZE") + field(FTC, "FLOAT") + field(NOC,1) + field(INPC, "LNS-ISRC-010:PBI-EMV-FC:CurrR.NORD") + field(FTD, "FLOAT") + field(NOD,1) + field(INPD, "LNS-ISRC-010:PBI-EMV-FC:CurrR:LCURSOR") + field(FTE, "FLOAT") + field(NOE,1) + field(INPE, "LNS-ISRC-010:PBI-EMV-FC:CurrR:RCURSOR") + field(FTF, "FLOAT") + field(NOF,1) + field(INPF, "LNS-ISRC-010:PBI-EM:CARD0:SAMPLINGRATE-RB CA") + field(FTG, "FLOAT") + field(NOG,1) + field(INPG, "LNS-ISRC-010:PBI-EMV-FC:CurrR:HTRESHOLD") + field(FTH, "FLOAT") + field(NOH,1) + field(INPH, "LNS-ISRC-010:PBI-EMV-FC:CurrR:LTRESHOLD") + field(FTI, "FLOAT") + field(NOI,1) + field(INPI, "LNS-ISRC-010:PBI-EMV-FC:CurrR:Trig") + + + field(FTVA, "FLOAT") + field(NOVA, "16000") + field(OUTA, "LNS-ISRC-010:PBI-EMV-FC:CurrR_Y PP") + + field(FTVB, "FLOAT") + field(NOVB, "520") + field(OUTB, "LNS-ISRC-010:PBI-EMV-FC:CurrR_X PP") + + field(FTVC, "FLOAT") + field(NOVC, "520") + field(OUTC, "LNS-ISRC-010:PBI-EMV-FC:CurrR_XMS PP") + + field(FTVD, "FLOAT") + field(NOVD, "1") + field(OUTD, "LNS-ISRC-010:PBI-EMV-FC:CurrR:AVG PP") + + field(FTVE, "FLOAT") + field(NOVE, "1") + field(OUTE, "LNS-ISRC-010:PBI-EMV-FC:CurrR:MIN PP") + + field(FTVF, "FLOAT") + field(NOVF, "1") + field(OUTF, "LNS-ISRC-010:PBI-EMV-FC:CurrR:MAX PP") + + field(FTVG, "FLOAT") + field(NOVG, "1") + field(OUTG, "LNS-ISRC-010:PBI-EMV-FC:CurrR:WIDTH PP") + + field(FTVH, "FLOAT") + field(NOVH, "1") + field(OUTH, "LNS-ISRC-010:PBI-EMV-FC:CurrR:EFF_WIDTH PP") + + field(FTVI, "FLOAT") + field(NOVI, "1") + field(OUTI, "LNS-ISRC-010:PBI-EMV-FC:CurrR:Integral PP") + + field(FTVJ, "FLOAT") + field(NOVJ, "1") + field(OUTJ, "LNS-ISRC-010:PBI-EMV-FC:CurrR:Trig PP") + + + field(SNAM, "signalFunction") + +} + + +# Left cursor in ms +record(ao, "LNS-ISRC-010:PBI-EMV-FC:CurrR:LCURSOR_ms") { + field(DOL,"") + field(OMSL,"closed_loop") + field(FLNK,"LNS-ISRC-010:PBI-EMV-FC:CurrR:LCURSOR_calc") +} + +#Calc sample -> ms +record(calcout, "LNS-ISRC-010:PBI-EMV-FC:CurrR:LCURSOR_calc") { + field(PINI,"YES") + field(INPA, "LNS-ISRC-010:PBI-EM:CARD0:SAMPLINGRATE-RB") + field(INPB, "LNS-ISRC-010:PBI-EMV-FC:CurrR:LCURSOR_ms") + field(CALC, "B*A/1000") + field(OUT,"LNS-ISRC-010:PBI-EMV-FC:CurrR:LCURSOR PP") +} + +# Left cursor +record(ao, "LNS-ISRC-010:PBI-EMV-FC:CurrR:LCURSOR") { + field(PINI,"YES") + field(VAL,"-1000000") + field(LOPR,"0") + field(HOPR,"16000") + field(FLNK, "LNS-ISRC-010:PBI-EMV-FC:CurrR:CURSOR_FANOUT") +} + +#waveform used to display the left cursor on a graph : X +record(waveform, "LNS-ISRC-010:PBI-EMV-FC:CurrR:LCURSOR_X") { + field(FTVL, "FLOAT") + field(NELM, "2") +} + +#waveform used to display the left cursor on a graph : Y +record(waveform, "LNS-ISRC-010:PBI-EMV-FC:CurrR:LCURSOR_Y") { + field(FTVL, "FLOAT") + field(NELM, "2") +} + +# Function that compute the waveform to displayed the left cursor on a graph. +record(aSub, "LNS-ISRC-010:PBI-EMV-FC:CurrR:LCURSOR_FUNCTION") { + field(PREC, 2) + + field(FTA, "FLOAT") + field(NOA,"1") + field(INPA, "LNS-ISRC-010:PBI-EMV-FC:CurrR:LCURSOR_ms") + field(FTB, "FLOAT") + field(NOB,"1") + field(NOB,"1") + field(INPB, "LNS-ISRC-010:PBI-EMV-FC:CurrR:LTRESHOLD") + field(FTC, "FLOAT") + field(NOC,"1") + field(INPC, "LNS-ISRC-010:PBI-EMV-FC:CurrR:HTRESHOLD") + + field(FTVA, "FLOAT") + field(NOVA, "2") + field(OUTA, "LNS-ISRC-010:PBI-EMV-FC:CurrR:LCURSOR_X PP") + + field(FTVB, "FLOAT") + field(NOVB, "2") + field(OUTB, "LNS-ISRC-010:PBI-EMV-FC:CurrR:LCURSOR_Y PP") + + + field(SNAM, "cursorFunction") + +} + +record(fanout, "LNS-ISRC-010:PBI-EMV-FC:CurrR:CURSOR_FANOUT") +{ + field(LNK1, "LNS-ISRC-010:PBI-EMV-FC:CurrR:LCURSOR_FUNCTION PP") + field(LNK2, "LNS-ISRC-010:PBI-EMV-FC:CurrR:RCURSOR_FUNCTION PP") + field(LNK3, "LNS-ISRC-010:PBI-EMV-FC:CurrR:HTRESHOLD_FUNCTION PP") + field(LNK4, "LNS-ISRC-010:PBI-EMV-FC:CurrR:LTRESHOLD_FUNCTION PP") +} + + +# Right cursor in ms +record(ao, "LNS-ISRC-010:PBI-EMV-FC:CurrR:RCURSOR_ms") { + field(VAL,"0") + field(DOL,"") + field(OMSL,"closed_loop") + field(FLNK,"LNS-ISRC-010:PBI-EMV-FC:CurrR:RCURSOR_calc") +} +record(calcout, "LNS-ISRC-010:PBI-EMV-FC:CurrR:RCURSOR_calc") { + field(PINI,"YES") + field(INPA, "LNS-ISRC-010:PBI-EM:CARD0:SAMPLINGRATE-RB") + field(INPB, "LNS-ISRC-010:PBI-EMV-FC:CurrR:RCURSOR_ms") + field(CALC, "B*A/1000") + field(OUT,"LNS-ISRC-010:PBI-EMV-FC:CurrR:RCURSOR PP") +} +record(ao, "LNS-ISRC-010:PBI-EMV-FC:CurrR:RCURSOR") { + field(PINI,"YES") + field(VAL,"1000000") + field(LOPR,"0") + field(HOPR,"16000") + field(FLNK, "LNS-ISRC-010:PBI-EMV-FC:CurrR:CURSOR_FANOUT") +} + +#waveform used to display the right cursor on a graph : X +record(waveform, "LNS-ISRC-010:PBI-EMV-FC:CurrR:RCURSOR_X") { + field(FTVL, "FLOAT") + field(NELM, "2") +} + +#waveform used to display the right cursor on a graph : Y +record(waveform, "LNS-ISRC-010:PBI-EMV-FC:CurrR:RCURSOR_Y") { + field(FTVL, "FLOAT") + field(NELM, "2") +} + +# Function that compute the waveform to displayed the left cursor on a graph. +record(aSub, "LNS-ISRC-010:PBI-EMV-FC:CurrR:RCURSOR_FUNCTION") { + field(PREC, 2) + + field(FTA, "FLOAT") + field(NOA,"1") + field(INPA, "LNS-ISRC-010:PBI-EMV-FC:CurrR:RCURSOR_ms") + field(FTB, "FLOAT") + field(NOB,"1") + field(INPB, "LNS-ISRC-010:PBI-EMV-FC:CurrR:LTRESHOLD") + field(FTC, "FLOAT") + field(NOC,"1") + field(INPC, "LNS-ISRC-010:PBI-EMV-FC:CurrR:HTRESHOLD") + + field(FTVA, "FLOAT") + field(NOVA, "2") + field(OUTA, "LNS-ISRC-010:PBI-EMV-FC:CurrR:RCURSOR_X PP") + + field(FTVB, "FLOAT") + field(NOVB, "2") + field(OUTB, "LNS-ISRC-010:PBI-EMV-FC:CurrR:RCURSOR_Y PP") + + + field(SNAM, "cursorFunction") + +} + + + +# Compute the delta between the two cursors in ms +record(calc,"LNS-ISRC-010:PBI-EMV-FC:CurrR:DELTA"){ + + field(SCAN, ".5 second") + field(INPA, "LNS-ISRC-010:PBI-EMV-FC:CurrR:RCURSOR PP") + field(INPB, "LNS-ISRC-010:PBI-EMV-FC:CurrR:LCURSOR PP") + field(INPC, "LNS-ISRC-010:PBI-EM:CARD0:SAMPLINGRATE-RB PP") + field(CALC, "(A-B)*1000/(C)") + field(EGU, "ms") +} + + +#waveform used to display the h threshold : X +record(waveform, "LNS-ISRC-010:PBI-EMV-FC:CurrR:HTRESHOLD_X") { + field(FTVL, "FLOAT") + field(NELM, "2") +} + +#waveform used to display the h threshold : Y +record(waveform, "LNS-ISRC-010:PBI-EMV-FC:CurrR:HTRESHOLD_Y") { + field(FTVL, "FLOAT") + field(NELM, "2") +} + +# Function that compute the waveform to displayed the left cursor on a graph. +record(aSub, "LNS-ISRC-010:PBI-EMV-FC:CurrR:HTRESHOLD_FUNCTION") { + field(PREC, 2) + + field(FTA, "FLOAT") + field(NOA,"1") + field(INPA, "LNS-ISRC-010:PBI-EMV-FC:CurrR:HTRESHOLD") + + field(FTB, "FLOAT") + field(NOB,"1") + field(INPB, "LNS-ISRC-010:PBI-EMV-FC:CurrR:LCURSOR_ms") + + field(FTC, "FLOAT") + field(NOC,"1") + field(INPC, "LNS-ISRC-010:PBI-EMV-FC:CurrR:RCURSOR_ms") + + field(FTVA, "FLOAT") + field(NOVA, "2") + field(OUTA, "LNS-ISRC-010:PBI-EMV-FC:CurrR:HTRESHOLD_Y PP") + + field(FTVB, "FLOAT") + field(NOVB, "2") + field(OUTB, "LNS-ISRC-010:PBI-EMV-FC:CurrR:HTRESHOLD_X PP") + + + field(SNAM, "cursorFunction") + +} + +#waveform used to display the h threshold : X +record(waveform, "LNS-ISRC-010:PBI-EMV-FC:CurrR:LTRESHOLD_X") { + field(FTVL, "FLOAT") + field(NELM, "2") +} + +#waveform used to display the h threshold : Y +record(waveform, "LNS-ISRC-010:PBI-EMV-FC:CurrR:LTRESHOLD_Y") { + field(FTVL, "FLOAT") + field(NELM, "2") +} + +# Function that compute the waveform to displayed the left cursor on a graph. +record(aSub, "LNS-ISRC-010:PBI-EMV-FC:CurrR:LTRESHOLD_FUNCTION") { + field(PREC, 2) + + field(FTA, "FLOAT") + field(NOA,"1") + field(INPA, "LNS-ISRC-010:PBI-EMV-FC:CurrR:LTRESHOLD") + + field(FTB, "FLOAT") + field(NOB,"1") + field(INPB, "LNS-ISRC-010:PBI-EMV-FC:CurrR:LCURSOR_ms") + + field(FTC, "FLOAT") + field(NOC,"1") + field(INPC, "LNS-ISRC-010:PBI-EMV-FC:CurrR:RCURSOR_ms") + + field(FTVA, "FLOAT") + field(NOVA, "2") + field(OUTA, "LNS-ISRC-010:PBI-EMV-FC:CurrR:LTRESHOLD_Y PP") + + field(FTVB, "FLOAT") + field(NOVB, "2") + field(OUTB, "LNS-ISRC-010:PBI-EMV-FC:CurrR:LTRESHOLD_X PP") + + + field(SNAM, "cursorFunction") + +} + + + + + +record(fanout, "LNS-ISRC-010:PBI-EM-HV1:VoltR:OUT") { + field(SCAN,"Event") + field(EVNT,"11") + field(LNK1,"LNS-ISRC-010:PBI-EM-HV1:VoltR:SIGNAL-FUNCTION") +} + +#high treshold +record(ao, "LNS-ISRC-010:PBI-EM-HV1:VoltR:HTRESHOLD") { + field(DESC, "Voltage HV1 FC ") + field(EGU, "kW") + field(PREC, 4) + field(VAL,"1000000") + field(FLNK, "LNS-ISRC-010:PBI-EM-HV1:VoltR:CURSOR_FANOUT") +} +#low treshold +record(ao, "LNS-ISRC-010:PBI-EM-HV1:VoltR:LTRESHOLD") { + field(DESC, "Voltage HV1 FC") + field(EGU, "kW") + field(PREC, 4) + field(VAL,"-1000000") + field(FLNK, "LNS-ISRC-010:PBI-EM-HV1:VoltR:CURSOR_FANOUT") + +} +# measure minimum +record(ai, "LNS-ISRC-010:PBI-EM-HV1:VoltR:MIN") { + field(DESC, "Voltage HV1 FC : min") + field(EGU, "kW") + field(PREC, 2) + +} + +# measure maximum +record(ai, "LNS-ISRC-010:PBI-EM-HV1:VoltR:MAX") { + field(DESC, "Voltage HV1 FC : max") + field(EGU, "kW") + field(PREC, 2) + +} + + + +# measure average +record(ai, "LNS-ISRC-010:PBI-EM-HV1:VoltR:AVG") { + field(DESC, "Voltage HV1 FC : average") + field(EGU, "kW") + field(PREC, 2) + +} + +record(ao, "LNS-ISRC-010:PBI-EM-HV1:VoltR:Trig") { + field(VAL, "0") +} + + +# measure integral +record(ai, "LNS-ISRC-010:PBI-EM-HV1:VoltR:Integral") { + field(DESC, "Voltage HV1 FC : integral") + field(PREC, 2) + +} + + + +# measure width +record(ai, "LNS-ISRC-010:PBI-EM-HV1:VoltR:WIDTH") { + field(DESC, "Voltage HV1 FC : width") + field(EGU, "ms") + field(PREC, 4) + +} + +# measure effective width +record(ai, "LNS-ISRC-010:PBI-EM-HV1:VoltR:EFF_WIDTH") { + field(DESC, "Voltage HV1 FC : width") + field(EGU, "ms") + field(PREC, 4) + +} + +# +record(bo, "LNS-ISRC-010:PBI-EM-HV1:VoltR:Visible") { + field(VAL, "1") +} + +# Size of the display signals (VoltR_X et VoltR_Y) +record(ao, "LNS-ISRC-010:PBI-EM-HV1:VoltR:SIZE") { + field(VAL,"520") + } + +# Signal Y reduce to 520 element +record(waveform, "LNS-ISRC-010:PBI-EM-HV1:VoltR_Y") { + field(FTVL, "FLOAT") + field(NELM, "520") + field(FLNK,"LNS-ISRC-010:PBI-EM-HV1:VoltR_YFREQ") +} + +#X Axis : number of sample +record(waveform, "LNS-ISRC-010:PBI-EM-HV1:VoltR_X") { + field(FTVL, "FLOAT") + field(NELM, "520") +} + +#X Axis : in ms +record(waveform, "LNS-ISRC-010:PBI-EM-HV1:VoltR_XMS") { + field(FTVL, "FLOAT") + field(NELM, "520") +} + +#Number of pulse since the initialization of the variable +record(calc, "LNS-ISRC-010:PBI-EM-HV1:VoltR_YFREQ") { + field(VAL, "0") + field(CALC, "VAL+1") +} + + +#Function that compute avg,min,max and produced a reduced signal limited to 520 +record(aSub, "LNS-ISRC-010:PBI-EM-HV1:VoltR:SIGNAL-FUNCTION") { + field(PREC, 2) + + field(FTA, "FLOAT") + field(NOA,16000) + field(INPA, "LNS-ISRC-010:PBI-EM-HV1:VoltR") + field(FTB, "FLOAT") + field(NOB,1) + field(INPB, "LNS-ISRC-010:PBI-EM-HV1:VoltR:SIZE") + field(FTC, "FLOAT") + field(NOC,1) + field(INPC, "LNS-ISRC-010:PBI-EM-HV1:VoltR.NORD") + field(FTD, "FLOAT") + field(NOD,1) + field(INPD, "LNS-ISRC-010:PBI-EM-HV1:VoltR:LCURSOR") + field(FTE, "FLOAT") + field(NOE,1) + field(INPE, "LNS-ISRC-010:PBI-EM-HV1:VoltR:RCURSOR") + field(FTF, "FLOAT") + field(NOF,1) + field(INPF, "LNS-ISRC-010:PBI-EM:CARD0:SAMPLINGRATE-RB CA") + field(FTG, "FLOAT") + field(NOG,1) + field(INPG, "LNS-ISRC-010:PBI-EM-HV1:VoltR:HTRESHOLD") + field(FTH, "FLOAT") + field(NOH,1) + field(INPH, "LNS-ISRC-010:PBI-EM-HV1:VoltR:LTRESHOLD") + field(FTI, "FLOAT") + field(NOI,1) + field(INPI, "LNS-ISRC-010:PBI-EM-HV1:VoltR:Trig") + + + field(FTVA, "FLOAT") + field(NOVA, "16000") + field(OUTA, "LNS-ISRC-010:PBI-EM-HV1:VoltR_Y PP") + + field(FTVB, "FLOAT") + field(NOVB, "520") + field(OUTB, "LNS-ISRC-010:PBI-EM-HV1:VoltR_X PP") + + field(FTVC, "FLOAT") + field(NOVC, "520") + field(OUTC, "LNS-ISRC-010:PBI-EM-HV1:VoltR_XMS PP") + + field(FTVD, "FLOAT") + field(NOVD, "1") + field(OUTD, "LNS-ISRC-010:PBI-EM-HV1:VoltR:AVG PP") + + field(FTVE, "FLOAT") + field(NOVE, "1") + field(OUTE, "LNS-ISRC-010:PBI-EM-HV1:VoltR:MIN PP") + + field(FTVF, "FLOAT") + field(NOVF, "1") + field(OUTF, "LNS-ISRC-010:PBI-EM-HV1:VoltR:MAX PP") + + field(FTVG, "FLOAT") + field(NOVG, "1") + field(OUTG, "LNS-ISRC-010:PBI-EM-HV1:VoltR:WIDTH PP") + + field(FTVH, "FLOAT") + field(NOVH, "1") + field(OUTH, "LNS-ISRC-010:PBI-EM-HV1:VoltR:EFF_WIDTH PP") + + field(FTVI, "FLOAT") + field(NOVI, "1") + field(OUTI, "LNS-ISRC-010:PBI-EM-HV1:VoltR:Integral PP") + + field(FTVJ, "FLOAT") + field(NOVJ, "1") + field(OUTJ, "LNS-ISRC-010:PBI-EM-HV1:VoltR:Trig PP") + + + field(SNAM, "signalFunction") + +} + + +# Left cursor in ms +record(ao, "LNS-ISRC-010:PBI-EM-HV1:VoltR:LCURSOR_ms") { + field(DOL,"") + field(OMSL,"closed_loop") + field(FLNK,"LNS-ISRC-010:PBI-EM-HV1:VoltR:LCURSOR_calc") +} + +#Calc sample -> ms +record(calcout, "LNS-ISRC-010:PBI-EM-HV1:VoltR:LCURSOR_calc") { + field(PINI,"YES") + field(INPA, "LNS-ISRC-010:PBI-EM:CARD0:SAMPLINGRATE-RB") + field(INPB, "LNS-ISRC-010:PBI-EM-HV1:VoltR:LCURSOR_ms") + field(CALC, "B*A/1000") + field(OUT,"LNS-ISRC-010:PBI-EM-HV1:VoltR:LCURSOR PP") +} + +# Left cursor +record(ao, "LNS-ISRC-010:PBI-EM-HV1:VoltR:LCURSOR") { + field(PINI,"YES") + field(VAL,"-1000000") + field(LOPR,"0") + field(HOPR,"16000") + field(FLNK, "LNS-ISRC-010:PBI-EM-HV1:VoltR:CURSOR_FANOUT") +} + +#waveform used to display the left cursor on a graph : X +record(waveform, "LNS-ISRC-010:PBI-EM-HV1:VoltR:LCURSOR_X") { + field(FTVL, "FLOAT") + field(NELM, "2") +} + +#waveform used to display the left cursor on a graph : Y +record(waveform, "LNS-ISRC-010:PBI-EM-HV1:VoltR:LCURSOR_Y") { + field(FTVL, "FLOAT") + field(NELM, "2") +} + +# Function that compute the waveform to displayed the left cursor on a graph. +record(aSub, "LNS-ISRC-010:PBI-EM-HV1:VoltR:LCURSOR_FUNCTION") { + field(PREC, 2) + + field(FTA, "FLOAT") + field(NOA,"1") + field(INPA, "LNS-ISRC-010:PBI-EM-HV1:VoltR:LCURSOR_ms") + field(FTB, "FLOAT") + field(NOB,"1") + field(NOB,"1") + field(INPB, "LNS-ISRC-010:PBI-EM-HV1:VoltR:LTRESHOLD") + field(FTC, "FLOAT") + field(NOC,"1") + field(INPC, "LNS-ISRC-010:PBI-EM-HV1:VoltR:HTRESHOLD") + + field(FTVA, "FLOAT") + field(NOVA, "2") + field(OUTA, "LNS-ISRC-010:PBI-EM-HV1:VoltR:LCURSOR_X PP") + + field(FTVB, "FLOAT") + field(NOVB, "2") + field(OUTB, "LNS-ISRC-010:PBI-EM-HV1:VoltR:LCURSOR_Y PP") + + + field(SNAM, "cursorFunction") + +} + +record(fanout, "LNS-ISRC-010:PBI-EM-HV1:VoltR:CURSOR_FANOUT") +{ + field(LNK1, "LNS-ISRC-010:PBI-EM-HV1:VoltR:LCURSOR_FUNCTION PP") + field(LNK2, "LNS-ISRC-010:PBI-EM-HV1:VoltR:RCURSOR_FUNCTION PP") + field(LNK3, "LNS-ISRC-010:PBI-EM-HV1:VoltR:HTRESHOLD_FUNCTION PP") + field(LNK4, "LNS-ISRC-010:PBI-EM-HV1:VoltR:LTRESHOLD_FUNCTION PP") +} + + +# Right cursor in ms +record(ao, "LNS-ISRC-010:PBI-EM-HV1:VoltR:RCURSOR_ms") { + field(VAL,"0") + field(DOL,"") + field(OMSL,"closed_loop") + field(FLNK,"LNS-ISRC-010:PBI-EM-HV1:VoltR:RCURSOR_calc") +} +record(calcout, "LNS-ISRC-010:PBI-EM-HV1:VoltR:RCURSOR_calc") { + field(PINI,"YES") + field(INPA, "LNS-ISRC-010:PBI-EM:CARD0:SAMPLINGRATE-RB") + field(INPB, "LNS-ISRC-010:PBI-EM-HV1:VoltR:RCURSOR_ms") + field(CALC, "B*A/1000") + field(OUT,"LNS-ISRC-010:PBI-EM-HV1:VoltR:RCURSOR PP") +} +record(ao, "LNS-ISRC-010:PBI-EM-HV1:VoltR:RCURSOR") { + field(PINI,"YES") + field(VAL,"1000000") + field(LOPR,"0") + field(HOPR,"16000") + field(FLNK, "LNS-ISRC-010:PBI-EM-HV1:VoltR:CURSOR_FANOUT") +} + +#waveform used to display the right cursor on a graph : X +record(waveform, "LNS-ISRC-010:PBI-EM-HV1:VoltR:RCURSOR_X") { + field(FTVL, "FLOAT") + field(NELM, "2") +} + +#waveform used to display the right cursor on a graph : Y +record(waveform, "LNS-ISRC-010:PBI-EM-HV1:VoltR:RCURSOR_Y") { + field(FTVL, "FLOAT") + field(NELM, "2") +} + +# Function that compute the waveform to displayed the left cursor on a graph. +record(aSub, "LNS-ISRC-010:PBI-EM-HV1:VoltR:RCURSOR_FUNCTION") { + field(PREC, 2) + + field(FTA, "FLOAT") + field(NOA,"1") + field(INPA, "LNS-ISRC-010:PBI-EM-HV1:VoltR:RCURSOR_ms") + field(FTB, "FLOAT") + field(NOB,"1") + field(INPB, "LNS-ISRC-010:PBI-EM-HV1:VoltR:LTRESHOLD") + field(FTC, "FLOAT") + field(NOC,"1") + field(INPC, "LNS-ISRC-010:PBI-EM-HV1:VoltR:HTRESHOLD") + + field(FTVA, "FLOAT") + field(NOVA, "2") + field(OUTA, "LNS-ISRC-010:PBI-EM-HV1:VoltR:RCURSOR_X PP") + + field(FTVB, "FLOAT") + field(NOVB, "2") + field(OUTB, "LNS-ISRC-010:PBI-EM-HV1:VoltR:RCURSOR_Y PP") + + + field(SNAM, "cursorFunction") + +} + + + +# Compute the delta between the two cursors in ms +record(calc,"LNS-ISRC-010:PBI-EM-HV1:VoltR:DELTA"){ + + field(SCAN, ".5 second") + field(INPA, "LNS-ISRC-010:PBI-EM-HV1:VoltR:RCURSOR PP") + field(INPB, "LNS-ISRC-010:PBI-EM-HV1:VoltR:LCURSOR PP") + field(INPC, "LNS-ISRC-010:PBI-EM:CARD0:SAMPLINGRATE-RB PP") + field(CALC, "(A-B)*1000/(C)") + field(EGU, "ms") +} + + +#waveform used to display the h threshold : X +record(waveform, "LNS-ISRC-010:PBI-EM-HV1:VoltR:HTRESHOLD_X") { + field(FTVL, "FLOAT") + field(NELM, "2") +} + +#waveform used to display the h threshold : Y +record(waveform, "LNS-ISRC-010:PBI-EM-HV1:VoltR:HTRESHOLD_Y") { + field(FTVL, "FLOAT") + field(NELM, "2") +} + +# Function that compute the waveform to displayed the left cursor on a graph. +record(aSub, "LNS-ISRC-010:PBI-EM-HV1:VoltR:HTRESHOLD_FUNCTION") { + field(PREC, 2) + + field(FTA, "FLOAT") + field(NOA,"1") + field(INPA, "LNS-ISRC-010:PBI-EM-HV1:VoltR:HTRESHOLD") + + field(FTB, "FLOAT") + field(NOB,"1") + field(INPB, "LNS-ISRC-010:PBI-EM-HV1:VoltR:LCURSOR_ms") + + field(FTC, "FLOAT") + field(NOC,"1") + field(INPC, "LNS-ISRC-010:PBI-EM-HV1:VoltR:RCURSOR_ms") + + field(FTVA, "FLOAT") + field(NOVA, "2") + field(OUTA, "LNS-ISRC-010:PBI-EM-HV1:VoltR:HTRESHOLD_Y PP") + + field(FTVB, "FLOAT") + field(NOVB, "2") + field(OUTB, "LNS-ISRC-010:PBI-EM-HV1:VoltR:HTRESHOLD_X PP") + + + field(SNAM, "cursorFunction") + +} + +#waveform used to display the h threshold : X +record(waveform, "LNS-ISRC-010:PBI-EM-HV1:VoltR:LTRESHOLD_X") { + field(FTVL, "FLOAT") + field(NELM, "2") +} + +#waveform used to display the h threshold : Y +record(waveform, "LNS-ISRC-010:PBI-EM-HV1:VoltR:LTRESHOLD_Y") { + field(FTVL, "FLOAT") + field(NELM, "2") +} + +# Function that compute the waveform to displayed the left cursor on a graph. +record(aSub, "LNS-ISRC-010:PBI-EM-HV1:VoltR:LTRESHOLD_FUNCTION") { + field(PREC, 2) + + field(FTA, "FLOAT") + field(NOA,"1") + field(INPA, "LNS-ISRC-010:PBI-EM-HV1:VoltR:LTRESHOLD") + + field(FTB, "FLOAT") + field(NOB,"1") + field(INPB, "LNS-ISRC-010:PBI-EM-HV1:VoltR:LCURSOR_ms") + + field(FTC, "FLOAT") + field(NOC,"1") + field(INPC, "LNS-ISRC-010:PBI-EM-HV1:VoltR:RCURSOR_ms") + + field(FTVA, "FLOAT") + field(NOVA, "2") + field(OUTA, "LNS-ISRC-010:PBI-EM-HV1:VoltR:LTRESHOLD_Y PP") + + field(FTVB, "FLOAT") + field(NOVB, "2") + field(OUTB, "LNS-ISRC-010:PBI-EM-HV1:VoltR:LTRESHOLD_X PP") + + + field(SNAM, "cursorFunction") + +} + + + + + +record(fanout, "LNS-ISRC-010:PBI-EM-HV2:VoltR:OUT") { + field(SCAN,"Event") + field(EVNT,"12") + field(LNK1,"LNS-ISRC-010:PBI-EM-HV2:VoltR:SIGNAL-FUNCTION") +} + +#high treshold +record(ao, "LNS-ISRC-010:PBI-EM-HV2:VoltR:HTRESHOLD") { + field(DESC, "Voltage HV2 FC ") + field(EGU, "kW") + field(PREC, 4) + field(VAL,"1000000") + field(FLNK, "LNS-ISRC-010:PBI-EM-HV2:VoltR:CURSOR_FANOUT") +} +#low treshold +record(ao, "LNS-ISRC-010:PBI-EM-HV2:VoltR:LTRESHOLD") { + field(DESC, "Voltage HV2 FC") + field(EGU, "kW") + field(PREC, 4) + field(VAL,"-1000000") + field(FLNK, "LNS-ISRC-010:PBI-EM-HV2:VoltR:CURSOR_FANOUT") + +} +# measure minimum +record(ai, "LNS-ISRC-010:PBI-EM-HV2:VoltR:MIN") { + field(DESC, "Voltage HV2 FC : min") + field(EGU, "kW") + field(PREC, 2) + +} + +# measure maximum +record(ai, "LNS-ISRC-010:PBI-EM-HV2:VoltR:MAX") { + field(DESC, "Voltage HV2 FC : max") + field(EGU, "kW") + field(PREC, 2) + +} + + + +# measure average +record(ai, "LNS-ISRC-010:PBI-EM-HV2:VoltR:AVG") { + field(DESC, "Voltage HV2 FC : average") + field(EGU, "kW") + field(PREC, 2) + +} + +record(ao, "LNS-ISRC-010:PBI-EM-HV2:VoltR:Trig") { + field(VAL, "0") +} + + +# measure integral +record(ai, "LNS-ISRC-010:PBI-EM-HV2:VoltR:Integral") { + field(DESC, "Voltage HV2 FC : integral") + field(PREC, 2) + +} + + + +# measure width +record(ai, "LNS-ISRC-010:PBI-EM-HV2:VoltR:WIDTH") { + field(DESC, "Voltage HV2 FC : width") + field(EGU, "ms") + field(PREC, 4) + +} + +# measure effective width +record(ai, "LNS-ISRC-010:PBI-EM-HV2:VoltR:EFF_WIDTH") { + field(DESC, "Voltage HV2 FC : width") + field(EGU, "ms") + field(PREC, 4) + +} + +# +record(bo, "LNS-ISRC-010:PBI-EM-HV2:VoltR:Visible") { + field(VAL, "1") +} + +# Size of the display signals (VoltR_X et VoltR_Y) +record(ao, "LNS-ISRC-010:PBI-EM-HV2:VoltR:SIZE") { + field(VAL,"520") + } + +# Signal Y reduce to 520 element +record(waveform, "LNS-ISRC-010:PBI-EM-HV2:VoltR_Y") { + field(FTVL, "FLOAT") + field(NELM, "520") + field(FLNK,"LNS-ISRC-010:PBI-EM-HV2:VoltR_YFREQ") +} + +#X Axis : number of sample +record(waveform, "LNS-ISRC-010:PBI-EM-HV2:VoltR_X") { + field(FTVL, "FLOAT") + field(NELM, "520") +} + +#X Axis : in ms +record(waveform, "LNS-ISRC-010:PBI-EM-HV2:VoltR_XMS") { + field(FTVL, "FLOAT") + field(NELM, "520") +} + +#Number of pulse since the initialization of the variable +record(calc, "LNS-ISRC-010:PBI-EM-HV2:VoltR_YFREQ") { + field(VAL, "0") + field(CALC, "VAL+1") +} + + +#Function that compute avg,min,max and produced a reduced signal limited to 520 +record(aSub, "LNS-ISRC-010:PBI-EM-HV2:VoltR:SIGNAL-FUNCTION") { + field(PREC, 2) + + field(FTA, "FLOAT") + field(NOA,16000) + field(INPA, "LNS-ISRC-010:PBI-EM-HV2:VoltR") + field(FTB, "FLOAT") + field(NOB,1) + field(INPB, "LNS-ISRC-010:PBI-EM-HV2:VoltR:SIZE") + field(FTC, "FLOAT") + field(NOC,1) + field(INPC, "LNS-ISRC-010:PBI-EM-HV2:VoltR.NORD") + field(FTD, "FLOAT") + field(NOD,1) + field(INPD, "LNS-ISRC-010:PBI-EM-HV2:VoltR:LCURSOR") + field(FTE, "FLOAT") + field(NOE,1) + field(INPE, "LNS-ISRC-010:PBI-EM-HV2:VoltR:RCURSOR") + field(FTF, "FLOAT") + field(NOF,1) + field(INPF, "LNS-ISRC-010:PBI-EM:CARD0:SAMPLINGRATE-RB CA") + field(FTG, "FLOAT") + field(NOG,1) + field(INPG, "LNS-ISRC-010:PBI-EM-HV2:VoltR:HTRESHOLD") + field(FTH, "FLOAT") + field(NOH,1) + field(INPH, "LNS-ISRC-010:PBI-EM-HV2:VoltR:LTRESHOLD") + field(FTI, "FLOAT") + field(NOI,1) + field(INPI, "LNS-ISRC-010:PBI-EM-HV2:VoltR:Trig") + + + field(FTVA, "FLOAT") + field(NOVA, "16000") + field(OUTA, "LNS-ISRC-010:PBI-EM-HV2:VoltR_Y PP") + + field(FTVB, "FLOAT") + field(NOVB, "520") + field(OUTB, "LNS-ISRC-010:PBI-EM-HV2:VoltR_X PP") + + field(FTVC, "FLOAT") + field(NOVC, "520") + field(OUTC, "LNS-ISRC-010:PBI-EM-HV2:VoltR_XMS PP") + + field(FTVD, "FLOAT") + field(NOVD, "1") + field(OUTD, "LNS-ISRC-010:PBI-EM-HV2:VoltR:AVG PP") + + field(FTVE, "FLOAT") + field(NOVE, "1") + field(OUTE, "LNS-ISRC-010:PBI-EM-HV2:VoltR:MIN PP") + + field(FTVF, "FLOAT") + field(NOVF, "1") + field(OUTF, "LNS-ISRC-010:PBI-EM-HV2:VoltR:MAX PP") + + field(FTVG, "FLOAT") + field(NOVG, "1") + field(OUTG, "LNS-ISRC-010:PBI-EM-HV2:VoltR:WIDTH PP") + + field(FTVH, "FLOAT") + field(NOVH, "1") + field(OUTH, "LNS-ISRC-010:PBI-EM-HV2:VoltR:EFF_WIDTH PP") + + field(FTVI, "FLOAT") + field(NOVI, "1") + field(OUTI, "LNS-ISRC-010:PBI-EM-HV2:VoltR:Integral PP") + + field(FTVJ, "FLOAT") + field(NOVJ, "1") + field(OUTJ, "LNS-ISRC-010:PBI-EM-HV2:VoltR:Trig PP") + + + field(SNAM, "signalFunction") + +} + + +# Left cursor in ms +record(ao, "LNS-ISRC-010:PBI-EM-HV2:VoltR:LCURSOR_ms") { + field(DOL,"") + field(OMSL,"closed_loop") + field(FLNK,"LNS-ISRC-010:PBI-EM-HV2:VoltR:LCURSOR_calc") +} + +#Calc sample -> ms +record(calcout, "LNS-ISRC-010:PBI-EM-HV2:VoltR:LCURSOR_calc") { + field(PINI,"YES") + field(INPA, "LNS-ISRC-010:PBI-EM:CARD0:SAMPLINGRATE-RB") + field(INPB, "LNS-ISRC-010:PBI-EM-HV2:VoltR:LCURSOR_ms") + field(CALC, "B*A/1000") + field(OUT,"LNS-ISRC-010:PBI-EM-HV2:VoltR:LCURSOR PP") +} + +# Left cursor +record(ao, "LNS-ISRC-010:PBI-EM-HV2:VoltR:LCURSOR") { + field(PINI,"YES") + field(VAL,"-1000000") + field(LOPR,"0") + field(HOPR,"16000") + field(FLNK, "LNS-ISRC-010:PBI-EM-HV2:VoltR:CURSOR_FANOUT") +} + +#waveform used to display the left cursor on a graph : X +record(waveform, "LNS-ISRC-010:PBI-EM-HV2:VoltR:LCURSOR_X") { + field(FTVL, "FLOAT") + field(NELM, "2") +} + +#waveform used to display the left cursor on a graph : Y +record(waveform, "LNS-ISRC-010:PBI-EM-HV2:VoltR:LCURSOR_Y") { + field(FTVL, "FLOAT") + field(NELM, "2") +} + +# Function that compute the waveform to displayed the left cursor on a graph. +record(aSub, "LNS-ISRC-010:PBI-EM-HV2:VoltR:LCURSOR_FUNCTION") { + field(PREC, 2) + + field(FTA, "FLOAT") + field(NOA,"1") + field(INPA, "LNS-ISRC-010:PBI-EM-HV2:VoltR:LCURSOR_ms") + field(FTB, "FLOAT") + field(NOB,"1") + field(NOB,"1") + field(INPB, "LNS-ISRC-010:PBI-EM-HV2:VoltR:LTRESHOLD") + field(FTC, "FLOAT") + field(NOC,"1") + field(INPC, "LNS-ISRC-010:PBI-EM-HV2:VoltR:HTRESHOLD") + + field(FTVA, "FLOAT") + field(NOVA, "2") + field(OUTA, "LNS-ISRC-010:PBI-EM-HV2:VoltR:LCURSOR_X PP") + + field(FTVB, "FLOAT") + field(NOVB, "2") + field(OUTB, "LNS-ISRC-010:PBI-EM-HV2:VoltR:LCURSOR_Y PP") + + + field(SNAM, "cursorFunction") + +} + +record(fanout, "LNS-ISRC-010:PBI-EM-HV2:VoltR:CURSOR_FANOUT") +{ + field(LNK1, "LNS-ISRC-010:PBI-EM-HV2:VoltR:LCURSOR_FUNCTION PP") + field(LNK2, "LNS-ISRC-010:PBI-EM-HV2:VoltR:RCURSOR_FUNCTION PP") + field(LNK3, "LNS-ISRC-010:PBI-EM-HV2:VoltR:HTRESHOLD_FUNCTION PP") + field(LNK4, "LNS-ISRC-010:PBI-EM-HV2:VoltR:LTRESHOLD_FUNCTION PP") +} + + +# Right cursor in ms +record(ao, "LNS-ISRC-010:PBI-EM-HV2:VoltR:RCURSOR_ms") { + field(VAL,"0") + field(DOL,"") + field(OMSL,"closed_loop") + field(FLNK,"LNS-ISRC-010:PBI-EM-HV2:VoltR:RCURSOR_calc") +} +record(calcout, "LNS-ISRC-010:PBI-EM-HV2:VoltR:RCURSOR_calc") { + field(PINI,"YES") + field(INPA, "LNS-ISRC-010:PBI-EM:CARD0:SAMPLINGRATE-RB") + field(INPB, "LNS-ISRC-010:PBI-EM-HV2:VoltR:RCURSOR_ms") + field(CALC, "B*A/1000") + field(OUT,"LNS-ISRC-010:PBI-EM-HV2:VoltR:RCURSOR PP") +} +record(ao, "LNS-ISRC-010:PBI-EM-HV2:VoltR:RCURSOR") { + field(PINI,"YES") + field(VAL,"1000000") + field(LOPR,"0") + field(HOPR,"16000") + field(FLNK, "LNS-ISRC-010:PBI-EM-HV2:VoltR:CURSOR_FANOUT") +} + +#waveform used to display the right cursor on a graph : X +record(waveform, "LNS-ISRC-010:PBI-EM-HV2:VoltR:RCURSOR_X") { + field(FTVL, "FLOAT") + field(NELM, "2") +} + +#waveform used to display the right cursor on a graph : Y +record(waveform, "LNS-ISRC-010:PBI-EM-HV2:VoltR:RCURSOR_Y") { + field(FTVL, "FLOAT") + field(NELM, "2") +} + +# Function that compute the waveform to displayed the left cursor on a graph. +record(aSub, "LNS-ISRC-010:PBI-EM-HV2:VoltR:RCURSOR_FUNCTION") { + field(PREC, 2) + + field(FTA, "FLOAT") + field(NOA,"1") + field(INPA, "LNS-ISRC-010:PBI-EM-HV2:VoltR:RCURSOR_ms") + field(FTB, "FLOAT") + field(NOB,"1") + field(INPB, "LNS-ISRC-010:PBI-EM-HV2:VoltR:LTRESHOLD") + field(FTC, "FLOAT") + field(NOC,"1") + field(INPC, "LNS-ISRC-010:PBI-EM-HV2:VoltR:HTRESHOLD") + + field(FTVA, "FLOAT") + field(NOVA, "2") + field(OUTA, "LNS-ISRC-010:PBI-EM-HV2:VoltR:RCURSOR_X PP") + + field(FTVB, "FLOAT") + field(NOVB, "2") + field(OUTB, "LNS-ISRC-010:PBI-EM-HV2:VoltR:RCURSOR_Y PP") + + + field(SNAM, "cursorFunction") + +} + + + +# Compute the delta between the two cursors in ms +record(calc,"LNS-ISRC-010:PBI-EM-HV2:VoltR:DELTA"){ + + field(SCAN, ".5 second") + field(INPA, "LNS-ISRC-010:PBI-EM-HV2:VoltR:RCURSOR PP") + field(INPB, "LNS-ISRC-010:PBI-EM-HV2:VoltR:LCURSOR PP") + field(INPC, "LNS-ISRC-010:PBI-EM:CARD0:SAMPLINGRATE-RB PP") + field(CALC, "(A-B)*1000/(C)") + field(EGU, "ms") +} + + +#waveform used to display the h threshold : X +record(waveform, "LNS-ISRC-010:PBI-EM-HV2:VoltR:HTRESHOLD_X") { + field(FTVL, "FLOAT") + field(NELM, "2") +} + +#waveform used to display the h threshold : Y +record(waveform, "LNS-ISRC-010:PBI-EM-HV2:VoltR:HTRESHOLD_Y") { + field(FTVL, "FLOAT") + field(NELM, "2") +} + +# Function that compute the waveform to displayed the left cursor on a graph. +record(aSub, "LNS-ISRC-010:PBI-EM-HV2:VoltR:HTRESHOLD_FUNCTION") { + field(PREC, 2) + + field(FTA, "FLOAT") + field(NOA,"1") + field(INPA, "LNS-ISRC-010:PBI-EM-HV2:VoltR:HTRESHOLD") + + field(FTB, "FLOAT") + field(NOB,"1") + field(INPB, "LNS-ISRC-010:PBI-EM-HV2:VoltR:LCURSOR_ms") + + field(FTC, "FLOAT") + field(NOC,"1") + field(INPC, "LNS-ISRC-010:PBI-EM-HV2:VoltR:RCURSOR_ms") + + field(FTVA, "FLOAT") + field(NOVA, "2") + field(OUTA, "LNS-ISRC-010:PBI-EM-HV2:VoltR:HTRESHOLD_Y PP") + + field(FTVB, "FLOAT") + field(NOVB, "2") + field(OUTB, "LNS-ISRC-010:PBI-EM-HV2:VoltR:HTRESHOLD_X PP") + + + field(SNAM, "cursorFunction") + +} + +#waveform used to display the h threshold : X +record(waveform, "LNS-ISRC-010:PBI-EM-HV2:VoltR:LTRESHOLD_X") { + field(FTVL, "FLOAT") + field(NELM, "2") +} + +#waveform used to display the h threshold : Y +record(waveform, "LNS-ISRC-010:PBI-EM-HV2:VoltR:LTRESHOLD_Y") { + field(FTVL, "FLOAT") + field(NELM, "2") +} + +# Function that compute the waveform to displayed the left cursor on a graph. +record(aSub, "LNS-ISRC-010:PBI-EM-HV2:VoltR:LTRESHOLD_FUNCTION") { + field(PREC, 2) + + field(FTA, "FLOAT") + field(NOA,"1") + field(INPA, "LNS-ISRC-010:PBI-EM-HV2:VoltR:LTRESHOLD") + + field(FTB, "FLOAT") + field(NOB,"1") + field(INPB, "LNS-ISRC-010:PBI-EM-HV2:VoltR:LCURSOR_ms") + + field(FTC, "FLOAT") + field(NOC,"1") + field(INPC, "LNS-ISRC-010:PBI-EM-HV2:VoltR:RCURSOR_ms") + + field(FTVA, "FLOAT") + field(NOVA, "2") + field(OUTA, "LNS-ISRC-010:PBI-EM-HV2:VoltR:LTRESHOLD_Y PP") + + field(FTVB, "FLOAT") + field(NOVB, "2") + field(OUTB, "LNS-ISRC-010:PBI-EM-HV2:VoltR:LTRESHOLD_X PP") + + + field(SNAM, "cursorFunction") + +} + + + +record(waveform, "LNS-ISRC-010:PBI-EMV-FC:CurrR") { + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(CARD0-AI, 0)CH3-Data") + field(NELM, "16000") + field(FTVL, "DOUBLE") + field(EGU, "V") + field(SCAN, "I/O Intr") + field(FLNK, "LNS-ISRC-010:PBI-EMV-FC:CurrR:Pulse") + field(DESC, "CurrR") + + +} + +record(event, "LNS-ISRC-010:PBI-EMV-FC:CurrR:Event") { + field(DTYP,"Soft Channel") + field(VAL, "10") +} + +record(calc, "LNS-ISRC-010:PBI-EMV-FC:CurrR:Pulse") { + field(VAL, "0") + field(CALC, "VAL+1") + field(FLNK, "LNS-ISRC-010:PBI-EMV-FC:CurrR:Event") + +} + +record(stringin, "LNS-ISRC-010:PBI-EMV-FC:CurrR:Nickname") { + field(VAL, "CurrR") +} + +record(ao, "LNS-ISRC-010:PBI-EMV-FC:CurrR:LinearConversion") { + field(DESC, "") + field(DTYP, "asynFloat64") + field(SCAN, "Passive") + field(OUT, "@asyn(CARD0-AI, 0)CH3-LinearConversionFactor") +} + + +record(longout, "LNS-ISRC-010:PBI-EMV-FC:CurrR:DecimationOffset") { + field(DESC, "") + field(DTYP, "asynInt32") + field(SCAN, "Passive") + field(OUT, "@asyn(CARD0-AI, 0)CH3-DecimationOffset") +} + + +record(ao, "LNS-ISRC-010:PBI-EMV-FC:CurrR:LinearOffset") { + field(DESC, "") + field(DTYP, "asynFloat64") + field(SCAN, "Passive") + field(OUT, "@asyn(CARD0-AI, 0)CH3-LinearConversionOffset") +} + +record(ao, "LNS-ISRC-010:PBI-EMV-FC:CurrR:Attenuation") { + field(VAL,1) +} + +record(calcout, "LNS-ISRC-010:PBI-EMV-FC:CurrR:Attenuation_Calc") { + field(INPA,"LNS-ISRC-010:PBI-EMV-FC:CurrR:Attenuation") + field(INPB,"LNS-ISRC-010:PBI-EMV-FC:CurrR:LinearConversion") + field(CALC,"A*B") + field(OUT,"LNS-ISRC-010:PBI-EMV-FC:CurrR:LinearConversion PP") +} + +record(waveform, "LNS-ISRC-010:PBI-EM-HV1:VoltR") { + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(CARD0-AI, 0)CH0-Data") + field(NELM, "16000") + field(FTVL, "DOUBLE") + field(EGU, "V") + field(SCAN, "I/O Intr") + field(FLNK, "LNS-ISRC-010:PBI-EM-HV1:VoltR:Pulse") + field(DESC, "HV1VoltR") + + +} + +record(event, "LNS-ISRC-010:PBI-EM-HV1:VoltR:Event") { + field(DTYP,"Soft Channel") + field(VAL, "11") +} + +record(calc, "LNS-ISRC-010:PBI-EM-HV1:VoltR:Pulse") { + field(VAL, "0") + field(CALC, "VAL+1") + field(FLNK, "LNS-ISRC-010:PBI-EM-HV1:VoltR:Event") + +} + +record(stringin, "LNS-ISRC-010:PBI-EM-HV1:VoltR:Nickname") { + field(VAL, "HV1VoltR") +} + +record(ao, "LNS-ISRC-010:PBI-EM-HV1:VoltR:LinearConversion") { + field(DESC, "") + field(DTYP, "asynFloat64") + field(SCAN, "Passive") + field(OUT, "@asyn(CARD0-AI, 0)CH0-LinearConversionFactor") +} + + +record(longout, "LNS-ISRC-010:PBI-EM-HV1:VoltR:DecimationOffset") { + field(DESC, "") + field(DTYP, "asynInt32") + field(SCAN, "Passive") + field(OUT, "@asyn(CARD0-AI, 0)CH0-DecimationOffset") +} + + +record(ao, "LNS-ISRC-010:PBI-EM-HV1:VoltR:LinearOffset") { + field(DESC, "") + field(DTYP, "asynFloat64") + field(SCAN, "Passive") + field(OUT, "@asyn(CARD0-AI, 0)CH0-LinearConversionOffset") +} + +record(ao, "LNS-ISRC-010:PBI-EM-HV1:VoltR:Attenuation") { + field(VAL,1) +} + +record(calcout, "LNS-ISRC-010:PBI-EM-HV1:VoltR:Attenuation_Calc") { + field(INPA,"LNS-ISRC-010:PBI-EM-HV1:VoltR:Attenuation") + field(INPB,"LNS-ISRC-010:PBI-EM-HV1:VoltR:LinearConversion") + field(CALC,"A*B") + field(OUT,"LNS-ISRC-010:PBI-EM-HV1:VoltR:LinearConversion PP") +} + +record(waveform, "LNS-ISRC-010:PBI-EM-HV2:VoltR") { + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(CARD0-AI, 0)CH1-Data") + field(NELM, "16000") + field(FTVL, "DOUBLE") + field(EGU, "V") + field(SCAN, "I/O Intr") + field(FLNK, "LNS-ISRC-010:PBI-EM-HV2:VoltR:Pulse") + field(DESC, "HV2VoltR") + + +} + +record(event, "LNS-ISRC-010:PBI-EM-HV2:VoltR:Event") { + field(DTYP,"Soft Channel") + field(VAL, "12") +} + +record(calc, "LNS-ISRC-010:PBI-EM-HV2:VoltR:Pulse") { + field(VAL, "0") + field(CALC, "VAL+1") + field(FLNK, "LNS-ISRC-010:PBI-EM-HV2:VoltR:Event") + +} + +record(stringin, "LNS-ISRC-010:PBI-EM-HV2:VoltR:Nickname") { + field(VAL, "HV2VoltR") +} + +record(ao, "LNS-ISRC-010:PBI-EM-HV2:VoltR:LinearConversion") { + field(DESC, "") + field(DTYP, "asynFloat64") + field(SCAN, "Passive") + field(OUT, "@asyn(CARD0-AI, 0)CH1-LinearConversionFactor") +} + + +record(longout, "LNS-ISRC-010:PBI-EM-HV2:VoltR:DecimationOffset") { + field(DESC, "") + field(DTYP, "asynInt32") + field(SCAN, "Passive") + field(OUT, "@asyn(CARD0-AI, 0)CH1-DecimationOffset") +} + + +record(ao, "LNS-ISRC-010:PBI-EM-HV2:VoltR:LinearOffset") { + field(DESC, "") + field(DTYP, "asynFloat64") + field(SCAN, "Passive") + field(OUT, "@asyn(CARD0-AI, 0)CH1-LinearConversionOffset") +} + +record(ao, "LNS-ISRC-010:PBI-EM-HV2:VoltR:Attenuation") { + field(VAL,1) +} + +record(calcout, "LNS-ISRC-010:PBI-EM-HV2:VoltR:Attenuation_Calc") { + field(INPA,"LNS-ISRC-010:PBI-EM-HV2:VoltR:Attenuation") + field(INPB,"LNS-ISRC-010:PBI-EM-HV2:VoltR:LinearConversion") + field(CALC,"A*B") + field(OUT,"LNS-ISRC-010:PBI-EM-HV2:VoltR:LinearConversion PP") +} + +record(ao, "LNS-ISRC-010:PBI-EM:CARD0:SAMPLINGRATE") { + field(DESC, "Scope sampling clock SOL") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(CARD0-AI, 0)SampleRate") + + field(PREC, 3) + field(EGU, "Hz") + + field(LOPR, "100000") + field(HOPR, "250000000") + + field(VAL, "250000") + field(FLNK,"LNS-ISRC-010:PBI-EM:CARD0:NSAMPLES_calc_ms") +} + +record(ai, "LNS-ISRC-010:PBI-EM:CARD0:SAMPLINGRATE-RB") { + field(DESC, "") + field(DTYP, "asynFloat64") + field(SCAN, "I/O Intr") + field(PINI, "YES") + field(INP, "@asyn(CARD0-AI, 0)SampleRate-RB") +} + +# The source of the trigger +record(mbbo, "LNS-ISRC-010:PBI-EM:CARD0:MBBOSAMPLINGRATE") { + field(OUT,"LNS-ISRC-010:PBI-EM:CARD0:SAMPLINGRATE") + field(ZRVL, 250000) + field(ZRST, "250KS/s") + field(ONVL, 1000000) + field(ONST, "1MS/s") +} + + +record(dfanout,"LNS-ISRC-010:PBI-EM:CARD0_ms") +{ + field(OUTA,"LNS-ISRC-010:PBI-EM:CARD0:NSAMPLES_calc_ms") + field(OUTA,"LNS-ISRC-010:PBI-EM:CARD0:TRIGGER:PRETRIGGER_calc_ms") + +} + +#Number of samples returned by the driver +record(longout, "LNS-ISRC-010:PBI-EM:CARD0:NSAMPLES") { + field(DESC, "Number of samples") + field(DTYP, "asynInt32") + field(OUT, "@asyn(CARD0-AI, 0)nSamples") + field(DRVL, "1") + field(DRVH, "16000") + field(VAL, "16000") +} + +record(longin, "LNS-ISRC-010:PBI-EM:CARD0:NSAMPLES-RB") { + field(DESC, "") + field(DTYP, "asynInt32") + field(SCAN, "I/O Intr") + field(PINI, "YES") + field(INP, "@asyn(CARD0-AI, 0)nSamples-RB") +} + +#Calc sample -> ms +record(calcout, "LNS-ISRC-010:PBI-EM:CARD0:NSAMPLES_calc_ms") { + field(INPA, "LNS-ISRC-010:PBI-EM:CARD0:SAMPLINGRATE") + field(INPB, "LNS-ISRC-010:PBI-EM:CARD0:NSAMPLES") + field(CALC, "B*1000/A") + field(OUT,"LNS-ISRC-010:PBI-EM:CARD0:NSAMPLES_ms PP") + +} + + +#Calc ms -> sample +record(calcout, "LNS-ISRC-010:PBI-EM:CARD0:NSAMPLES_calc") { + field(INPA, "LNS-ISRC-010:PBI-EM:CARD0:SAMPLINGRATE") + field(INPB, "LNS-ISRC-010:PBI-EM:CARD0:NSAMPLES_ms") + field(CALC, "B*A/1000<16000?B*A/1000:16000") + field(OUT,"LNS-ISRC-010:PBI-EM:CARD0:NSAMPLES PP") + +} + +record(ao, "LNS-ISRC-010:PBI-EM:CARD0:NSAMPLES_ms") { + field(DESC, "Number of samples in ms") + field(EGU, "ms") + field(FLNK,"LNS-ISRC-010:PBI-EM:CARD0:NSAMPLES_calc") +} + +#Number of sample gapped before the trigger +record(longout, "LNS-ISRC-010:PBI-EM:CARD0:TRIGGER:PRETRIGGER") { + field(DESC, "Number of pre trigger samples") + field(DTYP, "asynInt32") + field(OUT, "@asyn(CARD0-AI, 0)TriggerDelay") + field(LOPR, -10000) + field(VAL, 0) +} + +#Number of sample gapped before the trigger +record(longin, "LNS-ISRC-010:PBI-EM:CARD0:TRIGGER:PRETRIGGER-RB") { + field(DESC, "Number of pre trigger samples") + field(DTYP, "asynInt32") + field(SCAN, "I/O Intr") + field(PINI, "YES") + field(INP, "@asyn(CARD0-AI, 0)TriggerDelay-RB") +} +#Calc sample -> ms +record(calcout, "LNS-ISRC-010:PBI-EM:CARD0:TRIGGER:PRETRIGGER_calc_ms") { + field(INPA, "LNS-ISRC-010:PBI-EM:CARD0:SAMPLINGRATE") + field(INPB, "LNS-ISRC-010:PBI-EM:CARD0:TRIGGER:PRETRIGGER") + field(CALC, "B*1000/A") + field(OUT,"LNS-ISRC-010:PBI-EM:CARD0:TRIGGER:PRETRIGGER_ms PP") +} + +#Calc sample -> ms +record(calcout, "LNS-ISRC-010:PBI-EM:CARD0:TRIGGER:PRETRIGGER_calc") { + field(INPA, "LNS-ISRC-010:PBI-EM:CARD0:SAMPLINGRATE") + field(INPB, "LNS-ISRC-010:PBI-EM:CARD0:TRIGGER:PRETRIGGER_ms") + field(CALC, "B*A/1000") + field(OUT,"LNS-ISRC-010:PBI-EM:CARD0:TRIGGER:PRETRIGGER PP") +} + +record(ao, "LNS-ISRC-010:PBI-EM:CARD0:TRIGGER:PRETRIGGER_ms") { + field(DESC, "Number of pre trigger samples in ms") + field(FLNK,"LNS-ISRC-010:PBI-EM:CARD0:TRIGGER:PRETRIGGER_calc") + field(EGU, "ms") + field(PREC,"2") +} + +# The source of the trigger +record(mbbo, "LNS-ISRC-010:PBI-EM:CARD0:TRIGGERSOURCE") { + field(DESC, "Trigger source") + field(DTYP, "asynInt32") + field(OUT, "@asyn(CARD0-AI, 0)TriggerSource") + + field(NOBT, 4) + field(ZRVL, 0) field(ZRST,"CH-0") + field(ONVL, 1) field(ONST,"CH-1") + field(TWVL, 2) field(TWST,"CH-2") + field(THVL, 3) field(THST,"CH-3") + field(FRVL, 4) field(FRST,"CH-4") + field(FVVL, 5) field(FVST,"CH-5") + field(SXVL, 6) field(SXST,"CH-6") + field(SVVL, 7) field(SVST,"CH-7") + field(EIVL, 8) field(EIST,"EXT-GPIO") + field(NIVL, 9) field(NIST,"EXT-VMEIO") + field(NIVL, 10) field(NIST,"Soft") + + field(VAL, "0") + +} + +# The source of the trigger +record(mbbi, "LNS-ISRC-010:PBI-EM:CARD0:TRIGGERSOURCE-RB") { + field(DESC, "Trigger source") + field(DTYP, "asynInt32") + field(INP, "@asyn(CARD0-AI, 0)TriggerSource-RB") + + field(NOBT, 4) + field(ZRVL, 0) field(ZRST,"CH-0") + field(ONVL, 1) field(ONST,"CH-1") + field(TWVL, 2) field(TWST,"CH-2") + field(THVL, 3) field(THST,"CH-3") + field(FRVL, 4) field(FRST,"CH-4") + field(FVVL, 5) field(FVST,"CH-5") + field(SXVL, 6) field(SXST,"CH-6") + field(SVVL, 7) field(SVST,"CH-7") + field(EIVL, 8) field(EIST,"EXT-GPIO") + field(NIVL, 9) field(NIST,"EXT-VMEIO") + field(NIVL, 10) field(NIST,"Soft") + + field(VAL, "0") + +} + +#To run the card +record(mbbo, "LNS-ISRC-010:PBI-EM:CARD0-STAT") { + field(DESC, "Set local state") + field(DTYP, "asynInt32") + field(SCAN, "Passive") + field(OUT, "@asyn(CARD0-AI, 0)StateMachine-setState") + field(ZRVL, 0) + field(ZRST, "UNKNOWN") + field(ONVL, 1) + field(ONST, "OFF") + field(TWVL, 2) + field(TWST, "SWITCHING_OFF") + field(THVL, 3) + field(THST, "INITIALIZING") + field(FRVL, 4) + field(FRST, "ON") + field(FVVL, 5) + field(FVST, "STOPPING") + field(SXVL, 6) + field(SXST, "STARTING") + field(SVVL, 7) + field(SVST, "RUNNING") + field(EIVL, 8) + field(EIST, "FAULT") +} +record(mbbi, "LNS-ISRC-010:PBI-EM:CARD0-STAT-RB") { + field(DESC, "Get local state") + field(DTYP, "asynInt32") + field(SCAN, "I/O Intr") + field(PINI, "YES") + field(INP, "@asyn(CARD0-AI, 0)StateMachine-getState") + field(ZRVL, 0) + field(ZRST, "UNKNOWN") + field(ONVL, 1) + field(ONST, "OFF") + field(TWVL, 2) + field(TWST, "SWITCHING_OFF") + field(THVL, 3) + field(THST, "INITIALIZING") + field(FRVL, 4) + field(FRST, "ON") + field(FVVL, 5) + field(FVST, "STOPPING") + field(SXVL, 6) + field(SXST, "STARTING") + field(SVVL, 7) + field(SVST, "RUNNING") + field(EIVL, 8) + field(EIST, "FAULT") + field(EISV, "MAJOR") +} +#Trigger repeat +record(longout, "LNS-ISRC-010:PBI-EM:CARD0:TriggerRepeat") { + field(DESC, "") + field(DTYP, "asynInt32") + field(SCAN, "Passive") + field(OUT, "@asyn(CARD0-AI, 0)TriggerRepeat") +} + +record(longin, "LNS-ISRC-010:PBI-EM:CARD0:TriggerRepeat-RB") { + field(DESC, "") + field(DTYP, "asynInt32") + field(SCAN, "I/O Intr") + field(PINI, "YES") + field(INP, "@asyn(CARD0-AI, 0)TriggerRepeat-RB") +} + +record(mbbo, "LNS-ISRC-010:PBI-EM:CARD0:TriggerEdge") { + field(DESC, "") + field(DTYP, "asynInt32") + field(SCAN, "Passive") + field(OUT, "@asyn(CARD0-AI, 0)TriggerEdge") + field(ZRVL, 0) + field(ZRST, "Rising Edge") + field(ONVL, 1) + field(ONST, "Falling Edge") +} + +record(mbbi, "LNS-ISRC-010:PBI-EM:CARD0:TriggerEdge-RB") { + field(DESC, "") + field(DTYP, "asynInt32") + field(SCAN, "I/O Intr") + field(PINI, "YES") + field(INP, "@asyn(CARD0-AI, 0)TriggerEdge-RB") + field(ZRVL, 0) + field(ZRST, "Rising Edge") + field(ONVL, 1) + field(ONST, "Falling Edge") +} + + +record(ao, "LNS-ISRC-010:PBI-EM:CARD0:TriggerThreshold") { + field(DESC, "") + field(DTYP, "asynFloat64") + field(SCAN, "Passive") + field(OUT, "@asyn(CARD0-AI, 0)TriggerThreshold") +} + +record(ai, "LNS-ISRC-010:PBI-EM:CARD0:TriggerThreshold-RB") { + field(DESC, "") + field(DTYP, "asynFloat64") + field(SCAN, "I/O Intr") + field(PINI, "YES") + field(INP, "@asyn(CARD0-AI, 0)TriggerThreshold-RB") +} + +############################################ +############### CURSOR RIGHT ############### +############################################ +record(ao, "LNS-ISRC-010:PBI-EMV:RCURSOR_ms") +{ + field(DESC,"Cursor right") + field(EGU, "ms") + field(DRVH, "20") + field(DRVL, "0") + field(PREC, "2") + field(VAL, "1") + field(PINI,"YES") + field(FLNK,"LNS-ISRC-010:PBI-EMV:RCURSOR_FAN") +} + +record(dfanout, "LNS-ISRC-010:PBI-EMV:RCURSOR_FAN") +{ + field(DESC,"Cursor right dfanout") + field(DOL, "LNS-ISRC-010:PBI-EMV:RCURSOR_ms") + field(OUTA, "LNS-ISRC-010:PBI-EMV-FC:CurrR:RCURSOR_ms PP") + field(OUTB, "LNS-ISRC-010:PBI-EM-HV1:VoltR:RCURSOR_ms PP") + field(OUTC, "LNS-ISRC-010:PBI-EM-HV2:VoltR:RCURSOR_ms PP") + field(OMSL,"closed_loop") +} + +############################################ +############### CURSOR LEFT ############### +############################################ +record(ao, "LNS-ISRC-010:PBI-EMV:LCURSOR_ms") +{ + field(DESC,"Cursor left") + field(EGU, "ms") + field(DRVH, "20") + field(DRVL, "0") + field(PREC, "2") + field(PREC, "2") + field(FLNK,"LNS-ISRC-010:PBI-EMV:LCURSOR_FAN") +} + +record(dfanout, "LNS-ISRC-010:PBI-EMV:LCURSOR_FAN") +{ + field(DESC,"Cursor left dfanout") + field(DOL, "LNS-ISRC-010:PBI-EMV:LCURSOR_ms") + field(OUTA, "LNS-ISRC-010:PBI-EMV-FC:CurrR:LCURSOR_ms PP") + field(OUTB, "LNS-ISRC-010:PBI-EM-HV1:VoltR:LCURSOR_ms PP") + field(OUTC, "LNS-ISRC-010:PBI-EM-HV2:VoltR:LCURSOR_ms PP") + field(OMSL,"closed_loop") +} +############################################# +############## ANGLE MAX #################### +############################################# + +record(ao, "$(DEVICE,recursive):PROC-AngleMax-SP") { + field(EGU, "mrad") + field(PINI,"YES") + field(FLNK,"$(DEVICE,recursive):PROC-VoltMaxP1") +} + +record(calcout, "$(DEVICE,recursive):PROC-VoltMaxP1") { + field(VAL, "0") + field(INPA,"$(DEVICE,recursive):PROC-AngleMax-SP") + field(INPB,"$(DEVICE,recursive):CALC-FactMRADtoV") + ### /2000 => conversion in 0/10V ### + field(CALC, "(A*B)/2000") + field(PREC, "5") + field(EGU,"kV") + field(OUT,"$(DEVICE,recursive):$(SCAN_EF,recursive).P4SP PP") + field(FLNK,"$(DEVICE,recursive):PROC-VoltMaxP2") +} + +record(calcout,"$(DEVICE,recursive):PROC-VoltMaxP2") { + field(INPA,"$(DEVICE,recursive):PROC-VoltMaxP1") + ### DELTA MAX calcul + field(CALC, "A>0?A*(-1):A") + field(PREC, "5") + field(EGU,"kV") + field(OUT,"$(DEVICE,recursive):$(SCAN_EF,recursive).P1SP PP") +} + +############################################# +############ ANGLE MIM ###################### +############################################# + +record(ao, "$(DEVICE,recursive):PROC-AngleMin-SP") { + field(EGU, "mrad") + field(PINI,"YES") + field(FLNK,"$(DEVICE,recursive):PROC-VoltMinP1") +} + +record(calcout, "$(DEVICE,recursive):PROC-VoltMinP1") { + field(VAL, "0") + field(INPA,"$(DEVICE,recursive):PROC-AngleMin-SP") + field(INPB,"$(DEVICE,recursive):CALC-FactMRADtoV") + ### /2000 => conversion in 0/10V + field(CALC, "(A*B)/2000") + field(PREC, "5") + field(EGU,"kV") + field(OUT,"$(DEVICE,recursive):$(SCAN_EF,recursive).P4EP PP") + field(FLNK,"$(DEVICE,recursive):PROC-VoltMinP2") +} + +record(calcout,"$(DEVICE,recursive):PROC-VoltMinP2") { + field(INPA,"$(DEVICE,recursive):PROC-VoltMinP1") + ### DELTA MAX calcul + field(CALC, "A*(-1)") + field(PREC, "5") + field(EGU,"kV") + field(OUT,"$(DEVICE,recursive):$(SCAN_EF,recursive).P1EP PP") +} + +############################################# +############ ANGLE ########################## +############################################# + +record(calcout, "$(DEVICE,recursive):PROC-DeltaMaxVolt") { + field(INPA,"$(DEVICE,recursive):PROC-VoltMax PP") + field(INPB,"$(DEVICE,recursive):PROC-VoltMin PP") + ### DELTA MAX calcul + field(CALC, "(A-B)/2") + field(PREC, "4") + field(EGU,"kV") + field(OUT,"$(DEVICE,recursive):PROC-VoltMax-SP PP") + field(FLNK,"$(DEVICE,recursive):PROC-DeltaMinVolt") +} + +record(calcout, "$(DEVICE,recursive):PROC-DeltaMinVolt") { + field(INPA,"$(DEVICE,recursive):PROC-VoltMax-SP") + ### DELTA MIN calcul + field(CALC, "A*(-1)") + field(PREC, "4") + field(EGU,"kV") + field(OUT,"$(DEVICE,recursive):PROC-VoltMin-SP PP") +} + +record(dfanout,"$(DEVICE,recursive):PROC-VoltMin-SP"){ + field(OUTA,"$(DEVICE,recursive):$(SCAN_EF,recursive).P1SP PP") + field(OUTB,"$(DEVICE,recursive):$(SCAN_EF,recursive).P4EP PP") +} + +############################################# +############ ANGLE STP ###################### +############################################# + +record(calcout, "$(DEVICE,recursive):PROC-StepAngle") { + field(INPA,"$(DEVICE,recursive):PROC-AngleMax-SP CP") + field(INPB,"$(DEVICE,recursive):PROC-AngleMin-SP CP") + field(INPC,"$(DEVICE,recursive):$(SCAN_EF,recursive).NPTS CP") + field(CALC,"(A-B)/C") + field(EGU, "mrad") + field(PREC, "3") +} + +############################################# +############ LINK BEFORE/AFTER SCAN PS ###### +############################################# +record(seq,"$(DEVICE,recursive):PROC-PS-BF"){ + field(LNK1,"LNS-ISRC-010:PBI-EM:VER-BRAKE_SET PP") + field(DO1,"0") + field(LNK2,"$(DEVICE,recursive):BUFF-DET1-RES PP") + field(DO2,"1") + field(LNK3,"$(DEVICE,recursive):BUFF-DET23-RES PP") + field(DO3,"1") +} + +record(seq,"$(DEVICE,recursive):PROC-PS-AF"){ + field(LNK1,"LNS-ISRC-010:PBI-EM:VER-BRAKE_SET PP") + field(DO1,"1") + field(LNK2,"$(DEVICE,recursive):BUFF-DET1-FUNC.PROC PP") + field(DO2,"1") + field(LNK3,"$(DEVICE,recursive):BUFF-DET23-FUNC.PROC PP") + field(DO3,"1") + field(LNK4,"$(DEVICE,recursive):$(SCAN_EF,recursive).AWAIT PP") + field(DO4,"0") + field(DLY4,"0.1") +} + +record(seq,"$(DEVICE,recursive):PROC-SLIT-BF"){ + field(LNK1,"LNS-ISRC-010:PBI-EM:VER-BRAKE_SET PP") + field(DO1,"1") + field(LNK2,"$(DEVICE,recursive):BUFF-POS-RES PP") + field(DO2,"1") + field(LNK3,"$(DEVICE,recursive):BUFF-DET1-RES PP") + field(DO3,"1") + field(LNK4,"$(DEVICE,recursive):BUFF-DET23-RES PP") + field(DO4,"1") + field(LNK5,"$(DEVICE,recursive):BUFF-DET1-DEL PP") + field(DO5,"1") + field(LNK6,"$(DEVICE,recursive):BUFF-DET23-DEL PP") + field(DO6,"1") + field(LNK7,"$(DEVICE,recursive):PROC-INIT-CALC.PROC PP") + field(DO7,"1") +} + +record(seq,"$(DEVICE,recursive):PROC-SLIT-AF"){ + field(LNK1,"$(DEVICE,recursive):PROC-AUTO-HOME PP") + field(DO1,"1") + field(LNK2,"$(DEVICE,recursive):CALC-PROJXY.PROC PP") + field(DO2,"1") + field(LNK3,"LNS-ISRC-010:PBI-EM:HVhor-SP PP") + field(DO3,"0") + field(LNK4,"LNS-ISRC-010:PBI-EM:HVver-SP PP") + field(DO4,"0") +} + +record(seq,"$(DEVICE,recursive):PROC-SLIT-AB"){ + field(LNK1,"$(DEVICE,recursive):PROC-AUTO-HOME PP") + field(DO1,"1") + field(LNK2,"LNS-ISRC-010:PBI-EM:HVhor-SP PP") + field(DO2,"0") + field(LNK3,"LNS-ISRC-010:PBI-EM:HVver-SP PP") + field(DO3,"0") + field(LNK4,"$(DEVICE,recursive):PROC-INIT-CALC.PROC PP") + field(DO4,"1") +} + +############################################# +################## INIT ##################### +############################################# +record(seq,"$(DEVICE,recursive):PROC-INIT-CALC"){ + field(LNK1,"$(DEVICE,recursive):CALC-RMS-SIZE PP") + field(DO1,"0") + field(LNK2,"$(DEVICE,recursive):CALC-RMS-ANGLE PP") + field(DO2,"0") + field(LNK3,"$(DEVICE,recursive):CALC-RMS-CORREL PP") + field(DO3,"0") + field(LNK4,"$(DEVICE,recursive):CALC-SIGMA PP") + field(DO4,"0") + field(LNK5,"$(DEVICE,recursive):CALC-PROJ-Y PP") + field(DO5,"0") + field(LNK6,"$(DEVICE,recursive):CALC-PROJ-X PP") + field(DO6,"0") +} + +############################################# +############ RETOUR HOME AUTO ############### +############################################# +record(bo,"$(DEVICE,recursive):PROC-AUTO-HOME") { +} + +############################################# +############ SIMULATION ##################### +############################################# +record(bo,"$(DEVICE,recursive):PROC-SIMU") { +field(ZNAM,"HARD") +field(ONAM,"SIMU") +} + +############################################# +############ REPORT FILE ##################### +############################################# + +## Function that create a report of the EMIT +#record(aSub, "$(DEVICE,recursive):PROC-REPORT") { +######### INPUTS ######### +## Energie +# field(FTA, "FLOAT") +# field(NOA,1) +# field(INPA,"$(DEVICE,recursive):CALC-Energy-SP") + +## TIMESTAMP START +# field(FTB, "FLOAT") +# field(NOB,1) +# field(INPB, "$(DEVICE,recursive):BUFF-CURRENT") + +######### FUNCTION ####### +# field(SNAM, "CREATE_REPORT") +#} + + + +############################################ +############### Energy eV (U) ############## +############################################ +record(ao, "$(DEVICE,recursive):CALC-Energy-SP") +{ + field(DESC,"Energy eV (U)") + field(EGU, "eV") + field(DRVH, "100000") + field(DRVL, "0") + field(VAL,"75000") + field(PINI,"YES") + field(FLNK,"$(DEVICE,recursive):CALC-FuncCalcConv") +} +############################################ +## Distance Between Plates (d) ############# +############################################ +record(ao, "$(DEVICE,recursive):CALC-DistP-SP") +{ + field(DESC,"Distance Between Plates (d)") + field(EGU, "mm") + field(DRVH, "100") + field(DRVL, "0") + field(VAL,"7") + field(PINI,"YES") + field(FLNK,"$(DEVICE,recursive):CALC-FuncCalcConv") +} +############################################ +## Lenght plates(L) ######################## +############################################ +record(ao, "$(DEVICE,recursive):CALC-LenghP-SP") +{ + field(DESC,"Lenght plates(L)") + field(EGU, "mm") + field(DRVH, "100") + field(DRVL, "0") + field(VAL,"70") + field(PINI,"YES") + field(FLNK,"$(DEVICE,recursive):CALC-FuncCalcConv") +} + +############################################ +## Face Lenght plates(L1) ################## +############################################ +record(ao, "$(DEVICE,recursive):CALC-FacLenghP-SP") +{ + field(DESC,"Face Lenght plates(L1)") + field(EGU, "mm") + field(DRVH, "100") + field(DRVL, "0") + field(VAL,"10") + field(PINI,"YES") + field(FLNK,"$(DEVICE,recursive):CALC-FuncCalcConv") +} + +############################################ +## Rear Lenght plates(L3) ################## +############################################ +record(ao, "$(DEVICE,recursive):CALC-RearLenghP-SP") +{ + field(DESC,"Rear Lenght plates(L3)") + field(EGU, "mm") + field(DRVH, "100") + field(DRVL, "0") + field(VAL,"11") + field(PINI,"YES") + field(FLNK,"$(DEVICE,recursive):CALC-FuncCalcConv") +} + +######################################################################################## +## ## Function that compute the coefficient between MRAD and VOLTAGE) ################## +######################################################################################## +record(aSub, "$(DEVICE,recursive):CALC-FuncCalcConv") { +######### INPUTS ######### +## Energy eV (U) + field(FTA, "FLOAT") + field(NOA,1) + field(INPA, "$(DEVICE,recursive):CALC-Energy-SP") + +## Distance Between Plates (d) + field(FTB, "FLOAT") + field(NOB,1) + field(INPB, "$(DEVICE,recursive):CALC-DistP-SP") + +## Lenght plates(L) + field(FTC, "FLOAT") + field(NOC,1) + field(INPC, "$(DEVICE,recursive):CALC-LenghP-SP") + +##Face Lenght plates(L1) + field(FTD, "FLOAT") + field(NOD,1) + field(INPD, "$(DEVICE,recursive):CALC-FacLenghP-SP") + +## Rear Lenght plates(L3) + field(FTE, "FLOAT") + field(NOE,1) + field(INPE, "$(DEVICE,recursive):CALC-RearLenghP-SP") + +######### OUTPUTS ######### + field(FTVA, "FLOAT") + field(NOVA, "1") + field(OUTA, "$(DEVICE,recursive):CALC-FactVtoMRAD PP") + + field(FTVB, "FLOAT") + field(NOVB, "1") + field(OUTB, "$(DEVICE,recursive):CALC-FactMRADtoV PP") + +######### FUNCTION ####### + field(SNAM, "FACTOR_CONVERSION") +} + +############################################ +## Conversion factor for MRAD to V ######### +############################################ +record(ao, "$(DEVICE,recursive):CALC-FactMRADtoV") +{ + field(DESC,"Conv fact for MRAD to V)") + field(EGU, "V/mrad") + field(PREC, "4") +} + +############################################ +## Conversion factor for V to MRAD########## +############################################ +record(ao, "$(DEVICE,recursive):CALC-FactVtoMRAD") +{ + field(DESC,"Conv fact for V to MRAD)") + field(EGU, "mrad/V") + field(PREC, "4") +} + +########################################################################################### +########################## CREATE THE ANGLE WAVEFORM ###################################### +########################################################################################### + +## Function that compute the coefficient between MRAD and VOLTAGE +record(aSub, "$(DEVICE,recursive):CALC-BLDWFAngle") { +######### INPUTS ######### +## FACTOR CONVERSION VtoMRAD + field(FTA, "FLOAT") + field(NOA,1) + field(INPA, "$(DEVICE,recursive):CALC-FactVtoMRAD") + +## Plate volatge 1 Waveform (PS1) + field(FTB, "FLOAT") + field(NOB,$(BUFFERSIZE,undefined)) + field(INPB, "$(DAQNDSPREFIX,undefined):PBI-EM-HV1:VoltR_Y") + +## Plate volatge 2 Waveform (PS2) + field(FTC, "FLOAT") + field(NOC,$(BUFFERSIZE,undefined)) + field(INPC, "$(DAQNDSPREFIX,undefined):PBI-EM-HV2:VoltR_Y") + +## Plate volatge 1 average (PS1) + field(FTD, "FLOAT") + field(NOD,1) + field(INPD, "$(DEVICE,recursive):DET2-COMP") + +## Plate volatge 2 average (PS2) + field(FTE, "FLOAT") + field(NOE, "1") + field(INPE, "$(DEVICE,recursive):DET3-COMP") + +## Counter detector (cpt det) + field(FTE, "LONG") + field(NOE, "1") + field(INPE, "$(DEVICE,recursive):PS-NORD_POS CP") + +######### OUTPUTS ######### +## ANGLE Waveform converted in MRAD (to save) + field(FTVA, "FLOAT") + field(NOVA, "$(BUFFERSIZE,undefined)") + field(OUTA, "$(DEVICE,recursive):CALC-ANGLEwf PP") + +## ANGLE AVG value converted in VOLT + field(FTVB, "FLOAT") + field(NOVB, "1") + field(OUTB, "$(DEVICE,recursive):CALC-ANGLE PP") + +######### FUNCTION ####### + field(SNAM, "ANGLE_CALCUL") +} + +################ RESULTAT ANGLE ############## +## AVERAGE ANGLE +record(ao, "$(DEVICE,recursive):CALC-ANGLE") { +} + +## WAVEFORM ANGLE +record(waveform, "$(DEVICE,recursive):CALC-ANGLEwf") { + field(FTVL, "FLOAT") + field(NELM, "$(BUFFERSIZE,undefined)") +} + +########################################################################################### +########################## CALCUL PROJECTION X et Y ###################################### +########################################################################################### + +## Function that calculate the projection X et Y +record(aSub, "$(DEVICE,recursive):CALC-PROJXY") { +######### INPUTS ######### +## Angle Waveform + field(FTA, "FLOAT") + field(NOA,$(BUFFERSIZE,undefined)) + field(INPA, "$(DEVICE,recursive):BUFF-ANGLE") + +## Current Waveform + field(FTB, "FLOAT") + field(NOB,$(BUFFERSIZE,undefined)) + field(INPB, "$(DEVICE,recursive):BUFF-CURRENT") + +## Position Waveform + field(FTC, "FLOAT") + field(NOC,$(BUFFERSIZE,undefined)) + field(INPC, "$(DEVICE,recursive):BUFF-MTR-POS") + +## Nb angle total + field(FTD, "LONG") + field(NOD, "1") + field(INPD, "$(DEVICE,recursive):PS.NPTS") + +## Nb position total + field(FTE, "LONG") + field(NOE, "1") + field(INPE, "$(DEVICE,recursive):$(SCAN_SLIT,undefined).NPTS") + +######### OUTPUTS ######### + +## PROJECTION X output + field(FTVA, "FLOAT") + field(NOVA, "1") + field(OUTA, "$(DEVICE,recursive):CALC-PROJ-X PP") + +## PROJECTION Y output + field(FTVB, "FLOAT") + field(NOVB, "1") + field(OUTB, "$(DEVICE,recursive):CALC-PROJ-Y PP") + +## RMS SIZE output + field(FTVC, "FLOAT") + field(NOVC, "1") + field(OUTC, "$(DEVICE,recursive):CALC-RMS-SIZE PP") + +## RMS ANGLE output + field(FTVD, "FLOAT") + field(NOVD, "1") + field(OUTD, "$(DEVICE,recursive):CALC-RMS-ANGLE PP") + +## RMS CORREL output + field(FTVE, "FLOAT") + field(NOVE, "1") + field(OUTE, "$(DEVICE,recursive):CALC-RMS-CORREL PP") + +## SIGMA output + field(FTVF, "FLOAT") + field(NOVF, "1") + field(OUTF, "$(DEVICE,recursive):CALC-SIGMA PP") + +######### FUNCTION ####### + field(SNAM, "CREATE_PROJXY") +} + +################ RESULTATS ################## +####### PROJECTION X ########## +record(ao, "$(DEVICE,recursive):CALC-PROJ-X") { + field(PREC, "4") +} + +## WAVEFORM PROJECTION X +record(waveform, "$(DEVICE,recursive):CALC-PROJ-Xwf") { + field(FTVL, "FLOAT") + field(NELM, "$(BUFFERSIZE,undefined)") +} + +## WAVEFORM PROJECTION X ABCISSE +record(waveform, "$(DEVICE,recursive):CALC-PROJ-Xabsc") { + field(FTVL, "FLOAT") + field(NELM, "$(BUFFERSIZE,undefined)") +} + +####### PROJECTION Y ########## +record(ao, "$(DEVICE,recursive):CALC-PROJ-Y") { + field(PREC, "4") +} + +## WAVEFORM PROJECTION Y +record(waveform, "$(DEVICE,recursive):CALC-PROJ-Ywf") { + field(FTVL, "FLOAT") + field(NELM, "$(BUFFERSIZE,undefined)") +} + +## WAVEFORM PROJECTION Y ABCISSE +record(waveform, "$(DEVICE,recursive):CALC-PROJ-Yabsc") { + field(FTVL, "FLOAT") + field(NELM, "$(BUFFERSIZE,undefined)") +} + +####### RMS ########## +record(ao, "$(DEVICE,recursive):CALC-RMS-SIZE") { + field(PREC, "4") +} + +record(ao, "$(DEVICE,recursive):CALC-RMS-ANGLE") { + field(PREC, "4") +} + +record(ao, "$(DEVICE,recursive):CALC-RMS-CORREL") { + field(PREC, "4") +} + +####### SIGMA ########## +record(ao, "$(DEVICE,recursive):CALC-SIGMA") { + field(PREC, "4") +} + +## COMPRESS SCALARE VALUE +record(compress, "$(DEVICE,recursive):BUFF-DET1") { + field(NSAM, "1000") + field(ALG,"Circular Buffer") + field(INP,"LNS-ISRC-010:PBI-EMV-FC:CurrR:AVG CP") + } + +record(bo,"$(DEVICE,recursive):BUFF-DET1-RES"){ + field(OUT,"$(DEVICE,recursive):BUFF-DET1.RES") +} + +## WAVEFORM FINAL +record(waveform, "$(DEVICE,recursive):BUFF-CURRENT") { + field(FTVL, "FLOAT") + field(NELM, "$(BUFFERSIZE,undefined)") +} + +#################################################################### +########################## CREATE THE WAVEFORM ############### +#################################################################### + +## Function that compute the coefficient between MRAD and VOLTAGE +record(aSub, "$(DEVICE,recursive):BUFF-DET1-FUNC") { +######### INPUTS ######### +## Waveform data + field(FTA, "FLOAT") + field(NOA,1000) + field(INPA, "$(DEVICE,recursive):BUFF-DET1") + +## Waveform data reentrance + field(FTB, "FLOAT") + field(NOB,$(BUFFERSIZE,undefined)) + field(INPB,"$(DEVICE,recursive):BUFF-CURRENT") + +## Motor position + field(FTC, "LONG") + field(NOC,1) + field(INPC,"$(DEVICE,recursive):$(SCAN_SLIT,recursive)-NORD_POS") + +## Nb angle total + field(FTD, "LONG") + field(NOD, "1") + field(INPD, "$(DEVICE,recursive):$(SCAN_EF,recursive).NPTS") + +## Nb position total + field(FTE, "LONG") + field(NOE, "1") + field(INPE, "$(DEVICE,recursive):$(SCAN_SLIT,recursive).NPTS") + +## Reset + field(FTF, "LONG") + field(NOF, "1") + field(INPF, "$(DEVICE,recursive):BUFF-DET1-DEL CP") + +######### OUTPUTS ######### +## Waveform (to save) + field(FTVA, "FLOAT") + field(NOVA, "$(BUFFERSIZE,undefined)") + field(OUTA, "$(DEVICE,recursive):BUFF-CURRENT PP") + +## RESET (to save) + field(FTVB, "LONG") + field(NOVB, "1") + field(OUTB, "$(DEVICE,recursive):BUFF-DET1-DEL PP") + +######### FUNCTION ####### + field(SNAM, "CREATE_TAB") +} + +#################################################################### +########################## DELETE THE WAVEFORM ############### +#################################################################### + +record(bo, "$(DEVICE,recursive):BUFF-DET1-DEL") + { + } + +## COMPRESS SCALARE VALUE +record(compress, "$(DEVICE,recursive):BUFF-DET23") { + field(NSAM, "1000") + field(ALG,"Circular Buffer") + field(INP,"LNS-ISRC-010:PBI-EMV:CALC-ANGLE CP") + } + +record(bo,"$(DEVICE,recursive):BUFF-DET23-RES"){ + field(OUT,"$(DEVICE,recursive):BUFF-DET23.RES") +} + +## WAVEFORM FINAL +record(waveform, "$(DEVICE,recursive):BUFF-ANGLE") { + field(FTVL, "FLOAT") + field(NELM, "$(BUFFERSIZE,undefined)") +} + +#################################################################### +########################## CREATE THE WAVEFORM ############### +#################################################################### + +## Function that compute the coefficient between MRAD and VOLTAGE +record(aSub, "$(DEVICE,recursive):BUFF-DET23-FUNC") { +######### INPUTS ######### +## Waveform data + field(FTA, "FLOAT") + field(NOA,1000) + field(INPA, "$(DEVICE,recursive):BUFF-DET23") + +## Waveform data reentrance + field(FTB, "FLOAT") + field(NOB,$(BUFFERSIZE,undefined)) + field(INPB,"$(DEVICE,recursive):BUFF-ANGLE") + +## Motor position + field(FTC, "LONG") + field(NOC,1) + field(INPC,"$(DEVICE,recursive):$(SCAN_SLIT,recursive)-NORD_POS") + +## Nb angle total + field(FTD, "LONG") + field(NOD, "1") + field(INPD, "$(DEVICE,recursive):$(SCAN_EF,recursive).NPTS") + +## Nb position total + field(FTE, "LONG") + field(NOE, "1") + field(INPE, "$(DEVICE,recursive):$(SCAN_SLIT,recursive).NPTS") + +## Reset + field(FTF, "LONG") + field(NOF, "1") + field(INPF, "$(DEVICE,recursive):BUFF-DET23-DEL CP") + +######### OUTPUTS ######### +## Waveform (to save) + field(FTVA, "FLOAT") + field(NOVA, "$(BUFFERSIZE,undefined)") + field(OUTA, "$(DEVICE,recursive):BUFF-ANGLE PP") + +## RESET (to save) + field(FTVB, "LONG") + field(NOVB, "1") + field(OUTB, "$(DEVICE,recursive):BUFF-DET23-DEL PP") + +######### FUNCTION ####### + field(SNAM, "CREATE_TAB") +} + +#################################################################### +########################## DELETE THE WAVEFORM ############### +#################################################################### + +record(bo, "$(DEVICE,recursive):BUFF-DET23-DEL") + { + } + +## COMPRESS SCALARE VALUE MTR POS +record(compress, "$(DEVICE,recursive):BUFF-MTR-POS") { + field(NSAM, "1000") + field(ALG,"Circular Buffer") + field(INP,"$(MTRREC,recursive).VAL CP") + } + +## Reset COMPRESS +record(bo,$(DEVICE,recursive):BUFF-POS-RES){ + field(OUT,"$(DEVICE,recursive):BUFF-MTR-POS.RES") +} + +record(ao, "LNS-ISRC-010:PBI-EM:HVhor-SP") +{ + field(DESC, "Analog Output") + field(DTYP, "ecat2") + field(OUT, "s3.sm2.p0.e0") + field(LINR, "SLOPE") + field(EOFF, "0") + field(ESLO, "0.0003051850947599719") + field(EGU, "V") + field(PREC, "2") +} + +record(ao, "LNS-ISRC-010:PBI-EM:HVver-SP") +{ + field(DESC, "Analog Output") + field(DTYP, "ecat2") + field(OUT, "s3.sm2.p2.e0") + field(LINR, "SLOPE") + field(EOFF, "0") + field(ESLO, "0.0003051850947599719") + field(EGU, "V") + field(PREC, "2") +} + +record(ao, "LNS-ISRC-010:PBI-EM:BPS1-CurS") +{ + field(DESC, "Analog Output") + field(DTYP, "ecat2") + field(OUT, "s2.sm2.p0.e0") + field(LINR, "SLOPE") + field(EOFF, "0") + field(ESLO, "0.0003051850947599719") + field(EGU, "V") + field(PREC, "2") +} + +record(ao, "LNS-ISRC-010:PBI-EM:BPS1-VolS") +{ + field(DESC, "Analog Output") + field(DTYP, "ecat2") + field(OUT, "s2.sm2.p1.e0") + field(LINR, "SLOPE") + field(EOFF, "0") + field(ESLO, "0.0003051850947599719") + field(EGU, "V") + field(PREC, "2") +} + +record(ao, "LNS-ISRC-010:PBI-EM:BPS2-CurS") +{ + field(DESC, "Analog Output") + field(DTYP, "ecat2") + field(OUT, "s2.sm2.p2.e0") + field(LINR, "SLOPE") + field(EOFF, "0") + field(ESLO, "0.0003051850947599719") + field(EGU, "V") + field(PREC, "2") +} + +record(ao, "LNS-ISRC-010:PBI-EM:BPS2-VolS") +{ + field(DESC, "Analog Output") + field(DTYP, "ecat2") + field(OUT, "s2.sm2.p3.e0") + field(LINR, "SLOPE") + field(EOFF, "0") + field(ESLO, "0.0003051850947599719") + field(EGU, "V") + field(PREC, "2") +} + +record(bi, "LNS-ISRC-010:PBI-EM:BPS1-CurR-URNG") +{ + field(DESC, "Under range") + field(SCAN, "I/O Intr") + field(DTYP, "ecat2") + field(INP, "s1.sm3.p0.e0") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(bi, "LNS-ISRC-010:PBI-EM:BPS1-CurR-ORNG") +{ + field(DESC, "Over range") + field(SCAN, "I/O Intr") + field(DTYP, "ecat2") + field(INP, "s1.sm3.p0.e1") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(mbbi, "LNS-ISRC-010:PBI-EM:BPS1-CurR-LIM1") +{ + field(DESC, "Limit 1") + field(SCAN, "I/O Intr") + field(DTYP, "ecat2") + field(INP, "s1.sm3.p0.e2") + field(NOBT, "2") + field(ZRST, "Not active") + field(ONST, "Smaller") + field(TWST, "Larger") + field(THST, "Equal") +} + +record(mbbi, "LNS-ISRC-010:PBI-EM:BPS1-CurR-LIM2") +{ + field(DESC, "Limit 2") + field(SCAN, "I/O Intr") + field(DTYP, "ecat2") + field(INP, "s1.sm3.p0.e3") + field(NOBT, "2") + field(ZRST, "Not Active") + field(ONST, "Smaller") + field(TWST, "Larger") + field(THST, "Equal") +} + +record(bi, "LNS-ISRC-010:PBI-EM:BPS1-CurR-ERR") +{ + field(DESC, "Error") + field(SCAN, "I/O Intr") + field(DTYP, "ecat2") + field(INP, "s1.sm3.p0.e4") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(bi, "LNS-ISRC-010:PBI-EM:BPS1-CurR-SYNCERR") +{ + field(DESC, "DC synchronization Error") + field(SCAN, "I/O Intr") + field(DTYP, "ecat2") + field(INP, "s1.sm3.p0.e7") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(bi, "LNS-ISRC-010:PBI-EM:BPS1-CurR-TXPST") +{ + field(DESC, "Internal Error") + field(DTYP, "ecat2") + field(SCAN, "I/O Intr") + field(INP, "s1.sm3.p0.e8") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(bi, "LNS-ISRC-010:PBI-EM:BPS1-CurR-TXPTOG") +{ + field(DESC, "Toggle for each new value") + field(DTYP, "ecat2") + field(SCAN, "I/O Intr") + field(INP, "s1.sm3.p0.e9") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(ai, "LNS-ISRC-010:PBI-EM:BPS1-CurR") +{ + field(DESC, "Analog input value") + field(DTYP, "ecat2") + field(SCAN, "I/O Intr") + field(INP, "s1.sm3.p0.e10") + field(LINR, "SLOPE") + field(ESLO, "0.0003051850947599719") + field(EOFF, "0") + field(EGU, "V") + field(PREC, "2") +} + +record(bi, "LNS-ISRC-010:PBI-EM:BPS1-VolR-URNG") +{ + field(DESC, "Under range") + field(SCAN, "I/O Intr") + field(DTYP, "ecat2") + field(INP, "s1.sm3.p1.e0") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(bi, "LNS-ISRC-010:PBI-EM:BPS1-VolR-ORNG") +{ + field(DESC, "Over range") + field(SCAN, "I/O Intr") + field(DTYP, "ecat2") + field(INP, "s1.sm3.p1.e1") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(mbbi, "LNS-ISRC-010:PBI-EM:BPS1-VolR-LIM1") +{ + field(DESC, "Limit 1") + field(SCAN, "I/O Intr") + field(DTYP, "ecat2") + field(INP, "s1.sm3.p1.e2") + field(NOBT, "2") + field(ZRST, "Not active") + field(ONST, "Smaller") + field(TWST, "Larger") + field(THST, "Equal") +} + +record(mbbi, "LNS-ISRC-010:PBI-EM:BPS1-VolR-LIM2") +{ + field(DESC, "Limit 2") + field(SCAN, "I/O Intr") + field(DTYP, "ecat2") + field(INP, "s1.sm3.p1.e3") + field(NOBT, "2") + field(ZRST, "Not Active") + field(ONST, "Smaller") + field(TWST, "Larger") + field(THST, "Equal") +} + +record(bi, "LNS-ISRC-010:PBI-EM:BPS1-VolR-ERR") +{ + field(DESC, "Error") + field(SCAN, "I/O Intr") + field(DTYP, "ecat2") + field(INP, "s1.sm3.p1.e4") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(bi, "LNS-ISRC-010:PBI-EM:BPS1-VolR-SYNCERR") +{ + field(DESC, "DC synchronization Error") + field(SCAN, "I/O Intr") + field(DTYP, "ecat2") + field(INP, "s1.sm3.p1.e7") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(bi, "LNS-ISRC-010:PBI-EM:BPS1-VolR-TXPST") +{ + field(DESC, "Internal Error") + field(DTYP, "ecat2") + field(SCAN, "I/O Intr") + field(INP, "s1.sm3.p1.e8") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(bi, "LNS-ISRC-010:PBI-EM:BPS1-VolR-TXPTOG") +{ + field(DESC, "Toggle for each new value") + field(DTYP, "ecat2") + field(SCAN, "I/O Intr") + field(INP, "s1.sm3.p1.e9") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(ai, "LNS-ISRC-010:PBI-EM:BPS1-VolR") +{ + field(DESC, "Analog input value") + field(DTYP, "ecat2") + field(SCAN, "I/O Intr") + field(INP, "s1.sm3.p1.e10") + field(LINR, "SLOPE") + field(ESLO, "0.0003051850947599719") + field(EOFF, "0") + field(EGU, "V") + field(PREC, "2") +} + +record(bi, "LNS-ISRC-010:PBI-EM:BPS2-CurR-URNG") +{ + field(DESC, "Under range") + field(SCAN, "I/O Intr") + field(DTYP, "ecat2") + field(INP, "s1.sm3.p2.e0") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(bi, "LNS-ISRC-010:PBI-EM:BPS2-CurR-ORNG") +{ + field(DESC, "Over range") + field(SCAN, "I/O Intr") + field(DTYP, "ecat2") + field(INP, "s1.sm3.p2.e1") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(mbbi, "LNS-ISRC-010:PBI-EM:BPS2-CurR-LIM1") +{ + field(DESC, "Limit 1") + field(SCAN, "I/O Intr") + field(DTYP, "ecat2") + field(INP, "s1.sm3.p2.e2") + field(NOBT, "2") + field(ZRST, "Not active") + field(ONST, "Smaller") + field(TWST, "Larger") + field(THST, "Equal") +} + +record(mbbi, "LNS-ISRC-010:PBI-EM:BPS2-CurR-LIM2") +{ + field(DESC, "Limit 2") + field(SCAN, "I/O Intr") + field(DTYP, "ecat2") + field(INP, "s1.sm3.p2.e3") + field(NOBT, "2") + field(ZRST, "Not Active") + field(ONST, "Smaller") + field(TWST, "Larger") + field(THST, "Equal") +} + +record(bi, "LNS-ISRC-010:PBI-EM:BPS2-CurR-ERR") +{ + field(DESC, "Error") + field(SCAN, "I/O Intr") + field(DTYP, "ecat2") + field(INP, "s1.sm3.p2.e4") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(bi, "LNS-ISRC-010:PBI-EM:BPS2-CurR-SYNCERR") +{ + field(DESC, "DC synchronization Error") + field(SCAN, "I/O Intr") + field(DTYP, "ecat2") + field(INP, "s1.sm3.p2.e7") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(bi, "LNS-ISRC-010:PBI-EM:BPS2-CurR-TXPST") +{ + field(DESC, "Internal Error") + field(DTYP, "ecat2") + field(SCAN, "I/O Intr") + field(INP, "s1.sm3.p2.e8") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(bi, "LNS-ISRC-010:PBI-EM:BPS2-CurR-TXPTOG") +{ + field(DESC, "Toggle for each new value") + field(DTYP, "ecat2") + field(SCAN, "I/O Intr") + field(INP, "s1.sm3.p2.e9") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(ai, "LNS-ISRC-010:PBI-EM:BPS2-CurR") +{ + field(DESC, "Analog input value") + field(DTYP, "ecat2") + field(SCAN, "I/O Intr") + field(INP, "s1.sm3.p2.e10") + field(LINR, "SLOPE") + field(ESLO, "0.0003051850947599719") + field(EOFF, "0") + field(EGU, "V") + field(PREC, "2") +} + +record(bi, "LNS-ISRC-010:PBI-EM:BPS2-VolR-URNG") +{ + field(DESC, "Under range") + field(SCAN, "I/O Intr") + field(DTYP, "ecat2") + field(INP, "s1.sm3.p3.e0") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(bi, "LNS-ISRC-010:PBI-EM:BPS2-VolR-ORNG") +{ + field(DESC, "Over range") + field(SCAN, "I/O Intr") + field(DTYP, "ecat2") + field(INP, "s1.sm3.p3.e1") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(mbbi, "LNS-ISRC-010:PBI-EM:BPS2-VolR-LIM1") +{ + field(DESC, "Limit 1") + field(SCAN, "I/O Intr") + field(DTYP, "ecat2") + field(INP, "s1.sm3.p3.e2") + field(NOBT, "2") + field(ZRST, "Not active") + field(ONST, "Smaller") + field(TWST, "Larger") + field(THST, "Equal") +} + +record(mbbi, "LNS-ISRC-010:PBI-EM:BPS2-VolR-LIM2") +{ + field(DESC, "Limit 2") + field(SCAN, "I/O Intr") + field(DTYP, "ecat2") + field(INP, "s1.sm3.p3.e3") + field(NOBT, "2") + field(ZRST, "Not Active") + field(ONST, "Smaller") + field(TWST, "Larger") + field(THST, "Equal") +} + +record(bi, "LNS-ISRC-010:PBI-EM:BPS2-VolR-ERR") +{ + field(DESC, "Error") + field(SCAN, "I/O Intr") + field(DTYP, "ecat2") + field(INP, "s1.sm3.p3.e4") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(bi, "LNS-ISRC-010:PBI-EM:BPS2-VolR-SYNCERR") +{ + field(DESC, "DC synchronization Error") + field(SCAN, "I/O Intr") + field(DTYP, "ecat2") + field(INP, "s1.sm3.p3.e7") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(bi, "LNS-ISRC-010:PBI-EM:BPS2-VolR-TXPST") +{ + field(DESC, "Internal Error") + field(DTYP, "ecat2") + field(SCAN, "I/O Intr") + field(INP, "s1.sm3.p3.e8") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(bi, "LNS-ISRC-010:PBI-EM:BPS2-VolR-TXPTOG") +{ + field(DESC, "Toggle for each new value") + field(DTYP, "ecat2") + field(SCAN, "I/O Intr") + field(INP, "s1.sm3.p3.e9") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(ai, "LNS-ISRC-010:PBI-EM:BPS2-VolR") +{ + field(DESC, "Analog input value") + field(DTYP, "ecat2") + field(SCAN, "I/O Intr") + field(INP, "s1.sm3.p3.e10") + field(LINR, "SLOPE") + field(ESLO, "0.0003051850947599719") + field(EOFF, "0") + field(EGU, "V") + field(PREC, "2") +} + +record(stringin, "LNS-ISRC-010:PBI-EM:ES4134-DTYP") +{ + field(DESC, "Module type (Not read from device)") + field(PINI, "YES") + field(VAL, "ES4134") +} + +record(bi, "LNS-ISRC-010:PBI-EM:ES4134-STATUS") +{ + field(DESC, "Slave status") + field(SCAN, "I/O Intr") + field(DTYP, "ecat2") + field(INP, "s3 STATUS_SLAVE_OP") + field(ZNAM, "Not OK") + field(ONAM, "OK") +} +record(stringin, "LNS-ISRC-010:PBI-EM:EL4104-DTYP") +{ + field(DESC, "Module type (Not read from device)") + field(PINI, "YES") + field(VAL, "EL4104") +} + +record(bi, "LNS-ISRC-010:PBI-EM:EL4104-STATUS") +{ + field(DESC, "Slave status") + field(SCAN, "I/O Intr") + field(DTYP, "ecat2") + field(INP, "s2 STATUS_SLAVE_OP") + field(ZNAM, "Not OK") + field(ONAM, "OK") +} +record(stringin, "LNS-ISRC-010:PBI-EM:ES3164-DTYP") +{ + field(DESC, "Module type (Not read from device)") + field(PINI, "YES") + field(VAL, "ES3164") +} + +record(bi, "LNS-ISRC-010:PBI-EM:ES3164-STATUS") +{ + field(DESC, "Slave status") + field(SCAN, "I/O Intr") + field(DTYP, "ecat2") + field(INP, "s1 STATUS_SLAVE_OP") + field(ZNAM, "Not OK") + field(ONAM, "OK") +} +#DEBUG +#sends ASCII string to pmac +record(stringout, "LNS-ISRC-010:PBI-EM:PMAC-ASK") { + field(DESC, "sends ASCII string to pmac") + field(OUT, "LNS-ISRC-010:PBI-EM:PMAC-ANSWER CP") + field(FLNK, "LNS-ISRC-010:PBI-EM:PMAC-ANSWER") +} +#receives ASCII string from pmac +record(stringin, "LNS-ISRC-010:PBI-EM:PMAC-ANSWER") { + field(DESC, "receives ASCII string from pmac") + field(DTYP, "stream") + field(INP, "@pmacVariables.proto sendString(LNS-ISRC-010:PBI-EM:PMAC-ASK) GEOBRICK_ASYN") +} + +#get variables value from Geo Brick +record(ai, "LNS-ISRC-010:PBI-EM:VER-BRAKE_GET") { + field(DESC, "0: brake on, 1: brake off") + field(EGU, "boolean") + field(DTYP, "stream") + field(PREC, "0") + field(INP, "@pmacVariables.proto getVar(M33) GEOBRICK_ASYN") + field(SCAN, ".2 second") #I/O Intr +} +#get variables value from Geo Brick +record(ai, "LNS-ISRC-010:PBI-EM:CURRENT_ERR_GET") { + field(DESC, "current to high") + field(EGU, "boolean") + field(DTYP, "stream") + field(PREC, "0") + field(INP, "@pmacVariables.proto getVar(P93) GEOBRICK_ASYN") + field(SCAN, ".2 second") #I/O Intr +} +#get variables value from Geo Brick +record(ai, "LNS-ISRC-010:PBI-EMV:SWITCH_H_GET") { + field(DESC, "Vertical high motor swicth") + field(EGU, "boolean") + field(DTYP, "stream") + field(PREC, "0") + field(INP, "@pmacVariables.proto getVar(M121) GEOBRICK_ASYN") + field(SCAN, ".2 second") #I/O Intr +} +#get variables value from Geo Brick +record(ai, "LNS-ISRC-010:PBI-EMV:SWITCH_L_GET") { + field(DESC, "Vertical low motor swicth") + field(EGU, "boolean") + field(DTYP, "stream") + field(PREC, "0") + field(INP, "@pmacVariables.proto getVar(M122) GEOBRICK_ASYN") + field(SCAN, ".2 second") #I/O Intr +} +#get variables value from Geo Brick +record(ai, "SOURCE:EMITTANCE-METTER:V_BRAKE_GET") { + field(DESC, "0: brake on, 1: brake off") + field(EGU, "boolean") + field(DTYP, "stream") + field(PREC, "0") + field(INP, "@pmacVariables.proto getVar(M33) GEOBRICK_ASYN") + field(SCAN, ".2 second") #I/O Intr +} +#get variables value from Geo Brick +record(ai, "SOURCE:EMITTANCE-METTER:V_SWITCH_H_GET") { + field(DESC, "Vertical high motor swicth") + field(EGU, "boolean") + field(DTYP, "stream") + field(PREC, "0") + field(INP, "@pmacVariables.proto getVar(M121) GEOBRICK_ASYN") + field(SCAN, ".2 second") #I/O Intr +} +#get variables value from Geo Brick +record(ai, "SOURCE:EMITTANCE-METTER:V_SWITCH_L_GET") { + field(DESC, "Vertical low motor swicth") + field(EGU, "boolean") + field(DTYP, "stream") + field(PREC, "0") + field(INP, "@pmacVariables.proto getVar(M122) GEOBRICK_ASYN") + field(SCAN, ".2 second") #I/O Intr +} +#get variables value from Geo Brick +record(ai, "SOURCE:EMITTANCE-METTER:V_M_IN_POSITION_GET") { + field(DESC, "Vertical low motor swicth") + field(EGU, "boolean") + field(DTYP, "stream") + field(PREC, "0") + field(INP, "@pmacVariables.proto getVar(M140) GEOBRICK_ASYN") + field(SCAN, ".2 second") #I/O Intr +} +#get variables value from Geo Brick +record(ai, "SOURCE:EMITTANCE-METTER:V_HOME_DONE_GET") { + field(DESC, "Vertical low motor swicth") + field(EGU, "boolean") + field(DTYP, "stream") + field(PREC, "0") + field(INP, "@pmacVariables.proto getVar(P101) GEOBRICK_ASYN") + field(SCAN, ".2 second") #I/O Intr +} +#get variables value from Geo Brick +record(ai, "SOURCE:EMITTANCE-METTER:V_M_POSITION_GET") { + field(DESC, "Vertical motor position") + field(EGU, "cts") + field(DTYP, "stream") + field(PREC, "0") + field(INP, "@pmacVariables.proto getVar(#1P) GEOBRICK_ASYN") + field(SCAN, ".2 second") #I/O Intr +} +#get variables value from Geo Brick +record(ai, "SOURCE:EMITTANCE-METTER:V_ACTUAL_VEL_GET") { + field(DESC, "Actual average velocity") + field(EGU, "boolean") + field(DTYP, "stream") + field(PREC, "0") + field(INP, "@pmacVariables.proto getVar(M174) GEOBRICK_ASYN") + field(SCAN, ".2 second") #I/O Intr +} +#get variables value from Geo Brick +record(ai, "SOURCE:EMITTANCE-METTER:V_QUA_CUR_LOOP_GET") { + field(DESC, "Quadrature cur-loop inte") + field(EGU, "boolean") + field(DTYP, "stream") + field(PREC, "0") + field(INP, "@pmacVariables.proto getVar(M177) GEOBRICK_ASYN") + field(SCAN, ".2 second") #I/O Intr +} +#get variables value from Geo Brick +record(ai, "SOURCE:EMITTANCE-METTER:V_AMP_FAULT_GET") { + field(DESC, "Amplifier-fault-error bit") + field(EGU, "boolean") + field(DTYP, "stream") + field(PREC, "0") + field(INP, "@pmacVariables.proto getVar(M143) GEOBRICK_ASYN") + field(SCAN, ".2 second") #I/O Intr +} +#get variables value from Geo Brick +record(ai, "SOURCE:EMITTANCE-METTER:V_INT_FOL_ERR_GET") { + field(DESC, "Integrated follow. error") + field(EGU, "boolean") + field(DTYP, "stream") + field(PREC, "0") + field(INP, "@pmacVariables.proto getVar(M146) GEOBRICK_ASYN") + field(SCAN, ".2 second") #I/O Intr +} +#get variables value from Geo Brick +record(ai, "SOURCE:EMITTANCE-METTER:V_I2T_FAULT_GET") { + field(DESC, "I2T fault bit") + field(EGU, "boolean") + field(DTYP, "stream") + field(PREC, "0") + field(INP, "@pmacVariables.proto getVar(M147) GEOBRICK_ASYN") + field(SCAN, ".2 second") #I/O Intr +} +#get variables value from Geo Brick +record(ai, "SOURCE:EMITTANCE-METTER:V_PHASING_ERR_GET") { + field(DESC, "Phasing error fault") + field(EGU, "boolean") + field(DTYP, "stream") + field(PREC, "0") + field(INP, "@pmacVariables.proto getVar(M148) GEOBRICK_ASYN") + field(SCAN, ".2 second") #I/O Intr +} +#get variables value from Geo Brick +record(ai, "SOURCE:EMITTANCE-METTER:GEOBRICK_ERR_GET") { + field(DESC, "M143|M146|M147|M148|M243..") + field(EGU, "boolean") + field(DTYP, "stream") + field(PREC, "0") + field(INP, "@pmacVariables.proto getVar(P92) GEOBRICK_ASYN") + field(SCAN, ".2 second") #I/O Intr +} +#get variables value from Geo Brick +record(ai, "SOURCE:EMITTANCE-METTER:CURRENT_ERR_GET") { + field(DESC, "current to high") + field(EGU, "boolean") + field(DTYP, "stream") + field(PREC, "0") + field(INP, "@pmacVariables.proto getVar(P93) GEOBRICK_ASYN") + field(SCAN, ".2 second") #I/O Intr +} +#set data to send to the Geo brick +record(bo, "LNS-ISRC-010:PBI-EM:VER-BRAKE_SET") { + field(DESC, "brake") + field(DTYP, "stream") + field(OUT, "@pmacVariables.proto setVar(M33) GEOBRICK_ASYN") + field(ZNAM,"OFF") + field(ONAM,"ON") +} +#set data to send to the Geo brick +record(bo, "LNS-ISRC-010:PBI-EM:CURRENT_ERR_SET") { + field(DESC, "current to high") + field(DTYP, "stream") + field(OUT, "@pmacVariables.proto setVar(P93) GEOBRICK_ASYN") + field(ZNAM,"OFF") + field(ONAM,"ON") +} diff --git a/builddir/db/EMU.substitutions b/builddir/db/EMU.substitutions new file mode 100644 index 0000000..4753e33 --- /dev/null +++ b/builddir/db/EMU.substitutions @@ -0,0 +1,560 @@ +# File wireScanner.substitutions +# Author: Alexander Soderqvist <alexander.soderqvist@esss.se> +# +# Prototype allison scanner. Compilations of components from scanning module. +# + +########################################################################## +################################ OUTER SCAN: MOTOR ####################### +########################################################################## + +file "scanBase.db" +{ + pattern { + DEVICE, + SCAN, + MAX_POINTS, + +# INTERFACE POSITIONERS: 1 and 2. 3 is also available but not used here + POS1_SP_PV, + POS2_SP_PV, + +# INTERFACE MAIN POSITIONER, This positioner 4 on sscan to allow the other positioner to be used for configuration + POS_SP_PV, + POS_SCALAR_RBV_PV, + +# INTERFACE: TIMING RECEIVER + TR_TL1, + TR_TLTSEL, + +# INTERFACE: DETECTOR TRIGGERS, T1PV is take by timing receiver control + T1PV, + +# INTERFACE: DETECTORS, + D01PV, + +# INTERFACE: BEFORE, AFTER and ABORT scan links +# Before, after and abort scan links. Both for Step by step and on the fly. + +# General before and after scan links with data output, for both fly and step by step. + BS_LNK, + BS_DO, + AS_LNK, + AS_DO, + AB_LNK, + AB_DO, + + BF_STEP_LNK1, + BF_STEP_LNK2, + BF_STEP_DO1, + BF_STEP_DO2, + BF_STEP_FLNK, + + AF_STEP_LNK1, + AF_STEP_LNK2, + AF_STEP_DO1, + AF_STEP_DO2, + AF_STEP_FLNK, + + AB_STEP_LNK1, + AB_STEP_LNK2, + AB_STEP_DO1, + AB_STEP_DO2, + AB_STEP_FLNK + } + { + "$(DEVICE)", + "$(SCAN_SLIT)", + "$(MAX_POINTS_SLIT)", + +# INTERFACE POSITIONER: Motor record for a wirescanner + "$(MTRREC).ACCL", + "$(MTRREC).VELO", + +# INTERFACE MAIN POSITIONER: + "$(MTRREC).VAL", + "$(MTRREC).RBV", + +# INTERFACE: Timing receiver Action in ESS timing + "", + "$(DEVICE):$(SCAN_EF)-TS_START.TIME", + +# INTERFACE: Detector Trigger + "$(DEVICE):$(SCAN_EF).EXSC", + +# INTERFACE: Detectors. No detectors on Outer scan + "", + +# INTERFACE: BEFORE, AFTER and ABORT scan links + +# General links before scan + "$(MTRREC).SPMG", + "3", + +# General links after scan + "$(MTRREC).SPMG", + "1", + +# General links abort scan + "$(MTRREC).STOP PP", + "1", + + +# Before scan step by step links + "$(DEVICE):PROC-SLIT-BF.PROC PP", + "", + "1", + "", + "", + +# After scan step by step links + "$(DEVICE):PROC-SLIT-AF.PROC PP", + "", + "1", + "", + "", + +# Abort scan step by step links + "$(DEVICE):PROC-SLIT-AB.PROC PP", + "", + "1", + "", + "$(DEVICE):$(SCAN_EF)-ABORT" + } + +} + +########################################################################## +################################ INNER SCAN: DAC ####################### +########################################################################## + +# INNER SCAN: Electrical field +file "scanBase.db" +{ + pattern { + DEVICE, + SCAN, + MAX_POINTS, + +# Power supply PS1 + POS_SP_PV, + POS_SCALAR_RBV_PV, + +# Power supply PS2 + POS1_SP_PV, + POS1_RBV_PV, + POS1_MODE, + +# INTERFACE: TIMING RECEIVER + TR_TL1, + TR_TLTSEL, + +# INTERFACE: DETECTOR TRIGGERS, T1PV is take by timing receiver control + T1PV, + +# INTERFACE: DETECTORS, + D01PV, + D02PV, + D03PV, + +# INTERFACE: BEFORE, AFTER and ABORT scan links +# Before, after and abort scan links. Both for Step by step and on the fly. + +# General before and after scan links with data output, for both fly and step by step. + BS_LNK, + BS_LNK_DO, + AS_LNK, + AS_LNK_DO, + AB_LNK, + AB_DO, + + BF_STEP_LNK1, + BF_STEP_LNK2, + BF_STEP_LNK1_DO, + BF_STEP_LNK2_DO, + BF_STEP_FLNK, + + AF_STEP_LNK1, + AF_STEP_LNK2, + AF_STEP_LNK1_DO, + AF_STEP_LNK2_DO, + AF_STEP_FLNK, + + AB_STEP_LNK1, + AB_STEP_LNK2, + AB_STEP_LNK1_DO, + AB_STEP_LNK2_DO, + AB_STEP_FLNK + } + { + "$(DEVICE)", + "$(SCAN_EF)", + "$(MAX_POINTS_EF)", + +# PS1 POSITIONER INTERFACE + "$(PSU_SP)", + "$(PSU_RBV)", + + +# PS2 POSITIONER INTERFACE + "$(PSU2_SP)", + "$(PSU2_RBV)", + "LINEAR", + +# INTERFACE: Timing receiver Action in ESS timing + "$(TR_TL) PP", + "$(TR_TLTSEL)", + +# INTERFACE: Detector Trigger + "$(DEVICE):DAQTRG-TRG", + +# INTERFACE: Detectors + "$(DEVICE):BUFF-DET1", + "$(DEVICE):BUFF-DET23", + "", + +# INTERFACE: BEFORE, AFTER and ABORT scan links + +# General links after scan + "", + "", + +# General links before scan + "", + "", + +# General links abort scan + "", + "", + +# Before scan step by step links + "$(DEVICE):PROC-PS-BF.PROC PP", + "", + "1", + "", + "", + +# After scan step by step links + "$(DEVICE):PROC-PS-AF.PROC PP", + "", + "1", + "", + "$(DEVICE):$(SCAN_SLIT)-SAVE_TS", + +# Abort scan step by step links + "$(DEVICE):DAQTRG-RST.PROC PP", + "", + "1", + "", + "" + + } + +} + + +########################################################################## +################################ OUTER SCAN: MOTOR ####################### +########################################################################## +# +# Detector trigger control +# + +file "scanDAQDetTrig.template" +{ + pattern { + DEVICE, + DETTRG, + + SCAN, + POS_NUM, + RSTEVENT, + + NDET, + + ACQ_STOP_LNK, + ACQ_STOP_STR, + + ACQ_START_LNK, + ACQ_START_STR, + + DAQ_DATA_RDY_FLNK, + + DAQ_STATE_PV, + DAQ_STATE_OKVALUE + } + { + "$(DEVICE)", + "DAQTRG" + + "$(SCAN_EF)", + "4", + "55", + + "3", + + "$(DAQNDSPREFIX):PBI-EM:CARD0-STAT", + "ON", + + "$(DAQNDSPREFIX):PBI-EM:CARD0-STAT", + "RUNNING", + + "$(DEVICE):$(SCAN_EF)-SAVE_TS", + + "$(DAQNDSPREFIX):PBI-EM:CARD0-STAT-RB", + "4" + } +} + + +########################################################################## +################################ DETECTOR 1: Faraday CUP ################# +########################################################################## + +file "scanDAQDet.template" +{ + + pattern { + DEVICE, + DET, + + DETTRG, + RSTEVENT, + + NELM, + TRGRRBVREC, + WFSRCREC, + WFNORD + } + { + "$(DEVICE)", + "DET1", + + "DAQTRG", + "55" + + "$(DAQBUFSIZE)", + "$(DAQNDSPREFIX):PBI-EM:CARD0:TriggerRepeat-RB", + "$(DAQNDSPREFIX):$(DET1WF)", + "$(DAQNDSPREFIX):$(DET1WF).NORD" + } +} + + +########################################################################## +################################ DETECTOR 2: PS1 ######################### +########################################################################## +file "scanDAQDet.template" +{ + + pattern { + DEVICE, + DET, + + DETTRG, + RSTEVENT, + + NELM, + TRGRRBVREC, + WFSRCREC, + WFNORD + } + { + "$(DEVICE)", + "DET2", + + "DAQTRG", + "55" + + "$(DAQBUFSIZE)", + "$(DAQNDSPREFIX):PBI-EM:CARD0:TriggerRepeat-RB", + "$(DAQNDSPREFIX):$(DET2WF)", + "$(DAQNDSPREFIX):$(DET2WF).NORD" + } +} + +########################################################################## +################################ DETECTOR 3: PS2 ######################### +########################################################################## + +file "scanDAQDet.template" +{ + + pattern { + DEVICE, + DET, + + DETTRG, + RSTEVENT, + + NELM, + TRGRRBVREC, + WFSRCREC, + WFNORD + } + { + "$(DEVICE)", + "DET3", + + "DAQTRG", + "55" + + "$(DAQBUFSIZE)", + "$(DAQNDSPREFIX):PBI-EM:CARD0:TriggerRepeat-RB", + "$(DAQNDSPREFIX):$(DET3WF)", + "$(DAQNDSPREFIX):$(DET3WF).NORD" + } +} + +########################################################################## +################################ DACQ ################################### +########################################################################## +file DataAcquisitionChannel.template +{ +pattern +{ SECTION, SUBSECTION, DISC, DEVICE, SIGNAL,DESCRIPTION, EVENT_IN,NELM,SIZE,SAMPLING_RATE_PV} + {"LNS","ISRC-010","PBI-EMV","FC","CurrR","Current FC",10,16000,520,LNS-ISRC-010:PBI-EM:CARD0:SAMPLINGRATE-RB} + {"LNS","ISRC-010","PBI-EM","HV1","VoltR","Voltage HV1 FC",11,16000,520,LNS-ISRC-010:PBI-EM:CARD0:SAMPLINGRATE-RB} + {"LNS","ISRC-010","PBI-EM","HV2","VoltR","Voltage HV2 FC",12,16000,520,LNS-ISRC-010:PBI-EM:CARD0:SAMPLINGRATE-RB} +} + +file FastAcquisition.template +{ +pattern +{ SECTION,SUBSECTION, DISC, DEVICE, SIGNAL,NICKNAME,EVENT_OUT,CARD,CHANNEL,NELM } + + {"LNS","ISRC-010","PBI-EMV","FC","CurrR","CurrR",10,0,3,16000} + {"LNS","ISRC-010","PBI-EM","HV1","VoltR","HV1VoltR",11,0,0,16000} + {"LNS","ISRC-010","PBI-EM","HV2","VoltR","HV2VoltR",12,0,1,16000} +} + + +file FastAcquisitionInformation.template +{ + pattern + { CARD,FMC,NELM,PREFIX} + {0,2,16000,"LNS-ISRC-010:PBI-EM"} +} + + +file EMU_DACQ_SYNC.template +{ + pattern + { PREFIX,DEVICE,SIGNAL1,SIGNAL2,SIGNAL3} + {"LNS-ISRC-010","PBI-EM","FC:CurrR","HV1:VoltR","HV2:VoltR"} +} +########################################################################## +################################ PROCESS ################################ +########################################################################## +file EMU_PROCESS.template +{ +pattern {DEVICE, SCAN_EF} + {"$(DEVICE)","$(SCAN_EF)"} +} + +########################################################################## +################################ CALCUL ################################ +########################################################################## +file EMU_CALCUL.template +{ +pattern {DEVICE,DAQPREFIX,DET2WF,DET3WF,DET2,DET3,NELM,SCAN_EF} + {"$(DEVICE)","$(DAQNDSPREFIX)","PBI-EM-HV1:VoltR_Y","PBI-EM-HV2:VoltR_Y","DET2","DET3","$(BUFFERSIZE)","PS"} +} + +########################################################################## +################################ BUFFER ################################## +########################################################################## +file EMU_BUFF_CHAN.template +{ +pattern {DEVICE,SIGNAL_IN,DET,SIGNAL2,NELM,NELM_COMP,SCAN_EF,SCAN_SLIT,MTRREC} + {"$(DEVICE)","LNS-ISRC-010:PBI-EMV-FC:CurrR:AVG","DET1","CURRENT","$(BUFFERSIZE)","1000","$(SCAN_EF)","$(SCAN_SLIT)","$(MTRREC)"} + {"$(DEVICE)","LNS-ISRC-010:PBI-EMV:CALC-ANGLE","DET23","ANGLE","$(BUFFERSIZE)","1000","$(SCAN_EF)","$(SCAN_SLIT)","$(MTRREC)"} +} + +file EMU_BUFF_POS.template +{ +pattern {DEVICE,NELM_COMP,DET,SCAN_SLIT,MTRREC} + {"$(DEVICE)","1000","DET1","$(SCAN_SLIT)","$(MTRREC)"} +} + +########################################################################## +################################ ETHERCAT ################################ +########################################################################## +file ecat2el41xx.template +{ + pattern {PREFIX,CH_ID, SLAVE_IDX,PDO_IDX, EOFF, ESLO, DRVL, DRVH} + {"LNS-ISRC-010:PBI-EM","HVhor-SP", 3, 0, 0, 0.0003051850947599719, -10, 10} + {"LNS-ISRC-010:PBI-EM","HVver-SP", 3, 2, 0, 0.0003051850947599719, -10, 10} + {"LNS-ISRC-010:PBI-EM","BPS1-CurS", 2 ,0, 0, 0.0003051850947599719} +# {"LNS-ISRC-010:PBI-EM","BPS1-CurS", 2 ,0, 0, 0,00048829615161595504} + {"LNS-ISRC-010:PBI-EM","BPS1-VolS", 2 ,1, 0 , 0.0003051850947599719} +# {"LNS-ISRC-010:PBI-EM","BPS1-VolS", 2 ,1, 0 , 0,09155552842799157} + {"LNS-ISRC-010:PBI-EM","BPS2-CurS", 2 ,2, 0, 0.0003051850947599719} +# {"LNS-ISRC-010:PBI-EM","BPS2-CurS", 2 ,2, 0, 0,00048829615161595504} + {"LNS-ISRC-010:PBI-EM","BPS2-VolS", 2 ,3, 0 , 0.0003051850947599719} +# {"LNS-ISRC-010:PBI-EM","BPS2-VolS", 2 ,3, 0 , 0,09155552842799157} +} + +file ecat2el316x.template +{ + pattern {PREFIX,CH_ID, SLAVE_IDX, PDO_IDX} + {"LNS-ISRC-010:PBI-EM","BPS1-CurR",1 ,0, 0, 0.0003051850947599719} +# {"LNS-ISRC-010:PBI-EM","BPS1-CurR",1 ,0, 0, 0,00048829615161595504} + {"LNS-ISRC-010:PBI-EM","BPS1-VolR",1 ,1, 0, 0.0003051850947599719} +# {"LNS-ISRC-010:PBI-EM","BPS1-VolR",1 ,1, 0, 0,09155552842799157} + {"LNS-ISRC-010:PBI-EM","BPS2-CurR",1 ,2, 0, 0.0003051850947599719} +# {"LNS-ISRC-010:PBI-EM","BPS2-CurR",1 ,2, 0, 0,00048829615161595504} + {"LNS-ISRC-010:PBI-EM","BPS2-VolR",1 ,3, 0, 0.0003051850947599719} +# {"LNS-ISRC-010:PBI-EM","BPS2-VolR",1 ,3, 0, 0,09155552842799157} +} + +file ecat2slave.template +{ + pattern {PREFIX,DTYP,MOD_ID,SLAVE_IDX} + {"LNS-ISRC-010:PBI-EM","ES4134","ES4134",3} + {"LNS-ISRC-010:PBI-EM","EL4104","EL4104",2} + {"LNS-ISRC-010:PBI-EM","ES3164","ES3164",1} +} + + +########################################################################## +################################ GEOBRICK - TEST ######################### +########################################################################## + +file EMU_PMAC-CONSOLE.template +{ +pattern {P, M, SPORT} + {LNS-ISRC-010,PBI-EM,GEOBRICK_ASYN} +} + +file EMU_PMAC-GETBO.template +{ +pattern {P, M, NAME, DESC, EGU, VARIABLE, PREC, SCAN, SPORT} + {LNS-ISRC-010,PBI-EM,VER-BRAKE, "0: brake on, 1: brake off", boolean, M33, 0, "1 second", GEOBRICK_ASYN} + {LNS-ISRC-010,PBI-EM,CURRENT_ERR,"current to high", boolean, P93, 0, "0.5 second", GEOBRICK_ASYN} + {LNS-ISRC-010,PBI-EMV,SWITCH_H,"Vertical high motor swicth", boolean, M121, 0, "0.5 second", GEOBRICK_ASYN} + {LNS-ISRC-010,PBI-EMV,SWITCH_L,"Vertical low motor swicth", boolean, M122, 0, "1 second", GEOBRICK_ASYN} + {SOURCE EMITTANCE-METTER V_BRAKE "0: brake on, 1: brake off" boolean M33 0 "1 second" GEOBRICK_ASYN} + {SOURCE EMITTANCE-METTER V_SWITCH_H "Vertical high motor swicth" boolean M121 0 "1 second" GEOBRICK_ASYN} + {SOURCE EMITTANCE-METTER V_SWITCH_L "Vertical low motor swicth" boolean M122 0 "1 second" GEOBRICK_ASYN} + {SOURCE EMITTANCE-METTER V_M_IN_POSITION "Vertical low motor swicth" boolean M140 0 "1 second" GEOBRICK_ASYN} + {SOURCE EMITTANCE-METTER V_HOME_DONE "Vertical low motor swicth" boolean P101 0 "1 second" GEOBRICK_ASYN} + {SOURCE EMITTANCE-METTER V_M_POSITION "Vertical motor position" cts #1P 0 ".1 second" GEOBRICK_ASYN} + {SOURCE EMITTANCE-METTER V_ACTUAL_VEL "Actual average velocity" boolean M174 0 ".1 second" GEOBRICK_ASYN} + {SOURCE EMITTANCE-METTER V_QUA_CUR_LOOP "Quadrature cur-loop inte" boolean M177 0 ".1 second" GEOBRICK_ASYN} + {SOURCE EMITTANCE-METTER V_AMP_FAULT "Amplifier-fault-error bit" boolean M143 0 "1 second" GEOBRICK_ASYN} + {SOURCE EMITTANCE-METTER V_INT_FOL_ERR "Integrated follow. error" boolean M146 0 "1 second" GEOBRICK_ASYN} + {SOURCE EMITTANCE-METTER V_I2T_FAULT "I2T fault bit" boolean M147 0 "1 second" GEOBRICK_ASYN} + {SOURCE EMITTANCE-METTER V_PHASING_ERR "Phasing error fault" boolean M148 0 "1 second" GEOBRICK_ASYN} + {SOURCE EMITTANCE-METTER GEOBRICK_ERR "M143|M146|M147|M148|M243.." boolean P92 0 "1 second" GEOBRICK_ASYN} + {SOURCE EMITTANCE-METTER CURRENT_ERR "current to high" boolean P93 0 "1 second" GEOBRICK_ASYN} + +} + +file EMU_PMAC-SETBO.template +{ +pattern {P, M, NAME, DESC, VARIABLE, SPORT} + {LNS-ISRC-010,PBI-EM,VER-BRAKE, "brake",M33,GEOBRICK_ASYN} + {LNS-ISRC-010,PBI-EM,CURRENT_ERR,"current to high", P93, GEOBRICK_ASYN} +} + diff --git a/builddir/db/EMU_BUFF_CHAN.template b/builddir/db/EMU_BUFF_CHAN.template new file mode 100644 index 0000000..4ece642 --- /dev/null +++ b/builddir/db/EMU_BUFF_CHAN.template @@ -0,0 +1,77 @@ +## COMPRESS SCALARE VALUE +record(compress, "$(DEVICE):BUFF-$(DET)") { + field(NSAM, "$(NELM_COMP)") + field(ALG,"Circular Buffer") + field(INP,"$(SIGNAL_IN) CP") + } + +record(bo,"$(DEVICE):BUFF-$(DET)-RES"){ + field(OUT,"$(DEVICE):BUFF-$(DET).RES") +} + +## WAVEFORM FINAL +record(waveform, "$(DEVICE):BUFF-$(SIGNAL2)") { + field(FTVL, "FLOAT") + field(NELM, "$(NELM)") +} + +#################################################################### +########################## CREATE THE WAVEFORM ############### +#################################################################### + +## Function that compute the coefficient between MRAD and VOLTAGE +record(aSub, "$(DEVICE):BUFF-$(DET)-FUNC") { +######### INPUTS ######### +## Waveform data + field(FTA, "FLOAT") + field(NOA,$(NELM_COMP)) + field(INPA, "$(DEVICE):BUFF-$(DET)") + +## Waveform data reentrance + field(FTB, "FLOAT") + field(NOB,$(NELM)) + field(INPB,"$(DEVICE):BUFF-$(SIGNAL2)") + +## Motor position + field(FTC, "LONG") + field(NOC,1) + field(INPC,"$(DEVICE):$(SCAN_SLIT)-NORD_POS") + +## Nb angle total + field(FTD, "LONG") + field(NOD, "1") + field(INPD, "$(DEVICE):$(SCAN_EF).NPTS") + +## Nb position total + field(FTE, "LONG") + field(NOE, "1") + field(INPE, "$(DEVICE):$(SCAN_SLIT).NPTS") + +## Reset + field(FTF, "LONG") + field(NOF, "1") + field(INPF, "$(DEVICE):BUFF-$(DET)-DEL CP") + +######### OUTPUTS ######### +## Waveform (to save) + field(FTVA, "FLOAT") + field(NOVA, "$(NELM)") + field(OUTA, "$(DEVICE):BUFF-$(SIGNAL2) PP") + +## RESET (to save) + field(FTVB, "LONG") + field(NOVB, "1") + field(OUTB, "$(DEVICE):BUFF-$(DET)-DEL PP") + +######### FUNCTION ####### + field(SNAM, "CREATE_TAB") +} + +#################################################################### +########################## DELETE THE WAVEFORM ############### +#################################################################### + +record(bo, "$(DEVICE):BUFF-$(DET)-DEL") + { + } + diff --git a/builddir/db/EMU_BUFF_POS.template b/builddir/db/EMU_BUFF_POS.template new file mode 100644 index 0000000..caa4850 --- /dev/null +++ b/builddir/db/EMU_BUFF_POS.template @@ -0,0 +1,12 @@ +## COMPRESS SCALARE VALUE MTR POS +record(compress, "$(DEVICE):BUFF-MTR-POS") { + field(NSAM, "$(NELM_COMP)") + field(ALG,"Circular Buffer") + field(INP,"$(MTRREC).VAL CP") + } + +## Reset COMPRESS +record(bo,$(DEVICE):BUFF-POS-RES){ + field(OUT,"$(DEVICE):BUFF-MTR-POS.RES") +} + diff --git a/builddir/db/EMU_CALCUL.template b/builddir/db/EMU_CALCUL.template new file mode 100644 index 0000000..3076149 --- /dev/null +++ b/builddir/db/EMU_CALCUL.template @@ -0,0 +1,315 @@ +############################################ +############### Energy eV (U) ############## +############################################ +record(ao, "$(DEVICE):CALC-Energy-SP") +{ + field(DESC,"Energy eV (U)") + field(EGU, "eV") + field(DRVH, "100000") + field(DRVL, "0") + field(VAL,"75000") + field(PINI,"YES") + field(FLNK,"$(DEVICE):CALC-FuncCalcConv") +} +############################################ +## Distance Between Plates (d) ############# +############################################ +record(ao, "$(DEVICE):CALC-DistP-SP") +{ + field(DESC,"Distance Between Plates (d)") + field(EGU, "mm") + field(DRVH, "100") + field(DRVL, "0") + field(VAL,"7") + field(PINI,"YES") + field(FLNK,"$(DEVICE):CALC-FuncCalcConv") +} +############################################ +## Lenght plates(L) ######################## +############################################ +record(ao, "$(DEVICE):CALC-LenghP-SP") +{ + field(DESC,"Lenght plates(L)") + field(EGU, "mm") + field(DRVH, "100") + field(DRVL, "0") + field(VAL,"70") + field(PINI,"YES") + field(FLNK,"$(DEVICE):CALC-FuncCalcConv") +} + +############################################ +## Face Lenght plates(L1) ################## +############################################ +record(ao, "$(DEVICE):CALC-FacLenghP-SP") +{ + field(DESC,"Face Lenght plates(L1)") + field(EGU, "mm") + field(DRVH, "100") + field(DRVL, "0") + field(VAL,"10") + field(PINI,"YES") + field(FLNK,"$(DEVICE):CALC-FuncCalcConv") +} + +############################################ +## Rear Lenght plates(L3) ################## +############################################ +record(ao, "$(DEVICE):CALC-RearLenghP-SP") +{ + field(DESC,"Rear Lenght plates(L3)") + field(EGU, "mm") + field(DRVH, "100") + field(DRVL, "0") + field(VAL,"11") + field(PINI,"YES") + field(FLNK,"$(DEVICE):CALC-FuncCalcConv") +} + +######################################################################################## +## ## Function that compute the coefficient between MRAD and VOLTAGE) ################## +######################################################################################## +record(aSub, "$(DEVICE):CALC-FuncCalcConv") { +######### INPUTS ######### +## Energy eV (U) + field(FTA, "FLOAT") + field(NOA,1) + field(INPA, "$(DEVICE):CALC-Energy-SP") + +## Distance Between Plates (d) + field(FTB, "FLOAT") + field(NOB,1) + field(INPB, "$(DEVICE):CALC-DistP-SP") + +## Lenght plates(L) + field(FTC, "FLOAT") + field(NOC,1) + field(INPC, "$(DEVICE):CALC-LenghP-SP") + +##Face Lenght plates(L1) + field(FTD, "FLOAT") + field(NOD,1) + field(INPD, "$(DEVICE):CALC-FacLenghP-SP") + +## Rear Lenght plates(L3) + field(FTE, "FLOAT") + field(NOE,1) + field(INPE, "$(DEVICE):CALC-RearLenghP-SP") + +######### OUTPUTS ######### + field(FTVA, "FLOAT") + field(NOVA, "1") + field(OUTA, "$(DEVICE):CALC-FactVtoMRAD PP") + + field(FTVB, "FLOAT") + field(NOVB, "1") + field(OUTB, "$(DEVICE):CALC-FactMRADtoV PP") + +######### FUNCTION ####### + field(SNAM, "FACTOR_CONVERSION") +} + +############################################ +## Conversion factor for MRAD to V ######### +############################################ +record(ao, "$(DEVICE):CALC-FactMRADtoV") +{ + field(DESC,"Conv fact for MRAD to V)") + field(EGU, "V/mrad") + field(PREC, "4") +} + +############################################ +## Conversion factor for V to MRAD########## +############################################ +record(ao, "$(DEVICE):CALC-FactVtoMRAD") +{ + field(DESC,"Conv fact for V to MRAD)") + field(EGU, "mrad/V") + field(PREC, "4") +} + +########################################################################################### +########################## CREATE THE ANGLE WAVEFORM ###################################### +########################################################################################### + +## Function that compute the coefficient between MRAD and VOLTAGE +record(aSub, "$(DEVICE):CALC-BLDWFAngle") { +######### INPUTS ######### +## FACTOR CONVERSION VtoMRAD + field(FTA, "FLOAT") + field(NOA,1) + field(INPA, "$(DEVICE):CALC-FactVtoMRAD") + +## Plate volatge 1 Waveform (PS1) + field(FTB, "FLOAT") + field(NOB,$(NELM)) + field(INPB, "$(DAQPREFIX):$(DET2WF)") + +## Plate volatge 2 Waveform (PS2) + field(FTC, "FLOAT") + field(NOC,$(NELM)) + field(INPC, "$(DAQPREFIX):$(DET3WF)") + +## Plate volatge 1 average (PS1) + field(FTD, "FLOAT") + field(NOD,1) + field(INPD, "$(DEVICE):$(DET2)-COMP") + +## Plate volatge 2 average (PS2) + field(FTE, "FLOAT") + field(NOE, "1") + field(INPE, "$(DEVICE):$(DET3)-COMP") + +## Counter detector (cpt det) + field(FTE, "LONG") + field(NOE, "1") + field(INPE, "$(DEVICE):$(SCAN_EF)-NORD_POS CP") + +######### OUTPUTS ######### +## ANGLE Waveform converted in MRAD (to save) + field(FTVA, "FLOAT") + field(NOVA, "$(NELM)") + field(OUTA, "$(DEVICE):CALC-ANGLEwf PP") + +## ANGLE AVG value converted in VOLT + field(FTVB, "FLOAT") + field(NOVB, "1") + field(OUTB, "$(DEVICE):CALC-ANGLE PP") + +######### FUNCTION ####### + field(SNAM, "ANGLE_CALCUL") +} + +################ RESULTAT ANGLE ############## +## AVERAGE ANGLE +record(ao, "$(DEVICE):CALC-ANGLE") { +} + +## WAVEFORM ANGLE +record(waveform, "$(DEVICE):CALC-ANGLEwf") { + field(FTVL, "FLOAT") + field(NELM, "$(NELM)") +} + +########################################################################################### +########################## CALCUL PROJECTION X et Y ###################################### +########################################################################################### + +## Function that calculate the projection X et Y +record(aSub, "$(DEVICE):CALC-PROJXY") { +######### INPUTS ######### +## Angle Waveform + field(FTA, "FLOAT") + field(NOA,$(NELM)) + field(INPA, "$(DEVICE):BUFF-ANGLE") + +## Current Waveform + field(FTB, "FLOAT") + field(NOB,$(NELM)) + field(INPB, "$(DEVICE):BUFF-CURRENT") + +## Position Waveform + field(FTC, "FLOAT") + field(NOC,$(NELM)) + field(INPC, "$(DEVICE):BUFF-MTR-POS") + +## Nb angle total + field(FTD, "LONG") + field(NOD, "1") + field(INPD, "$(DEVICE):$(SCAN_EF).NPTS") + +## Nb position total + field(FTE, "LONG") + field(NOE, "1") + field(INPE, "$(DEVICE):$(SCAN_SLIT).NPTS") + +######### OUTPUTS ######### + +## PROJECTION X output + field(FTVA, "FLOAT") + field(NOVA, "1") + field(OUTA, "$(DEVICE):CALC-PROJ-X PP") + +## PROJECTION Y output + field(FTVB, "FLOAT") + field(NOVB, "1") + field(OUTB, "$(DEVICE):CALC-PROJ-Y PP") + +## RMS SIZE output + field(FTVC, "FLOAT") + field(NOVC, "1") + field(OUTC, "$(DEVICE):CALC-RMS-SIZE PP") + +## RMS ANGLE output + field(FTVD, "FLOAT") + field(NOVD, "1") + field(OUTD, "$(DEVICE):CALC-RMS-ANGLE PP") + +## RMS CORREL output + field(FTVE, "FLOAT") + field(NOVE, "1") + field(OUTE, "$(DEVICE):CALC-RMS-CORREL PP") + +## SIGMA output + field(FTVF, "FLOAT") + field(NOVF, "1") + field(OUTF, "$(DEVICE):CALC-SIGMA PP") + +######### FUNCTION ####### + field(SNAM, "CREATE_PROJXY") +} + +################ RESULTATS ################## +####### PROJECTION X ########## +record(ao, "$(DEVICE):CALC-PROJ-X") { + field(PREC, "4") +} + +## WAVEFORM PROJECTION X +record(waveform, "$(DEVICE):CALC-PROJ-Xwf") { + field(FTVL, "FLOAT") + field(NELM, "$(NELM)") +} + +## WAVEFORM PROJECTION X ABCISSE +record(waveform, "$(DEVICE):CALC-PROJ-Xabsc") { + field(FTVL, "FLOAT") + field(NELM, "$(NELM)") +} + +####### PROJECTION Y ########## +record(ao, "$(DEVICE):CALC-PROJ-Y") { + field(PREC, "4") +} + +## WAVEFORM PROJECTION Y +record(waveform, "$(DEVICE):CALC-PROJ-Ywf") { + field(FTVL, "FLOAT") + field(NELM, "$(NELM)") +} + +## WAVEFORM PROJECTION Y ABCISSE +record(waveform, "$(DEVICE):CALC-PROJ-Yabsc") { + field(FTVL, "FLOAT") + field(NELM, "$(NELM)") +} + +####### RMS ########## +record(ao, "$(DEVICE):CALC-RMS-SIZE") { + field(PREC, "4") +} + +record(ao, "$(DEVICE):CALC-RMS-ANGLE") { + field(PREC, "4") +} + +record(ao, "$(DEVICE):CALC-RMS-CORREL") { + field(PREC, "4") +} + +####### SIGMA ########## +record(ao, "$(DEVICE):CALC-SIGMA") { + field(PREC, "4") +} + diff --git a/builddir/db/EMU_DACQ_SYNC.template b/builddir/db/EMU_DACQ_SYNC.template new file mode 100644 index 0000000..ef587f1 --- /dev/null +++ b/builddir/db/EMU_DACQ_SYNC.template @@ -0,0 +1,48 @@ +############################################ +############### CURSOR RIGHT ############### +############################################ +record(ao, "$(PREFIX):$(DEVICE)V:RCURSOR_ms") +{ + field(DESC,"Cursor right") + field(EGU, "ms") + field(DRVH, "20") + field(DRVL, "0") + field(PREC, "2") + field(VAL, "1") + field(PINI,"YES") + field(FLNK,"$(PREFIX):$(DEVICE)V:RCURSOR_FAN") +} + +record(dfanout, "$(PREFIX):$(DEVICE)V:RCURSOR_FAN") +{ + field(DESC,"Cursor right dfanout") + field(DOL, "$(PREFIX):$(DEVICE)V:RCURSOR_ms") + field(OUTA, "$(PREFIX):$(DEVICE)V-$(SIGNAL1):RCURSOR_ms PP") + field(OUTB, "$(PREFIX):$(DEVICE)-$(SIGNAL2):RCURSOR_ms PP") + field(OUTC, "$(PREFIX):$(DEVICE)-$(SIGNAL3):RCURSOR_ms PP") + field(OMSL,"closed_loop") +} + +############################################ +############### CURSOR LEFT ############### +############################################ +record(ao, "$(PREFIX):$(DEVICE)V:LCURSOR_ms") +{ + field(DESC,"Cursor left") + field(EGU, "ms") + field(DRVH, "20") + field(DRVL, "0") + field(PREC, "2") + field(PREC, "2") + field(FLNK,"$(PREFIX):$(DEVICE)V:LCURSOR_FAN") +} + +record(dfanout, "$(PREFIX):$(DEVICE)V:LCURSOR_FAN") +{ + field(DESC,"Cursor left dfanout") + field(DOL, "$(PREFIX):$(DEVICE)V:LCURSOR_ms") + field(OUTA, "$(PREFIX):$(DEVICE)V-$(SIGNAL1):LCURSOR_ms PP") + field(OUTB, "$(PREFIX):$(DEVICE)-$(SIGNAL2):LCURSOR_ms PP") + field(OUTC, "$(PREFIX):$(DEVICE)-$(SIGNAL3):LCURSOR_ms PP") + field(OMSL,"closed_loop") +} diff --git a/builddir/db/EMU_PMAC-CONSOLE.template b/builddir/db/EMU_PMAC-CONSOLE.template new file mode 100644 index 0000000..a2a11dd --- /dev/null +++ b/builddir/db/EMU_PMAC-CONSOLE.template @@ -0,0 +1,14 @@ +#DEBUG +#sends ASCII string to pmac +record(stringout, "$(P):$(M):PMAC-ASK") { + field(DESC, "sends ASCII string to pmac") + field(OUT, "$(P):$(M):PMAC-ANSWER CP") + field(FLNK, "$(P):$(M):PMAC-ANSWER") +} +#receives ASCII string from pmac +record(stringin, "$(P):$(M):PMAC-ANSWER") { + field(DESC, "receives ASCII string from pmac") + field(DTYP, "stream") + field(INP, "@pmacVariables.proto sendString($(P):$(M):PMAC-ASK) $(SPORT)") +} + diff --git a/builddir/db/EMU_PMAC-GETBO.template b/builddir/db/EMU_PMAC-GETBO.template new file mode 100644 index 0000000..d512149 --- /dev/null +++ b/builddir/db/EMU_PMAC-GETBO.template @@ -0,0 +1,9 @@ +#get variables value from Geo Brick +record(ai, "$(P):$(M):$(NAME)_GET") { + field(DESC, "$(DESC)") + field(EGU, "$(EGU)") + field(DTYP, "stream") + field(PREC, "$(PREC)") + field(INP, "@pmacVariables.proto getVar($(VARIABLE)) $(SPORT)") + field(SCAN, ".2 second") #I/O Intr +} diff --git a/builddir/db/EMU_PMAC-SETBO.template b/builddir/db/EMU_PMAC-SETBO.template new file mode 100644 index 0000000..414c76b --- /dev/null +++ b/builddir/db/EMU_PMAC-SETBO.template @@ -0,0 +1,8 @@ +#set data to send to the Geo brick +record(bo, "$(P):$(M):$(NAME)_SET") { + field(DESC, "$(DESC)") + field(DTYP, "stream") + field(OUT, "@pmacVariables.proto setVar($(VARIABLE)) $(SPORT)") + field(ZNAM,"OFF") + field(ONAM,"ON") +} diff --git a/builddir/db/EMU_PROCESS.template b/builddir/db/EMU_PROCESS.template new file mode 100644 index 0000000..dca5594 --- /dev/null +++ b/builddir/db/EMU_PROCESS.template @@ -0,0 +1,222 @@ +############################################# +############## ANGLE MAX #################### +############################################# + +record(ao, "$(DEVICE):PROC-AngleMax-SP") { + field(EGU, "mrad") + field(PINI,"YES") + field(FLNK,"$(DEVICE):PROC-VoltMaxP1") +} + +record(calcout, "$(DEVICE):PROC-VoltMaxP1") { + field(VAL, "0") + field(INPA,"$(DEVICE):PROC-AngleMax-SP") + field(INPB,"$(DEVICE):CALC-FactMRADtoV") + ### /2000 => conversion in 0/10V ### + field(CALC, "(A*B)/2000") + field(PREC, "5") + field(EGU,"kV") + field(OUT,"$(DEVICE):$(SCAN_EF).P4SP PP") + field(FLNK,"$(DEVICE):PROC-VoltMaxP2") +} + +record(calcout,"$(DEVICE):PROC-VoltMaxP2") { + field(INPA,"$(DEVICE):PROC-VoltMaxP1") + ### DELTA MAX calcul + field(CALC, "A>0?A*(-1):A") + field(PREC, "5") + field(EGU,"kV") + field(OUT,"$(DEVICE):$(SCAN_EF).P1SP PP") +} + +############################################# +############ ANGLE MIM ###################### +############################################# + +record(ao, "$(DEVICE):PROC-AngleMin-SP") { + field(EGU, "mrad") + field(PINI,"YES") + field(FLNK,"$(DEVICE):PROC-VoltMinP1") +} + +record(calcout, "$(DEVICE):PROC-VoltMinP1") { + field(VAL, "0") + field(INPA,"$(DEVICE):PROC-AngleMin-SP") + field(INPB,"$(DEVICE):CALC-FactMRADtoV") + ### /2000 => conversion in 0/10V + field(CALC, "(A*B)/2000") + field(PREC, "5") + field(EGU,"kV") + field(OUT,"$(DEVICE):$(SCAN_EF).P4EP PP") + field(FLNK,"$(DEVICE):PROC-VoltMinP2") +} + +record(calcout,"$(DEVICE):PROC-VoltMinP2") { + field(INPA,"$(DEVICE):PROC-VoltMinP1") + ### DELTA MAX calcul + field(CALC, "A*(-1)") + field(PREC, "5") + field(EGU,"kV") + field(OUT,"$(DEVICE):$(SCAN_EF).P1EP PP") +} + +############################################# +############ ANGLE ########################## +############################################# + +record(calcout, "$(DEVICE):PROC-DeltaMaxVolt") { + field(INPA,"$(DEVICE):PROC-VoltMax PP") + field(INPB,"$(DEVICE):PROC-VoltMin PP") + ### DELTA MAX calcul + field(CALC, "(A-B)/2") + field(PREC, "4") + field(EGU,"kV") + field(OUT,"$(DEVICE):PROC-VoltMax-SP PP") + field(FLNK,"$(DEVICE):PROC-DeltaMinVolt") +} + +record(calcout, "$(DEVICE):PROC-DeltaMinVolt") { + field(INPA,"$(DEVICE):PROC-VoltMax-SP") + ### DELTA MIN calcul + field(CALC, "A*(-1)") + field(PREC, "4") + field(EGU,"kV") + field(OUT,"$(DEVICE):PROC-VoltMin-SP PP") +} + +record(dfanout,"$(DEVICE):PROC-VoltMin-SP"){ + field(OUTA,"$(DEVICE):$(SCAN_EF).P1SP PP") + field(OUTB,"$(DEVICE):$(SCAN_EF).P4EP PP") +} + +############################################# +############ ANGLE STP ###################### +############################################# + +record(calcout, "$(DEVICE):PROC-StepAngle") { + field(INPA,"$(DEVICE):PROC-AngleMax-SP CP") + field(INPB,"$(DEVICE):PROC-AngleMin-SP CP") + field(INPC,"$(DEVICE):$(SCAN_EF).NPTS CP") + field(CALC,"(A-B)/C") + field(EGU, "mrad") + field(PREC, "3") +} + +############################################# +############ LINK BEFORE/AFTER SCAN PS ###### +############################################# +record(seq,"$(DEVICE):PROC-PS-BF"){ + field(LNK1,"LNS-ISRC-010:PBI-EM:VER-BRAKE_SET PP") + field(DO1,"0") + field(LNK2,"$(DEVICE):BUFF-DET1-RES PP") + field(DO2,"1") + field(LNK3,"$(DEVICE):BUFF-DET23-RES PP") + field(DO3,"1") +} + +record(seq,"$(DEVICE):PROC-PS-AF"){ + field(LNK1,"LNS-ISRC-010:PBI-EM:VER-BRAKE_SET PP") + field(DO1,"1") + field(LNK2,"$(DEVICE):BUFF-DET1-FUNC.PROC PP") + field(DO2,"1") + field(LNK3,"$(DEVICE):BUFF-DET23-FUNC.PROC PP") + field(DO3,"1") + field(LNK4,"$(DEVICE):$(SCAN_EF).AWAIT PP") + field(DO4,"0") + field(DLY4,"0.1") +} + +record(seq,"$(DEVICE):PROC-SLIT-BF"){ + field(LNK1,"LNS-ISRC-010:PBI-EM:VER-BRAKE_SET PP") + field(DO1,"1") + field(LNK2,"$(DEVICE):BUFF-POS-RES PP") + field(DO2,"1") + field(LNK3,"$(DEVICE):BUFF-DET1-RES PP") + field(DO3,"1") + field(LNK4,"$(DEVICE):BUFF-DET23-RES PP") + field(DO4,"1") + field(LNK5,"$(DEVICE):BUFF-DET1-DEL PP") + field(DO5,"1") + field(LNK6,"$(DEVICE):BUFF-DET23-DEL PP") + field(DO6,"1") + field(LNK7,"$(DEVICE):PROC-INIT-CALC.PROC PP") + field(DO7,"1") +} + +record(seq,"$(DEVICE):PROC-SLIT-AF"){ + field(LNK1,"$(DEVICE):PROC-AUTO-HOME PP") + field(DO1,"1") + field(LNK2,"$(DEVICE):CALC-PROJXY.PROC PP") + field(DO2,"1") + field(LNK3,"LNS-ISRC-010:PBI-EM:HVhor-SP PP") + field(DO3,"0") + field(LNK4,"LNS-ISRC-010:PBI-EM:HVver-SP PP") + field(DO4,"0") +} + +record(seq,"$(DEVICE):PROC-SLIT-AB"){ + field(LNK1,"$(DEVICE):PROC-AUTO-HOME PP") + field(DO1,"1") + field(LNK2,"LNS-ISRC-010:PBI-EM:HVhor-SP PP") + field(DO2,"0") + field(LNK3,"LNS-ISRC-010:PBI-EM:HVver-SP PP") + field(DO3,"0") + field(LNK4,"$(DEVICE):PROC-INIT-CALC.PROC PP") + field(DO4,"1") +} + +############################################# +################## INIT ##################### +############################################# +record(seq,"$(DEVICE):PROC-INIT-CALC"){ + field(LNK1,"$(DEVICE):CALC-RMS-SIZE PP") + field(DO1,"0") + field(LNK2,"$(DEVICE):CALC-RMS-ANGLE PP") + field(DO2,"0") + field(LNK3,"$(DEVICE):CALC-RMS-CORREL PP") + field(DO3,"0") + field(LNK4,"$(DEVICE):CALC-SIGMA PP") + field(DO4,"0") + field(LNK5,"$(DEVICE):CALC-PROJ-Y PP") + field(DO5,"0") + field(LNK6,"$(DEVICE):CALC-PROJ-X PP") + field(DO6,"0") +} + +############################################# +############ RETOUR HOME AUTO ############### +############################################# +record(bo,"$(DEVICE):PROC-AUTO-HOME") { +} + +############################################# +############ SIMULATION ##################### +############################################# +record(bo,"$(DEVICE):PROC-SIMU") { +field(ZNAM,"HARD") +field(ONAM,"SIMU") +} + +############################################# +############ REPORT FILE ##################### +############################################# + +## Function that create a report of the EMIT +#record(aSub, "$(DEVICE):PROC-REPORT") { +######### INPUTS ######### +## Energie +# field(FTA, "FLOAT") +# field(NOA,1) +# field(INPA,"$(DEVICE):CALC-Energy-SP") + +## TIMESTAMP START +# field(FTB, "FLOAT") +# field(NOB,1) +# field(INPB, "$(DEVICE):BUFF-CURRENT") + +######### FUNCTION ####### +# field(SNAM, "CREATE_REPORT") +#} + + + diff --git a/builddir/doc/README.md b/builddir/doc/README.md new file mode 100644 index 0000000..e69de29 diff --git a/builddir/misc/pmacVariables.proto b/builddir/misc/pmacVariables.proto new file mode 100644 index 0000000..08acdc2 --- /dev/null +++ b/builddir/misc/pmacVariables.proto @@ -0,0 +1,37 @@ +# Streams protocol file for the pmacStreams protocol +# Initial version NPR 04/2006 + +# use "streamReload" to reload this file without restarting the IOC + +ExtraInput = Ignore; +ReadTimeout = 500; +OutTerminator = ""; +InTerminator = ACK; +Separator = CR; + + +sendString +{ + out "%(\$1)s" CR; + in "%s"; +} + + +setVar +{ + out "\$1=%i" CR; + in; +} + +getVar +{ + out "\$1" CR; + in "%i"; +} + + + + + + + diff --git a/builddir/opi/EMU.opi b/builddir/opi/EMU.opi new file mode 100644 index 0000000..9422d06 --- /dev/null +++ b/builddir/opi/EMU.opi @@ -0,0 +1,10386 @@ +<?xml version="1.0" encoding="UTF-8"?> +<display typeId="org.csstudio.opibuilder.Display" version="1.0.0"> + <show_close_button>true</show_close_button> + <rules /> + <wuid>3f06f9b8:152877ca726:-7d52</wuid> + <show_grid>true</show_grid> + <auto_zoom_to_fit_all>true</auto_zoom_to_fit_all> + <scripts /> + <height>1600</height> + <macros> + <include_parent_macros>true</include_parent_macros> + <DTACQ-NAME>LNS-ISRC-010:PBI-EM</DTACQ-NAME> + <DEVICE_FC>FC</DEVICE_FC> + <PREFIX_SIG>DACQ</PREFIX_SIG> + <PREFIX_MTR>LNS-ISRC-010:PBI-EM-PMAC</PREFIX_MTR> + <NAME_MTR>MTR</NAME_MTR> + <PMAC_MTR>MTR1</PMAC_MTR> + <NAME_PS>PS</NAME_PS> + <PREFIX_PS>LNS-ISRC-010:PBI-EM:HV</PREFIX_PS> + <PREFIX_SCAN>LNS-ISRC-010:PBI-EMV</PREFIX_SCAN> + <SCAN>MOTOR</SCAN> + <P>SOURCE</P> + <M>EMITTANCE-METTER</M> + <PROC>PROC</PROC> + <CALC>CALC</CALC> + <DEVICE_HV1>HV1</DEVICE_HV1> + <DEVICE_HV2>HV2</DEVICE_HV2> + </macros> + <boy_version>4.0.103.201506251634</boy_version> + <show_edit_range>true</show_edit_range> + <widget_type>Display</widget_type> + <auto_scale_widgets> + <auto_scale_widgets>false</auto_scale_widgets> + <min_width>-1</min_width> + <min_height>-1</min_height> + </auto_scale_widgets> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <width>2000</width> + <x>-1</x> + <name></name> + <grid_space>6</grid_space> + <show_ruler>true</show_ruler> + <y>-1</y> + <snap_to_geometry>true</snap_to_geometry> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <widget typeId="org.csstudio.opibuilder.widgets.tab" version="1.0.0"> + <active_tab>0</active_tab> + <tooltip></tooltip> + <height>1165</height> + <tab_2_icon_path></tab_2_icon_path> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <tab_0_foreground_color> + <color red="0" green="0" blue="0" /> + </tab_0_foreground_color> + <actions hook="false" hook_all="false" /> + <tab_1_enabled>true</tab_1_enabled> + <border_style>0</border_style> + <enabled>true</enabled> + <wuid>2fea3147:153609206ed:-7766</wuid> + <tab_1_background_color> + <color red="255" green="255" blue="255" /> + </tab_1_background_color> + <tab_1_icon_path></tab_1_icon_path> + <tab_2_foreground_color> + <color red="0" green="0" blue="0" /> + </tab_2_foreground_color> + <tab_1_font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </tab_1_font> + <tab_2_enabled>true</tab_2_enabled> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <width>2491</width> + <x>18</x> + <horizontal_tabs>true</horizontal_tabs> + <y>102</y> + <rules /> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <visible>true</visible> + <tab_0_background_color> + <color red="255" green="255" blue="255" /> + </tab_0_background_color> + <widget_type>Tabbed Container</widget_type> + <tab_2_font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </tab_2_font> + <name></name> + <minimum_tab_height>10</minimum_tab_height> + <tab_2_title>PLC</tab_2_title> + <tab_0_font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </tab_0_font> + <tab_2_background_color> + <color red="255" green="255" blue="255" /> + </tab_2_background_color> + <tab_0_title>SCANNING</tab_0_title> + <tab_1_foreground_color> + <color red="0" green="0" blue="0" /> + </tab_1_foreground_color> + <tab_1_title>DTACQ</tab_1_title> + <scripts /> + <tab_count>3</tab_count> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <tab_0_icon_path></tab_0_icon_path> + <tab_0_enabled>true</tab_0_enabled> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <widget typeId="org.csstudio.opibuilder.widgets.groupingContainer" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <rules /> + <enabled>true</enabled> + <wuid>-4f668e34:1537ecf193c:-7f8d</wuid> + <transparent>true</transparent> + <lock_children>false</lock_children> + <scripts /> + <height>1129</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <visible>true</visible> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Grouping Container</widget_type> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <width>2489</width> + <x>1</x> + <name>SCANNING</name> + <y>1</y> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <fc>false</fc> + <show_scrollbar>true</show_scrollbar> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + <widget typeId="org.csstudio.opibuilder.widgets.RoundedRectangle" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <line_width>0</line_width> + <horizontal_fill>true</horizontal_fill> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <rules /> + <enabled>true</enabled> + <wuid>1e771979:1565068c2e3:-4ace</wuid> + <transparent>false</transparent> + <pv_value /> + <alpha>255</alpha> + <corner_height>16</corner_height> + <bg_gradient_color> + <color red="255" green="255" blue="255" /> + </bg_gradient_color> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>1099</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>true</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name></pv_name> + <gradient>false</gradient> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <anti_alias>true</anti_alias> + <corner_width>16</corner_width> + <line_style>0</line_style> + <widget_type>Rounded Rectangle</widget_type> + <fg_gradient_color> + <color red="255" green="255" blue="255" /> + </fg_gradient_color> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="Container Grey" red="200" green="200" blue="200" /> + </background_color> + <width>349</width> + <x>29</x> + <name>Rounded Rectangle_5</name> + <y>12</y> + <fill_level>0.0</fill_level> + <foreground_color> + <color red="255" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + <line_color> + <color red="128" green="0" blue="255" /> + </line_color> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.tab" version="1.0.0"> + <active_tab>0</active_tab> + <tooltip></tooltip> + <tab_3_icon_path></tab_3_icon_path> + <height>295</height> + <tab_2_icon_path></tab_2_icon_path> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <tab_0_foreground_color> + <color red="0" green="0" blue="0" /> + </tab_0_foreground_color> + <actions hook="false" hook_all="false" /> + <tab_1_enabled>true</tab_1_enabled> + <border_style>0</border_style> + <enabled>true</enabled> + <wuid>-1ab698cd:1586d27a42e:-6643</wuid> + <tab_1_background_color> + <color name="Field Background Grey" red="240" green="240" blue="240" /> + </tab_1_background_color> + <tab_1_icon_path></tab_1_icon_path> + <tab_2_foreground_color> + <color red="0" green="0" blue="0" /> + </tab_2_foreground_color> + <tab_1_font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </tab_1_font> + <tab_3_title>BPS</tab_3_title> + <tab_2_enabled>true</tab_2_enabled> + <background_color> + <color name="Container Grey" red="200" green="200" blue="200" /> + </background_color> + <width>326</width> + <x>42</x> + <horizontal_tabs>true</horizontal_tabs> + <y>78</y> + <rules /> + <tab_3_font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </tab_3_font> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <visible>true</visible> + <tab_0_background_color> + <color name="Field Background Grey" red="240" green="240" blue="240" /> + </tab_0_background_color> + <tab_3_foreground_color> + <color red="0" green="0" blue="0" /> + </tab_3_foreground_color> + <widget_type>Tabbed Container</widget_type> + <tab_2_font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </tab_2_font> + <tab_3_background_color> + <color name="Field Background Grey" red="240" green="240" blue="240" /> + </tab_3_background_color> + <tab_3_enabled>true</tab_3_enabled> + <name>Tabbed Container_1</name> + <minimum_tab_height>10</minimum_tab_height> + <tab_2_title>Motor</tab_2_title> + <tab_0_font> + <opifont.name fontName="OpenSans" height="10" style="1">Small Bold</opifont.name> + </tab_0_font> + <tab_2_background_color> + <color name="Field Background Grey" red="240" green="240" blue="240" /> + </tab_2_background_color> + <tab_0_title>DACQ</tab_0_title> + <tab_1_foreground_color> + <color red="0" green="0" blue="0" /> + </tab_1_foreground_color> + <tab_1_title>Dimension</tab_1_title> + <scripts /> + <tab_count>4</tab_count> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <tab_0_icon_path></tab_0_icon_path> + <tab_0_enabled>true</tab_0_enabled> + <foreground_color> + <color name="Container Grey" red="200" green="200" blue="200" /> + </foreground_color> + <widget typeId="org.csstudio.opibuilder.widgets.groupingContainer" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <rules /> + <enabled>true</enabled> + <wuid>-1168daa3:158859bc9c3:-6933</wuid> + <transparent>true</transparent> + <lock_children>false</lock_children> + <scripts /> + <height>259</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <visible>true</visible> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Grouping Container</widget_type> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <width>324</width> + <x>1</x> + <name>DACQ</name> + <y>1</y> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <fc>false</fc> + <show_scrollbar>true</show_scrollbar> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>-1168daa3:158859bc9c3:-691d</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>T1</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>151</width> + <x>49</x> + <name>Label Orientation_1</name> + <y>54</y> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="2.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules> + <rule name="Disable" prop_id="enabled" out_exp="false"> + <exp bool_exp="pv0==0"> + <value>true</value> + </exp> + <exp bool_exp="pv0==1"> + <value>false</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(NAME_MTR).BUSY</pv> + </rule> + </rules> + <pv_value /> + <auto_size>false</auto_size> + <text></text> + <rotation_angle>0.0</rotation_angle> + <show_units>true</show_units> + <height>31</height> + <multiline_input>false</multiline_input> + <border_width>1</border_width> + <visible>true</visible> + <pv_name>$(DTACQ-NAME)V:LCURSOR_ms</pv_name> + <selector_type>0</selector_type> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Input</widget_type> + <confirm_message></confirm_message> + <name>Text Input</name> + <style>0</style> + <actions hook="false" hook_all="false" /> + <border_style>3</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>false</enabled> + <wuid>-1168daa3:158859bc9c3:-691c</wuid> + <transparent>false</transparent> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <format_type>0</format_type> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>100</width> + <x>168</x> + <y>48</y> + <maximum>1.7976931348623157E308</maximum> + <foreground_color> + <color name="KeyboardEntry" red="0" green="255" blue="255" /> + </foreground_color> + <minimum>-1.7976931348623157E308</minimum> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>-1168daa3:158859bc9c3:-691b</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>T2</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>174</width> + <x>38</x> + <name>Label Orientation_2</name> + <y>96</y> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-1168daa3:158859bc9c3:-68d0</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Measure interval</text> + <scripts /> + <height>20</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <width>151</width> + <x>142</x> + <name>Label</name> + <y>18</y> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-1168daa3:158859bc9c3:-68c6</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Frequency sample </text> + <scripts /> + <height>20</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <width>151</width> + <x>6</x> + <name>Label_164</name> + <y>138</y> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextUpdate" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-6047e935:1589bd389ef:-608e</wuid> + <transparent>false</transparent> + <pv_value /> + <auto_size>false</auto_size> + <text>######</text> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <border_alarm_sensitive>true</border_alarm_sensitive> + <show_units>true</show_units> + <height>31</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>$(DTACQ-NAME):CARD0:SAMPLINGRATE-RB</pv_name> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Update</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <wrap_words>false</wrap_words> + <format_type>0</format_type> + <background_color> + <color red="70" green="70" blue="70" /> + </background_color> + <width>100</width> + <x>168</x> + <name>Text Update</name> + <y>132</y> + <foreground_color> + <color name="Green On" red="0" green="255" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="2.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules> + <rule name="Disable" prop_id="enabled" out_exp="false"> + <exp bool_exp="pv0==0"> + <value>true</value> + </exp> + <exp bool_exp="pv0==1"> + <value>false</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(NAME_MTR).BUSY</pv> + </rule> + </rules> + <pv_value /> + <auto_size>false</auto_size> + <text></text> + <rotation_angle>0.0</rotation_angle> + <show_units>true</show_units> + <height>31</height> + <multiline_input>false</multiline_input> + <border_width>1</border_width> + <visible>true</visible> + <pv_name>$(DTACQ-NAME)V:RCURSOR_ms</pv_name> + <selector_type>0</selector_type> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Input</widget_type> + <confirm_message></confirm_message> + <name>Text Input</name> + <style>0</style> + <actions hook="false" hook_all="false" /> + <border_style>3</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>false</enabled> + <wuid>-6047e935:1589bd389ef:-5e00</wuid> + <transparent>false</transparent> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <format_type>0</format_type> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>100</width> + <x>168</x> + <y>90</y> + <maximum>1.7976931348623157E308</maximum> + <foreground_color> + <color name="KeyboardEntry" red="0" green="255" blue="255" /> + </foreground_color> + <minimum>-1.7976931348623157E308</minimum> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.groupingContainer" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <rules /> + <enabled>true</enabled> + <wuid>-1ab698cd:1586d27a42e:-6642</wuid> + <transparent>true</transparent> + <lock_children>false</lock_children> + <scripts /> + <height>259</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <visible>false</visible> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Grouping Container</widget_type> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <width>324</width> + <x>1</x> + <name>Dimension</name> + <y>1</y> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <fc>false</fc> + <show_scrollbar>true</show_scrollbar> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>-20a75393:15809f6e4ee:-6feb</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Energy (eV)</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>151</width> + <x>12</x> + <name>Label Orientation_1</name> + <y>24</y> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="2.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <pv_value /> + <auto_size>false</auto_size> + <text></text> + <rotation_angle>0.0</rotation_angle> + <show_units>true</show_units> + <height>31</height> + <multiline_input>false</multiline_input> + <border_width>1</border_width> + <visible>true</visible> + <pv_name>${PREFIX_SCAN}:${CALC}-Energy-SP</pv_name> + <selector_type>0</selector_type> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Input</widget_type> + <confirm_message></confirm_message> + <name>Text Input</name> + <style>0</style> + <actions hook="false" hook_all="false" /> + <border_style>3</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>true</enabled> + <wuid>-20a75393:15809f6e4ee:-6fea</wuid> + <transparent>false</transparent> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <format_type>0</format_type> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>100</width> + <x>198</x> + <y>18</y> + <maximum>1.7976931348623157E308</maximum> + <foreground_color> + <color name="KeyboardEntry" red="0" green="255" blue="255" /> + </foreground_color> + <minimum>-1.7976931348623157E308</minimum> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>-20a75393:15809f6e4ee:-6fe9</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Distance betw. Plates</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>false</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>174</width> + <x>13</x> + <name>Label Orientation_2</name> + <y>66</y> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="2.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <pv_value /> + <auto_size>false</auto_size> + <text></text> + <rotation_angle>0.0</rotation_angle> + <show_units>true</show_units> + <height>31</height> + <multiline_input>false</multiline_input> + <border_width>1</border_width> + <visible>false</visible> + <pv_name>${PREFIX_SCAN}:${CALC}-DistP-SP</pv_name> + <selector_type>0</selector_type> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Input</widget_type> + <confirm_message></confirm_message> + <name>Text Input_2</name> + <style>0</style> + <actions hook="false" hook_all="false" /> + <border_style>3</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>true</enabled> + <wuid>-20a75393:15809f6e4ee:-6fe8</wuid> + <transparent>false</transparent> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <format_type>0</format_type> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>100</width> + <x>198</x> + <y>60</y> + <maximum>1.7976931348623157E308</maximum> + <foreground_color> + <color name="KeyboardEntry" red="0" green="255" blue="255" /> + </foreground_color> + <minimum>-1.7976931348623157E308</minimum> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>-20a75393:15809f6e4ee:-6fe7</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Plate lenght</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>false</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>199</width> + <x>0</x> + <name>Label Orientation_3</name> + <y>106</y> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="2.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <pv_value /> + <auto_size>false</auto_size> + <text></text> + <rotation_angle>0.0</rotation_angle> + <show_units>true</show_units> + <height>31</height> + <multiline_input>false</multiline_input> + <border_width>1</border_width> + <visible>false</visible> + <pv_name>${PREFIX_SCAN}:${CALC}-LenghP-SP</pv_name> + <selector_type>0</selector_type> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Input</widget_type> + <confirm_message></confirm_message> + <name>Text Input_3</name> + <style>0</style> + <actions hook="false" hook_all="false" /> + <border_style>3</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>true</enabled> + <wuid>-20a75393:15809f6e4ee:-6fe6</wuid> + <transparent>false</transparent> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <format_type>0</format_type> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>100</width> + <x>198</x> + <y>100</y> + <maximum>1.7976931348623157E308</maximum> + <foreground_color> + <color name="KeyboardEntry" red="0" green="255" blue="255" /> + </foreground_color> + <minimum>-1.7976931348623157E308</minimum> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="2.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <pv_value /> + <auto_size>false</auto_size> + <text></text> + <rotation_angle>0.0</rotation_angle> + <show_units>true</show_units> + <height>31</height> + <multiline_input>false</multiline_input> + <border_width>1</border_width> + <visible>false</visible> + <pv_name>${PREFIX_SCAN}:${CALC}-FacLenghP-SP</pv_name> + <selector_type>0</selector_type> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Input</widget_type> + <confirm_message></confirm_message> + <name>Text Input_4</name> + <style>0</style> + <actions hook="false" hook_all="false" /> + <border_style>3</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>true</enabled> + <wuid>-20a75393:15809f6e4ee:-6fe4</wuid> + <transparent>false</transparent> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <format_type>0</format_type> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>100</width> + <x>198</x> + <y>145</y> + <maximum>1.7976931348623157E308</maximum> + <foreground_color> + <color name="KeyboardEntry" red="0" green="255" blue="255" /> + </foreground_color> + <minimum>-1.7976931348623157E308</minimum> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>-20a75393:15809f6e4ee:-6fe5</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Face Plate lenght</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>false</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>199</width> + <x>0</x> + <name>Label Orientation_4</name> + <y>151</y> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>-20a75393:15809f6e4ee:-6fa3</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Rear Plate lenght</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>false</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>199</width> + <x>0</x> + <name>Label Orientation_4</name> + <y>195</y> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="2.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <pv_value /> + <auto_size>false</auto_size> + <text></text> + <rotation_angle>0.0</rotation_angle> + <show_units>true</show_units> + <height>31</height> + <multiline_input>false</multiline_input> + <border_width>1</border_width> + <visible>false</visible> + <pv_name>${PREFIX_SCAN}:${CALC}-RearLenghP-SP</pv_name> + <selector_type>0</selector_type> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Input</widget_type> + <confirm_message></confirm_message> + <name>Text Input_4</name> + <style>0</style> + <actions hook="false" hook_all="false" /> + <border_style>3</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>true</enabled> + <wuid>-20a75393:15809f6e4ee:-6fa2</wuid> + <transparent>false</transparent> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <format_type>0</format_type> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>100</width> + <x>198</x> + <y>189</y> + <maximum>1.7976931348623157E308</maximum> + <foreground_color> + <color name="KeyboardEntry" red="0" green="255" blue="255" /> + </foreground_color> + <minimum>-1.7976931348623157E308</minimum> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.groupingContainer" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <rules /> + <enabled>true</enabled> + <wuid>-1ab698cd:1586d27a42e:-62df</wuid> + <transparent>true</transparent> + <lock_children>false</lock_children> + <scripts /> + <height>259</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <visible>false</visible> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Grouping Container</widget_type> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <width>324</width> + <x>1</x> + <name>Motor</name> + <y>1</y> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <fc>false</fc> + <show_scrollbar>true</show_scrollbar> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>-1ab698cd:1586d27a42e:-62d1</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Velocity</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>151</width> + <x>12</x> + <name>Label Orientation_1</name> + <y>30</y> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="2.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <precision>2</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules> + <rule name="Disable" prop_id="enabled" out_exp="false"> + <exp bool_exp="pv0==1"> + <value>false</value> + </exp> + <exp bool_exp="pv0==0"> + <value>true</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(NAME_MTR).BUSY</pv> + </rule> + </rules> + <pv_value /> + <auto_size>false</auto_size> + <text></text> + <rotation_angle>0.0</rotation_angle> + <show_units>true</show_units> + <height>31</height> + <multiline_input>false</multiline_input> + <border_width>1</border_width> + <visible>true</visible> + <pv_name>$(PREFIX_MTR):$(PMAC_MTR).VELO</pv_name> + <selector_type>0</selector_type> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>false</precision_from_pv> + <widget_type>Text Input</widget_type> + <confirm_message></confirm_message> + <name>Text Input</name> + <style>0</style> + <actions hook="false" hook_all="false" /> + <border_style>3</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>true</enabled> + <wuid>-1ab698cd:1586d27a42e:-62d0</wuid> + <transparent>false</transparent> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <format_type>0</format_type> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>130</width> + <x>168</x> + <y>24</y> + <maximum>7.0</maximum> + <foreground_color> + <color name="KeyboardEntry" red="0" green="255" blue="255" /> + </foreground_color> + <minimum>-1.7976931348623157E308</minimum> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>-1ab698cd:1586d27a42e:-62b9</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Homing Velocity</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>151</width> + <x>12</x> + <name>Label Orientation_1</name> + <y>72</y> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="2.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <precision>2</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules> + <rule name="Disable" prop_id="enabled" out_exp="false"> + <exp bool_exp="pv0==1"> + <value>false</value> + </exp> + <exp bool_exp="pv0==0"> + <value>true</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(NAME_MTR).BUSY</pv> + </rule> + </rules> + <pv_value /> + <auto_size>false</auto_size> + <text></text> + <rotation_angle>0.0</rotation_angle> + <show_units>true</show_units> + <height>31</height> + <multiline_input>false</multiline_input> + <border_width>1</border_width> + <visible>true</visible> + <pv_name>$(PREFIX_MTR):$(PMAC_MTR).HVEL</pv_name> + <selector_type>0</selector_type> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>false</precision_from_pv> + <widget_type>Text Input</widget_type> + <confirm_message></confirm_message> + <name>Text Input</name> + <style>0</style> + <actions hook="false" hook_all="false" /> + <border_style>3</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>true</enabled> + <wuid>-1ab698cd:1586d27a42e:-62b8</wuid> + <transparent>false</transparent> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <format_type>0</format_type> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>130</width> + <x>168</x> + <y>66</y> + <maximum>7.0</maximum> + <foreground_color> + <color name="KeyboardEntry" red="0" green="255" blue="255" /> + </foreground_color> + <minimum>-1.7976931348623157E308</minimum> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>-1ab698cd:1586d27a42e:-6298</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Acc. time</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>151</width> + <x>12</x> + <name>Label Orientation_1</name> + <y>114</y> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="2.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <precision>2</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules> + <rule name="Disable" prop_id="enabled" out_exp="false"> + <exp bool_exp="pv0==1"> + <value>false</value> + </exp> + <exp bool_exp="pv0==0"> + <value>true</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(NAME_MTR).BUSY</pv> + </rule> + </rules> + <pv_value /> + <auto_size>false</auto_size> + <text></text> + <rotation_angle>0.0</rotation_angle> + <show_units>true</show_units> + <height>31</height> + <multiline_input>false</multiline_input> + <border_width>1</border_width> + <visible>true</visible> + <pv_name>$(PREFIX_MTR):$(PMAC_MTR).ACCL</pv_name> + <selector_type>0</selector_type> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>false</precision_from_pv> + <widget_type>Text Input</widget_type> + <confirm_message></confirm_message> + <name>Text Input</name> + <style>0</style> + <actions hook="false" hook_all="false" /> + <border_style>3</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>true</enabled> + <wuid>-1ab698cd:1586d27a42e:-6297</wuid> + <transparent>false</transparent> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <format_type>0</format_type> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>130</width> + <x>168</x> + <y>108</y> + <maximum>1.7976931348623157E308</maximum> + <foreground_color> + <color name="KeyboardEntry" red="0" green="255" blue="255" /> + </foreground_color> + <minimum>-1.7976931348623157E308</minimum> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.ActionButton" version="2.0.0"> + <toggle_button>false</toggle_button> + <border_style>6</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <push_action_index>0</push_action_index> + <rules> + <rule name="Enable" prop_id="enabled" out_exp="false"> + <exp bool_exp="pv0==0"> + <value>true</value> + </exp> + <exp bool_exp="pv0==1"> + <value>false</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(NAME_MTR).BUSY</pv> + </rule> + </rules> + <enabled>true</enabled> + <wuid>-1ab698cd:1586d27a42e:-5fde</wuid> + <pv_value /> + <text>RESET</text> + <scripts /> + <border_alarm_sensitive>true</border_alarm_sensitive> + <height>25</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <image></image> + <visible>true</visible> + <pv_name></pv_name> + <border_color> + <color name="Button Grey" red="180" green="180" blue="180" /> + </border_color> + <widget_type>Action Button</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="Button Grey" red="180" green="180" blue="180" /> + </background_color> + <width>61</width> + <x>12</x> + <name>Action Button Template</name> + <y>231</y> + <style>0</style> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false"> + <action type="WRITE_PV"> + <pv_name>$(PREFIX_MTR):$(PMAC_MTR)-ACTMTR.PROC</pv_name> + <value>1</value> + <timeout>10</timeout> + <confirm_message></confirm_message> + <description></description> + </action> + </actions> + <font> + <opifont.name fontName="OpenSans" height="10" style="1">Small Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>-1168daa3:158859bc9c3:-2f8d</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Position CONS</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>151</width> + <x>12</x> + <name>Label Orientation_1</name> + <y>156</y> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="2.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <precision>2</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules> + <rule name="Disable" prop_id="enabled" out_exp="false"> + <exp bool_exp="pv0==1 || pv1==0"> + <value>false</value> + </exp> + <exp bool_exp="pv0==0 && pv1==1"> + <value>true</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(NAME_MTR).BUSY</pv> + <pv trig="true">LNS-ISRC-010:PBI-EM:VER-BRAKE_SET</pv> + </rule> + </rules> + <pv_value /> + <auto_size>false</auto_size> + <text></text> + <rotation_angle>0.0</rotation_angle> + <show_units>true</show_units> + <height>31</height> + <multiline_input>false</multiline_input> + <border_width>1</border_width> + <visible>true</visible> + <pv_name>$(PREFIX_MTR):$(PMAC_MTR).VAL</pv_name> + <selector_type>0</selector_type> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>false</precision_from_pv> + <widget_type>Text Input</widget_type> + <confirm_message></confirm_message> + <name>Text Input</name> + <style>0</style> + <actions hook="false" hook_all="false" /> + <border_style>3</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>true</enabled> + <wuid>-1168daa3:158859bc9c3:-2f8c</wuid> + <transparent>false</transparent> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <format_type>0</format_type> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>130</width> + <x>168</x> + <y>150</y> + <maximum>1.7976931348623157E308</maximum> + <foreground_color> + <color name="KeyboardEntry" red="0" green="255" blue="255" /> + </foreground_color> + <minimum>-1.7976931348623157E308</minimum> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.ActionButton" version="2.0.0"> + <toggle_button>false</toggle_button> + <border_style>6</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <push_action_index>0</push_action_index> + <rules> + <rule name="Enable" prop_id="enabled" out_exp="false"> + <exp bool_exp="pv0==1 && pv1==0"> + <value>true</value> + </exp> + <exp bool_exp="pv0==0 || pv1==1"> + <value>false</value> + </exp> + <pv trig="true">LNS-ISRC-010:PBI-EM:VER-BRAKE_SET</pv> + <pv trig="true">${PREFIX_SCAN}:$(NAME_MTR).BUSY</pv> + </rule> + </rules> + <enabled>true</enabled> + <wuid>-1168daa3:158859bc9c3:-8e0</wuid> + <pv_value /> + <text>MOVE</text> + <scripts /> + <border_alarm_sensitive>true</border_alarm_sensitive> + <height>25</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <image></image> + <visible>true</visible> + <pv_name></pv_name> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Action Button</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="IO Button" red="178" green="178" blue="178" /> + </background_color> + <width>73</width> + <x>180</x> + <name>Action Button Template_3</name> + <y>198</y> + <style>0</style> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false"> + <action type="WRITE_PV"> + <pv_name>$(PREFIX_MTR):$(PMAC_MTR).SPMG</pv_name> + <value>2</value> + <timeout>10</timeout> + <confirm_message></confirm_message> + <description></description> + </action> + </actions> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.ActionButton" version="2.0.0"> + <toggle_button>false</toggle_button> + <border_style>6</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <push_action_index>0</push_action_index> + <rules> + <rule name="Enable" prop_id="enabled" out_exp="false"> + <exp bool_exp="pv0==1"> + <value>false</value> + </exp> + <exp bool_exp="pv0==0"> + <value>true</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(NAME_MTR).BUSY</pv> + </rule> + </rules> + <enabled>true</enabled> + <wuid>-1168daa3:158859bc9c3:-3d9</wuid> + <pv_value /> + <text>STOP</text> + <scripts /> + <border_alarm_sensitive>true</border_alarm_sensitive> + <height>25</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <image></image> + <visible>true</visible> + <pv_name></pv_name> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Action Button</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="Major" red="255" green="0" blue="0" /> + </background_color> + <width>73</width> + <x>90</x> + <name>Action Button Template_3</name> + <y>198</y> + <style>0</style> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false"> + <action type="WRITE_PV"> + <pv_name>$(PREFIX_MTR):$(PMAC_MTR).SPMG</pv_name> + <value>0</value> + <timeout>10</timeout> + <confirm_message></confirm_message> + <description></description> + </action> + </actions> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.BoolSwitch" version="1.0.0"> + <toggle_button>true</toggle_button> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <push_action_index>0</push_action_index> + <rules /> + <effect_3d>true</effect_3d> + <bit>-1</bit> + <enabled>true</enabled> + <wuid>-1168daa3:158859bc9c3:-380</wuid> + <on_color> + <color name="Green Off" red="0" green="30" blue="0" /> + </on_color> + <show_confirm_dialog>0</show_confirm_dialog> + <password></password> + <pv_value /> + <released_action_index>1</released_action_index> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>52</height> + <on_label>OFF</on_label> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>LNS-ISRC-010:PBI-EM:VER-BRAKE_GET</pv_name> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Boolean Switch</widget_type> + <off_color> + <color name="Major" red="255" green="0" blue="0" /> + </off_color> + <confirm_message>Are your sure you want to do this?</confirm_message> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <boolean_label_position>0</boolean_label_position> + <width>49</width> + <x>271</x> + <name>Boolean Switch</name> + <data_type>0</data_type> + <y>204</y> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false"> + <action type="WRITE_PV"> + <pv_name>LNS-ISRC-010:PBI-EM:VER-BRAKE_SET</pv_name> + <value>1</value> + <timeout>10</timeout> + <confirm_message></confirm_message> + <description></description> + </action> + <action type="WRITE_PV"> + <pv_name>LNS-ISRC-010:PBI-EM:VER-BRAKE_SET</pv_name> + <value>0</value> + <timeout>10</timeout> + <confirm_message></confirm_message> + <description></description> + </action> + </actions> + <show_boolean_label>false</show_boolean_label> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + <off_label>ON</off_label> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-1168daa3:158859bc9c3:-227</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>brake</text> + <scripts /> + <height>20</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <width>80</width> + <x>240</x> + <name>Label</name> + <y>185</y> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="0">Normal</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.ActionButton" version="2.0.0"> + <toggle_button>false</toggle_button> + <border_style>6</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <push_action_index>0</push_action_index> + <rules> + <rule name="Enable" prop_id="enabled" out_exp="false"> + <exp bool_exp="pv0==0"> + <value>true</value> + </exp> + <exp bool_exp="pv0==1"> + <value>false</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(NAME_MTR).BUSY</pv> + </rule> + </rules> + <enabled>true</enabled> + <wuid>71173f98:1598d71be83:-4366</wuid> + <pv_value /> + <text>HOME</text> + <scripts /> + <border_alarm_sensitive>true</border_alarm_sensitive> + <height>25</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <image></image> + <visible>true</visible> + <pv_name></pv_name> + <border_color> + <color name="Button Grey" red="180" green="180" blue="180" /> + </border_color> + <widget_type>Action Button</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="Button Grey" red="180" green="180" blue="180" /> + </background_color> + <width>61</width> + <x>12</x> + <name>Action Button Template</name> + <y>198</y> + <style>0</style> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false"> + <action type="WRITE_PV"> + <pv_name>LNS-ISRC-010:PBI-EMV:PROC-AUTO-HOME</pv_name> + <value>1</value> + <timeout>10</timeout> + <confirm_message></confirm_message> + <description></description> + </action> + </actions> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.groupingContainer" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <rules /> + <enabled>true</enabled> + <wuid>4b16a64d:158af4f8f37:-7f5c</wuid> + <transparent>true</transparent> + <lock_children>false</lock_children> + <scripts /> + <height>259</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <visible>false</visible> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Grouping Container</widget_type> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <width>324</width> + <x>1</x> + <name>BPS</name> + <y>1</y> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <fc>false</fc> + <show_scrollbar>true</show_scrollbar> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>4b16a64d:158af4f8f37:-7f46</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Voltage</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>67</width> + <x>12</x> + <name>Label Orientation_2</name> + <y>96</y> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>4b16a64d:158af4f8f37:-7f44</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Current</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>73</width> + <x>6</x> + <name>Label Orientation_3</name> + <y>54</y> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="2.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <pv_value /> + <auto_size>false</auto_size> + <text></text> + <rotation_angle>0.0</rotation_angle> + <show_units>true</show_units> + <height>31</height> + <multiline_input>false</multiline_input> + <border_width>1</border_width> + <visible>true</visible> + <pv_name>LNS-ISRC-010:PBI-EM:BPS1-CurS</pv_name> + <selector_type>0</selector_type> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Input</widget_type> + <confirm_message></confirm_message> + <name>Text Input_3</name> + <style>0</style> + <actions hook="false" hook_all="false" /> + <border_style>3</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>true</enabled> + <wuid>4b16a64d:158af4f8f37:-7f43</wuid> + <transparent>false</transparent> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <format_type>0</format_type> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>91</width> + <x>90</x> + <y>48</y> + <maximum>1.7976931348623157E308</maximum> + <foreground_color> + <color name="KeyboardEntry" red="0" green="255" blue="255" /> + </foreground_color> + <minimum>-1.7976931348623157E308</minimum> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>4b16a64d:158af4f8f37:-7f3b</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>VERTICAL</text> + <scripts /> + <height>20</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <width>199</width> + <x>66</x> + <name>Label_164</name> + <y>12</y> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="0">Normal</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextUpdate" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>4b16a64d:158af4f8f37:-7f27</wuid> + <transparent>false</transparent> + <pv_value /> + <auto_size>false</auto_size> + <text>######</text> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <border_alarm_sensitive>true</border_alarm_sensitive> + <show_units>true</show_units> + <height>31</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>LNS-ISRC-010:PBI-EM:BPS1-CurR</pv_name> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Update</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <wrap_words>false</wrap_words> + <format_type>0</format_type> + <background_color> + <color red="70" green="70" blue="70" /> + </background_color> + <width>100</width> + <x>198</x> + <name>Text Update</name> + <y>48</y> + <foreground_color> + <color name="Green On" red="0" green="255" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextUpdate" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>4b16a64d:158af4f8f37:-7f1b</wuid> + <transparent>false</transparent> + <pv_value /> + <auto_size>false</auto_size> + <text>######</text> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <border_alarm_sensitive>true</border_alarm_sensitive> + <show_units>true</show_units> + <height>31</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>LNS-ISRC-010:PBI-EM:BPS1-VolR</pv_name> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Update</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <wrap_words>false</wrap_words> + <format_type>0</format_type> + <background_color> + <color red="70" green="70" blue="70" /> + </background_color> + <width>100</width> + <x>198</x> + <name>Text Update</name> + <y>90</y> + <foreground_color> + <color name="Green On" red="0" green="255" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="2.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <pv_value /> + <auto_size>false</auto_size> + <text></text> + <rotation_angle>0.0</rotation_angle> + <show_units>true</show_units> + <height>31</height> + <multiline_input>false</multiline_input> + <border_width>1</border_width> + <visible>true</visible> + <pv_name>LNS-ISRC-010:PBI-EM:BPS1-VolS</pv_name> + <selector_type>0</selector_type> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Input</widget_type> + <confirm_message></confirm_message> + <name>Text Input_3</name> + <style>0</style> + <actions hook="false" hook_all="false" /> + <border_style>3</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>true</enabled> + <wuid>4b16a64d:158af4f8f37:-6180</wuid> + <transparent>false</transparent> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <format_type>0</format_type> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>91</width> + <x>90</x> + <y>90</y> + <maximum>1.7976931348623157E308</maximum> + <foreground_color> + <color name="KeyboardEntry" red="0" green="255" blue="255" /> + </foreground_color> + <minimum>-1.7976931348623157E308</minimum> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + </widget> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.RoundedRectangle" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <line_width>0</line_width> + <horizontal_fill>true</horizontal_fill> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <rules /> + <enabled>true</enabled> + <wuid>-16429ab9:1582e68df9a:-4223</wuid> + <transparent>false</transparent> + <pv_value /> + <alpha>255</alpha> + <corner_height>16</corner_height> + <bg_gradient_color> + <color red="255" green="255" blue="255" /> + </bg_gradient_color> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>1099</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name></pv_name> + <gradient>false</gradient> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <anti_alias>true</anti_alias> + <corner_width>16</corner_width> + <line_style>0</line_style> + <widget_type>Rounded Rectangle</widget_type> + <fg_gradient_color> + <color red="255" green="255" blue="255" /> + </fg_gradient_color> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="Container Grey" red="200" green="200" blue="200" /> + </background_color> + <width>1681</width> + <x>414</x> + <name>Rounded Rectangle_5</name> + <y>18</y> + <fill_level>0.0</fill_level> + <foreground_color> + <color red="255" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + <line_color> + <color red="128" green="0" blue="255" /> + </line_color> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.RoundedRectangle" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <line_width>0</line_width> + <horizontal_fill>true</horizontal_fill> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <rules /> + <enabled>true</enabled> + <wuid>-47901338:158955bc5eb:-344b</wuid> + <transparent>false</transparent> + <pv_value /> + <alpha>255</alpha> + <corner_height>16</corner_height> + <bg_gradient_color> + <color red="255" green="255" blue="255" /> + </bg_gradient_color> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>208</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name></pv_name> + <gradient>false</gradient> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <anti_alias>true</anti_alias> + <corner_width>16</corner_width> + <line_style>0</line_style> + <widget_type>Rounded Rectangle</widget_type> + <fg_gradient_color> + <color red="255" green="255" blue="255" /> + </fg_gradient_color> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="Black" red="0" green="0" blue="0" /> + </background_color> + <width>205</width> + <x>420</x> + <name>Rounded Rectangle_7</name> + <y>894</y> + <fill_level>0.0</fill_level> + <foreground_color> + <color red="255" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + <line_color> + <color red="128" green="0" blue="255" /> + </line_color> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextUpdate" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>0</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-47901338:158955bc5eb:-31fa</wuid> + <transparent>true</transparent> + <pv_value /> + <auto_size>false</auto_size> + <text>######</text> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <show_units>true</show_units> + <height>20</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>$(PREFIX_SCAN):$(CALC)-PROJ-X</pv_name> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Update</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <wrap_words>false</wrap_words> + <format_type>0</format_type> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <width>100</width> + <x>540</x> + <name>Text Update</name> + <y>912</y> + <foreground_color> + <color name="Green On" red="0" green="255" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.RoundedRectangle" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <line_width>0</line_width> + <horizontal_fill>true</horizontal_fill> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <rules /> + <enabled>true</enabled> + <wuid>-16429ab9:158444d4181:-7ba7</wuid> + <transparent>false</transparent> + <pv_value /> + <alpha>255</alpha> + <corner_height>16</corner_height> + <bg_gradient_color> + <color red="255" green="255" blue="255" /> + </bg_gradient_color> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>79</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name></pv_name> + <gradient>false</gradient> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <anti_alias>true</anti_alias> + <corner_width>16</corner_width> + <line_style>0</line_style> + <widget_type>Rounded Rectangle</widget_type> + <fg_gradient_color> + <color red="255" green="255" blue="255" /> + </fg_gradient_color> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="Container Border Grey" red="150" green="150" blue="150" /> + </background_color> + <width>350</width> + <x>29</x> + <name>Rounded Rectangle</name> + <y>1038</y> + <fill_level>0.0</fill_level> + <foreground_color> + <color red="255" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + <line_color> + <color red="128" green="0" blue="255" /> + </line_color> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.LED" version="1.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <rules /> + <effect_3d>true</effect_3d> + <bit>-1</bit> + <pv_value /> + <height>36</height> + <border_width>1</border_width> + <visible>true</visible> + <pv_name>${PREFIX_SCAN}:$(NAME_MTR).BUSY</pv_name> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>LED</widget_type> + <name>LED</name> + <actions hook="false" hook_all="false" /> + <show_boolean_label>false</show_boolean_label> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>true</enabled> + <wuid>1e771979:1565068c2e3:-4cec</wuid> + <on_color> + <color red="0" green="255" blue="0" /> + </on_color> + <scripts /> + <border_alarm_sensitive>true</border_alarm_sensitive> + <on_label>ON</on_label> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>true</keep_wh_ratio> + </scale_options> + <off_color> + <color red="0" green="100" blue="0" /> + </off_color> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <square_led>true</square_led> + <width>32</width> + <x>336</x> + <data_type>0</data_type> + <y>1066</y> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + <off_label>OFF</off_label> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.polyline" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <line_width>1</line_width> + <horizontal_fill>true</horizontal_fill> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <arrows>0</arrows> + <rules /> + <enabled>true</enabled> + <wuid>1e771979:1565068c2e3:-4a2d</wuid> + <transparent>false</transparent> + <points> + <point x="30" y="393" /> + <point x="378" y="393" /> + <point x="378" y="393" /> + <point x="378" y="393" /> + <point x="378" y="393" /> + </points> + <fill_arrow>true</fill_arrow> + <pv_value /> + <alpha>255</alpha> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>1</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>true</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name></pv_name> + <border_color> + <color name="Black" red="0" green="0" blue="0" /> + </border_color> + <anti_alias>true</anti_alias> + <line_style>0</line_style> + <arrow_length>20</arrow_length> + <widget_type>Polyline</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="Black" red="0" green="0" blue="0" /> + </background_color> + <width>349</width> + <x>30</x> + <name>Polyline</name> + <y>393</y> + <fill_level>0.0</fill_level> + <foreground_color> + <color red="255" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>1e771979:1565068c2e3:-4ab2</wuid> + <transparent>false</transparent> + <auto_size>false</auto_size> + <text>Position</text> + <scripts /> + <height>25</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="panelArea" red="240" green="240" blue="240" /> + </background_color> + <width>229</width> + <x>96</x> + <name>Label_156</name> + <y>381</y> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>1e771979:1565068c2e3:-3e44</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>START position</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>151</width> + <x>42</x> + <name>Label Orientation_7</name> + <y>420</y> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="2.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules> + <rule name="Disable" prop_id="enabled" out_exp="false"> + <exp bool_exp="pv0==1"> + <value>false</value> + </exp> + <exp bool_exp="pv0==0"> + <value>true</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(NAME_MTR).BUSY</pv> + </rule> + </rules> + <pv_value /> + <auto_size>false</auto_size> + <text></text> + <rotation_angle>0.0</rotation_angle> + <show_units>true</show_units> + <height>31</height> + <multiline_input>false</multiline_input> + <border_width>1</border_width> + <visible>true</visible> + <pv_name>${PREFIX_SCAN}:$(NAME_MTR).P4SP</pv_name> + <selector_type>0</selector_type> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Input</widget_type> + <confirm_message></confirm_message> + <name>Text Input</name> + <style>0</style> + <actions hook="false" hook_all="false" /> + <border_style>3</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>true</enabled> + <wuid>1e771979:1565068c2e3:-3e43</wuid> + <transparent>false</transparent> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <format_type>0</format_type> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>121</width> + <x>228</x> + <y>414</y> + <maximum>0.0</maximum> + <foreground_color> + <color name="KeyboardEntry" red="0" green="255" blue="255" /> + </foreground_color> + <minimum>-200.0</minimum> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>1e771979:1565068c2e3:-3d91</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>END position</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>104</width> + <x>71</x> + <name>Label Orientation_7</name> + <y>462</y> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="2.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules> + <rule name="Disable" prop_id="enabled" out_exp="false"> + <exp bool_exp="pv0==1"> + <value>false</value> + </exp> + <exp bool_exp="pv0==0"> + <value>true</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(NAME_MTR).BUSY</pv> + </rule> + </rules> + <pv_value /> + <auto_size>false</auto_size> + <text></text> + <rotation_angle>0.0</rotation_angle> + <show_units>true</show_units> + <height>31</height> + <multiline_input>false</multiline_input> + <border_width>1</border_width> + <visible>true</visible> + <pv_name>${PREFIX_SCAN}:$(NAME_MTR).P4EP</pv_name> + <selector_type>0</selector_type> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Input</widget_type> + <confirm_message></confirm_message> + <name>Text Input</name> + <style>0</style> + <actions hook="false" hook_all="false" /> + <border_style>3</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>true</enabled> + <wuid>1e771979:1565068c2e3:-3d90</wuid> + <transparent>false</transparent> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <format_type>0</format_type> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>121</width> + <x>228</x> + <y>456</y> + <maximum>1.7976931348623157E308</maximum> + <foreground_color> + <color name="KeyboardEntry" red="0" green="255" blue="255" /> + </foreground_color> + <minimum>-1.7976931348623157E308</minimum> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.polyline" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <line_width>1</line_width> + <horizontal_fill>true</horizontal_fill> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <arrows>0</arrows> + <rules /> + <enabled>true</enabled> + <wuid>1e771979:1565068c2e3:-33bf</wuid> + <transparent>false</transparent> + <points> + <point x="29" y="597" /> + <point x="377" y="597" /> + <point x="377" y="597" /> + <point x="377" y="597" /> + <point x="377" y="597" /> + </points> + <fill_arrow>true</fill_arrow> + <pv_value /> + <alpha>255</alpha> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>1</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>true</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name></pv_name> + <border_color> + <color name="Black" red="0" green="0" blue="0" /> + </border_color> + <anti_alias>true</anti_alias> + <line_style>0</line_style> + <arrow_length>20</arrow_length> + <widget_type>Polyline</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="Black" red="0" green="0" blue="0" /> + </background_color> + <width>349</width> + <x>29</x> + <name>Polyline</name> + <y>597</y> + <fill_level>0.0</fill_level> + <foreground_color> + <color red="255" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>1e771979:1565068c2e3:-33be</wuid> + <transparent>false</transparent> + <auto_size>false</auto_size> + <text>Angle</text> + <scripts /> + <height>25</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="panelArea" red="240" green="240" blue="240" /> + </background_color> + <width>229</width> + <x>96</x> + <name>Label_156</name> + <y>585</y> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>1e771979:1565068c2e3:-33b3</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Number of positions</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>199</width> + <x>30</x> + <name>Label Orientation_7</name> + <y>502</y> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="2.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules> + <rule name="Disable" prop_id="enabled" out_exp="false"> + <exp bool_exp="pv0==1"> + <value>false</value> + </exp> + <exp bool_exp="pv0==0"> + <value>true</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(NAME_MTR).BUSY</pv> + </rule> + </rules> + <pv_value /> + <auto_size>false</auto_size> + <text></text> + <rotation_angle>0.0</rotation_angle> + <show_units>true</show_units> + <height>31</height> + <multiline_input>false</multiline_input> + <border_width>1</border_width> + <visible>true</visible> + <pv_name>${PREFIX_SCAN}:$(NAME_MTR).NPTS</pv_name> + <selector_type>0</selector_type> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Input</widget_type> + <confirm_message></confirm_message> + <name>Text Input</name> + <style>0</style> + <actions hook="false" hook_all="false" /> + <border_style>3</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>true</enabled> + <wuid>1e771979:1565068c2e3:-33a9</wuid> + <transparent>false</transparent> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <format_type>0</format_type> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>121</width> + <x>228</x> + <y>496</y> + <maximum>100.0</maximum> + <foreground_color> + <color name="KeyboardEntry" red="0" green="255" blue="255" /> + </foreground_color> + <minimum>0.0</minimum> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>1e771979:1565068c2e3:-335c</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Step size</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>199</width> + <x>30</x> + <name>Label Orientation_7</name> + <y>547</y> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="2.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules> + <rule name="Disable" prop_id="enabled" out_exp="false"> + <exp bool_exp="pv0==1"> + <value>false</value> + </exp> + <exp bool_exp="pv0==0"> + <value>true</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(NAME_MTR).BUSY</pv> + </rule> + </rules> + <pv_value /> + <auto_size>false</auto_size> + <text></text> + <rotation_angle>0.0</rotation_angle> + <show_units>true</show_units> + <height>31</height> + <multiline_input>false</multiline_input> + <border_width>1</border_width> + <visible>true</visible> + <pv_name>${PREFIX_SCAN}:$(NAME_MTR).P4SI</pv_name> + <selector_type>0</selector_type> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Input</widget_type> + <confirm_message></confirm_message> + <name>Text Input</name> + <style>0</style> + <actions hook="false" hook_all="false" /> + <border_style>3</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>true</enabled> + <wuid>1e771979:1565068c2e3:-335b</wuid> + <transparent>false</transparent> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <format_type>0</format_type> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>121</width> + <x>228</x> + <y>541</y> + <maximum>1.7976931348623157E308</maximum> + <foreground_color> + <color name="KeyboardEntry" red="0" green="255" blue="255" /> + </foreground_color> + <minimum>-1.7976931348623157E308</minimum> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>1e771979:1565068c2e3:-31f0</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Nb Angles</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>84</width> + <x>99</x> + <name>Label Orientation_2</name> + <y>715</y> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="2.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules> + <rule name="Disable" prop_id="enabled" out_exp="false"> + <exp bool_exp="pv0==1"> + <value>false</value> + </exp> + <exp bool_exp="pv0==0"> + <value>true</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(NAME_MTR).BUSY</pv> + </rule> + </rules> + <pv_value /> + <auto_size>false</auto_size> + <text></text> + <rotation_angle>0.0</rotation_angle> + <show_units>true</show_units> + <height>31</height> + <multiline_input>false</multiline_input> + <border_width>1</border_width> + <visible>true</visible> + <pv_name>${PREFIX_SCAN}:$(NAME_PS).NPTS</pv_name> + <selector_type>0</selector_type> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Input</widget_type> + <confirm_message></confirm_message> + <name>Text Input_2</name> + <style>0</style> + <actions hook="false" hook_all="false" /> + <border_style>3</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>true</enabled> + <wuid>1e771979:1565068c2e3:-31ef</wuid> + <transparent>false</transparent> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <format_type>0</format_type> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>121</width> + <x>228</x> + <y>709</y> + <maximum>400.0</maximum> + <foreground_color> + <color name="KeyboardEntry" red="0" green="255" blue="255" /> + </foreground_color> + <minimum>0.0</minimum> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.ActionButton" version="2.0.0"> + <toggle_button>false</toggle_button> + <border_style>6</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <push_action_index>0</push_action_index> + <rules> + <rule name="Enable" prop_id="enabled" out_exp="false"> + <exp bool_exp="pv0==0 || pv1==1||pv2==1"> + <value>false</value> + </exp> + <exp bool_exp="pv0==1 && pv1==0 && pv2==0"> + <value>true</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(NAME_MTR).BUSY</pv> + <pv trig="true">${PREFIX_SCAN}:$(PROC)-AUTO-HOME</pv> + <pv trig="true">${PREFIX_SCAN}:SWITCH_H_GET</pv> + </rule> + </rules> + <enabled>true</enabled> + <wuid>1e771979:1565068c2e3:-2a00</wuid> + <pv_value /> + <text>ABORT</text> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>55</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <image></image> + <visible>true</visible> + <pv_name></pv_name> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Action Button</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="Major" red="255" green="0" blue="0" /> + </background_color> + <width>146</width> + <x>45</x> + <name>Abort Scan</name> + <y>1056</y> + <style>0</style> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="true"> + <action type="WRITE_PV"> + <pv_name>${PREFIX_SCAN}:$(NAME_MTR)-ABORT.PROC</pv_name> + <value>1</value> + <timeout>10</timeout> + <confirm_message></confirm_message> + <description>Abort Scan</description> + </action> + </actions> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.ActionButton" version="2.0.0"> + <toggle_button>false</toggle_button> + <border_style>6</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <push_action_index>0</push_action_index> + <rules> + <rule name="Enable" prop_id="enabled" out_exp="false"> + <exp bool_exp="pv0==0 && pv1==0 && pv2==0 && pv3==0 && pv4==0 && pv5==0"> + <value>true</value> + </exp> + <exp bool_exp="pv0==1 || pv1==0 || pv2==0 || pv3==0 || pv4==0 || pv5==0"> + <value>false</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(NAME_MTR).BUSY</pv> + <pv trig="true">INFN-SRC:INTK-HMI:FM1</pv> + <pv trig="true">INFN-SRC:INTK-HMI:FM2</pv> + <pv trig="true">INFN-SRC:INTK-HMI:FM3</pv> + <pv trig="true">INFN-SRC:INTK-HMI:FM4</pv> + <pv trig="true">INFN-SRC:INTK-HMI:FM5</pv> + </rule> + </rules> + <enabled>true</enabled> + <wuid>1e771979:1565068c2e3:-2a01</wuid> + <pv_value /> + <text>START</text> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>55</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <image></image> + <visible>true</visible> + <pv_name></pv_name> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Action Button</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="IO Button" red="178" green="178" blue="178" /> + </background_color> + <width>103</width> + <x>216</x> + <name>Start Scan</name> + <y>1056</y> + <style>0</style> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false"> + <action type="WRITE_PV"> + <pv_name>${PREFIX_SCAN}:$(NAME_MTR).EXSC</pv_name> + <value>1</value> + <timeout>10</timeout> + <confirm_message></confirm_message> + <description>Start SCAN</description> + </action> + </actions> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>1e771979:1565068c2e3:-31f4</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>MRAD MIN</text> + <scripts /> + <height>25</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>101</width> + <x>83</x> + <name>Label Orientation_7</name> + <y>669</y> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="2.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules> + <rule name="Disable" prop_id="enabled" out_exp="false"> + <exp bool_exp="pv0==1"> + <value>false</value> + </exp> + <exp bool_exp="pv0==0"> + <value>true</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(NAME_MTR).BUSY</pv> + </rule> + </rules> + <pv_value /> + <auto_size>false</auto_size> + <text></text> + <rotation_angle>0.0</rotation_angle> + <show_units>true</show_units> + <height>31</height> + <multiline_input>false</multiline_input> + <border_width>1</border_width> + <visible>true</visible> + <pv_name>${PREFIX_SCAN}:$(PROC)-AngleMin-SP</pv_name> + <selector_type>0</selector_type> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Input</widget_type> + <confirm_message></confirm_message> + <name>Text Input</name> + <style>0</style> + <actions hook="false" hook_all="false" /> + <border_style>3</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>true</enabled> + <wuid>1e771979:1565068c2e3:-31f3</wuid> + <transparent>false</transparent> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <format_type>0</format_type> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>121</width> + <x>228</x> + <y>666</y> + <maximum>1.7976931348623157E308</maximum> + <foreground_color> + <color name="KeyboardEntry" red="0" green="255" blue="255" /> + </foreground_color> + <minimum>-1.7976931348623157E308</minimum> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>-cae44c:157dd221fed:-75d1</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Step size</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>144</width> + <x>60</x> + <name>Label Orientation_2</name> + <y>756</y> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="2.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules> + <rule name="Disable" prop_id="enabled" out_exp="false"> + <exp bool_exp="pv0==1"> + <value>false</value> + </exp> + <exp bool_exp="pv0==0"> + <value>true</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(NAME_MTR).BUSY</pv> + </rule> + </rules> + <pv_value /> + <auto_size>false</auto_size> + <text></text> + <rotation_angle>0.0</rotation_angle> + <show_units>true</show_units> + <height>31</height> + <multiline_input>false</multiline_input> + <border_width>1</border_width> + <visible>true</visible> + <pv_name>${PREFIX_SCAN}:${PROC}-StepAngle</pv_name> + <selector_type>0</selector_type> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Input</widget_type> + <confirm_message></confirm_message> + <name>Text Input_2</name> + <style>0</style> + <actions hook="false" hook_all="false" /> + <border_style>3</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>true</enabled> + <wuid>-cae44c:157dd221fed:-75d0</wuid> + <transparent>false</transparent> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <format_type>0</format_type> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>121</width> + <x>228</x> + <y>750</y> + <maximum>1.7976931348623157E308</maximum> + <foreground_color> + <color name="KeyboardEntry" red="0" green="255" blue="255" /> + </foreground_color> + <minimum>-1.7976931348623157E308</minimum> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>4ad471b5:157e1276406:-740b</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>MRAD MAX</text> + <scripts /> + <height>25</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>99</width> + <x>82</x> + <name>Label Orientation_1</name> + <y>624</y> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="2.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules> + <rule name="Disable" prop_id="enabled" out_exp="false"> + <exp bool_exp="pv0==1"> + <value>false</value> + </exp> + <exp bool_exp="pv0==0"> + <value>true</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(NAME_MTR).BUSY</pv> + </rule> + </rules> + <pv_value /> + <auto_size>false</auto_size> + <text></text> + <rotation_angle>0.0</rotation_angle> + <show_units>true</show_units> + <height>31</height> + <multiline_input>false</multiline_input> + <border_width>1</border_width> + <visible>true</visible> + <pv_name>${PREFIX_SCAN}:$(PROC)-AngleMax-SP</pv_name> + <selector_type>0</selector_type> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Input</widget_type> + <confirm_message></confirm_message> + <name>Text Input</name> + <style>0</style> + <actions hook="false" hook_all="false" /> + <border_style>3</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>true</enabled> + <wuid>4ad471b5:157e1276406:-740a</wuid> + <transparent>false</transparent> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <format_type>0</format_type> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>121</width> + <x>228</x> + <y>624</y> + <maximum>1.7976931348623157E308</maximum> + <foreground_color> + <color name="KeyboardEntry" red="0" green="255" blue="255" /> + </foreground_color> + <minimum>-1.7976931348623157E308</minimum> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-20a75393:15809f6e4ee:-700a</wuid> + <transparent>false</transparent> + <auto_size>false</auto_size> + <text>CONFIGURATION</text> + <scripts /> + <height>32</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>true</wrap_words> + <background_color> + <color name="SubPanel" red="176" green="218" blue="249" /> + </background_color> + <width>349</width> + <x>30</x> + <name>Label_15</name> + <y>39</y> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <show_scrollbar>false</show_scrollbar> + <font> + <opifont.name fontName="OpenSans" height="15" style="1">Medium Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.intensityGraph" version="1.0.0"> + <vertial_profile_y_pv_value /> + <y_axis_show_minor_ticks>true</y_axis_show_minor_ticks> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name)</tooltip> + <x_axis_show_minor_ticks>true</x_axis_show_minor_ticks> + <roi_0_w_pv_value /> + <roi_0_visible>true</roi_0_visible> + <horizon_profile_x_pv_name>$(PREFIX_SCAN):CALC-PROJ-Xabsc</horizon_profile_x_pv_name> + <height>798</height> + <border_width>1</border_width> + <graph_area_width>1290</graph_area_width> + <y_axis_scale_font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </y_axis_scale_font> + <roi_0_x_pv></roi_0_x_pv> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <x_axis_minimum>-200.0</x_axis_minimum> + <y_axis_maximum>80.0</y_axis_maximum> + <pixel_info_pv_value /> + <x_axis_maximum>0.0</x_axis_maximum> + <vertial_profile_x_pv_value /> + <roi_0_title>ROI 0</roi_0_title> + <actions hook="false" hook_all="false" /> + <border_style>0</border_style> + <rgb_mode>false</rgb_mode> + <roi_1_title>ROI 1</roi_1_title> + <crop_left>0</crop_left> + <roi_1_y_pv_value /> + <x_axis_scale_font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </x_axis_scale_font> + <data_width>0</data_width> + <enabled>true</enabled> + <wuid>-16429ab9:1582e68df9a:-6ffb</wuid> + <roi_1_visible>true</roi_1_visible> + <y_axis_title_font> + <opifont.name fontName="Cantarell" height="11" style="1">Default Bold</opifont.name> + </y_axis_title_font> + <border_alarm_sensitive>false</border_alarm_sensitive> + <graph_area_height>737</graph_area_height> + <x_axis_visible>true</x_axis_visible> + <roi_0_y_pv_value /> + <roi_1_h_pv_value /> + <vertical_profile_x_pv_name>$(PREFIX_SCAN):CALC-PROJ-Yabsc</vertical_profile_x_pv_name> + <pixel_info_pv_name></pixel_info_pv_name> + <roi_0_width_pv></roi_0_width_pv> + <x_axis_axis_color> + <color red="0" green="0" blue="0" /> + </x_axis_axis_color> + <roi_0_h_pv_value /> + <roi_1_x_pv></roi_1_x_pv> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <x_axis_axis_title>mm</x_axis_axis_title> + <width>1405</width> + <x>660</x> + <y>100</y> + <maximum>5.0</maximum> + <data_height>0</data_height> + <minimum>-1.0</minimum> + <crop_right>0</crop_right> + <crop_top>0</crop_top> + <roi_color> + <color red="0" green="255" blue="255" /> + </roi_color> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + <roi_0_y_pv></roi_0_y_pv> + <rules> + <rule name="DataHeight" prop_id="data_height" out_exp="true"> + <exp bool_exp="pv0>0"> + <value>pv0</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(NAME_PS).NPTS</pv> + </rule> + <rule name="DataWidth" prop_id="data_width" out_exp="true"> + <exp bool_exp="pv0>0"> + <value>pv0</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(NAME_MTR).NPTS</pv> + </rule> + <rule name="XMax" prop_id="x_axis_maximum" out_exp="true"> + <exp bool_exp="pv0!=0"> + <value>pv0</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(NAME_MTR).P4EP</pv> + </rule> + <rule name="XMin" prop_id="x_axis_minimum" out_exp="true"> + <exp bool_exp="pv0!=0"> + <value>pv0</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(NAME_MTR).P4SP</pv> + </rule> + <rule name="YMax" prop_id="y_axis_maximum" out_exp="true"> + <exp bool_exp="pv0!=0"> + <value>pv0</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(PROC)-AngleMax-SP</pv> + </rule> + <rule name="YMin" prop_id="y_axis_minimum" out_exp="true"> + <exp bool_exp="pv0!=0"> + <value>pv0</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(PROC)-AngleMin-SP</pv> + </rule> + </rules> + <horizon_profile_y_pv_value /> + <roi_1_x_pv_value /> + <roi_count>2</roi_count> + <roi_1_y_pv></roi_1_y_pv> + <pv_value /> + <color_map> + <interpolate>true</interpolate> + <autoscale>true</autoscale> + <map>2</map> + </color_map> + <show_ramp>true</show_ramp> + <y_axis_axis_title>mrad</y_axis_axis_title> + <horizon_profile_y_pv_name>$(PREFIX_SCAN):CALC-PROJ-Xwf</horizon_profile_y_pv_name> + <single_line_profiling>false</single_line_profiling> + <y_axis_minimum>-80.0</y_axis_minimum> + <visible>true</visible> + <roi_1_w_pv_value /> + <vertical_profile_y_pv_name>$(PREFIX_SCAN):CALC-PROJ-Ywf</vertical_profile_y_pv_name> + <x_axis_major_tick_step_hint>50</x_axis_major_tick_step_hint> + <pv_name>$(PREFIX_SCAN):BUFF-CURRENT</pv_name> + <roi_0_height_pv></roi_0_height_pv> + <widget_type>Intensity Graph</widget_type> + <name>Intensity Graph</name> + <y_axis_axis_color> + <color red="0" green="0" blue="0" /> + </y_axis_axis_color> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <roi_1_height_pv></roi_1_height_pv> + <roi_1_width_pv></roi_1_width_pv> + <y_axis_major_tick_step_hint>50</y_axis_major_tick_step_hint> + <scripts /> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>true</keep_wh_ratio> + </scale_options> + <x_axis_title_font> + <opifont.name fontName="Cantarell" height="11" style="1">Default Bold</opifont.name> + </x_axis_title_font> + <crop_bottom>0</crop_bottom> + <y_axis_visible>true</y_axis_visible> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <horizon_profile_x_pv_value /> + <roi_0_x_pv_value /> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.tank" version="1.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <rules /> + <effect_3d>true</effect_3d> + <scale_font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </scale_font> + <pv_value /> + <show_scale>true</show_scale> + <scale_format></scale_format> + <height>5</height> + <fill_color> + <color red="0" green="0" blue="255" /> + </fill_color> + <border_width>1</border_width> + <visible>true</visible> + <pv_name></pv_name> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Tank</widget_type> + <name>Tank</name> + <show_hi>true</show_hi> + <actions hook="false" hook_all="false" /> + <show_lo>true</show_lo> + <border_style>0</border_style> + <show_lolo>true</show_lolo> + <show_minor_ticks>true</show_minor_ticks> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <show_markers>true</show_markers> + <color_hihi> + <color red="255" green="0" blue="0" /> + </color_hihi> + <show_hihi>true</show_hihi> + <log_scale>false</log_scale> + <enabled>true</enabled> + <wuid>-16429ab9:1582e68df9a:-568c</wuid> + <level_hihi>90.0</level_hihi> + <color_hi> + <color red="255" green="128" blue="0" /> + </color_hi> + <color_lo> + <color red="255" green="128" blue="0" /> + </color_lo> + <scripts /> + <border_alarm_sensitive>true</border_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <fillcolor_alarm_sensitive>false</fillcolor_alarm_sensitive> + <color_fillbackground> + <color red="192" green="192" blue="192" /> + </color_fillbackground> + <major_tick_step_hint>50</major_tick_step_hint> + <level_hi>80.0</level_hi> + <transparent_background>true</transparent_background> + <level_lo>20.0</level_lo> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <limits_from_pv>true</limits_from_pv> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <level_lolo>10.0</level_lolo> + <width>475</width> + <x>522</x> + <y>1008</y> + <maximum>100.0</maximum> + <color_lolo> + <color red="255" green="0" blue="0" /> + </color_lolo> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <minimum>0.0</minimum> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-16429ab9:1582e68df9a:-4219</wuid> + <transparent>false</transparent> + <auto_size>false</auto_size> + <text>MEASURE</text> + <scripts /> + <height>32</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>true</wrap_words> + <background_color> + <color name="SubPanel" red="176" green="218" blue="249" /> + </background_color> + <width>1681</width> + <x>414</x> + <name>Label_15</name> + <y>39</y> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <show_scrollbar>false</show_scrollbar> + <font> + <opifont.name fontName="OpenSans" height="15" style="1">Medium Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.RoundedRectangle" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <line_width>0</line_width> + <horizontal_fill>true</horizontal_fill> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <rules /> + <enabled>true</enabled> + <wuid>-16429ab9:1582e68df9a:-3a8f</wuid> + <transparent>false</transparent> + <pv_value /> + <alpha>255</alpha> + <corner_height>16</corner_height> + <bg_gradient_color> + <color red="255" green="255" blue="255" /> + </bg_gradient_color> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>1099</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name></pv_name> + <gradient>false</gradient> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <anti_alias>true</anti_alias> + <corner_width>16</corner_width> + <line_style>0</line_style> + <widget_type>Rounded Rectangle</widget_type> + <fg_gradient_color> + <color red="255" green="255" blue="255" /> + </fg_gradient_color> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color red="186" green="189" blue="182" /> + </background_color> + <width>319</width> + <x>2136</x> + <name>Rounded Rectangle_5</name> + <y>18</y> + <fill_level>0.0</fill_level> + <foreground_color> + <color red="255" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + <line_color> + <color red="128" green="0" blue="255" /> + </line_color> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.tab" version="1.0.0"> + <active_tab>0</active_tab> + <tooltip></tooltip> + <height>597</height> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <tab_0_foreground_color> + <color red="0" green="0" blue="0" /> + </tab_0_foreground_color> + <actions hook="false" hook_all="false" /> + <border_style>0</border_style> + <enabled>true</enabled> + <wuid>-16429ab9:1582e68df9a:-3a8b</wuid> + <background_color> + <color red="186" green="189" blue="182" /> + </background_color> + <width>319</width> + <x>2136</x> + <horizontal_tabs>true</horizontal_tabs> + <y>82</y> + <rules /> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <visible>true</visible> + <tab_0_background_color> + <color red="186" green="189" blue="182" /> + </tab_0_background_color> + <widget_type>Tabbed Container</widget_type> + <name>Tabbed Container</name> + <minimum_tab_height>10</minimum_tab_height> + <tab_0_font> + <opifont.name fontName="OpenSans" height="10" style="1">Small Bold</opifont.name> + </tab_0_font> + <tab_0_title>SCANNING</tab_0_title> + <scripts /> + <tab_count>1</tab_count> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <tab_0_icon_path></tab_0_icon_path> + <tab_0_enabled>true</tab_0_enabled> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <widget typeId="org.csstudio.opibuilder.widgets.groupingContainer" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <rules /> + <enabled>true</enabled> + <wuid>-16429ab9:1582e68df9a:-3a8a</wuid> + <transparent>true</transparent> + <lock_children>false</lock_children> + <scripts /> + <height>565</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <visible>true</visible> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Grouping Container</widget_type> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <width>317</width> + <x>1</x> + <name>SCANNING</name> + <y>1</y> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <fc>false</fc> + <show_scrollbar>true</show_scrollbar> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + <widget typeId="org.csstudio.opibuilder.widgets.Rectangle" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <line_width>0</line_width> + <horizontal_fill>true</horizontal_fill> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <rules /> + <enabled>true</enabled> + <wuid>-460a3b47:15868b634f9:-7035</wuid> + <transparent>false</transparent> + <pv_value /> + <alpha>255</alpha> + <bg_gradient_color> + <color red="255" green="255" blue="255" /> + </bg_gradient_color> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>325</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name></pv_name> + <gradient>false</gradient> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <anti_alias>true</anti_alias> + <line_style>0</line_style> + <widget_type>Rectangle</widget_type> + <fg_gradient_color> + <color red="255" green="255" blue="255" /> + </fg_gradient_color> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color red="136" green="138" blue="133" /> + </background_color> + <width>295</width> + <x>12</x> + <name>Rectangle_1</name> + <y>228</y> + <fill_level>0.0</fill_level> + <foreground_color> + <color red="255" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + <line_color> + <color red="128" green="0" blue="255" /> + </line_color> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Rectangle" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <line_width>0</line_width> + <horizontal_fill>true</horizontal_fill> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <rules /> + <enabled>true</enabled> + <wuid>-460a3b47:15868b634f9:-7106</wuid> + <transparent>false</transparent> + <pv_value /> + <alpha>255</alpha> + <bg_gradient_color> + <color red="255" green="255" blue="255" /> + </bg_gradient_color> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>193</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name></pv_name> + <gradient>false</gradient> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <anti_alias>true</anti_alias> + <line_style>0</line_style> + <widget_type>Rectangle</widget_type> + <fg_gradient_color> + <color red="255" green="255" blue="255" /> + </fg_gradient_color> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color red="136" green="138" blue="133" /> + </background_color> + <width>295</width> + <x>12</x> + <name>Rectangle_1</name> + <y>18</y> + <fill_level>0.0</fill_level> + <foreground_color> + <color red="255" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + <line_color> + <color red="128" green="0" blue="255" /> + </line_color> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>4ad471b5:157e1276406:-781e</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>PS Horizontal</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>125</width> + <x>38</x> + <name>Label Orientation_7</name> + <y>36</y> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="2.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <pv_value /> + <auto_size>false</auto_size> + <text></text> + <rotation_angle>0.0</rotation_angle> + <show_units>true</show_units> + <height>31</height> + <multiline_input>false</multiline_input> + <border_width>1</border_width> + <visible>true</visible> + <pv_name>$(PREFIX_PS)hor-SP</pv_name> + <selector_type>0</selector_type> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Input</widget_type> + <confirm_message></confirm_message> + <name>Text Input</name> + <style>0</style> + <actions hook="false" hook_all="false" /> + <border_style>3</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>true</enabled> + <wuid>4ad471b5:157e1276406:-781d</wuid> + <transparent>false</transparent> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <format_type>0</format_type> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>100</width> + <x>186</x> + <y>30</y> + <maximum>1.7976931348623157E308</maximum> + <foreground_color> + <color name="Green On" red="0" green="255" blue="0" /> + </foreground_color> + <minimum>-1.7976931348623157E308</minimum> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>4ad471b5:157e1276406:-780f</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>PS Vertical</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>127</width> + <x>30</x> + <name>Label Orientation_7</name> + <y>84</y> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="2.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <pv_value /> + <auto_size>false</auto_size> + <text></text> + <rotation_angle>0.0</rotation_angle> + <show_units>true</show_units> + <height>31</height> + <multiline_input>false</multiline_input> + <border_width>1</border_width> + <visible>true</visible> + <pv_name>$(PREFIX_PS)ver-SP</pv_name> + <selector_type>0</selector_type> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Input</widget_type> + <confirm_message></confirm_message> + <name>Text Input</name> + <style>0</style> + <actions hook="false" hook_all="false" /> + <border_style>3</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>true</enabled> + <wuid>4ad471b5:157e1276406:-780e</wuid> + <transparent>false</transparent> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <format_type>0</format_type> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>100</width> + <x>186</x> + <y>78</y> + <maximum>1.7976931348623157E308</maximum> + <foreground_color> + <color name="Green On" red="0" green="255" blue="0" /> + </foreground_color> + <minimum>-1.7976931348623157E308</minimum> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>79429b6c:157dd491a6d:-7dd7</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Angle STEP ...</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>151</width> + <x>25</x> + <name>Label Orientation_7</name> + <y>132</y> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="2.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <pv_value /> + <auto_size>false</auto_size> + <text></text> + <rotation_angle>0.0</rotation_angle> + <show_units>true</show_units> + <height>31</height> + <multiline_input>false</multiline_input> + <border_width>1</border_width> + <visible>true</visible> + <pv_name>${PREFIX_SCAN}:$(NAME_PS)-NORD_POS</pv_name> + <selector_type>0</selector_type> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Input</widget_type> + <confirm_message></confirm_message> + <name>Text Input</name> + <style>0</style> + <actions hook="false" hook_all="false" /> + <border_style>3</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>true</enabled> + <wuid>79429b6c:157dd491a6d:-7dd6</wuid> + <transparent>false</transparent> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <format_type>0</format_type> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>100</width> + <x>186</x> + <y>126</y> + <maximum>1.7976931348623157E308</maximum> + <foreground_color> + <color name="Green On" red="0" green="255" blue="0" /> + </foreground_color> + <minimum>-1.7976931348623157E308</minimum> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="2.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <pv_value /> + <auto_size>false</auto_size> + <text></text> + <rotation_angle>0.0</rotation_angle> + <show_units>true</show_units> + <height>31</height> + <multiline_input>false</multiline_input> + <border_width>1</border_width> + <visible>true</visible> + <pv_name>${PREFIX_SCAN}:$(NAME_MTR)-NORD_POS</pv_name> + <selector_type>0</selector_type> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Input</widget_type> + <confirm_message></confirm_message> + <name>Text Input_3</name> + <style>0</style> + <actions hook="false" hook_all="false" /> + <border_style>3</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>true</enabled> + <wuid>-16429ab9:1582e68df9a:-6dec</wuid> + <transparent>false</transparent> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <format_type>0</format_type> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>100</width> + <x>186</x> + <y>240</y> + <maximum>1.7976931348623157E308</maximum> + <foreground_color> + <color name="Green On" red="0" green="255" blue="0" /> + </foreground_color> + <minimum>-1.7976931348623157E308</minimum> + <font> + <fontdata fontName="Sans" height="10" style="1" /> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>-16429ab9:1582e68df9a:-3c09</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Pos STEP ...</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>172</width> + <x>15</x> + <name>Label Orientation_1</name> + <y>246</y> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.bytemonitor" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <rules /> + <effect_3d>true</effect_3d> + <enabled>true</enabled> + <wuid>59fc39f9:158487e5950:-422a</wuid> + <on_color> + <color name="Major" red="255" green="0" blue="0" /> + </on_color> + <horizontal>false</horizontal> + <pv_value /> + <numBits>1</numBits> + <scripts /> + <border_alarm_sensitive>true</border_alarm_sensitive> + <height>28</height> + <border_width>0</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>$(PREFIX_MTR):$(PMAC_MTR).MSTA</pv_name> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <bitReverse>true</bitReverse> + <label /> + <widget_type>Byte Monitor</widget_type> + <off_color> + <color name="IO Grid" red="215" green="215" blue="215" /> + </off_color> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <square_led>true</square_led> + <startBit>13</startBit> + <width>70</width> + <x>201</x> + <name>Byte Monitor Template</name> + <y>438</y> + <foreground_color> + <color name="IO InputPV Fg" red="0" green="32" blue="92" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="arial" height="10" style="0">IO Normal</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>59fc39f9:158487e5950:-3dc7</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>LOW Limit </text> + <scripts /> + <height>20</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <width>83</width> + <x>52</x> + <name>Label_164</name> + <y>442</y> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>59fc39f9:158487e5950:-38d5</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>HIGH Limit </text> + <scripts /> + <height>20</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <width>93</width> + <x>52</x> + <name>Label_164</name> + <y>478</y> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.bytemonitor" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <rules /> + <effect_3d>true</effect_3d> + <enabled>true</enabled> + <wuid>59fc39f9:158487e5950:-38d6</wuid> + <on_color> + <color name="Major" red="255" green="0" blue="0" /> + </on_color> + <horizontal>false</horizontal> + <pv_value /> + <numBits>1</numBits> + <scripts /> + <border_alarm_sensitive>true</border_alarm_sensitive> + <height>28</height> + <border_width>0</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>$(PREFIX_MTR):$(PMAC_MTR).MSTA</pv_name> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <bitReverse>true</bitReverse> + <label /> + <widget_type>Byte Monitor</widget_type> + <off_color> + <color name="IO Grid" red="215" green="215" blue="215" /> + </off_color> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <square_led>true</square_led> + <startBit>2</startBit> + <width>70</width> + <x>201</x> + <name>Byte Monitor Template</name> + <y>474</y> + <foreground_color> + <color name="IO InputPV Fg" red="0" green="32" blue="92" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="arial" height="10" style="0">IO Normal</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.bytemonitor" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <rules /> + <effect_3d>true</effect_3d> + <enabled>true</enabled> + <wuid>59fc39f9:158487e5950:-38ce</wuid> + <on_color> + <color name="Major" red="255" green="0" blue="0" /> + </on_color> + <horizontal>false</horizontal> + <pv_value /> + <numBits>1</numBits> + <scripts /> + <border_alarm_sensitive>true</border_alarm_sensitive> + <height>28</height> + <border_width>0</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>$(PREFIX_MTR):$(PMAC_MTR).MOVN</pv_name> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <bitReverse>true</bitReverse> + <label /> + <widget_type>Byte Monitor</widget_type> + <off_color> + <color name="IO Grid" red="215" green="215" blue="215" /> + </off_color> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <square_led>true</square_led> + <startBit>0</startBit> + <width>70</width> + <x>201</x> + <name>Byte Monitor Template</name> + <y>330</y> + <foreground_color> + <color name="IO InputPV Fg" red="0" green="32" blue="92" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="arial" height="10" style="0">IO Normal</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>59fc39f9:158487e5950:-38cd</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Motor is moving ...</text> + <scripts /> + <height>20</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <width>151</width> + <x>25</x> + <name>Label_164</name> + <y>334</y> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="2.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <precision>2</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <pv_value /> + <auto_size>false</auto_size> + <text></text> + <rotation_angle>0.0</rotation_angle> + <show_units>true</show_units> + <height>31</height> + <multiline_input>false</multiline_input> + <border_width>1</border_width> + <visible>true</visible> + <pv_name>$(PREFIX_MTR):$(PMAC_MTR).RBV</pv_name> + <selector_type>0</selector_type> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>false</precision_from_pv> + <widget_type>Text Input</widget_type> + <confirm_message></confirm_message> + <name>Text Input_3</name> + <style>0</style> + <actions hook="false" hook_all="false" /> + <border_style>3</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>true</enabled> + <wuid>59fc39f9:158487e5950:-356b</wuid> + <transparent>false</transparent> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <format_type>0</format_type> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>100</width> + <x>186</x> + <y>288</y> + <maximum>1.7976931348623157E308</maximum> + <foreground_color> + <color name="Green On" red="0" green="255" blue="0" /> + </foreground_color> + <minimum>-1.7976931348623157E308</minimum> + <font> + <fontdata fontName="Sans" height="10" style="1" /> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>59fc39f9:158487e5950:-356a</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Position in course</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>166</width> + <x>12</x> + <name>Label Orientation_1</name> + <y>294</y> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.bytemonitor" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <rules /> + <effect_3d>true</effect_3d> + <enabled>true</enabled> + <wuid>59fc39f9:158487e5950:-33a7</wuid> + <on_color> + <color name="Green On" red="0" green="255" blue="0" /> + </on_color> + <horizontal>false</horizontal> + <pv_value /> + <numBits>1</numBits> + <scripts /> + <border_alarm_sensitive>true</border_alarm_sensitive> + <height>28</height> + <border_width>0</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>$(PREFIX_MTR):$(PMAC_MTR).MSTA</pv_name> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <bitReverse>true</bitReverse> + <label /> + <widget_type>Byte Monitor</widget_type> + <off_color> + <color name="IO Grid" red="215" green="215" blue="215" /> + </off_color> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <square_led>true</square_led> + <startBit>1</startBit> + <width>70</width> + <x>201</x> + <name>Byte Monitor Template</name> + <y>366</y> + <foreground_color> + <color name="IO InputPV Fg" red="0" green="32" blue="92" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="arial" height="10" style="0">IO Normal</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>59fc39f9:158487e5950:-33a6</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Motor is placed</text> + <scripts /> + <height>20</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <width>125</width> + <x>38</x> + <name>Label_164</name> + <y>370</y> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>59fc39f9:158487e5950:-26fe</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>HV is ramping ...</text> + <scripts /> + <height>20</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <width>196</width> + <x>6</x> + <name>Label_164</name> + <y>178</y> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.bytemonitor" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <rules /> + <effect_3d>true</effect_3d> + <enabled>true</enabled> + <wuid>59fc39f9:158487e5950:-26ff</wuid> + <on_color> + <color name="Major" red="255" green="0" blue="0" /> + </on_color> + <horizontal>false</horizontal> + <pv_value /> + <numBits>1</numBits> + <scripts /> + <border_alarm_sensitive>true</border_alarm_sensitive> + <height>28</height> + <border_width>0</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>${PREFIX_SCAN}:$(NAME_PS).BUSY</pv_name> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <bitReverse>true</bitReverse> + <label /> + <widget_type>Byte Monitor</widget_type> + <off_color> + <color name="IO Grid" red="215" green="215" blue="215" /> + </off_color> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <square_led>true</square_led> + <startBit>0</startBit> + <width>70</width> + <x>201</x> + <name>Byte Monitor Template</name> + <y>174</y> + <foreground_color> + <color name="IO InputPV Fg" red="0" green="32" blue="92" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="arial" height="10" style="0">IO Normal</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Rectangle" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <line_width>4</line_width> + <horizontal_fill>true</horizontal_fill> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <rules> + <rule name="Visible" prop_id="visible" out_exp="false"> + <exp bool_exp="pv0==1"> + <value>true</value> + </exp> + <exp bool_exp="pv0==0"> + <value>false</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(NAME_PS).BUSY</pv> + </rule> + </rules> + <enabled>true</enabled> + <wuid>59fc39f9:158487e5950:-2314</wuid> + <transparent>true</transparent> + <pv_value /> + <alpha>255</alpha> + <bg_gradient_color> + <color red="255" green="255" blue="255" /> + </bg_gradient_color> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>193</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>${PREFIX_SCAN}:$(NAME_PS).BUSY</pv_name> + <gradient>false</gradient> + <border_color> + <color name="Major" red="255" green="0" blue="0" /> + </border_color> + <anti_alias>true</anti_alias> + <line_style>0</line_style> + <widget_type>Rectangle</widget_type> + <fg_gradient_color> + <color red="255" green="255" blue="255" /> + </fg_gradient_color> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="Major" red="255" green="0" blue="0" /> + </background_color> + <width>295</width> + <x>12</x> + <name>Rectangle</name> + <y>18</y> + <fill_level>0.0</fill_level> + <foreground_color> + <color red="255" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + <line_color> + <color name="Major" red="255" green="0" blue="0" /> + </line_color> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-460a3b47:15868b634f9:-6f5c</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Motor is Homed</text> + <scripts /> + <height>20</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <width>125</width> + <x>38</x> + <name>Label_164</name> + <y>406</y> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.bytemonitor" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <rules /> + <effect_3d>true</effect_3d> + <enabled>true</enabled> + <wuid>-460a3b47:15868b634f9:-6f52</wuid> + <on_color> + <color name="Green On" red="0" green="255" blue="0" /> + </on_color> + <horizontal>false</horizontal> + <pv_value /> + <numBits>1</numBits> + <scripts /> + <border_alarm_sensitive>true</border_alarm_sensitive> + <height>28</height> + <border_width>0</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>$(PREFIX_MTR):$(PMAC_MTR).MSTA</pv_name> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <bitReverse>true</bitReverse> + <label /> + <widget_type>Byte Monitor</widget_type> + <off_color> + <color name="Major" red="255" green="0" blue="0" /> + </off_color> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <square_led>true</square_led> + <startBit>14</startBit> + <width>70</width> + <x>201</x> + <name>Byte Monitor Template</name> + <y>402</y> + <foreground_color> + <color name="IO InputPV Fg" red="0" green="32" blue="92" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="arial" height="10" style="0">IO Normal</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Rectangle" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <line_width>4</line_width> + <horizontal_fill>true</horizontal_fill> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <rules> + <rule name="Visible" prop_id="visible" out_exp="false"> + <exp bool_exp="pv0==1"> + <value>true</value> + </exp> + <exp bool_exp="pv0==0"> + <value>false</value> + </exp> + <pv trig="true">$(PREFIX_MTR):$(PMAC_MTR).MOVN</pv> + </rule> + </rules> + <enabled>true</enabled> + <wuid>59fc39f9:158487e5950:-2172</wuid> + <transparent>true</transparent> + <pv_value /> + <alpha>255</alpha> + <bg_gradient_color> + <color red="255" green="255" blue="255" /> + </bg_gradient_color> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>325</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>$(PREFIX_MTR):$(PMAC_MTR).MOVN</pv_name> + <gradient>false</gradient> + <border_color> + <color name="Major" red="255" green="0" blue="0" /> + </border_color> + <anti_alias>true</anti_alias> + <line_style>0</line_style> + <widget_type>Rectangle</widget_type> + <fg_gradient_color> + <color red="255" green="255" blue="255" /> + </fg_gradient_color> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="Major" red="255" green="0" blue="0" /> + </background_color> + <width>295</width> + <x>12</x> + <name>Rectangle_1</name> + <y>228</y> + <fill_level>0.0</fill_level> + <foreground_color> + <color red="255" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + <line_color> + <color name="Major" red="255" green="0" blue="0" /> + </line_color> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-1168daa3:158859bc9c3:-6028</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Brake ON</text> + <scripts /> + <height>20</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <width>83</width> + <x>52</x> + <name>Label_164</name> + <y>514</y> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.bytemonitor" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <rules /> + <effect_3d>true</effect_3d> + <enabled>true</enabled> + <wuid>60f6e55b:158baae9c78:-79b8</wuid> + <on_color> + <color name="Field Background Grey" red="240" green="240" blue="240" /> + </on_color> + <horizontal>false</horizontal> + <pv_value /> + <numBits>1</numBits> + <scripts /> + <border_alarm_sensitive>true</border_alarm_sensitive> + <height>28</height> + <border_width>0</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>LNS-ISRC-010:PBI-EM:VER-BRAKE_GET</pv_name> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <bitReverse>true</bitReverse> + <label /> + <widget_type>Byte Monitor</widget_type> + <off_color> + <color name="Major" red="255" green="0" blue="0" /> + </off_color> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <square_led>true</square_led> + <startBit>0</startBit> + <width>70</width> + <x>201</x> + <name>Byte Monitor Template</name> + <y>510</y> + <foreground_color> + <color name="IO InputPV Fg" red="0" green="32" blue="92" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="arial" height="10" style="0">IO Normal</opifont.name> + </font> + </widget> + </widget> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-16429ab9:1582e68df9a:-3a7c</wuid> + <transparent>false</transparent> + <auto_size>false</auto_size> + <text>STATUS</text> + <scripts /> + <height>32</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>true</wrap_words> + <background_color> + <color name="SubPanel" red="176" green="218" blue="249" /> + </background_color> + <width>319</width> + <x>2136</x> + <name>Label_15</name> + <y>39</y> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <show_scrollbar>false</show_scrollbar> + <font> + <opifont.name fontName="OpenSans" height="15" style="1">Medium Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.polyline" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <line_width>5</line_width> + <horizontal_fill>true</horizontal_fill> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <arrows>0</arrows> + <rules /> + <enabled>true</enabled> + <wuid>-16429ab9:1582e68df9a:-363a</wuid> + <transparent>false</transparent> + <points> + <point x="29" y="1038" /> + <point x="377" y="1038" /> + <point x="377" y="1038" /> + <point x="377" y="1038" /> + <point x="377" y="1038" /> + </points> + <fill_arrow>true</fill_arrow> + <pv_value /> + <alpha>255</alpha> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>1</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>true</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name></pv_name> + <border_color> + <color name="Black" red="0" green="0" blue="0" /> + </border_color> + <anti_alias>true</anti_alias> + <line_style>0</line_style> + <arrow_length>20</arrow_length> + <widget_type>Polyline</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="Black" red="0" green="0" blue="0" /> + </background_color> + <width>349</width> + <x>29</x> + <name>Polyline</name> + <y>1038</y> + <fill_level>0.0</fill_level> + <foreground_color> + <color red="255" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="2.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <precision>2</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <pv_value /> + <auto_size>false</auto_size> + <text></text> + <rotation_angle>0.0</rotation_angle> + <show_units>false</show_units> + <height>22</height> + <multiline_input>false</multiline_input> + <border_width>1</border_width> + <visible>true</visible> + <pv_name>$(PREFIX_MTR):$(PMAC_MTR).RBV</pv_name> + <selector_type>0</selector_type> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>false</precision_from_pv> + <widget_type>Text Input</widget_type> + <confirm_message></confirm_message> + <name>Text Input_9</name> + <style>0</style> + <actions hook="false" hook_all="false" /> + <border_style>3</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>true</enabled> + <wuid>-16429ab9:158444d4181:-628c</wuid> + <transparent>false</transparent> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <format_type>0</format_type> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>100</width> + <x>1205</x> + <y>876</y> + <maximum>1.7976931348623157E308</maximum> + <foreground_color> + <color name="Green On" red="0" green="255" blue="0" /> + </foreground_color> + <minimum>-1.7976931348623157E308</minimum> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules> + <rule name="Visible" prop_id="visible" out_exp="false"> + <exp bool_exp="pv0==1"> + <value>true</value> + </exp> + <exp bool_exp="pv0==0"> + <value>false</value> + </exp> + <pv trig="true">$(PREFIX_MTR):$(PMAC_MTR).MOVN</pv> + </rule> + </rules> + <enabled>false</enabled> + <wuid>59fc39f9:158487e5950:-4c5d</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>MOTOR IS MOVING ...</text> + <scripts /> + <height>20</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <width>181</width> + <x>1020</x> + <name>Label</name> + <y>877</y> + <foreground_color> + <color name="Major" red="255" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.xyGraph" version="1.0.0"> + <axis_1_scale_format></axis_1_scale_format> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(trace_0_y_pv) +$(trace_0_y_pv_value)</tooltip> + <trace_0_concatenate_data>false</trace_0_concatenate_data> + <trace_0_trace_type>0</trace_0_trace_type> + <border_width>1</border_width> + <border_style>0</border_style> + <axis_0_grid_color> + <color red="200" green="200" blue="200" /> + </axis_0_grid_color> + <trace_0_name>$(trace_0_y_pv)</trace_0_name> + <trace_0_update_mode>0</trace_0_update_mode> + <wuid>-1168daa3:158859bc9c3:6e0</wuid> + <transparent>false</transparent> + <axis_0_title_font> + <opifont.name fontName="Cantarell" height="11" style="1">Default Bold</opifont.name> + </axis_0_title_font> + <background_color> + <color name="Container Grey" red="200" green="200" blue="200" /> + </background_color> + <x>639</x> + <y>912</y> + <trace_0_x_axis_index>0</trace_0_x_axis_index> + <axis_count>2</axis_count> + <pv_value /> + <trace_0_buffer_size>100</trace_0_buffer_size> + <axis_1_maximum>1.0</axis_1_maximum> + <axis_0_scale_font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </axis_0_scale_font> + <trigger_pv></trigger_pv> + <widget_type>XY Graph</widget_type> + <axis_1_axis_color> + <color red="0" green="0" blue="0" /> + </axis_1_axis_color> + <axis_0_scale_format></axis_0_scale_format> + <axis_1_log_scale>false</axis_1_log_scale> + <title></title> + <trace_0_visible>true</trace_0_visible> + <show_legend>false</show_legend> + <axis_0_axis_title>mm</axis_0_axis_title> + <axis_0_axis_color> + <color red="0" green="0" blue="0" /> + </axis_0_axis_color> + <axis_0_dash_grid_line>true</axis_0_dash_grid_line> + <trace_0_point_style>0</trace_0_point_style> + <trace_0_line_width>1</trace_0_line_width> + <axis_0_time_format>0</axis_0_time_format> + <trace_count>1</trace_count> + <axis_1_show_grid>true</axis_1_show_grid> + <axis_1_dash_grid_line>true</axis_1_dash_grid_line> + <show_toolbar>false</show_toolbar> + <axis_0_visible>true</axis_0_visible> + <axis_0_show_grid>true</axis_0_show_grid> + <trace_0_y_axis_index>1</trace_0_y_axis_index> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <axis_0_maximum>1.0</axis_0_maximum> + <height>181</height> + <trigger_pv_value /> + <axis_1_grid_color> + <color red="200" green="200" blue="200" /> + </axis_1_grid_color> + <actions hook="false" hook_all="false" /> + <axis_0_log_scale>false</axis_0_log_scale> + <trace_0_x_pv_value /> + <axis_0_auto_scale_threshold>0.0</axis_0_auto_scale_threshold> + <rules /> + <axis_1_visible>true</axis_1_visible> + <trace_0_update_delay>1</trace_0_update_delay> + <pv_name>$(PREFIX_SCAN):$(CALC)-PROJ-Xwf</pv_name> + <name>XY Graph</name> + <axis_0_auto_scale>true</axis_0_auto_scale> + <axis_0_minimum>-100.0</axis_0_minimum> + <axis_1_axis_title></axis_1_axis_title> + <axis_1_auto_scale>true</axis_1_auto_scale> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <trace_0_y_pv>$(PREFIX_SCAN):$(CALC)-PROJ-Xwf</trace_0_y_pv> + <trace_0_plot_mode>0</trace_0_plot_mode> + <enabled>true</enabled> + <trace_0_x_pv>$(PREFIX_SCAN):$(CALC)-PROJ-Xabsc</trace_0_x_pv> + <axis_1_scale_font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </axis_1_scale_font> + <axis_1_time_format>0</axis_1_time_format> + <border_alarm_sensitive>false</border_alarm_sensitive> + <show_plot_area_border>true</show_plot_area_border> + <width>1384</width> + <axis_1_minimum>-1.0</axis_1_minimum> + <title_font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </title_font> + <trace_0_y_pv_value /> + <plot_area_background_color> + <color name="Field Background Grey" red="240" green="240" blue="240" /> + </plot_area_background_color> + <axis_1_title_font> + <opifont.name fontName="Cantarell" height="11" style="1">Default Bold</opifont.name> + </axis_1_title_font> + <visible>true</visible> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <scripts /> + <trace_0_point_size>4</trace_0_point_size> + <trace_0_trace_color> + <color red="21" green="21" blue="196" /> + </trace_0_trace_color> + <trace_0_anti_alias>true</trace_0_anti_alias> + <axis_1_auto_scale_threshold>0.1</axis_1_auto_scale_threshold> + <foreground_color> + <color red="0" green="0" blue="255" /> + </foreground_color> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.xyGraph" version="1.0.0"> + <axis_1_scale_format></axis_1_scale_format> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(trace_0_y_pv) +$(trace_0_y_pv_value)</tooltip> + <trace_0_concatenate_data>false</trace_0_concatenate_data> + <trace_0_trace_type>0</trace_0_trace_type> + <border_width>1</border_width> + <border_style>0</border_style> + <axis_0_grid_color> + <color red="200" green="200" blue="200" /> + </axis_0_grid_color> + <trace_0_name>$(trace_0_y_pv)</trace_0_name> + <trace_0_update_mode>0</trace_0_update_mode> + <wuid>-1168daa3:158859bc9c3:50e</wuid> + <transparent>false</transparent> + <axis_0_title_font> + <opifont.name fontName="Cantarell" height="11" style="1">Default Bold</opifont.name> + </axis_0_title_font> + <background_color> + <color name="Container Grey" red="200" green="200" blue="200" /> + </background_color> + <x>432</x> + <y>100</y> + <trace_0_x_axis_index>0</trace_0_x_axis_index> + <axis_count>2</axis_count> + <pv_value /> + <trace_0_buffer_size>500</trace_0_buffer_size> + <axis_1_maximum>100.0</axis_1_maximum> + <axis_0_scale_font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </axis_0_scale_font> + <trigger_pv></trigger_pv> + <widget_type>XY Graph</widget_type> + <axis_1_axis_color> + <color red="0" green="0" blue="0" /> + </axis_1_axis_color> + <axis_0_scale_format></axis_0_scale_format> + <axis_1_log_scale>false</axis_1_log_scale> + <title></title> + <trace_0_visible>true</trace_0_visible> + <show_legend>false</show_legend> + <axis_0_axis_title></axis_0_axis_title> + <axis_0_axis_color> + <color red="0" green="0" blue="0" /> + </axis_0_axis_color> + <axis_0_dash_grid_line>true</axis_0_dash_grid_line> + <trace_0_point_style>0</trace_0_point_style> + <trace_0_line_width>1</trace_0_line_width> + <axis_0_time_format>0</axis_0_time_format> + <trace_count>1</trace_count> + <axis_1_show_grid>true</axis_1_show_grid> + <axis_1_dash_grid_line>true</axis_1_dash_grid_line> + <show_toolbar>false</show_toolbar> + <axis_0_visible>true</axis_0_visible> + <axis_0_show_grid>true</axis_0_show_grid> + <trace_0_y_axis_index>1</trace_0_y_axis_index> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <axis_0_maximum>100.0</axis_0_maximum> + <height>795</height> + <trigger_pv_value /> + <axis_1_grid_color> + <color red="200" green="200" blue="200" /> + </axis_1_grid_color> + <actions hook="false" hook_all="false" /> + <axis_0_log_scale>false</axis_0_log_scale> + <trace_0_x_pv_value /> + <axis_0_auto_scale_threshold>0.1</axis_0_auto_scale_threshold> + <rules /> + <axis_1_visible>true</axis_1_visible> + <trace_0_update_delay>10</trace_0_update_delay> + <pv_name></pv_name> + <name>XY Graph</name> + <axis_0_auto_scale>true</axis_0_auto_scale> + <axis_0_minimum>-100.0</axis_0_minimum> + <axis_1_axis_title>mrad</axis_1_axis_title> + <axis_1_auto_scale>true</axis_1_auto_scale> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <trace_0_y_pv>$(PREFIX_SCAN):$(CALC)-PROJ-Yabsc</trace_0_y_pv> + <trace_0_plot_mode>0</trace_0_plot_mode> + <enabled>true</enabled> + <trace_0_x_pv>$(PREFIX_SCAN):$(CALC)-PROJ-Ywf</trace_0_x_pv> + <axis_1_scale_font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </axis_1_scale_font> + <axis_1_time_format>0</axis_1_time_format> + <border_alarm_sensitive>false</border_alarm_sensitive> + <show_plot_area_border>true</show_plot_area_border> + <width>217</width> + <axis_1_minimum>-100.0</axis_1_minimum> + <title_font> + <opifont.name fontName="Cantarell" height="11" style="1">Default Bold</opifont.name> + </title_font> + <trace_0_y_pv_value /> + <plot_area_background_color> + <color red="255" green="255" blue="255" /> + </plot_area_background_color> + <axis_1_title_font> + <opifont.name fontName="Cantarell" height="11" style="1">Default Bold</opifont.name> + </axis_1_title_font> + <visible>true</visible> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <scripts /> + <trace_0_point_size>4</trace_0_point_size> + <trace_0_trace_color> + <color red="21" green="21" blue="196" /> + </trace_0_trace_color> + <trace_0_anti_alias>false</trace_0_anti_alias> + <axis_1_auto_scale_threshold>0.0</axis_1_auto_scale_threshold> + <foreground_color> + <color red="0" green="0" blue="255" /> + </foreground_color> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>-47901338:158955bc5eb:-3243</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>X Mean</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>121</width> + <x>420</x> + <name>Label Orientation_2</name> + <y>912</y> + <foreground_color> + <color name="White" red="255" green="255" blue="255" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>-47901338:158955bc5eb:-3235</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>X' Mean</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>121</width> + <x>420</x> + <name>Label Orientation_2</name> + <y>942</y> + <foreground_color> + <color name="White" red="255" green="255" blue="255" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextUpdate" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>0</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-47901338:158955bc5eb:-31f2</wuid> + <transparent>true</transparent> + <pv_value /> + <auto_size>false</auto_size> + <text>######</text> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <show_units>true</show_units> + <height>20</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>${PREFIX_SCAN}:$(CALC)-PROJ-Y</pv_name> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Update</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <wrap_words>false</wrap_words> + <format_type>0</format_type> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <width>100</width> + <x>540</x> + <name>Text Update</name> + <y>942</y> + <foreground_color> + <color name="Green On" red="0" green="255" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>4b16a64d:158af4f8f37:-7b9f</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Tension MRAD MAX</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>168</width> + <x>36</x> + <name>Label Orientation_3</name> + <y>857</y> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextUpdate" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>4b16a64d:158af4f8f37:-7b9e</wuid> + <transparent>false</transparent> + <pv_value /> + <auto_size>false</auto_size> + <text>######</text> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <border_alarm_sensitive>true</border_alarm_sensitive> + <show_units>true</show_units> + <height>31</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>${PREFIX_SCAN}:$(PROC)-VoltMaxP1</pv_name> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Update</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <wrap_words>false</wrap_words> + <format_type>0</format_type> + <background_color> + <color red="70" green="70" blue="70" /> + </background_color> + <width>160</width> + <x>209</x> + <name>Text Update</name> + <y>851</y> + <foreground_color> + <color name="Green On" red="0" green="255" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextUpdate" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>4b16a64d:158af4f8f37:-7b9d</wuid> + <transparent>false</transparent> + <pv_value /> + <auto_size>false</auto_size> + <text>######</text> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <border_alarm_sensitive>true</border_alarm_sensitive> + <show_units>true</show_units> + <height>31</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>${PREFIX_SCAN}:$(PROC)-VoltMinP1</pv_name> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Update</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <wrap_words>false</wrap_words> + <format_type>0</format_type> + <background_color> + <color red="70" green="70" blue="70" /> + </background_color> + <width>160</width> + <x>209</x> + <name>Text Update_1</name> + <y>893</y> + <foreground_color> + <color name="Green On" red="0" green="255" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>4b16a64d:158af4f8f37:-7ae3</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Tension MRAD MIN</text> + <scripts /> + <height>25</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>168</width> + <x>36</x> + <name>Label Orientation_3</name> + <y>899</y> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextUpdate" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>0</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>82148ce:158b4de09bc:-7db2</wuid> + <transparent>true</transparent> + <pv_value /> + <auto_size>false</auto_size> + <text>######</text> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <show_units>true</show_units> + <height>20</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>${PREFIX_SCAN}:$(CALC)-RMS-SIZE</pv_name> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Update</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <wrap_words>false</wrap_words> + <format_type>0</format_type> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <width>100</width> + <x>540</x> + <name>Text Update</name> + <y>978</y> + <foreground_color> + <color name="Green On" red="0" green="255" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>82148ce:158b4de09bc:-7db1</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>SIGMA X</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>121</width> + <x>420</x> + <name>Label Orientation_2</name> + <y>978</y> + <foreground_color> + <color name="White" red="255" green="255" blue="255" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>82148ce:158b4de09bc:-7db0</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>SIGMA X'</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>121</width> + <x>420</x> + <name>Label Orientation_3</name> + <y>1012</y> + <foreground_color> + <color name="White" red="255" green="255" blue="255" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextUpdate" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>0</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>82148ce:158b4de09bc:-7daf</wuid> + <transparent>true</transparent> + <pv_value /> + <auto_size>false</auto_size> + <text>######</text> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <show_units>true</show_units> + <height>20</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>${PREFIX_SCAN}:$(CALC)-RMS-ANGLE</pv_name> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Update</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <wrap_words>false</wrap_words> + <format_type>0</format_type> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <width>100</width> + <x>540</x> + <name>Text Update_1</name> + <y>1012</y> + <foreground_color> + <color name="Green On" red="0" green="255" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>-254931a3:158b5a49183:-7dd1</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>SIGMA XX'</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>121</width> + <x>420</x> + <name>Label Orientation_3</name> + <y>1047</y> + <foreground_color> + <color name="White" red="255" green="255" blue="255" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextUpdate" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>0</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-254931a3:158b5a49183:-7dd0</wuid> + <transparent>true</transparent> + <pv_value /> + <auto_size>false</auto_size> + <text>######</text> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <show_units>true</show_units> + <height>20</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>${PREFIX_SCAN}:$(CALC)-SIGMA</pv_name> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Update</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <wrap_words>false</wrap_words> + <format_type>0</format_type> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <width>100</width> + <x>540</x> + <name>Text Update_1</name> + <y>1047</y> + <foreground_color> + <color name="Green On" red="0" green="255" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.tab" version="1.0.0"> + <active_tab>0</active_tab> + <tooltip></tooltip> + <height>354</height> + <border_width>1</border_width> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <tab_0_foreground_color> + <color red="0" green="0" blue="0" /> + </tab_0_foreground_color> + <actions hook="false" hook_all="false" /> + <border_style>0</border_style> + <enabled>true</enabled> + <wuid>60f6e55b:158baae9c78:-7f2b</wuid> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <width>319</width> + <x>2136</x> + <horizontal_tabs>true</horizontal_tabs> + <y>678</y> + <rules /> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <visible>true</visible> + <tab_0_background_color> + <color red="183" green="189" blue="182" /> + </tab_0_background_color> + <widget_type>Tabbed Container</widget_type> + <name>Tabbed Container_2</name> + <minimum_tab_height>10</minimum_tab_height> + <tab_0_font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </tab_0_font> + <tab_0_title>PLC-STATUS</tab_0_title> + <scripts /> + <tab_count>1</tab_count> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <tab_0_icon_path></tab_0_icon_path> + <tab_0_enabled>true</tab_0_enabled> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <widget typeId="org.csstudio.opibuilder.widgets.groupingContainer" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <rules /> + <enabled>true</enabled> + <wuid>60f6e55b:158baae9c78:-7f2a</wuid> + <transparent>true</transparent> + <lock_children>false</lock_children> + <scripts /> + <height>318</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <visible>true</visible> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Grouping Container</widget_type> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <width>317</width> + <x>1</x> + <name>PLC-STATUS</name> + <y>1</y> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <fc>false</fc> + <show_scrollbar>true</show_scrollbar> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + <widget typeId="org.csstudio.opibuilder.widgets.Rectangle" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <line_width>0</line_width> + <horizontal_fill>true</horizontal_fill> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <rules /> + <enabled>true</enabled> + <wuid>60f6e55b:158baae9c78:-7f15</wuid> + <transparent>false</transparent> + <pv_value /> + <alpha>255</alpha> + <bg_gradient_color> + <color red="255" green="255" blue="255" /> + </bg_gradient_color> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>301</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name></pv_name> + <gradient>false</gradient> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <anti_alias>true</anti_alias> + <line_style>0</line_style> + <widget_type>Rectangle</widget_type> + <fg_gradient_color> + <color red="255" green="255" blue="255" /> + </fg_gradient_color> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color red="136" green="138" blue="133" /> + </background_color> + <width>295</width> + <x>12</x> + <name>Rectangle</name> + <y>6</y> + <fill_level>0.0</fill_level> + <foreground_color> + <color red="255" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + <line_color> + <color red="128" green="0" blue="255" /> + </line_color> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>60f6e55b:158baae9c78:-7f14</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Temp BEAM Stop</text> + <scripts /> + <height>20</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <width>134</width> + <x>28</x> + <name>Label_164</name> + <y>30</y> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextUpdate" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <precision>2</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>60f6e55b:158baae9c78:-7f13</wuid> + <transparent>false</transparent> + <pv_value /> + <auto_size>false</auto_size> + <text>######</text> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <border_alarm_sensitive>true</border_alarm_sensitive> + <show_units>true</show_units> + <height>31</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>INFN-SRC:INTK-VBS:TEMP</pv_name> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>false</precision_from_pv> + <widget_type>Text Update</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <wrap_words>false</wrap_words> + <format_type>0</format_type> + <background_color> + <color red="70" green="70" blue="70" /> + </background_color> + <width>112</width> + <x>174</x> + <name>Text Update</name> + <y>24</y> + <foreground_color> + <color name="Green On" red="0" green="255" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextUpdate" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <precision>2</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>60f6e55b:158baae9c78:-7f12</wuid> + <transparent>false</transparent> + <pv_value /> + <auto_size>false</auto_size> + <text>######</text> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <border_alarm_sensitive>true</border_alarm_sensitive> + <show_units>true</show_units> + <height>31</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>INFN-SRC:INTK-VS:TEMP</pv_name> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>false</precision_from_pv> + <widget_type>Text Update</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <wrap_words>false</wrap_words> + <format_type>0</format_type> + <background_color> + <color red="70" green="70" blue="70" /> + </background_color> + <width>112</width> + <x>174</x> + <name>Text Update_1</name> + <y>66</y> + <foreground_color> + <color name="Green On" red="0" green="255" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.ActionButton" version="2.0.0"> + <toggle_button>false</toggle_button> + <border_style>6</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <push_action_index>0</push_action_index> + <rules> + <rule name="Enable" prop_id="enabled" out_exp="false"> + <exp bool_exp="pv0 >= 200"> + <value>false</value> + </exp> + <exp bool_exp="pv0<=200"> + <value>true</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(NAME_MTR).P4SI</pv> + </rule> + </rules> + <enabled>false</enabled> + <wuid>60f6e55b:158baae9c78:-7f11</wuid> + <pv_value /> + <text>HORIZONTAL</text> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>55</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <image></image> + <visible>true</visible> + <pv_name>INFN-SRC:INTK-HMI:VH_SELECT</pv_name> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Action Button</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="IO Button" red="178" green="178" blue="178" /> + </background_color> + <width>133</width> + <x>46</x> + <name>Start Scan</name> + <y>126</y> + <style>0</style> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false"> + <action type="WRITE_PV"> + <pv_name>INFN-SRC:INTK-HMI:VH_SELECT</pv_name> + <value>1</value> + <timeout>10</timeout> + <confirm_message></confirm_message> + <description>Select HORIZONTAL</description> + </action> + </actions> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.LED" version="1.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name)</tooltip> + <rules /> + <effect_3d>true</effect_3d> + <bit>-1</bit> + <pv_value /> + <height>23</height> + <border_width>1</border_width> + <visible>true</visible> + <pv_name>INFN-SRC:INTK-HMI:VH_SELECT</pv_name> + <border_color> + <color name="Blue" red="0" green="128" blue="255" /> + </border_color> + <widget_type>LED</widget_type> + <name>LED</name> + <actions hook="false" hook_all="false" /> + <show_boolean_label>false</show_boolean_label> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>true</enabled> + <wuid>60f6e55b:158baae9c78:-7f10</wuid> + <on_color> + <color name="Green On" red="0" green="255" blue="0" /> + </on_color> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <on_label>ON</on_label> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>true</keep_wh_ratio> + </scale_options> + <off_color> + <color name="Field Background Grey" red="240" green="240" blue="240" /> + </off_color> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="Field Background Grey" red="240" green="240" blue="240" /> + </background_color> + <square_led>false</square_led> + <width>23</width> + <x>234</x> + <data_type>0</data_type> + <y>142</y> + <foreground_color> + <color name="Button Grey" red="180" green="180" blue="180" /> + </foreground_color> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + <off_label>OFF</off_label> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.LED" version="1.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name)</tooltip> + <rules /> + <effect_3d>true</effect_3d> + <bit>-1</bit> + <pv_value /> + <height>23</height> + <border_width>1</border_width> + <visible>true</visible> + <pv_name>INFN-SRC:INTK-HMI:VH_SELECT</pv_name> + <border_color> + <color name="Blue" red="0" green="128" blue="255" /> + </border_color> + <widget_type>LED</widget_type> + <name>LED_1</name> + <actions hook="false" hook_all="false" /> + <show_boolean_label>false</show_boolean_label> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>true</enabled> + <wuid>60f6e55b:158baae9c78:-7f0f</wuid> + <on_color> + <color name="Field Background Grey" red="240" green="240" blue="240" /> + </on_color> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <on_label>ON</on_label> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>true</keep_wh_ratio> + </scale_options> + <off_color> + <color name="Green On" red="0" green="255" blue="0" /> + </off_color> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="Field Background Grey" red="240" green="240" blue="240" /> + </background_color> + <square_led>false</square_led> + <width>23</width> + <x>234</x> + <data_type>0</data_type> + <y>208</y> + <foreground_color> + <color name="Button Grey" red="180" green="180" blue="180" /> + </foreground_color> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + <off_label>OFF</off_label> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.ActionButton" version="2.0.0"> + <toggle_button>false</toggle_button> + <border_style>6</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <push_action_index>0</push_action_index> + <rules> + <rule name="Enable" prop_id="enabled" out_exp="false"> + <exp bool_exp="pv0 >= 200"> + <value>false</value> + </exp> + <exp bool_exp="pv0<=200"> + <value>true</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(NAME_MTR).P4SI</pv> + </rule> + </rules> + <enabled>false</enabled> + <wuid>60f6e55b:158baae9c78:-7f0e</wuid> + <pv_value /> + <text>VERTICAL</text> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>55</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <image></image> + <visible>true</visible> + <pv_name>INFN-SRC:INTK-HMI:VH_SELECT</pv_name> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Action Button</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="IO Button" red="178" green="178" blue="178" /> + </background_color> + <width>133</width> + <x>46</x> + <name>Start Scan_1</name> + <y>192</y> + <style>0</style> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false"> + <action type="WRITE_PV"> + <pv_name>INFN-SRC:INTK-HMI:VH_SELECT</pv_name> + <value>1</value> + <timeout>10</timeout> + <confirm_message></confirm_message> + <description>Select VERTICAL</description> + </action> + </actions> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>60f6e55b:158baae9c78:-7f0d</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Temp SLIT</text> + <scripts /> + <height>20</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <width>134</width> + <x>24</x> + <name>Label_165</name> + <y>72</y> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Rectangle" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <line_width>4</line_width> + <horizontal_fill>true</horizontal_fill> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <rules> + <rule name="Visible" prop_id="visible" out_exp="false"> + <exp bool_exp="pv0==1 || pv1==1||pv2==1||pv3==1||pv4==1"> + <value>true</value> + </exp> + <exp bool_exp="pv0==0 && pv1==0 && pv2==0 && pv3==0 && pv4==0"> + <value>false</value> + </exp> + <pv trig="true">INFN-SRC:INTK-HMI:FM1</pv> + <pv trig="true">INFN-SRC:INTK-HMI:FM2</pv> + <pv trig="true">INFN-SRC:INTK-HMI:FM3</pv> + <pv trig="true">INFN-SRC:INTK-HMI:FM4</pv> + <pv trig="true">INFN-SRC:INTK-HMI:FM5</pv> + </rule> + </rules> + <enabled>true</enabled> + <wuid>-25f0d7e:158d972c59b:-7f2b</wuid> + <transparent>true</transparent> + <pv_value /> + <alpha>255</alpha> + <bg_gradient_color> + <color red="255" green="255" blue="255" /> + </bg_gradient_color> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>301</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name></pv_name> + <gradient>false</gradient> + <border_color> + <color name="Major" red="255" green="0" blue="0" /> + </border_color> + <anti_alias>true</anti_alias> + <line_style>0</line_style> + <widget_type>Rectangle</widget_type> + <fg_gradient_color> + <color red="255" green="255" blue="255" /> + </fg_gradient_color> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="Major" red="255" green="0" blue="0" /> + </background_color> + <width>295</width> + <x>12</x> + <name>Rectangle</name> + <y>6</y> + <fill_level>0.0</fill_level> + <foreground_color> + <color red="255" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + <line_color> + <color name="Major" red="255" green="0" blue="0" /> + </line_color> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextUpdate" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <precision>2</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules> + <rule name="status" prop_id="text" out_exp="false"> + <exp bool_exp="pv0==1 || pv1==1 || pv2==1 || pv3==1|| pv4==1"> + <value>Error</value> + </exp> + <exp bool_exp="pv0==1 && pv1==0 && pv2==0 && pv3==0 && pv4==0"> + <value>OK</value> + </exp> + <pv trig="true">INFN-SRC:INTK-HMI:FM1</pv> + <pv trig="true">INFN-SRC:INTK-HMI:FM2</pv> + <pv trig="true">INFN-SRC:INTK-HMI:FM3</pv> + <pv trig="true">INFN-SRC:INTK-HMI:FM4</pv> + <pv trig="true">INFN-SRC:INTK-HMI:FM5</pv> + </rule> + <rule name="Color" prop_id="foreground_color" out_exp="false"> + <exp bool_exp="pv0==1 || pv1==1 || pv2==1 || pv3==1|| pv4==1"> + <value> + <color name="Major" red="255" green="0" blue="0" /> + </value> + </exp> + <exp bool_exp="pv0==1 && pv1==1 && pv2==1 && pv3==1 && pv4==1"> + <value> + <color name="Green On" red="0" green="255" blue="0" /> + </value> + </exp> + <pv trig="true">INFN-SRC:INTK-HMI:FM1</pv> + <pv trig="true">INFN-SRC:INTK-HMI:FM2</pv> + <pv trig="true">INFN-SRC:INTK-HMI:FM3</pv> + <pv trig="true">INFN-SRC:INTK-HMI:FM4</pv> + <pv trig="true">INFN-SRC:INTK-HMI:FM5</pv> + </rule> + </rules> + <enabled>true</enabled> + <wuid>100e174:1598cdb59c9:-78c8</wuid> + <transparent>false</transparent> + <pv_value /> + <auto_size>false</auto_size> + <text>OK</text> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <border_alarm_sensitive>true</border_alarm_sensitive> + <show_units>true</show_units> + <height>31</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name></pv_name> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>false</precision_from_pv> + <widget_type>Text Update</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <wrap_words>false</wrap_words> + <format_type>0</format_type> + <background_color> + <color red="70" green="70" blue="70" /> + </background_color> + <width>112</width> + <x>174</x> + <name>Text Update_1</name> + <y>264</y> + <foreground_color> + <color name="Green On" red="0" green="255" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="15" style="1">Medium Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>100e174:1598cdb59c9:-78c7</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Status</text> + <scripts /> + <height>20</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <width>134</width> + <x>24</x> + <name>Label_165</name> + <y>270</y> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + </widget> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.ActionButton" version="2.0.0"> + <toggle_button>false</toggle_button> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <push_action_index>0</push_action_index> + <rules> + <rule name="Enable" prop_id="enabled" out_exp="false"> + <exp bool_exp="pv0==0 && pv1==0"> + <value>true</value> + </exp> + <exp bool_exp="pv0==1 || pv1==1"> + <value>false</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(NAME_MTR).BUSY</pv> + <pv trig="true">${PREFIX_SCAN}:$(NAME_PS).BUSY</pv> + </rule> + </rules> + <enabled>true</enabled> + <wuid>-61dcfd6b:158bac54bbd:-7a9a</wuid> + <pv_value /> + <text>Extract DATA</text> + <scripts> + <path pathString="Scripts/ExtracData.py" checkConnect="true" sfe="false" seoe="false"> + <pv trig="true">loc://StartExtract</pv> + <pv trig="false">${PREFIX_SCAN}:$(NAME_PS).NPTS</pv> + <pv trig="false">${PREFIX_SCAN}:$(NAME_MTR).NPTS</pv> + <pv trig="false">${PREFIX_SCAN}:${CALC}-Energy-SP</pv> + <pv trig="false">$(DTACQ-NAME):CARD0:SAMPLINGRATE-RB</pv> + <pv trig="false">${PREFIX_SCAN}:$(NAME_MTR).P4SI</pv> + <pv trig="false">$(PREFIX_SCAN):BUFF-CURRENT</pv> + <pv trig="false">$(PREFIX_SCAN):BUFF-ANGLE</pv> + <pv trig="false">$(PREFIX_SCAN):BUFF-MTR-POS</pv> + </path> + </scripts> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>57</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <image></image> + <visible>true</visible> + <pv_name></pv_name> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Action Button</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="Button Grey" red="180" green="180" blue="180" /> + </background_color> + <width>166</width> + <x>2220</x> + <name>Action Button</name> + <y>1049</y> + <style>0</style> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false"> + <action type="WRITE_PV"> + <pv_name>loc://StartExtract</pv_name> + <value>1</value> + <timeout>10</timeout> + <confirm_message></confirm_message> + <description></description> + </action> + </actions> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules> + <rule name="Visible" prop_id="visible" out_exp="false"> + <exp bool_exp="pv0==1"> + <value>true</value> + </exp> + <exp bool_exp="pv0==0"> + <value>false</value> + </exp> + <pv trig="true">${PREFIX_SCAN}:$(PROC)-AUTO-HOME</pv> + </rule> + </rules> + <enabled>false</enabled> + <wuid>7feef39:159b7455f16:-7060</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>STOPPING IN PROGRESS ...</text> + <scripts /> + <height>60</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <width>505</width> + <x>1086</x> + <name>Label</name> + <y>150</y> + <foreground_color> + <color name="Major" red="255" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="Cantarell" height="19" style="1">Header 1</opifont.name> + </font> + </widget> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.groupingContainer" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <rules /> + <enabled>true</enabled> + <wuid>2fea3147:153609206ed:-7765</wuid> + <transparent>true</transparent> + <lock_children>false</lock_children> + <scripts /> + <height>1129</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <visible>false</visible> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Grouping Container</widget_type> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <width>2489</width> + <x>1</x> + <name>DTACQ</name> + <y>1</y> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <fc>false</fc> + <show_scrollbar>true</show_scrollbar> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + <widget typeId="org.csstudio.opibuilder.widgets.Rectangle" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <line_width>0</line_width> + <horizontal_fill>true</horizontal_fill> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <rules /> + <enabled>true</enabled> + <wuid>-1168daa3:158859bc9c3:-eb7</wuid> + <transparent>false</transparent> + <pv_value /> + <alpha>255</alpha> + <bg_gradient_color> + <color red="255" green="255" blue="255" /> + </bg_gradient_color> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>936</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name></pv_name> + <gradient>false</gradient> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <anti_alias>true</anti_alias> + <line_style>0</line_style> + <widget_type>Rectangle</widget_type> + <fg_gradient_color> + <color red="255" green="255" blue="255" /> + </fg_gradient_color> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="Container Grey" red="200" green="200" blue="200" /> + </background_color> + <width>1483</width> + <x>0</x> + <name>Rectangle</name> + <y>43</y> + <fill_level>0.0</fill_level> + <foreground_color> + <color red="255" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + <line_color> + <color red="128" green="0" blue="255" /> + </line_color> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextUpdate" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>0</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>1e771979:1565068c2e3:-483e</wuid> + <transparent>false</transparent> + <pv_value /> + <auto_size>false</auto_size> + <text>######</text> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <show_units>true</show_units> + <height>20</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>$(DTACQ-NAME):CARD0-STAT-RB</pv_name> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Update</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <wrap_words>false</wrap_words> + <format_type>0</format_type> + <background_color> + <color red="0" green="0" blue="0" /> + </background_color> + <width>148</width> + <x>1104</x> + <name>Text Update</name> + <y>24</y> + <foreground_color> + <color name="TextDynamic" red="0" green="244" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Rectangle" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <line_width>0</line_width> + <horizontal_fill>true</horizontal_fill> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <rules /> + <enabled>true</enabled> + <wuid>-3d4af206:15877d6a498:-7781</wuid> + <transparent>false</transparent> + <pv_value /> + <alpha>255</alpha> + <bg_gradient_color> + <color red="255" green="255" blue="255" /> + </bg_gradient_color> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>20</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name></pv_name> + <gradient>false</gradient> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <anti_alias>true</anti_alias> + <line_style>0</line_style> + <widget_type>Rectangle</widget_type> + <fg_gradient_color> + <color red="255" green="255" blue="255" /> + </fg_gradient_color> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color red="186" green="189" blue="182" /> + </background_color> + <width>160</width> + <x>408</x> + <name>Rectangle_2</name> + <y>850</y> + <fill_level>0.0</fill_level> + <foreground_color> + <color red="255" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + <line_color> + <color red="128" green="0" blue="255" /> + </line_color> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.xyGraph" version="1.0.0"> + <axis_1_scale_format></axis_1_scale_format> + <trace_2_x_axis_index>0</trace_2_x_axis_index> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(trace_0_y_pv) +$(trace_0_y_pv_value)</tooltip> + <trace_0_concatenate_data>false</trace_0_concatenate_data> + <trace_0_trace_type>0</trace_0_trace_type> + <trace_4_line_width>3</trace_4_line_width> + <border_width>1</border_width> + <trace_3_point_size>4</trace_3_point_size> + <trace_1_x_axis_index>0</trace_1_x_axis_index> + <border_style>0</border_style> + <axis_0_grid_color> + <color red="78" green="154" blue="6" /> + </axis_0_grid_color> + <axis_2_visible>false</axis_2_visible> + <trace_0_name>$(trace_0_y_pv)</trace_0_name> + <axis_2_minimum>0.0</axis_2_minimum> + <trace_0_update_mode>0</trace_0_update_mode> + <trace_1_x_pv>$(DTACQ-NAME)-$(DEVICE_HV1):VoltR_XMS</trace_1_x_pv> + <wuid>-3d4af206:15877d6a498:-7780</wuid> + <transparent>false</transparent> + <trace_1_update_mode>0</trace_1_update_mode> + <axis_0_title_font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </axis_0_title_font> + <trace_2_update_mode>0</trace_2_update_mode> + <background_color> + <color name="Field Background Grey" red="240" green="240" blue="240" /> + </background_color> + <trace_3_update_mode>0</trace_3_update_mode> + <x>408</x> + <y>120</y> + <trace_4_update_mode>0</trace_4_update_mode> + <trace_3_x_axis_index>0</trace_3_x_axis_index> + <trace_0_x_axis_index>0</trace_0_x_axis_index> + <axis_count>3</axis_count> + <trace_4_x_pv>$(DTACQ-NAME)-$(DEVICE_HV1):VoltR:RCURSOR_X</trace_4_x_pv> + <trace_3_y_pv_value /> + <trace_1_point_size>4</trace_1_point_size> + <trace_1_anti_alias>false</trace_1_anti_alias> + <pv_value /> + <axis_2_grid_color> + <color red="200" green="200" blue="200" /> + </axis_2_grid_color> + <trace_0_buffer_size>520</trace_0_buffer_size> + <trace_2_buffer_size>520</trace_2_buffer_size> + <axis_1_maximum>10.0</axis_1_maximum> + <axis_0_scale_font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </axis_0_scale_font> + <trigger_pv></trigger_pv> + <trace_4_update_delay>1</trace_4_update_delay> + <widget_type>XY Graph</widget_type> + <trace_2_line_width>1</trace_2_line_width> + <trace_4_plot_mode>0</trace_4_plot_mode> + <trace_3_concatenate_data>false</trace_3_concatenate_data> + <trace_4_x_pv_value /> + <axis_1_axis_color> + <color red="0" green="0" blue="0" /> + </axis_1_axis_color> + <axis_0_scale_format></axis_0_scale_format> + <axis_1_log_scale>false</axis_1_log_scale> + <title></title> + <trace_0_visible>true</trace_0_visible> + <trace_4_buffer_size>2</trace_4_buffer_size> + <trace_1_name>$(trace_1_y_pv)</trace_1_name> + <trace_3_anti_alias>false</trace_3_anti_alias> + <trace_1_y_pv_value /> + <axis_2_auto_scale>true</axis_2_auto_scale> + <trace_4_y_pv>loc://val(-100,100)</trace_4_y_pv> + <show_legend>false</show_legend> + <trace_3_visible>true</trace_3_visible> + <trace_4_x_axis_index>0</trace_4_x_axis_index> + <trace_3_name>$(trace_3_y_pv)</trace_3_name> + <axis_0_axis_title>ms</axis_0_axis_title> + <axis_0_axis_color> + <color red="0" green="0" blue="0" /> + </axis_0_axis_color> + <axis_2_scale_font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </axis_2_scale_font> + <trace_3_update_delay>1</trace_3_update_delay> + <trace_2_update_delay>1</trace_2_update_delay> + <trace_4_point_style>0</trace_4_point_style> + <axis_0_dash_grid_line>false</axis_0_dash_grid_line> + <trace_0_point_style>2</trace_0_point_style> + <trace_1_point_style>2</trace_1_point_style> + <trace_0_line_width>1</trace_0_line_width> + <axis_2_y_axis>false</axis_2_y_axis> + <trace_3_x_pv_value /> + <axis_0_time_format>0</axis_0_time_format> + <trace_count>5</trace_count> + <axis_1_show_grid>true</axis_1_show_grid> + <trace_3_x_pv>$(DTACQ-NAME)-$(DEVICE_HV1):VoltR:LCURSOR_X</trace_3_x_pv> + <trace_2_trace_color> + <color name="Primary Blue" red="0" green="148" blue="202" /> + </trace_2_trace_color> + <trace_4_visible>true</trace_4_visible> + <axis_1_dash_grid_line>true</axis_1_dash_grid_line> + <trace_3_buffer_size>2</trace_3_buffer_size> + <trace_2_trace_type>0</trace_2_trace_type> + <trace_3_line_width>3</trace_3_line_width> + <show_toolbar>true</show_toolbar> + <axis_0_visible>true</axis_0_visible> + <axis_0_show_grid>true</axis_0_show_grid> + <trace_0_y_axis_index>1</trace_0_y_axis_index> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>true</keep_wh_ratio> + </scale_options> + <trace_1_y_pv>$(DTACQ-NAME)-$(DEVICE_HV1):VoltR_Y</trace_1_y_pv> + <trace_2_concatenate_data>false</trace_2_concatenate_data> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <trace_2_y_pv_value /> + <trace_2_anti_alias>false</trace_2_anti_alias> + <axis_0_maximum>6.0</axis_0_maximum> + <trace_1_y_axis_index>1</trace_1_y_axis_index> + <trace_2_name>$(trace_2_y_pv)</trace_2_name> + <height>451</height> + <trace_2_visible>false</trace_2_visible> + <trigger_pv_value /> + <trace_3_y_pv>loc://val(-100,100)</trace_3_y_pv> + <axis_1_grid_color> + <color red="78" green="154" blue="6" /> + </axis_1_grid_color> + <actions hook="false" hook_all="false" /> + <trace_2_point_size>4</trace_2_point_size> + <trace_4_concatenate_data>false</trace_4_concatenate_data> + <axis_2_axis_color> + <color red="0" green="0" blue="0" /> + </axis_2_axis_color> + <axis_0_log_scale>false</axis_0_log_scale> + <trace_0_x_pv_value /> + <axis_0_auto_scale_threshold>0.0</axis_0_auto_scale_threshold> + <rules /> + <axis_1_visible>true</axis_1_visible> + <axis_2_show_grid>false</axis_2_show_grid> + <trace_3_y_axis_index>1</trace_3_y_axis_index> + <trace_0_update_delay>1</trace_0_update_delay> + <trace_1_concatenate_data>false</trace_1_concatenate_data> + <trace_1_trace_color> + <color red="242" green="26" blue="26" /> + </trace_1_trace_color> + <trace_3_trace_color> + <color name="Major" red="255" green="0" blue="0" /> + </trace_3_trace_color> + <pv_name></pv_name> + <axis_2_log_scale>false</axis_2_log_scale> + <axis_2_auto_scale_threshold>0.0</axis_2_auto_scale_threshold> + <name>XY Graph</name> + <trace_1_trace_type>0</trace_1_trace_type> + <axis_0_auto_scale>true</axis_0_auto_scale> + <axis_0_minimum>-6.0</axis_0_minimum> + <trace_2_y_axis_index>1</trace_2_y_axis_index> + <trace_1_update_delay>1</trace_1_update_delay> + <axis_2_dash_grid_line>false</axis_2_dash_grid_line> + <axis_1_axis_title>mA</axis_1_axis_title> + <trace_2_x_pv_value /> + <axis_1_auto_scale>false</axis_1_auto_scale> + <trace_1_line_width>1</trace_1_line_width> + <trace_3_trace_type>1</trace_3_trace_type> + <trace_2_y_pv>$(DTACQ-NAME)-$(DEVICE_HV2):VoltR_Y</trace_2_y_pv> + <trace_1_plot_mode>0</trace_1_plot_mode> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <axis_2_title_font> + <opifont.name fontName="Cantarell" height="11" style="1">Default Bold</opifont.name> + </axis_2_title_font> + <trace_3_point_style>0</trace_3_point_style> + <trace_0_y_pv>$(DTACQ-NAME)V-$(DEVICE_FC):CurrR_Y</trace_0_y_pv> + <trace_2_point_style>2</trace_2_point_style> + <trace_0_plot_mode>0</trace_0_plot_mode> + <trace_4_trace_type>1</trace_4_trace_type> + <enabled>true</enabled> + <trace_0_x_pv>$(DTACQ-NAME)V-$(DEVICE_FC):CurrR_XMS</trace_0_x_pv> + <axis_1_scale_font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </axis_1_scale_font> + <axis_1_time_format>0</axis_1_time_format> + <axis_2_time_format>0</axis_2_time_format> + <axis_2_left_bottom_side>false</axis_2_left_bottom_side> + <trace_3_plot_mode>0</trace_3_plot_mode> + <border_alarm_sensitive>false</border_alarm_sensitive> + <axis_2_maximum>22.0</axis_2_maximum> + <show_plot_area_border>false</show_plot_area_border> + <width>895</width> + <trace_1_x_pv_value /> + <axis_1_minimum>-10.0</axis_1_minimum> + <title_font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </title_font> + <trace_4_anti_alias>false</trace_4_anti_alias> + <trace_0_y_pv_value /> + <trace_1_visible>false</trace_1_visible> + <plot_area_background_color> + <color red="0" green="0" blue="0" /> + </plot_area_background_color> + <trace_4_point_size>4</trace_4_point_size> + <axis_1_title_font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </axis_1_title_font> + <visible>true</visible> + <axis_2_axis_title>ms</axis_2_axis_title> + <trace_4_trace_color> + <color name="Major" red="255" green="0" blue="0" /> + </trace_4_trace_color> + <trace_1_buffer_size>520</trace_1_buffer_size> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <axis_2_scale_format></axis_2_scale_format> + <trace_4_y_pv_value /> + <scripts /> + <trace_0_point_size>3</trace_0_point_size> + <trace_0_trace_color> + <color red="0" green="255" blue="0" /> + </trace_0_trace_color> + <trace_0_anti_alias>false</trace_0_anti_alias> + <trace_4_name>$(trace_4_y_pv)</trace_4_name> + <axis_1_auto_scale_threshold>0.0</axis_1_auto_scale_threshold> + <trace_4_y_axis_index>1</trace_4_y_axis_index> + <trace_2_plot_mode>0</trace_2_plot_mode> + <trace_2_x_pv>$(DTACQ-NAME)-$(DEVICE_HV2):VoltR_XMS</trace_2_x_pv> + <foreground_color> + <color red="0" green="0" blue="255" /> + </foreground_color> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.RoundedRectangle" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <line_width>0</line_width> + <horizontal_fill>true</horizontal_fill> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <rules /> + <enabled>true</enabled> + <wuid>-3d4af206:15877d6a498:-777f</wuid> + <transparent>false</transparent> + <pv_value /> + <alpha>255</alpha> + <corner_height>16</corner_height> + <bg_gradient_color> + <color red="255" green="255" blue="255" /> + </bg_gradient_color> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>97</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name></pv_name> + <gradient>false</gradient> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <anti_alias>true</anti_alias> + <corner_width>16</corner_width> + <line_style>0</line_style> + <widget_type>Rounded Rectangle</widget_type> + <fg_gradient_color> + <color red="255" green="255" blue="255" /> + </fg_gradient_color> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="Field Background Grey" red="240" green="240" blue="240" /> + </background_color> + <width>349</width> + <x>36</x> + <name>Rounded Rectangle_4</name> + <y>126</y> + <fill_level>0.0</fill_level> + <foreground_color> + <color red="255" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + <line_color> + <color red="128" green="0" blue="255" /> + </line_color> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-3d4af206:15877d6a498:-777d</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>ms</text> + <scripts /> + <height>20</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <width>40</width> + <x>328</x> + <name>Label_16</name> + <y>178</y> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="10" style="1">Small Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.RoundedRectangle" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <line_width>0</line_width> + <horizontal_fill>true</horizontal_fill> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <rules /> + <enabled>true</enabled> + <wuid>-3d4af206:15877d6a498:-777c</wuid> + <transparent>false</transparent> + <pv_value /> + <alpha>255</alpha> + <corner_height>16</corner_height> + <bg_gradient_color> + <color red="255" green="255" blue="255" /> + </bg_gradient_color> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>97</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name></pv_name> + <gradient>false</gradient> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <anti_alias>true</anti_alias> + <corner_width>16</corner_width> + <line_style>0</line_style> + <widget_type>Rounded Rectangle</widget_type> + <fg_gradient_color> + <color red="255" green="255" blue="255" /> + </fg_gradient_color> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="Field Background Grey" red="240" green="240" blue="240" /> + </background_color> + <width>349</width> + <x>36</x> + <name>Rounded Rectangle_5</name> + <y>246</y> + <fill_level>0.0</fill_level> + <foreground_color> + <color red="255" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + <line_color> + <color red="128" green="0" blue="255" /> + </line_color> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.polyline" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <line_width>2</line_width> + <horizontal_fill>true</horizontal_fill> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <arrows>1</arrows> + <rules /> + <enabled>true</enabled> + <wuid>-3d4af206:15877d6a498:-777b</wuid> + <transparent>false</transparent> + <points> + <point x="213" y="180" /> + <point x="156" y="180" /> + <point x="156" y="180" /> + </points> + <fill_arrow>true</fill_arrow> + <pv_value /> + <alpha>255</alpha> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>1</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>true</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name></pv_name> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <anti_alias>true</anti_alias> + <line_style>2</line_style> + <arrow_length>20</arrow_length> + <widget_type>Polyline</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color red="0" green="0" blue="0" /> + </background_color> + <width>58</width> + <x>156</x> + <name>Polyline_1</name> + <y>180</y> + <fill_level>0.0</fill_level> + <foreground_color> + <color red="255" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.polyline" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <line_width>2</line_width> + <horizontal_fill>true</horizontal_fill> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <arrows>1</arrows> + <rules /> + <enabled>true</enabled> + <wuid>-3d4af206:15877d6a498:-7779</wuid> + <transparent>false</transparent> + <points> + <point x="213" y="300" /> + <point x="156" y="300" /> + <point x="156" y="300" /> + </points> + <fill_arrow>true</fill_arrow> + <pv_value /> + <alpha>255</alpha> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>1</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>true</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name></pv_name> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <anti_alias>true</anti_alias> + <line_style>2</line_style> + <arrow_length>20</arrow_length> + <widget_type>Polyline</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color red="0" green="0" blue="0" /> + </background_color> + <width>58</width> + <x>156</x> + <name>Polyline_2</name> + <y>300</y> + <fill_level>0.0</fill_level> + <foreground_color> + <color red="255" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-3d4af206:15877d6a498:-7778</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>ms</text> + <scripts /> + <height>20</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <width>40</width> + <x>328</x> + <name>Label_18</name> + <y>298</y> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="10" style="1">Small Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-3d4af206:15877d6a498:-7777</wuid> + <transparent>false</transparent> + <auto_size>false</auto_size> + <text>FC Curr</text> + <scripts /> + <height>24</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color red="0" green="0" blue="0" /> + </background_color> + <width>160</width> + <x>408</x> + <name>Label_11</name> + <y>870</y> + <foreground_color> + <color name="TextDynamic" red="0" green="244" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextUpdate" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <precision>3</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-3d4af206:15877d6a498:-7776</wuid> + <transparent>false</transparent> + <pv_value /> + <auto_size>false</auto_size> + <text>######</text> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <show_units>false</show_units> + <height>24</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>$(DTACQ-NAME)V-$(DEVICE_FC):CurrR:AVG</pv_name> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>false</precision_from_pv> + <widget_type>Text Update</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <wrap_words>false</wrap_words> + <format_type>0</format_type> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>150</width> + <x>567</x> + <name>Text Update_3</name> + <y>870</y> + <foreground_color> + <color name="Minor" red="255" green="128" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextUpdate" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <precision>3</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-3d4af206:15877d6a498:-7775</wuid> + <transparent>false</transparent> + <pv_value /> + <auto_size>false</auto_size> + <text>######</text> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <show_units>false</show_units> + <height>24</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>$(DTACQ-NAME)V-$(DEVICE_FC):CurrR:MAX</pv_name> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>false</precision_from_pv> + <widget_type>Text Update</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <wrap_words>false</wrap_words> + <format_type>0</format_type> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>150</width> + <x>716</x> + <name>Text Update_1</name> + <y>870</y> + <foreground_color> + <color red="114" green="159" blue="207" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextUpdate" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <precision>3</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-3d4af206:15877d6a498:-7774</wuid> + <transparent>false</transparent> + <pv_value /> + <auto_size>false</auto_size> + <text>######</text> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <show_units>false</show_units> + <height>24</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>$(DTACQ-NAME)V-$(DEVICE_FC):CurrR:MIN</pv_name> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>false</precision_from_pv> + <widget_type>Text Update</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <wrap_words>false</wrap_words> + <format_type>0</format_type> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>150</width> + <x>865</x> + <name>Text Update_2</name> + <y>870</y> + <foreground_color> + <color red="252" green="233" blue="79" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Rectangle" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <line_width>1</line_width> + <horizontal_fill>true</horizontal_fill> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <rules /> + <enabled>true</enabled> + <wuid>-3d4af206:15877d6a498:-7773</wuid> + <transparent>false</transparent> + <pv_value /> + <alpha>255</alpha> + <bg_gradient_color> + <color red="255" green="255" blue="255" /> + </bg_gradient_color> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>22</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name></pv_name> + <gradient>false</gradient> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <anti_alias>true</anti_alias> + <line_style>0</line_style> + <widget_type>Rectangle</widget_type> + <fg_gradient_color> + <color red="255" green="255" blue="255" /> + </fg_gradient_color> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color red="186" green="189" blue="182" /> + </background_color> + <width>448</width> + <x>567</x> + <name>Rectangle_1</name> + <y>849</y> + <fill_level>0.0</fill_level> + <foreground_color> + <color red="255" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + <line_color> + <color red="0" green="0" blue="0" /> + </line_color> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-3d4af206:15877d6a498:-7772</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Max</text> + <scripts /> + <height>20</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <width>150</width> + <x>716</x> + <name>Label_5</name> + <y>850</y> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-3d4af206:15877d6a498:-7771</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Min</text> + <scripts /> + <height>20</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <width>150</width> + <x>865</x> + <name>Label_22</name> + <y>850</y> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-3d4af206:15877d6a498:-7770</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Average</text> + <scripts /> + <height>20</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <width>150</width> + <x>567</x> + <name>Label_21</name> + <y>850</y> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-3d4af206:15877d6a498:-776f</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Main GRAPH</text> + <scripts /> + <height>20</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color red="255" green="255" blue="255" /> + </background_color> + <width>115</width> + <x>840</x> + <name>Label_25</name> + <y>96</y> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="Cantarell" height="11" style="1">Default Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.spinner" version="1.0.0"> + <border_style>6</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <precision>3</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules> + <rule name="BorderRule" prop_id="border_style" out_exp="false"> + <exp bool_exp="pv0==1"> + <value>9</value> + </exp> + <pv trig="true">$(pv_name).SIMM</pv> + </rule> + </rules> + <enabled>false</enabled> + <wuid>-3d4af206:15877d6a498:-7769</wuid> + <transparent>false</transparent> + <pv_value /> + <scripts /> + <buttons_on_left>false</buttons_on_left> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>31</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>$(DTACQ-NAME):CARD0:TRIGGER:PRETRIGGER_ms</pv_name> + <vertical_alignment>1</vertical_alignment> + <format>0</format> + <horizontal_buttons_layout>false</horizontal_buttons_layout> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <precision_from_pv>false</precision_from_pv> + <widget_type>Spinner</widget_type> + <step_increment>1.0</step_increment> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <limits_from_pv>true</limits_from_pv> + <background_color> + <color red="70" green="70" blue="70" /> + </background_color> + <page_increment>10.0</page_increment> + <width>115</width> + <x>54</x> + <name>Spinner Template_10</name> + <y>168</y> + <maximum>10.0</maximum> + <foreground_color> + <color red="0" green="255" blue="255" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <minimum>0.0</minimum> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.spinner" version="1.0.0"> + <border_style>6</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <precision>3</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules> + <rule name="BorderRule" prop_id="border_style" out_exp="false"> + <exp bool_exp="pv0==1"> + <value>9</value> + </exp> + <pv trig="true">$(pv_name).SIMM</pv> + </rule> + </rules> + <enabled>true</enabled> + <wuid>-3d4af206:15877d6a498:-7768</wuid> + <transparent>false</transparent> + <pv_value /> + <scripts /> + <buttons_on_left>false</buttons_on_left> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>31</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>$(DTACQ-NAME):CARD0:NSAMPLES_ms</pv_name> + <vertical_alignment>1</vertical_alignment> + <format>0</format> + <horizontal_buttons_layout>false</horizontal_buttons_layout> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <precision_from_pv>false</precision_from_pv> + <widget_type>Spinner</widget_type> + <step_increment>0.1</step_increment> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color red="70" green="70" blue="70" /> + </background_color> + <page_increment>10.0</page_increment> + <width>115</width> + <x>214</x> + <name>Spinner Template_1</name> + <y>168</y> + <maximum>10.0</maximum> + <foreground_color> + <color red="0" green="255" blue="255" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <minimum>1.0</minimum> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.spinner" version="1.0.0"> + <border_style>6</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <precision>3</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules> + <rule name="BorderRule" prop_id="border_style" out_exp="false"> + <exp bool_exp="pv0==1"> + <value>9</value> + </exp> + <pv trig="true">$(pv_name).SIMM</pv> + </rule> + </rules> + <enabled>true</enabled> + <wuid>-3d4af206:15877d6a498:-7766</wuid> + <transparent>false</transparent> + <pv_value /> + <scripts /> + <buttons_on_left>false</buttons_on_left> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>31</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>$(DTACQ-NAME)V:RCURSOR_ms</pv_name> + <vertical_alignment>1</vertical_alignment> + <format>0</format> + <horizontal_buttons_layout>false</horizontal_buttons_layout> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <precision_from_pv>false</precision_from_pv> + <widget_type>Spinner</widget_type> + <step_increment>1.0</step_increment> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color red="70" green="70" blue="70" /> + </background_color> + <page_increment>10.0</page_increment> + <width>115</width> + <x>214</x> + <name>Spinner Template_3</name> + <y>288</y> + <maximum>100.0</maximum> + <foreground_color> + <color red="0" green="255" blue="255" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <minimum>-100.0</minimum> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-1168daa3:158859bc9c3:-751a</wuid> + <transparent>false</transparent> + <auto_size>false</auto_size> + <text>HV1 Volt</text> + <scripts /> + <height>24</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color red="0" green="0" blue="0" /> + </background_color> + <width>160</width> + <x>408</x> + <name>Label_11</name> + <y>893</y> + <foreground_color> + <color name="Major" red="255" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextUpdate" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <precision>3</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-1168daa3:158859bc9c3:-7519</wuid> + <transparent>false</transparent> + <pv_value /> + <auto_size>false</auto_size> + <text>######</text> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <show_units>true</show_units> + <height>24</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>$(DTACQ-NAME)-$(DEVICE_HV1):VoltR:AVG</pv_name> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Update</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <wrap_words>false</wrap_words> + <format_type>0</format_type> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>150</width> + <x>567</x> + <name>Text Update_3</name> + <y>893</y> + <foreground_color> + <color name="Minor" red="255" green="128" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextUpdate" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <precision>3</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-1168daa3:158859bc9c3:-7518</wuid> + <transparent>false</transparent> + <pv_value /> + <auto_size>false</auto_size> + <text>######</text> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <show_units>true</show_units> + <height>24</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>$(DTACQ-NAME)-$(DEVICE_HV1):VoltR:MAX</pv_name> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>false</precision_from_pv> + <widget_type>Text Update</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <wrap_words>false</wrap_words> + <format_type>0</format_type> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>150</width> + <x>716</x> + <name>Text Update_1</name> + <y>893</y> + <foreground_color> + <color red="114" green="159" blue="207" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextUpdate" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <precision>3</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-1168daa3:158859bc9c3:-7517</wuid> + <transparent>false</transparent> + <pv_value /> + <auto_size>false</auto_size> + <text>######</text> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <show_units>true</show_units> + <height>24</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>$(DTACQ-NAME)-$(DEVICE_HV1):VoltR:MIN</pv_name> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>false</precision_from_pv> + <widget_type>Text Update</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <wrap_words>false</wrap_words> + <format_type>0</format_type> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>150</width> + <x>865</x> + <name>Text Update_2</name> + <y>893</y> + <foreground_color> + <color red="252" green="233" blue="79" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-1168daa3:158859bc9c3:-70a0</wuid> + <transparent>false</transparent> + <auto_size>false</auto_size> + <text>HV2 Volt</text> + <scripts /> + <height>24</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color red="0" green="0" blue="0" /> + </background_color> + <width>160</width> + <x>408</x> + <name>Label_11</name> + <y>916</y> + <foreground_color> + <color name="Primary Blue" red="0" green="148" blue="202" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextUpdate" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <precision>3</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-1168daa3:158859bc9c3:-709f</wuid> + <transparent>false</transparent> + <pv_value /> + <auto_size>false</auto_size> + <text>######</text> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <show_units>true</show_units> + <height>24</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>$(DTACQ-NAME)-$(DEVICE_HV2):VoltR:AVG</pv_name> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Update</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <wrap_words>false</wrap_words> + <format_type>0</format_type> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>150</width> + <x>567</x> + <name>Text Update_3</name> + <y>916</y> + <foreground_color> + <color name="Minor" red="255" green="128" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextUpdate" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <precision>3</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-1168daa3:158859bc9c3:-709e</wuid> + <transparent>false</transparent> + <pv_value /> + <auto_size>false</auto_size> + <text>######</text> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <show_units>true</show_units> + <height>24</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>$(DTACQ-NAME)-$(DEVICE_HV2):VoltR:MAX</pv_name> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>false</precision_from_pv> + <widget_type>Text Update</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <wrap_words>false</wrap_words> + <format_type>0</format_type> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>150</width> + <x>716</x> + <name>Text Update_1</name> + <y>916</y> + <foreground_color> + <color red="114" green="159" blue="207" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextUpdate" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <precision>3</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-1168daa3:158859bc9c3:-709d</wuid> + <transparent>false</transparent> + <pv_value /> + <auto_size>false</auto_size> + <text>######</text> + <rotation_angle>0.0</rotation_angle> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <show_units>true</show_units> + <height>24</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>$(DTACQ-NAME)-$(DEVICE_HV2):VoltR:MIN</pv_name> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>false</precision_from_pv> + <widget_type>Text Update</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <wrap_words>false</wrap_words> + <format_type>0</format_type> + <background_color> + <color name="TextBackground" red="70" green="70" blue="70" /> + </background_color> + <width>150</width> + <x>865</x> + <name>Text Update_2</name> + <y>916</y> + <foreground_color> + <color red="252" green="233" blue="79" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-1168daa3:158859bc9c3:-f67</wuid> + <transparent>false</transparent> + <auto_size>false</auto_size> + <text>Display interval</text> + <scripts /> + <height>32</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>true</wrap_words> + <background_color> + <color name="SubPanel" red="176" green="218" blue="249" /> + </background_color> + <width>349</width> + <x>36</x> + <name>Label_15</name> + <y>126</y> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <show_scrollbar>false</show_scrollbar> + <font> + <opifont.name fontName="OpenSans" height="15" style="1">Medium Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-1168daa3:158859bc9c3:-f5d</wuid> + <transparent>false</transparent> + <auto_size>false</auto_size> + <text>Measure interval</text> + <scripts /> + <height>32</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>true</wrap_words> + <background_color> + <color name="SubPanel" red="176" green="218" blue="249" /> + </background_color> + <width>349</width> + <x>36</x> + <name>Label_15</name> + <y>246</y> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <show_scrollbar>false</show_scrollbar> + <font> + <opifont.name fontName="OpenSans" height="15" style="1">Medium Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>true</enabled> + <wuid>-1168daa3:158859bc9c3:-f53</wuid> + <transparent>false</transparent> + <auto_size>false</auto_size> + <text>FAST ACQUISITION</text> + <scripts /> + <height>32</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>true</wrap_words> + <background_color> + <color name="SubPanel" red="176" green="218" blue="249" /> + </background_color> + <width>1483</width> + <x>0</x> + <name>Label_15</name> + <y>12</y> + <foreground_color> + <color red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <show_scrollbar>false</show_scrollbar> + <font> + <opifont.name fontName="OpenSans" height="15" style="1">Medium Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.spinner" version="1.0.0"> + <border_style>6</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <precision>3</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules> + <rule name="BorderRule" prop_id="border_style" out_exp="false"> + <exp bool_exp="pv0==1"> + <value>9</value> + </exp> + <pv trig="true">$(pv_name).SIMM</pv> + </rule> + </rules> + <enabled>true</enabled> + <wuid>-6047e935:1589bd389ef:-66ec</wuid> + <transparent>false</transparent> + <pv_value /> + <scripts /> + <buttons_on_left>false</buttons_on_left> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>31</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name>$(DTACQ-NAME)V:LCURSOR_ms</pv_name> + <vertical_alignment>1</vertical_alignment> + <format>0</format> + <horizontal_buttons_layout>false</horizontal_buttons_layout> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <precision_from_pv>false</precision_from_pv> + <widget_type>Spinner</widget_type> + <step_increment>1.0</step_increment> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color red="70" green="70" blue="70" /> + </background_color> + <page_increment>10.0</page_increment> + <width>115</width> + <x>54</x> + <name>Spinner Template_3</name> + <y>288</y> + <maximum>100.0</maximum> + <foreground_color> + <color red="0" green="255" blue="255" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <minimum>-100.0</minimum> + <font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.xyGraph" version="1.0.0"> + <axis_1_scale_format></axis_1_scale_format> + <trace_2_x_axis_index>0</trace_2_x_axis_index> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(trace_0_y_pv) +$(trace_0_y_pv_value)</tooltip> + <trace_0_concatenate_data>false</trace_0_concatenate_data> + <trace_0_trace_type>0</trace_0_trace_type> + <trace_4_line_width>3</trace_4_line_width> + <border_width>1</border_width> + <trace_3_point_size>4</trace_3_point_size> + <trace_1_x_axis_index>0</trace_1_x_axis_index> + <border_style>0</border_style> + <axis_0_grid_color> + <color red="78" green="154" blue="6" /> + </axis_0_grid_color> + <axis_2_visible>false</axis_2_visible> + <trace_0_name>$(trace_0_y_pv)</trace_0_name> + <axis_2_minimum>0.0</axis_2_minimum> + <trace_0_update_mode>0</trace_0_update_mode> + <trace_1_x_pv>$(DTACQ-NAME)-$(DEVICE_HV1):VoltR_XMS</trace_1_x_pv> + <wuid>-61dcfd6b:158bac54bbd:-7d05</wuid> + <transparent>false</transparent> + <trace_1_update_mode>0</trace_1_update_mode> + <axis_0_title_font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </axis_0_title_font> + <trace_2_update_mode>0</trace_2_update_mode> + <background_color> + <color name="Field Background Grey" red="240" green="240" blue="240" /> + </background_color> + <trace_3_update_mode>0</trace_3_update_mode> + <x>408</x> + <y>582</y> + <trace_4_update_mode>0</trace_4_update_mode> + <trace_3_x_axis_index>0</trace_3_x_axis_index> + <trace_0_x_axis_index>0</trace_0_x_axis_index> + <axis_count>3</axis_count> + <trace_4_x_pv>$(DTACQ-NAME)-$(DEVICE_HV1):VoltR:RCURSOR_X</trace_4_x_pv> + <trace_3_y_pv_value /> + <trace_1_point_size>4</trace_1_point_size> + <trace_1_anti_alias>false</trace_1_anti_alias> + <pv_value /> + <axis_2_grid_color> + <color red="200" green="200" blue="200" /> + </axis_2_grid_color> + <trace_0_buffer_size>520</trace_0_buffer_size> + <trace_2_buffer_size>520</trace_2_buffer_size> + <axis_1_maximum>8.0</axis_1_maximum> + <axis_0_scale_font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </axis_0_scale_font> + <trigger_pv></trigger_pv> + <trace_4_update_delay>1</trace_4_update_delay> + <widget_type>XY Graph</widget_type> + <trace_2_line_width>1</trace_2_line_width> + <trace_4_plot_mode>0</trace_4_plot_mode> + <trace_3_concatenate_data>false</trace_3_concatenate_data> + <trace_4_x_pv_value /> + <axis_1_axis_color> + <color red="0" green="0" blue="0" /> + </axis_1_axis_color> + <axis_0_scale_format></axis_0_scale_format> + <axis_1_log_scale>false</axis_1_log_scale> + <title></title> + <trace_0_visible>false</trace_0_visible> + <trace_4_buffer_size>2</trace_4_buffer_size> + <trace_1_name>$(trace_1_y_pv)</trace_1_name> + <trace_3_anti_alias>false</trace_3_anti_alias> + <trace_1_y_pv_value /> + <axis_2_auto_scale>true</axis_2_auto_scale> + <trace_4_y_pv>loc://val(-100,100)</trace_4_y_pv> + <show_legend>false</show_legend> + <trace_3_visible>true</trace_3_visible> + <trace_4_x_axis_index>0</trace_4_x_axis_index> + <trace_3_name>$(trace_3_y_pv)</trace_3_name> + <axis_0_axis_title>ms</axis_0_axis_title> + <axis_0_axis_color> + <color red="0" green="0" blue="0" /> + </axis_0_axis_color> + <axis_2_scale_font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </axis_2_scale_font> + <trace_3_update_delay>1</trace_3_update_delay> + <trace_2_update_delay>1</trace_2_update_delay> + <trace_4_point_style>0</trace_4_point_style> + <axis_0_dash_grid_line>false</axis_0_dash_grid_line> + <trace_0_point_style>2</trace_0_point_style> + <trace_1_point_style>2</trace_1_point_style> + <trace_0_line_width>1</trace_0_line_width> + <axis_2_y_axis>false</axis_2_y_axis> + <trace_3_x_pv_value /> + <axis_0_time_format>0</axis_0_time_format> + <trace_count>5</trace_count> + <axis_1_show_grid>true</axis_1_show_grid> + <trace_3_x_pv>$(DTACQ-NAME)-$(DEVICE_HV1):VoltR:LCURSOR_X</trace_3_x_pv> + <trace_2_trace_color> + <color name="Primary Blue" red="0" green="148" blue="202" /> + </trace_2_trace_color> + <trace_4_visible>true</trace_4_visible> + <axis_1_dash_grid_line>true</axis_1_dash_grid_line> + <trace_3_buffer_size>2</trace_3_buffer_size> + <trace_2_trace_type>0</trace_2_trace_type> + <trace_3_line_width>3</trace_3_line_width> + <show_toolbar>true</show_toolbar> + <axis_0_visible>true</axis_0_visible> + <axis_0_show_grid>true</axis_0_show_grid> + <trace_0_y_axis_index>1</trace_0_y_axis_index> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>true</keep_wh_ratio> + </scale_options> + <trace_1_y_pv>$(DTACQ-NAME)-$(DEVICE_HV1):VoltR_Y</trace_1_y_pv> + <trace_2_concatenate_data>false</trace_2_concatenate_data> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <trace_2_y_pv_value /> + <trace_2_anti_alias>false</trace_2_anti_alias> + <axis_0_maximum>6.0</axis_0_maximum> + <trace_1_y_axis_index>1</trace_1_y_axis_index> + <trace_2_name>$(trace_2_y_pv)</trace_2_name> + <height>247</height> + <trace_2_visible>true</trace_2_visible> + <trigger_pv_value /> + <trace_3_y_pv>loc://val(-100,100)</trace_3_y_pv> + <axis_1_grid_color> + <color red="78" green="154" blue="6" /> + </axis_1_grid_color> + <actions hook="false" hook_all="false" /> + <trace_2_point_size>4</trace_2_point_size> + <trace_4_concatenate_data>false</trace_4_concatenate_data> + <axis_2_axis_color> + <color red="0" green="0" blue="0" /> + </axis_2_axis_color> + <axis_0_log_scale>false</axis_0_log_scale> + <trace_0_x_pv_value /> + <axis_0_auto_scale_threshold>0.0</axis_0_auto_scale_threshold> + <rules /> + <axis_1_visible>true</axis_1_visible> + <axis_2_show_grid>false</axis_2_show_grid> + <trace_3_y_axis_index>1</trace_3_y_axis_index> + <trace_0_update_delay>1</trace_0_update_delay> + <trace_1_concatenate_data>false</trace_1_concatenate_data> + <trace_1_trace_color> + <color red="242" green="26" blue="26" /> + </trace_1_trace_color> + <trace_3_trace_color> + <color name="Major" red="255" green="0" blue="0" /> + </trace_3_trace_color> + <pv_name></pv_name> + <axis_2_log_scale>false</axis_2_log_scale> + <axis_2_auto_scale_threshold>0.0</axis_2_auto_scale_threshold> + <name>XY Graph</name> + <trace_1_trace_type>0</trace_1_trace_type> + <axis_0_auto_scale>true</axis_0_auto_scale> + <axis_0_minimum>-6.0</axis_0_minimum> + <trace_2_y_axis_index>1</trace_2_y_axis_index> + <trace_1_update_delay>1</trace_1_update_delay> + <axis_2_dash_grid_line>false</axis_2_dash_grid_line> + <axis_1_axis_title>mA</axis_1_axis_title> + <trace_2_x_pv_value /> + <axis_1_auto_scale>false</axis_1_auto_scale> + <trace_1_line_width>1</trace_1_line_width> + <trace_3_trace_type>1</trace_3_trace_type> + <trace_2_y_pv>$(DTACQ-NAME)-$(DEVICE_HV2):VoltR_Y</trace_2_y_pv> + <trace_1_plot_mode>0</trace_1_plot_mode> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <axis_2_title_font> + <opifont.name fontName="Cantarell" height="11" style="1">Default Bold</opifont.name> + </axis_2_title_font> + <trace_3_point_style>0</trace_3_point_style> + <trace_0_y_pv>$(DTACQ-NAME)V-$(DEVICE_FC):CurrR_Y</trace_0_y_pv> + <trace_2_point_style>2</trace_2_point_style> + <trace_0_plot_mode>0</trace_0_plot_mode> + <trace_4_trace_type>1</trace_4_trace_type> + <enabled>true</enabled> + <trace_0_x_pv>$(DTACQ-NAME)V-$(DEVICE_FC):CurrR_XMS</trace_0_x_pv> + <axis_1_scale_font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </axis_1_scale_font> + <axis_1_time_format>0</axis_1_time_format> + <axis_2_time_format>0</axis_2_time_format> + <axis_2_left_bottom_side>false</axis_2_left_bottom_side> + <trace_3_plot_mode>0</trace_3_plot_mode> + <border_alarm_sensitive>false</border_alarm_sensitive> + <axis_2_maximum>22.0</axis_2_maximum> + <show_plot_area_border>false</show_plot_area_border> + <width>895</width> + <trace_1_x_pv_value /> + <axis_1_minimum>-8.0</axis_1_minimum> + <title_font> + <opifont.name fontName="Cantarell" height="11" style="1">Default Bold</opifont.name> + </title_font> + <trace_4_anti_alias>false</trace_4_anti_alias> + <trace_0_y_pv_value /> + <trace_1_visible>true</trace_1_visible> + <plot_area_background_color> + <color red="0" green="0" blue="0" /> + </plot_area_background_color> + <trace_4_point_size>4</trace_4_point_size> + <axis_1_title_font> + <opifont.name fontName="OpenSans" height="12" style="1">Normal Bold</opifont.name> + </axis_1_title_font> + <visible>true</visible> + <axis_2_axis_title>ms</axis_2_axis_title> + <trace_4_trace_color> + <color name="Major" red="255" green="0" blue="0" /> + </trace_4_trace_color> + <trace_1_buffer_size>520</trace_1_buffer_size> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <axis_2_scale_format></axis_2_scale_format> + <trace_4_y_pv_value /> + <scripts /> + <trace_0_point_size>3</trace_0_point_size> + <trace_0_trace_color> + <color red="0" green="255" blue="0" /> + </trace_0_trace_color> + <trace_0_anti_alias>false</trace_0_anti_alias> + <trace_4_name>$(trace_4_y_pv)</trace_4_name> + <axis_1_auto_scale_threshold>0.0</axis_1_auto_scale_threshold> + <trace_4_y_axis_index>1</trace_4_y_axis_index> + <trace_2_plot_mode>0</trace_2_plot_mode> + <trace_2_x_pv>$(DTACQ-NAME)-$(DEVICE_HV2):VoltR_XMS</trace_2_x_pv> + <foreground_color> + <color red="0" green="0" blue="255" /> + </foreground_color> + </widget> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.groupingContainer" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <rules /> + <enabled>true</enabled> + <wuid>-25f0d7e:158d972c59b:-7efc</wuid> + <transparent>true</transparent> + <lock_children>false</lock_children> + <scripts /> + <height>1129</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <visible>false</visible> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Grouping Container</widget_type> + <background_color> + <color red="240" green="240" blue="240" /> + </background_color> + <width>2489</width> + <x>1</x> + <name>PLC</name> + <y>1</y> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <fc>false</fc> + <show_scrollbar>true</show_scrollbar> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + <widget typeId="org.csstudio.opibuilder.widgets.linkingContainer" version="1.0.0"> + <opi_file></opi_file> + <border_style>3</border_style> + <tooltip></tooltip> + <rules /> + <enabled>true</enabled> + <wuid>-25f0d7e:158d972c59b:-7e2e</wuid> + <scripts> + <path pathString="/CSS/emu/Scripts/PlcOpi.js" checkConnect="true" sfe="false" seoe="false"> + <pv trig="true">loc://pagePLC</pv> + </path> + </scripts> + <height>1060</height> + <border_width>1</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <macros> + <include_parent_macros>true</include_parent_macros> + </macros> + <resize_behaviour>0</resize_behaviour> + <visible>true</visible> + <group_name></group_name> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <widget_type>Linking Container</widget_type> + <background_color> + <color name="Container Grey" red="200" green="200" blue="200" /> + </background_color> + <width>2011</width> + <x>414</x> + <name>Linking Container</name> + <y>27</y> + <foreground_color> + <color red="192" green="192" blue="192" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="Cantarell" height="11" style="0">Default</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.ActionButton" version="2.0.0"> + <toggle_button>false</toggle_button> + <border_style>14</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name)</tooltip> + <push_action_index>0</push_action_index> + <rules> + <rule name="Rule_fault_mode_1,2and3" prop_id="background_color" out_exp="false"> + <exp bool_exp="pv0 == 1 || pv1==1 ||pv2==1"> + <value> + <color name="Major" red="255" green="0" blue="0" /> + </value> + </exp> + <pv trig="true">INFN-SRC:INTK-HMI:FM1</pv> + <pv trig="true">INFN-SRC:INTK-HMI:FM2</pv> + <pv trig="true">INFN-SRC:INTK-HMI:FM3</pv> + </rule> + </rules> + <enabled>true</enabled> + <wuid>-25f0d7e:158d972c59b:-7d3b</wuid> + <pv_value /> + <text>Fault mode 1, 2 and 3</text> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>70</height> + <border_width>0</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <image></image> + <visible>true</visible> + <pv_name></pv_name> + <border_color> + <color red="255" green="255" blue="255" /> + </border_color> + <widget_type>Action Button</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="Container Border Grey" red="150" green="150" blue="150" /> + </background_color> + <width>360</width> + <x>12</x> + <name>Action Button</name> + <y>102</y> + <style>0</style> + <foreground_color> + <color name="Black" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false"> + <action type="WRITE_PV"> + <pv_name>loc://pagePLC</pv_name> + <value>fm123</value> + <timeout>10</timeout> + <confirm_message></confirm_message> + <description></description> + </action> + </actions> + <font> + <opifont.name fontName="OpenSans" height="15" style="1">Medium Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.ActionButton" version="2.0.0"> + <toggle_button>false</toggle_button> + <border_style>14</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name)</tooltip> + <push_action_index>0</push_action_index> + <rules> + <rule name="Rule_fault_mode4and5" prop_id="background_color" out_exp="false"> + <exp bool_exp="pv0==1 || pv1==1"> + <value> + <color name="Major" red="255" green="0" blue="0" /> + </value> + </exp> + <pv trig="true">INFN-SRC:INTK-HMI:FM5</pv> + <pv trig="true">INFN-SRC:INTK-HMI:FM4</pv> + </rule> + </rules> + <enabled>true</enabled> + <wuid>-25f0d7e:158d972c59b:-7d3a</wuid> + <pv_value /> + <text>Fault mode 4 and 5</text> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>70</height> + <border_width>0</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <image></image> + <visible>true</visible> + <pv_name></pv_name> + <border_color> + <color red="255" green="255" blue="255" /> + </border_color> + <widget_type>Action Button</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="Container Border Grey" red="150" green="150" blue="150" /> + </background_color> + <width>360</width> + <x>12</x> + <name>Action Button_10</name> + <y>177</y> + <style>0</style> + <foreground_color> + <color name="Black" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false"> + <action type="WRITE_PV"> + <pv_name>loc://pagePLC</pv_name> + <value>fm45</value> + <timeout>10</timeout> + <confirm_message></confirm_message> + <description></description> + </action> + </actions> + <font> + <opifont.name fontName="OpenSans" height="15" style="1">Medium Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.ActionButton" version="2.0.0"> + <toggle_button>false</toggle_button> + <border_style>14</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name)</tooltip> + <push_action_index>0</push_action_index> + <rules /> + <enabled>true</enabled> + <wuid>-25f0d7e:158d972c59b:-7d39</wuid> + <pv_value /> + <text>Home</text> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>70</height> + <border_width>0</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <image></image> + <visible>true</visible> + <pv_name>loc://pagePLC("home")</pv_name> + <border_color> + <color red="255" green="255" blue="255" /> + </border_color> + <widget_type>Action Button</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="Container Border Grey" red="150" green="150" blue="150" /> + </background_color> + <width>360</width> + <x>12</x> + <name>Action Button_6</name> + <y>27</y> + <style>0</style> + <foreground_color> + <color name="Black" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false"> + <action type="WRITE_PV"> + <pv_name>loc://pagePLC</pv_name> + <value>home</value> + <timeout>10</timeout> + <confirm_message></confirm_message> + <description></description> + </action> + </actions> + <font> + <opifont.name fontName="OpenSans" height="15" style="1">Medium Bold</opifont.name> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.ActionButton" version="2.0.0"> + <toggle_button>false</toggle_button> + <border_style>14</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name)</tooltip> + <push_action_index>0</push_action_index> + <rules /> + <enabled>true</enabled> + <wuid>-25f0d7e:158d972c59b:-7d38</wuid> + <pv_value /> + <text>Inputs/outputs value</text> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>70</height> + <border_width>0</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <image></image> + <visible>true</visible> + <pv_name></pv_name> + <border_color> + <color red="255" green="255" blue="255" /> + </border_color> + <widget_type>Action Button</widget_type> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color name="Container Border Grey" red="150" green="150" blue="150" /> + </background_color> + <width>360</width> + <x>12</x> + <name>Action Button_13</name> + <y>252</y> + <style>0</style> + <foreground_color> + <color name="Black" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false"> + <action type="WRITE_PV"> + <pv_name>loc://pagePLC</pv_name> + <value>InOut</value> + <timeout>10</timeout> + <confirm_message></confirm_message> + <description></description> + </action> + </actions> + <font> + <opifont.name fontName="OpenSans" height="15" style="1">Medium Bold</opifont.name> + </font> + </widget> + </widget> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Rectangle" version="1.0.0"> + <border_style>0</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <line_width>1</line_width> + <horizontal_fill>true</horizontal_fill> + <alarm_pulsing>false</alarm_pulsing> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <rules /> + <enabled>true</enabled> + <wuid>20cc570d:152c6318c71:-19d6</wuid> + <transparent>false</transparent> + <pv_value /> + <alpha>255</alpha> + <bg_gradient_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </bg_gradient_color> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <height>80</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <pv_name></pv_name> + <gradient>false</gradient> + <border_color> + <color red="0" green="148" blue="202" /> + </border_color> + <anti_alias>true</anti_alias> + <line_style>0</line_style> + <widget_type>Rectangle</widget_type> + <fg_gradient_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </fg_gradient_color> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <background_color> + <color red="0" green="148" blue="202" /> + </background_color> + <width>2491</width> + <x>18</x> + <name>Rectangle Template</name> + <y>0</y> + <fill_level>100.0</fill_level> + <foreground_color> + <color red="0" green="148" blue="202" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <opifont.name fontName="arial" height="10" style="0">IO Normal</opifont.name> + </font> + <line_color> + <color name="IO Line" red="0" green="32" blue="92" /> + </line_color> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>20cc570d:152c6318c71:-19d2</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>EMITTANCE METER</text> + <scripts /> + <height>43</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>true</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>2491</width> + <x>18</x> + <name>Label Template</name> + <y>18</y> + <foreground_color> + <color red="255" green="255" blue="255" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <show_scrollbar>false</show_scrollbar> + <font> + <fontdata fontName="Titillium" height="28" style="0" /> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.Label" version="1.0.0"> + <border_style>0</border_style> + <tooltip></tooltip> + <horizontal_alignment>1</horizontal_alignment> + <rules /> + <enabled>false</enabled> + <wuid>-cae44c:157dd221fed:-6b69</wuid> + <transparent>true</transparent> + <auto_size>false</auto_size> + <text>Status</text> + <scripts /> + <height>20</height> + <border_width>2</border_width> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <visible>true</visible> + <vertical_alignment>1</vertical_alignment> + <border_color> + <color name="IO Border" red="215" green="215" blue="215" /> + </border_color> + <widget_type>Label</widget_type> + <wrap_words>false</wrap_words> + <background_color> + <color name="IO Background" red="255" green="255" blue="205" /> + </background_color> + <width>79</width> + <x>2088</x> + <name>Label Orientation_7</name> + <y>30</y> + <foreground_color> + <color name="IO Foreground" red="0" green="0" blue="0" /> + </foreground_color> + <actions hook="false" hook_all="false" /> + <font> + <fontdata fontName="Sans" height="10" style="1" /> + </font> + </widget> + <widget typeId="org.csstudio.opibuilder.widgets.TextInput" version="2.0.0"> + <alarm_pulsing>false</alarm_pulsing> + <precision>0</precision> + <tooltip>$(pv_name) +$(pv_value)</tooltip> + <horizontal_alignment>0</horizontal_alignment> + <rules /> + <pv_value /> + <auto_size>false</auto_size> + <text></text> + <rotation_angle>0.0</rotation_angle> + <show_units>true</show_units> + <height>25</height> + <multiline_input>false</multiline_input> + <border_width>1</border_width> + <visible>true</visible> + <pv_name>${PREFIX_SCAN}:$(NAME_MTR).FAZE</pv_name> + <selector_type>0</selector_type> + <border_color> + <color red="0" green="128" blue="255" /> + </border_color> + <precision_from_pv>true</precision_from_pv> + <widget_type>Text Input</widget_type> + <confirm_message></confirm_message> + <name>Text Input_9</name> + <style>0</style> + <actions hook="false" hook_all="false" /> + <border_style>3</border_style> + <forecolor_alarm_sensitive>false</forecolor_alarm_sensitive> + <enabled>true</enabled> + <wuid>-cae44c:157dd221fed:-6b63</wuid> + <transparent>false</transparent> + <scripts /> + <border_alarm_sensitive>false</border_alarm_sensitive> + <scale_options> + <width_scalable>true</width_scalable> + <height_scalable>true</height_scalable> + <keep_wh_ratio>false</keep_wh_ratio> + </scale_options> + <backcolor_alarm_sensitive>false</backcolor_alarm_sensitive> + <format_type>0</format_type> + <limits_from_pv>false</limits_from_pv> + <background_color> + <color name="Black" red="0" green="0" blue="0" /> + </background_color> + <width>322</width> + <x>2172</x> + <y>27</y> + <maximum>1.7976931348623157E308</maximum> + <foreground_color> + <color name="Major" red="255" green="0" blue="0" /> + </foreground_color> + <minimum>-1.7976931348623157E308</minimum> + <font> + <opifont.name fontName="OpenSans" height="10" style="1">Small Bold</opifont.name> + </font> + </widget> +</display> \ No newline at end of file diff --git a/builddir/opi/Scripts/ExtracData.py b/builddir/opi/Scripts/ExtracData.py new file mode 100644 index 0000000..4a0416f --- /dev/null +++ b/builddir/opi/Scripts/ExtracData.py @@ -0,0 +1,111 @@ +from org.csstudio.opibuilder.scriptUtil import PVUtil +from os.path import expanduser +import struct +import json +from random import betavariate +import math +import array +import datetime +import time + +localtime=time.localtime(time.time()) + +##### VARS ######### +NameFile="emittance" +NameFile=NameFile+"_"+str(localtime.tm_year)+"-"+str(localtime.tm_mon)+"-"+str(localtime.tm_mday)+"_"+str(localtime.tm_hour)+"-"+str(localtime.tm_min)+".dat" + +NbAngle = 0 +NbAngle= PVUtil.getLong(pvs[1]) + +NbPos = 0 +NbPos= PVUtil.getLong(pvs[2]) + +Energie = 0 +Energie= PVUtil.getDouble(pvs[3]) + +Frequence = 0 +Frequence=PVUtil.getDouble(pvs[4]) + +PasMM = 0 +PasMM=PVUtil.getDouble(pvs[5]) + +tabCurr=0 +tabCurr=PVUtil.getDoubleArray(pvs[6]) + +tabAng=0 +tabAng=PVUtil.getDoubleArray(pvs[7]) + +tabPos=0 +tabPos=PVUtil.getDoubleArray(pvs[8]) + +################################################################################### +############################### PLOTWIN ########################################### +################################################################################### + +#### OPEN FILE +home = expanduser("~") +PlotFile = open(home+'/data/emit/plotwin/'+NameFile, 'w+') +PlotFile.write("fichier emittance: X\n") +PlotFile.write("HT ion (kV) : %d\n"%(Energie)) +PlotFile.write("frequence (Hz) : %d\n"%(Frequence)) +PlotFile.write("N points temps : 1\n") +PlotFile.write("pas de position (mm) : %f\n"%(PasMM)) +PlotFile.write("N points position (mm) : %i\n"%(NbPos)) +PlotFile.write("N points angle (mrad) : %i\n"%(NbAngle)) + +## POSITION +try: + PlotFile.write("vecteur positions (mm) : ") + for value in range(0,NbPos): + PlotFile.write("%.2f "%tabPos[value]); + value=value+1 +except IndexError : + pass + +## ANGLES +PlotFile.write("\nvecteur angles (mrad) : ") +indAngle=0 +for value in range(0,NbAngle): + PlotFile.write("%.2f "%tabAng[indAngle]); + indAngle=indAngle+NbPos + +PlotFile.write("\ntype d'ion : PROTON...") +PlotFile.write("\ncolonnes de 1 a 4 : indice de temps / indice position / indice angle / I [Volt] :\n") + +## POSITION/ANGLE/INTENSITY +indCurrent=0 +indPos=0 +for valuePos in range(0,NbPos): + for valueAngle in range(0,NbAngle): + PlotFile.write("0\t%i\t%i\t%.4f\n" %(valuePos,valueAngle,tabCurr[indCurrent])); + indCurrent=indCurrent+NbPos + indPos=indPos+1 + indCurrent=indPos + +PlotFile.close() + + +################################################################################### +############################### EXTRACT DATA ###################################### +################################################################################### + +#### OPEN FILE +PlotFile = open(home+'/data/emit/averageDataEmit/'+"avg-"+NameFile, 'w+') + +## POSITION/ANGLE/INTENSITY +indAngle=0 +indCurrent=0 +indPos=0 +try: + for valuePos in range(0,(NbPos)): + for valueAngle in range(0,NbAngle): + PlotFile.write("\n%.2f\t\t%.2f\t\t%.8f\n " %(tabPos[valuePos],tabAng[indAngle],tabCurr[indCurrent])); + indAngle=indAngle+NbPos + indCurrent=indCurrent+NbPos + indPos=indPos+1 + indAngle=indPos + indCurrent=indPos +except IndexError : + pass + +PlotFile.close() diff --git a/builddir/opi/Scripts/PlcOpi.js b/builddir/opi/Scripts/PlcOpi.js new file mode 100644 index 0000000..0c3a04a --- /dev/null +++ b/builddir/opi/Scripts/PlcOpi.js @@ -0,0 +1,19 @@ +importPackage(Packages.org.csstudio.opibuilder.scriptUtil); + +var pv0 = PVUtil.getString(pvs[0]); + +if (pv0 == "home") { + widget.setPropertyValue("opi_file", ""); + widget.setPropertyValue("opi_file", "/CSS/emu-plc-test/1-Home.opi"); +} else if (pv0 == "fm123") { + widget.setPropertyValue("opi_file", ""); + widget.setPropertyValue("opi_file", "/CSS/emu-plc-test/2-FM1,2,3.opi"); +} else if (pv0 == "fm45") { + widget.setPropertyValue("opi_file", ""); + widget.setPropertyValue("opi_file", "/CSS/emu-plc-test/3-FM4,5.opi"); +} else if (pv0 == "InOut") { + widget.setPropertyValue("opi_file", ""); + widget.setPropertyValue("opi_file", "/CSS/emu-plc-test/4-Inout_value.opi"); +} else { + pv0 = "home"; +} \ No newline at end of file diff --git a/builddir/startup/EMU.cmd b/builddir/startup/EMU.cmd new file mode 100644 index 0000000..5a32246 --- /dev/null +++ b/builddir/startup/EMU.cmd @@ -0,0 +1,248 @@ +# Required modules ### +require ifcdaq,0.2.0 +require singlemotion,1.4.6 +require mrfioc2,2.7.13 +require pev,0.1.1 +require ecat2db,0.3.1 +require fastacquisition,1.1.0 +require dataacquisition,1.0.1 +require emu,catane +require emu-motor-test,catane +require tpmac,3.11.2 + + +### MACROS ### +# PMAC common macros3 ) +epicsEnvSet("PMACPREFIX", "LNS-ISRC-010:PBI-EM-PMAC") +epicsEnvSet("PMACPORT", "GEOBRICK_ASYN") +epicsEnvSet("MOTOR_PORT", "pmac1" ) +epicsEnvSet("NB_AXES", "1" ) + +# Motor Macros +epicsEnvSet("EGU", "mm" ) +epicsEnvSet("DIR", "Pos" ) +epicsEnvSet("MRES", "0.000249515") +epicsEnvSet("PREC", "4" ) +epicsEnvSet("DHLM", "4" ) +epicsEnvSet("DLLM", "-200" ) +epicsEnvSet("VELO", "1.5" ) +epicsEnvSet("HVEL", "1.5" ) +epicsEnvSet("VBAS", "0.1" ) +epicsEnvSet("VMAX", "7" ) +epicsEnvSet("ACCL", "10" ) +epicsEnvSet("BDST", "0" ) +epicsEnvSet("INIT", "" ) +epicsEnvSet("OFF", "0" ) + +epicsEnvSet("MOTOR_NAME1", "MTR1") +epicsEnvSet("AXIS_NO1", "1") + +# Motor Status macros +epicsEnvSet("SCAN", "1 second") +epicsEnvSet("OVERHEAT1", "MAJOR" ) +epicsEnvSet("SWITCH_OFF1", "MINOR" ) +epicsEnvSet("OVERHEAT2", "0" ) +epicsEnvSet("SWITCH_OFF2", "0" ) +epicsEnvSet("MOTOR_ERROR1", "0" ) +epicsEnvSet("MOTOR_ERROR2", "0" ) +epicsEnvSet("MOTOR_ERROR3", "0" ) +epicsEnvSet("MOTOR_ERROR4", "0" ) + +# EVG Macros +epicsEnvSet("SYS" "SYS0") +#####NOT NEEDED AT CATANIA epicsEnvSet("EVG" "EVG0") +epicsEnvSet("EVG_VMESLOT" "8") + +# EVR Macros +epicsEnvSet("EVR_PCIDOMAIN", "0000") +epicsEnvSet("EVR_PCIBUS", "05") +epicsEnvSet("EVR_PCIDEVICE", "00") +epicsEnvSet("EVR_PCIFUNCTION", "0") +epicsEnvSet("EVR", "EVR0") +epicsEnvSet("EVR_PUL0_EVENT", "14") +epicsEnvSet("EVR_PUL0_DELAY", "$(EVR_EV14_OUT0_DELAY=0)") +epicsEnvSet("EVR_PUL0_WIDTH", "$(EVR_EV14_OUT0_WIDTH=1000)") + +#DAQ macros +epicsEnvSet("DAQPREFIX", "LNS-ISRC-010" ) +epicsEnvSet("DAQBUFSIZE", "1024" ) +epicsEnvSet("BUFFERSIZE", "40000" ) + +#Scanning macros +epicsEnvSet("SCANPREFIX", "LNS-ISRC-010:PBI-EMV" ) +epicsEnvSet("SCAN_SLIT", "MTR" ) +epicsEnvSet("SCAN_EF", "PS" ) +epicsEnvSet("SCAN_POINTS_EF", "400" ) +epicsEnvSet("SCAN_POINTS_SLIT", "100" ) + +epicsEnvSet(EPICS_CA_MAX_ARRAY_BYTES, 8000000) + +# Connection to PMAC and setup for $(NUM_MOTORS) motors +pmacAsynIPConfigure($(PMACPORT), "10.10.3.42:1025") +pmacCreateController($(MOTOR_PORT), $(PMACPORT), 0, $(NB_AXES), 50, 300) +pmacCreateAxis($(MOTOR_PORT), $(AXIS_NO1)) + +# Initialize EVG +#####NOT NEEDED AT CATANIA mrmEvgSetupVME($(EVG), $(EVG_VMESLOT), 0x100000, 1, 0x01) + +# Initialize EVR +mrmEvrSetupPCI($(EVR), $(EVR_PCIDOMAIN), $(EVR_PCIBUS), $(EVR_PCIDEVICE), $(EVR_PCIFUNCTION)) + +# Initialize daq +ndsCreateDevice(ifcdaq, CARD0, card=0, fmc=2) + +### LOAD RECORDS ### + +#Load EVG records +#####NOT NEEDED AT CATANIA dbLoadRecords("evg-vme-230.db", "DEVICE=$(EVG), SYS=$(SYS)") + +#Load EVR records +dbLoadRecords("evr-pmc-230.db", "DEVICE=$(EVR), SYS=$(SYS)") +dbLoadRecords("evr-softEvent.template", "DEVICE=$(EVR), SYS=$(SYS), EVT=$(EVR_PUL0_EVENT), CODE=$(EVR_PUL0_EVENT)") +dbLoadRecords("evr-pulserMap.template", "DEVICE=$(EVR), SYS=$(SYS), EVT=$(EVR_PUL0_EVENT), PID=0, F=Trig, ID=0") +#####NOT NEEDED AT CATANIA dbLoadRecords("evr-pulserMap.template", "DEVICE=$(EVR), SYS=$(SYS), EVT=$(EVR_PUL0_EVENT), PID=1, F=Trig, ID=1") + +# +# Load Single motions records +# + +# +# Motors +# + +dbLoadRecords("motor.template", "PREFIX=$(PMACPREFIX),MOTOR_NAME=$(MOTOR_NAME1),MOTOR_PORT=$(MOTOR_PORT),AXIS_NO=$(AXIS_NO1),EGU=$(EGU),DIR=$(DIR),MRES=$(MRES),PREC=$(PREC),DHLM=$(DHLM),DLLM=$(DLLM),HVEL=$(HVEL),VELO=$(VELO),VBAS=$(VBAS),VMAX=$(VMAX),ACCL=$(ACCL),BDST=$(BDST),INIT=$(INIT),OFF=$(OFF)") + +#dbLoadRecords("get_value_pmac.db") +#dbLoadRecords("set_value_pmac.db") +#dbLoadRecords("console.db") + +# +# Motor status +# + +dbLoadRecords("motorStatus.template", "PREFIX=$(PMACPREFIX),MOTOR_NAME=$(MOTOR_NAME1),ASYN_PORT=$(PMACPORT),AXIS_NO=$(AXIS_NO1),SCAN=$(SCAN),EGU=$(EGU),PREC=$(PREC),OVERHEAT1=$(OVERHEAT1),SWITCH_OFF1=$(SWITCH_OFF1),OVERHEAT2=$(OVERHEAT2),SWITCH_OFF2=$(SWITCH_OFF2),MOTOR_ERROR1=$(MOTOR_ERROR1),MOTOR_ERROR2=$(MOTOR_ERROR2),MOTOR_ERROR3=$(MOTOR_ERROR3),MOTOR_ERROR4=$(MOTOR_ERROR4)") + +# +# Homing procedure records +# + +dbLoadRecords("motorHoming.template", "PREFIX=$(PMACPREFIX),MOTOR_NAME=$(MOTOR_NAME1),ASYN_PORT=$(PMACPORT),AXIS_NO=$(AXIS_NO1),PREC=$(PREC),EGU=$(EGU)") + +dbLoadRecords("EMU.db", "DEVICE=$(SCANPREFIX), SCAN_SLIT=$(SCAN_SLIT), SCAN_EF=$(SCAN_EF),MTRREC=$(PMACPREFIX):$(MOTOR_NAME1), MAX_POINTS_EF=$(SCAN_POINTS_EF), MAX_POINTS_SLIT=$(SCAN_POINTS_SLIT), DAQNDSPREFIX=$(DAQPREFIX), DAQBUFSIZE=$(DAQBUFSIZE), DET1WF=PBI-EMV-FC:CurrR_Y, DET2WF=PBI-EM-HV1:VoltR_Y, DET3WF=PBI-EM-HV2:VoltR_Y, TR_TL=$(SYS)-$(EVR):Pul0-Ena-Sel, TR_TLTSEL=$(SYS)-$(EVR):Event-$(EVR_PUL0_EVENT)-SP.TIME, PSU_SP=LNS-ISRC-010:PBI-EM:HVhor-SP, PSU_RBV=LNS-ISRC-010:PBI-EM:HVhor-SP, PSU2_SP=LNS-ISRC-010:PBI-EM:HVver-SP, PSU2_RBV=LNS-ISRC-010:PBI-EM:HVver-SP,BUFFERSIZE=$(BUFFERSIZE)") + +# +# Init ETHERCAT module +ecat2configure(0,500,1,1) + + +############################################################################# +######################### iocInit ########################################### +############################################################################# +iocInit + +#### Motor homing +seq motorHoming "PREFIX=$(PMACPREFIX),MOTOR_NAME=$(MOTOR_NAME1)" +seq homeMtrAuto "PMACPREFIX=$(PMACPREFIX),MOTOR_NAME1=$(MOTOR_NAME1),DEVICE=$(SCANPREFIX),PREFIX=LNS-ISRC-010" +seq checkMTRBrake "PMACPREFIX=$(PMACPREFIX),MOTOR_NAME1=$(MOTOR_NAME1),DEVICE=$(SCANPREFIX),PREFIX=LNS-ISRC-010" + +#### Simulation of a current with ES4134 from Beckoff +#seq RampCurrent "PREFIX_PS=LNS-ISRC-010:PBI-EM,CONS_PS2=HVhor-SP,DEVICE=SCAN,SCAN_SLIT=$(SCAN_SLIT)" + + +# SET INTERFACE FROM IFCDAQ TO Allison scanner +# Forward link wf record to Detector guard +dbpf $(DAQPREFIX):PBI-EMV-FC:CurrR_Y.FLNK $(SCANPREFIX):DET1-GUARD +dbpf $(DAQPREFIX):PBI-EM-HV1:VoltR_Y.FLNK $(SCANPREFIX):DET2-GUARD +dbpf $(DAQPREFIX):PBI-EM-HV2:VoltR_Y.FLNK $(SCANPREFIX):DET3-GUARD +# Forward link from state record to Detector trigger +dbpf $(DAQPREFIX):PBI-EM:CARD0-STAT-RB.FLNK $(SCANPREFIX):DAQTRG-DAQSTGUARD + + +# Forward link number of samples rbv to compress N record, so that detetor know number of elements to average over. +dbpf $(DAQPREFIX):PBI-EM:CARD0:NSAMPLES-RB.FLNK "$(SCANPREFIX):DET1-COMPRESSN" + + +# Set tsel on WF record to event record in EVR +dbpf $(DAQPREFIX):PBI-EMV-FC:CurrR_Y.TSEL $(SYS)-$(EVR):Event-$(EVR_PUL0_EVENT)-SP.TIME +dbpf $(DAQPREFIX):PBI-EM-HV1:VoltR_Y.TSEL $(SYS)-$(EVR):Event-$(EVR_PUL0_EVENT)-SP.TIME +dbpf $(DAQPREFIX):PBI-EM-HV2:VoltR_Y.TSEL $(SYS)-$(EVR):Event-$(EVR_PUL0_EVENT)-SP.TIME +dbpf $(SYS)-$(EVR):Time-I.TSE -2 + +############################################################ +################### Configuration Timing ################### +############################################################ + +########## TIMING GENERATOR: setup TrgSrc0 to EVENT 14 ###### +## Internal trigger from Mxc1 - TrgSrc0 +#####NOT NEEDED AT CATANIA dbpf $(SYS)-$(EVG):TrigEvt0-EvtCode-SP $(EVR_PUL0_EVENT) +#####NOT NEEDED AT CATANIA dbpf $(SYS)-$(EVG):Mxc1-Frequency-SP 14 +#####NOT NEEDED AT CATANIA dbpf $(SYS)-$(EVG):Mxc1-TrigSrc0-SP "Set" + +### Setup EVR +##set the pulser 0 to trigger on output 0 +########## TIMING RECEIVER: setup OUT0 ############## + +dbpf $(SYS)-$(EVR):Link-Clk-SP 88.0519 +dbpf $(SYS)-$(EVR):FrontOut0-Src-SP 0 +dbpf $(SYS)-$(EVR):Pul0-Evt-Trig0-SP $(EVR_PUL0_EVENT) +dbpf $(SYS)-$(EVR):Pul0-Width-SP 20000 +dbpf $(SYS)-$(EVR):Pul0-Delay-SP 0 +dbpf $(SYS)-$(EVR):FrontOut0-Ena-SP "Enabled" + +### Setup EVR +##set the pulser 1 to trigger on output 1 for BETSI +########## TIMING RECEIVER: setup OUT0 ############## +#####NOT NEEDED AT CATANIA dbpf $(SYS)-$(EVR):FrontOut1-Src-SP 1 +#####NOT NEEDED AT CATANIA dbpf $(SYS)-$(EVR):Pul1-Evt-Trig1-SP $(EVR_PUL0_EVENT) +#####NOT NEEDED AT CATANIA dbpf $(SYS)-$(EVR):Pul1-Width-SP 20000 +#####NOT NEEDED AT CATANIA dbpf $(SYS)-$(EVR):Pul1-Delay-SP 0 +#####NOT NEEDED AT CATANIA dbpf $(SYS)-$(EVR):FrontOut1-Ena-SP "Enabled" + +### Setup IFCDAQ PVs ### +# Set trigger repeat to 1 +dbpf $(DAQPREFIX):PBI-EM:CARD0:TriggerRepeat 1 +# Set trigger source to external GPIO +dbpf $(DAQPREFIX):PBI-EM:CARD0:TRIGGERSOURCE "EXT-GPIO" +sleep(1) +dbpf $(DAQPREFIX):PBI-EM:CARD0-STAT ON +sleep(3) +dbpf $(DAQPREFIX):PBI-EM:CARD0-STAT RUNNING +sleep(1) +dbpf $(DAQPREFIX):PBI-EM:CARD0-STAT RUNNING +# Set the Frequency to 1MHz +dbpf $(DAQPREFIX):PBI-EM:CARD0:SAMPLINGRATE 1000000 + +### Setup reasonable values for sscan record ### +# Initialize Motor positioners +dbpf $(SCANPREFIX):$(SCAN_SLIT).P4SP -110 +dbpf $(SCANPREFIX):$(SCAN_SLIT).P4EP -190 +dbpf $(SCANPREFIX):$(SCAN_SLIT).P2SP 1.5 +dbpf $(SCANPREFIX):$(SCAN_SLIT).P2EP 1.5 +dbpf $(SCANPREFIX):$(SCAN_SLIT).P1SP 5 +dbpf $(SCANPREFIX):$(SCAN_SLIT).P1EP 5 +dbpf $(SCANPREFIX):$(SCAN_SLIT).NPTS 11 +#dbpf $(SCANPREFIX):$(SCAN_SLIT).PDLY 0.1 + +# Initialize Power supply positioners +dbpf $(SCANPREFIX):PROC-AngleMax-SP 80 +dbpf $(SCANPREFIX):PROC-AngleMin-SP -80 +dbpf $(SCANPREFIX):$(SCAN_EF).NPTS 200 +dbpf $(SCANPREFIX):$(SCAN_EF).PDLY 0.04 +dbpf $(SCANPREFIX):$(SCAN_EF).DDLY 0.02 +dbpf $(SCANPREFIX):$(SCAN_EF).AAWAIT 1 +dbpf $(SCANPREFIX):$(SCAN_EF).P1PR 4 +dbpf $(SCANPREFIX):$(SCAN_EF).P4PR 4 + +dbpf $(DAQPREFIX):PBI-EM:CARD0:TriggerEdge 1 +dbpf $(DAQPREFIX):PBI-EM:CARD0:NSAMPLES_ms 7 +dbpf $(DAQPREFIX):PBI-EMV:LCURSOR_ms 2 +dbpf $(DAQPREFIX):PBI-EMV:RCURSOR_ms 6 + +dbpf LNS-ISRC-010:PBI-EMV-FC:CurrR:AVG.MDEL -1 +dbpf LNS-ISRC-010:PBI-EMV-FC:CurrR:AVG.ADEL -1 +dbpf LNS-ISRC-010:PBI-EM-HV1:VoltR:AVG.MDEL -1 +dbpf LNS-ISRC-010:PBI-EM-HV1:VoltR:AVG.ADEL -1 +dbpf LNS-ISRC-010:PBI-EM-HV2:VoltR:AVG.MDEL -1 +dbpf LNS-ISRC-010:PBI-EM-HV2:VoltR:AVG.ADEL -1 + + diff --git a/db/EMU_PROCESS.template b/db/EMU_PROCESS.template index 1743ef9..dca5594 100644 --- a/db/EMU_PROCESS.template +++ b/db/EMU_PROCESS.template @@ -3,20 +3,30 @@ ############################################# record(ao, "$(DEVICE):PROC-AngleMax-SP") { - field(FLNK,"$(DEVICE):PROC-VoltMax") field(EGU, "mrad") field(PINI,"YES") + field(FLNK,"$(DEVICE):PROC-VoltMaxP1") } -record(calcout, "$(DEVICE):PROC-VoltMax") { +record(calcout, "$(DEVICE):PROC-VoltMaxP1") { field(VAL, "0") field(INPA,"$(DEVICE):PROC-AngleMax-SP") field(INPB,"$(DEVICE):CALC-FactMRADtoV") ### /2000 => conversion in 0/10V ### field(CALC, "(A*B)/2000") - field(PREC, "4") + field(PREC, "5") field(EGU,"kV") - field(FLNK,"$(DEVICE):PROC-DeltaMaxVolt") + field(OUT,"$(DEVICE):$(SCAN_EF).P4SP PP") + field(FLNK,"$(DEVICE):PROC-VoltMaxP2") +} + +record(calcout,"$(DEVICE):PROC-VoltMaxP2") { + field(INPA,"$(DEVICE):PROC-VoltMaxP1") + ### DELTA MAX calcul + field(CALC, "A>0?A*(-1):A") + field(PREC, "5") + field(EGU,"kV") + field(OUT,"$(DEVICE):$(SCAN_EF).P1SP PP") } ############################################# @@ -24,20 +34,30 @@ record(calcout, "$(DEVICE):PROC-VoltMax") { ############################################# record(ao, "$(DEVICE):PROC-AngleMin-SP") { - field(FLNK,"$(DEVICE):PROC-VoltMin") field(EGU, "mrad") field(PINI,"YES") + field(FLNK,"$(DEVICE):PROC-VoltMinP1") } -record(calcout, "$(DEVICE):PROC-VoltMin") { +record(calcout, "$(DEVICE):PROC-VoltMinP1") { field(VAL, "0") field(INPA,"$(DEVICE):PROC-AngleMin-SP") field(INPB,"$(DEVICE):CALC-FactMRADtoV") ### /2000 => conversion in 0/10V field(CALC, "(A*B)/2000") - field(PREC, "4") + field(PREC, "5") field(EGU,"kV") - field(FLNK,"$(DEVICE):PROC-DeltaMaxVolt") + field(OUT,"$(DEVICE):$(SCAN_EF).P4EP PP") + field(FLNK,"$(DEVICE):PROC-VoltMinP2") +} + +record(calcout,"$(DEVICE):PROC-VoltMinP2") { + field(INPA,"$(DEVICE):PROC-VoltMinP1") + ### DELTA MAX calcul + field(CALC, "A*(-1)") + field(PREC, "5") + field(EGU,"kV") + field(OUT,"$(DEVICE):$(SCAN_EF).P1EP PP") } ############################################# @@ -64,10 +84,6 @@ record(calcout, "$(DEVICE):PROC-DeltaMinVolt") { field(OUT,"$(DEVICE):PROC-VoltMin-SP PP") } -record(dfanout,"$(DEVICE):PROC-VoltMax-SP"){ - field(OUTA,"$(DEVICE):$(SCAN_EF).P1EP PP") - field(OUTB,"$(DEVICE):$(SCAN_EF).P4SP PP") -} record(dfanout,"$(DEVICE):PROC-VoltMin-SP"){ field(OUTA,"$(DEVICE):$(SCAN_EF).P1SP PP") field(OUTB,"$(DEVICE):$(SCAN_EF).P4EP PP") diff --git a/logs.0 b/logs.0 index 7b0b8ef..2e72074 100644 --- a/logs.0 +++ b/logs.0 @@ -1,46 +1,40 @@ -2017-01-25 11:51:49.460 SEVERE [Thread 1] org.csstudio.logging.PluginLogListener (logging) - Unhandled event loop exception -org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.NullPointerException) - at org.eclipse.swt.SWT.error(SWT.java:4441) - at org.eclipse.swt.SWT.error(SWT.java:4356) - at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:139) - at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3774) - at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3412) - at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) - at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) - at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) - at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) - at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) - at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) - at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) - at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) - at org.csstudio.utility.product.Workbench.runWorkbench(Workbench.java:103) - at org.csstudio.startup.application.Application.startApplication(Application.java:264) - at org.csstudio.startup.application.Application.start(Application.java:118) - at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) - at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) - at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) - at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) - at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) - at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.lang.reflect.Method.invoke(Method.java:497) - at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) - at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) - at org.eclipse.equinox.launcher.Main.run(Main.java:1465) - at org.eclipse.equinox.launcher.Main.main(Main.java:1438) -Caused by: java.lang.NullPointerException - at org.csstudio.swt.widgets.figureparts.ROIFigure.getGeoBoundsFromROI(ROIFigure.java:507) - at org.csstudio.swt.widgets.figureparts.ROIFigure.updateROIGeoBounds(ROIFigure.java:488) - at org.csstudio.swt.widgets.figureparts.ROIFigure.access$3(ROIFigure.java:487) - at org.csstudio.swt.widgets.figureparts.ROIFigure$3.croppedDataSizeChanged(ROIFigure.java:363) - at org.csstudio.swt.widgets.figures.IntensityGraphFigure.updateCroppedDataSize(IntensityGraphFigure.java:1609) - at org.csstudio.swt.widgets.figures.IntensityGraphFigure.setDataWidth(IntensityGraphFigure.java:1419) - at org.csstudio.opibuilder.widgets.editparts.IntensityGraphEditPart$8.handleChange(IntensityGraphEditPart.java:244) - at org.csstudio.opibuilder.properties.WidgetPropertyChangeListener$1.run(WidgetPropertyChangeListener.java:53) - at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) - at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) - ... 26 more +2017-01-25 17:12:59.457 SEVERE [Thread 50] com.cosylab.epics.caj.impl.CATransport (processRead) - Received payload size (2088976) is larger than configured maximum array size (1600000), disconnecting... +2017-01-25 17:12:59.457 WARNING [Thread 19267] org.csstudio.opibuilder.util.ErrorHandlerUtil (handleError) - Error from pv connection layer: +java.lang.IllegalStateException: Channel not connected. + at com.cosylab.epics.caj.CAJChannel.connectionRequiredCheck(CAJChannel.java:1079) + at com.cosylab.epics.caj.CAJChannel.get(CAJChannel.java:953) + at org.epics.pvmanager.jca.JCAChannelHandler.setup(JCAChannelHandler.java:336) + at org.epics.pvmanager.jca.JCAChannelHandler.access$1000(JCAChannelHandler.java:51) + at org.epics.pvmanager.jca.JCAChannelHandler$3$1.run(JCAChannelHandler.java:436) + at java.lang.Thread.run(Thread.java:745) + +2017-01-25 17:12:59.457 WARNING [Thread 19267] org.csstudio.opibuilder.util.ErrorHandlerUtil (handleError) - Error from pv connection layer: +java.lang.IllegalStateException: Channel not connected. + at com.cosylab.epics.caj.CAJChannel.connectionRequiredCheck(CAJChannel.java:1079) + at com.cosylab.epics.caj.CAJChannel.get(CAJChannel.java:953) + at org.epics.pvmanager.jca.JCAChannelHandler.setup(JCAChannelHandler.java:336) + at org.epics.pvmanager.jca.JCAChannelHandler.access$1000(JCAChannelHandler.java:51) + at org.epics.pvmanager.jca.JCAChannelHandler$3$1.run(JCAChannelHandler.java:436) + at java.lang.Thread.run(Thread.java:745) + +2017-01-25 17:12:59.471 SEVERE [Thread 47] com.cosylab.epics.caj.CAJChannel (resubscribeSubscriptions) - +java.lang.IndexOutOfBoundsException + at java.nio.Buffer.checkIndex(Buffer.java:546) + at java.nio.HeapByteBuffer.putInt(HeapByteBuffer.java:381) + at com.cosylab.epics.caj.impl.requests.EventAddRequest.resubscribeSubscription(EventAddRequest.java:167) + at com.cosylab.epics.caj.CAJChannel.resubscribeSubscriptions(CAJChannel.java:1278) + at com.cosylab.epics.caj.CAJChannel.connectionCompleted(CAJChannel.java:352) + at com.cosylab.epics.caj.impl.handlers.CreateChannelResponse.internalHandleResponse(CreateChannelResponse.java:48) + at com.cosylab.epics.caj.impl.handlers.AbstractCAResponseHandler.handleResponse(AbstractCAResponseHandler.java:110) + at com.cosylab.epics.caj.impl.CAResponseHandler.handleResponse(CAResponseHandler.java:139) + at com.cosylab.epics.caj.impl.CATransport.processRead(CATransport.java:509) + at com.cosylab.epics.caj.impl.CATransport.processRead(CATransport.java:421) + at com.cosylab.epics.caj.impl.CATransport.handleEvent(CATransport.java:359) + at com.cosylab.epics.caj.impl.reactor.lf.LeaderFollowersHandler.handleEvent(LeaderFollowersHandler.java:77) + at com.cosylab.epics.caj.impl.reactor.Reactor.processInternal(Reactor.java:400) + at com.cosylab.epics.caj.impl.reactor.Reactor.process(Reactor.java:284) + at com.cosylab.epics.caj.impl.reactor.lf.LeaderFollowersHandler.run(LeaderFollowersHandler.java:91) + at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) + at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) + at java.lang.Thread.run(Thread.java:745) -2017-01-25 11:51:49.461 INFO [Thread 1] org.csstudio.opibuilder.widgets.editparts.LinkingContainerEditpart (configureDisplayModel) - /CSS/emu-plc-test/1-Home.opi -2017-01-25 11:53:41.238 INFO [Thread 1] org.csstudio.opibuilder.widgets.editparts.LinkingContainerEditpart (configureDisplayModel) - diff --git a/logs.1 b/logs.1 index d85e68f..078d26f 100644 --- a/logs.1 +++ b/logs.1 @@ -1,136 +1,105 @@ -2017-01-25 11:44:32.646 INFO [Thread 1] org.csstudio.opibuilder.widgets.editparts.LinkingContainerEditpart (configureDisplayModel) - /CSS/emu-plc-test/1-Home.opi -2017-01-25 11:48:49.905 INFO [Thread 1] org.csstudio.opibuilder.widgets.editparts.LinkingContainerEditpart (configureDisplayModel) - -2017-01-25 11:48:50.500 SEVERE [Thread 1] org.csstudio.logging.PluginLogListener (logging) - Unhandled event loop exception -org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.NullPointerException) - at org.eclipse.swt.SWT.error(SWT.java:4441) - at org.eclipse.swt.SWT.error(SWT.java:4356) - at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:139) - at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3774) - at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3412) - at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) - at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) - at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) - at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) - at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) - at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) - at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) - at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) - at org.csstudio.utility.product.Workbench.runWorkbench(Workbench.java:103) - at org.csstudio.startup.application.Application.startApplication(Application.java:264) - at org.csstudio.startup.application.Application.start(Application.java:118) - at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) - at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) - at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) - at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) - at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) - at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.lang.reflect.Method.invoke(Method.java:497) - at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) - at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) - at org.eclipse.equinox.launcher.Main.run(Main.java:1465) - at org.eclipse.equinox.launcher.Main.main(Main.java:1438) -Caused by: java.lang.NullPointerException - at org.csstudio.swt.widgets.figureparts.ROIFigure.getGeoBoundsFromROI(ROIFigure.java:507) - at org.csstudio.swt.widgets.figureparts.ROIFigure.updateROIGeoBounds(ROIFigure.java:488) - at org.csstudio.swt.widgets.figureparts.ROIFigure.access$3(ROIFigure.java:487) - at org.csstudio.swt.widgets.figureparts.ROIFigure$3.croppedDataSizeChanged(ROIFigure.java:363) - at org.csstudio.swt.widgets.figures.IntensityGraphFigure.updateCroppedDataSize(IntensityGraphFigure.java:1609) - at org.csstudio.swt.widgets.figures.IntensityGraphFigure.setDataHeight(IntensityGraphFigure.java:1404) - at org.csstudio.opibuilder.widgets.editparts.IntensityGraphEditPart$9.handleChange(IntensityGraphEditPart.java:254) - at org.csstudio.opibuilder.properties.WidgetPropertyChangeListener$1.run(WidgetPropertyChangeListener.java:53) - at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) - at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) - ... 26 more +2017-01-25 17:12:59.456 SEVERE [Thread 50] com.cosylab.epics.caj.CAJChannel (resubscribeSubscriptions) - +java.lang.IndexOutOfBoundsException + at java.nio.Buffer.checkIndex(Buffer.java:546) + at java.nio.HeapByteBuffer.putInt(HeapByteBuffer.java:381) + at com.cosylab.epics.caj.impl.requests.EventAddRequest.resubscribeSubscription(EventAddRequest.java:167) + at com.cosylab.epics.caj.CAJChannel.resubscribeSubscriptions(CAJChannel.java:1278) + at com.cosylab.epics.caj.CAJChannel.connectionCompleted(CAJChannel.java:352) + at com.cosylab.epics.caj.impl.handlers.CreateChannelResponse.internalHandleResponse(CreateChannelResponse.java:48) + at com.cosylab.epics.caj.impl.handlers.AbstractCAResponseHandler.handleResponse(AbstractCAResponseHandler.java:110) + at com.cosylab.epics.caj.impl.CAResponseHandler.handleResponse(CAResponseHandler.java:139) + at com.cosylab.epics.caj.impl.CATransport.processRead(CATransport.java:509) + at com.cosylab.epics.caj.impl.CATransport.processRead(CATransport.java:421) + at com.cosylab.epics.caj.impl.CATransport.handleEvent(CATransport.java:359) + at com.cosylab.epics.caj.impl.reactor.lf.LeaderFollowersHandler.handleEvent(LeaderFollowersHandler.java:77) + at com.cosylab.epics.caj.impl.reactor.Reactor.processInternal(Reactor.java:400) + at com.cosylab.epics.caj.impl.reactor.Reactor.process(Reactor.java:284) + at com.cosylab.epics.caj.impl.reactor.lf.LeaderFollowersHandler.run(LeaderFollowersHandler.java:91) + at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) + at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) + at java.lang.Thread.run(Thread.java:745) -2017-01-25 11:48:50.500 SEVERE [Thread 1] org.csstudio.logging.PluginLogListener (logging) - Unhandled event loop exception -org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.NullPointerException) - at org.eclipse.swt.SWT.error(SWT.java:4441) - at org.eclipse.swt.SWT.error(SWT.java:4356) - at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:139) - at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3774) - at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3412) - at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) - at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) - at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) - at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) - at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) - at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) - at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) - at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) - at org.csstudio.utility.product.Workbench.runWorkbench(Workbench.java:103) - at org.csstudio.startup.application.Application.startApplication(Application.java:264) - at org.csstudio.startup.application.Application.start(Application.java:118) - at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) - at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) - at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) - at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) - at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) - at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.lang.reflect.Method.invoke(Method.java:497) - at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) - at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) - at org.eclipse.equinox.launcher.Main.run(Main.java:1465) - at org.eclipse.equinox.launcher.Main.main(Main.java:1438) -Caused by: java.lang.NullPointerException - at org.csstudio.swt.widgets.figureparts.ROIFigure.getGeoBoundsFromROI(ROIFigure.java:507) - at org.csstudio.swt.widgets.figureparts.ROIFigure.updateROIGeoBounds(ROIFigure.java:488) - at org.csstudio.swt.widgets.figureparts.ROIFigure.access$3(ROIFigure.java:487) - at org.csstudio.swt.widgets.figureparts.ROIFigure$3.croppedDataSizeChanged(ROIFigure.java:363) - at org.csstudio.swt.widgets.figures.IntensityGraphFigure.updateCroppedDataSize(IntensityGraphFigure.java:1609) - at org.csstudio.swt.widgets.figures.IntensityGraphFigure.setDataWidth(IntensityGraphFigure.java:1419) - at org.csstudio.opibuilder.widgets.editparts.IntensityGraphEditPart$8.handleChange(IntensityGraphEditPart.java:244) - at org.csstudio.opibuilder.properties.WidgetPropertyChangeListener$1.run(WidgetPropertyChangeListener.java:53) - at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) - at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) - ... 26 more +2017-01-25 17:12:59.456 SEVERE [Thread 50] com.cosylab.epics.caj.CAJChannel (resubscribeSubscriptions) - +java.lang.IndexOutOfBoundsException + at java.nio.Buffer.checkIndex(Buffer.java:546) + at java.nio.HeapByteBuffer.putInt(HeapByteBuffer.java:381) + at com.cosylab.epics.caj.impl.requests.EventAddRequest.resubscribeSubscription(EventAddRequest.java:167) + at com.cosylab.epics.caj.CAJChannel.resubscribeSubscriptions(CAJChannel.java:1278) + at com.cosylab.epics.caj.CAJChannel.connectionCompleted(CAJChannel.java:352) + at com.cosylab.epics.caj.impl.handlers.CreateChannelResponse.internalHandleResponse(CreateChannelResponse.java:48) + at com.cosylab.epics.caj.impl.handlers.AbstractCAResponseHandler.handleResponse(AbstractCAResponseHandler.java:110) + at com.cosylab.epics.caj.impl.CAResponseHandler.handleResponse(CAResponseHandler.java:139) + at com.cosylab.epics.caj.impl.CATransport.processRead(CATransport.java:509) + at com.cosylab.epics.caj.impl.CATransport.processRead(CATransport.java:421) + at com.cosylab.epics.caj.impl.CATransport.handleEvent(CATransport.java:359) + at com.cosylab.epics.caj.impl.reactor.lf.LeaderFollowersHandler.handleEvent(LeaderFollowersHandler.java:77) + at com.cosylab.epics.caj.impl.reactor.Reactor.processInternal(Reactor.java:400) + at com.cosylab.epics.caj.impl.reactor.Reactor.process(Reactor.java:284) + at com.cosylab.epics.caj.impl.reactor.lf.LeaderFollowersHandler.run(LeaderFollowersHandler.java:91) + at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) + at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) + at java.lang.Thread.run(Thread.java:745) -2017-01-25 11:48:50.501 INFO [Thread 1] org.csstudio.opibuilder.widgets.editparts.LinkingContainerEditpart (configureDisplayModel) - /CSS/emu-plc-test/1-Home.opi -2017-01-25 11:51:48.943 INFO [Thread 1] org.csstudio.opibuilder.widgets.editparts.LinkingContainerEditpart (configureDisplayModel) - -2017-01-25 11:51:49.459 SEVERE [Thread 1] org.csstudio.logging.PluginLogListener (logging) - Unhandled event loop exception -org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.NullPointerException) - at org.eclipse.swt.SWT.error(SWT.java:4441) - at org.eclipse.swt.SWT.error(SWT.java:4356) - at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:139) - at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3774) - at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3412) - at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) - at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) - at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) - at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) - at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) - at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) - at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) - at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) - at org.csstudio.utility.product.Workbench.runWorkbench(Workbench.java:103) - at org.csstudio.startup.application.Application.startApplication(Application.java:264) - at org.csstudio.startup.application.Application.start(Application.java:118) - at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) - at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) - at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) - at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) - at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) - at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.lang.reflect.Method.invoke(Method.java:497) - at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) - at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) - at org.eclipse.equinox.launcher.Main.run(Main.java:1465) - at org.eclipse.equinox.launcher.Main.main(Main.java:1438) -Caused by: java.lang.NullPointerException - at org.csstudio.swt.widgets.figureparts.ROIFigure.getGeoBoundsFromROI(ROIFigure.java:507) - at org.csstudio.swt.widgets.figureparts.ROIFigure.updateROIGeoBounds(ROIFigure.java:488) - at org.csstudio.swt.widgets.figureparts.ROIFigure.access$3(ROIFigure.java:487) - at org.csstudio.swt.widgets.figureparts.ROIFigure$3.croppedDataSizeChanged(ROIFigure.java:363) - at org.csstudio.swt.widgets.figures.IntensityGraphFigure.updateCroppedDataSize(IntensityGraphFigure.java:1609) - at org.csstudio.swt.widgets.figures.IntensityGraphFigure.setDataHeight(IntensityGraphFigure.java:1404) - at org.csstudio.opibuilder.widgets.editparts.IntensityGraphEditPart$9.handleChange(IntensityGraphEditPart.java:254) - at org.csstudio.opibuilder.properties.WidgetPropertyChangeListener$1.run(WidgetPropertyChangeListener.java:53) - at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) - at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) - ... 26 more +2017-01-25 17:12:59.457 SEVERE [Thread 50] com.cosylab.epics.caj.CAJChannel (resubscribeSubscriptions) - +java.lang.IndexOutOfBoundsException + at java.nio.Buffer.checkIndex(Buffer.java:546) + at java.nio.HeapByteBuffer.putInt(HeapByteBuffer.java:381) + at com.cosylab.epics.caj.impl.requests.EventAddRequest.resubscribeSubscription(EventAddRequest.java:167) + at com.cosylab.epics.caj.CAJChannel.resubscribeSubscriptions(CAJChannel.java:1278) + at com.cosylab.epics.caj.CAJChannel.connectionCompleted(CAJChannel.java:352) + at com.cosylab.epics.caj.impl.handlers.CreateChannelResponse.internalHandleResponse(CreateChannelResponse.java:48) + at com.cosylab.epics.caj.impl.handlers.AbstractCAResponseHandler.handleResponse(AbstractCAResponseHandler.java:110) + at com.cosylab.epics.caj.impl.CAResponseHandler.handleResponse(CAResponseHandler.java:139) + at com.cosylab.epics.caj.impl.CATransport.processRead(CATransport.java:509) + at com.cosylab.epics.caj.impl.CATransport.processRead(CATransport.java:421) + at com.cosylab.epics.caj.impl.CATransport.handleEvent(CATransport.java:359) + at com.cosylab.epics.caj.impl.reactor.lf.LeaderFollowersHandler.handleEvent(LeaderFollowersHandler.java:77) + at com.cosylab.epics.caj.impl.reactor.Reactor.processInternal(Reactor.java:400) + at com.cosylab.epics.caj.impl.reactor.Reactor.process(Reactor.java:284) + at com.cosylab.epics.caj.impl.reactor.lf.LeaderFollowersHandler.run(LeaderFollowersHandler.java:91) + at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) + at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) + at java.lang.Thread.run(Thread.java:745) + +2017-01-25 17:12:59.457 SEVERE [Thread 50] com.cosylab.epics.caj.CAJChannel (resubscribeSubscriptions) - +java.lang.IndexOutOfBoundsException + at java.nio.Buffer.checkIndex(Buffer.java:546) + at java.nio.HeapByteBuffer.putInt(HeapByteBuffer.java:381) + at com.cosylab.epics.caj.impl.requests.EventAddRequest.resubscribeSubscription(EventAddRequest.java:167) + at com.cosylab.epics.caj.CAJChannel.resubscribeSubscriptions(CAJChannel.java:1278) + at com.cosylab.epics.caj.CAJChannel.connectionCompleted(CAJChannel.java:352) + at com.cosylab.epics.caj.impl.handlers.CreateChannelResponse.internalHandleResponse(CreateChannelResponse.java:48) + at com.cosylab.epics.caj.impl.handlers.AbstractCAResponseHandler.handleResponse(AbstractCAResponseHandler.java:110) + at com.cosylab.epics.caj.impl.CAResponseHandler.handleResponse(CAResponseHandler.java:139) + at com.cosylab.epics.caj.impl.CATransport.processRead(CATransport.java:509) + at com.cosylab.epics.caj.impl.CATransport.processRead(CATransport.java:421) + at com.cosylab.epics.caj.impl.CATransport.handleEvent(CATransport.java:359) + at com.cosylab.epics.caj.impl.reactor.lf.LeaderFollowersHandler.handleEvent(LeaderFollowersHandler.java:77) + at com.cosylab.epics.caj.impl.reactor.Reactor.processInternal(Reactor.java:400) + at com.cosylab.epics.caj.impl.reactor.Reactor.process(Reactor.java:284) + at com.cosylab.epics.caj.impl.reactor.lf.LeaderFollowersHandler.run(LeaderFollowersHandler.java:91) + at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) + at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) + at java.lang.Thread.run(Thread.java:745) + +2017-01-25 17:12:59.457 SEVERE [Thread 50] com.cosylab.epics.caj.CAJChannel (resubscribeSubscriptions) - +java.lang.IndexOutOfBoundsException + at java.nio.Buffer.checkIndex(Buffer.java:546) + at java.nio.HeapByteBuffer.putInt(HeapByteBuffer.java:381) + at com.cosylab.epics.caj.impl.requests.EventAddRequest.resubscribeSubscription(EventAddRequest.java:167) + at com.cosylab.epics.caj.CAJChannel.resubscribeSubscriptions(CAJChannel.java:1278) + at com.cosylab.epics.caj.CAJChannel.connectionCompleted(CAJChannel.java:352) + at com.cosylab.epics.caj.impl.handlers.CreateChannelResponse.internalHandleResponse(CreateChannelResponse.java:48) + at com.cosylab.epics.caj.impl.handlers.AbstractCAResponseHandler.handleResponse(AbstractCAResponseHandler.java:110) + at com.cosylab.epics.caj.impl.CAResponseHandler.handleResponse(CAResponseHandler.java:139) + at com.cosylab.epics.caj.impl.CATransport.processRead(CATransport.java:509) + at com.cosylab.epics.caj.impl.CATransport.processRead(CATransport.java:421) + at com.cosylab.epics.caj.impl.CATransport.handleEvent(CATransport.java:359) + at com.cosylab.epics.caj.impl.reactor.lf.LeaderFollowersHandler.handleEvent(LeaderFollowersHandler.java:77) + at com.cosylab.epics.caj.impl.reactor.Reactor.processInternal(Reactor.java:400) + at com.cosylab.epics.caj.impl.reactor.Reactor.process(Reactor.java:284) + at com.cosylab.epics.caj.impl.reactor.lf.LeaderFollowersHandler.run(LeaderFollowersHandler.java:91) + at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) + at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) + at java.lang.Thread.run(Thread.java:745) diff --git a/opi/EMU.opi b/opi/EMU.opi index 5015cc4..9422d06 100644 --- a/opi/EMU.opi +++ b/opi/EMU.opi @@ -6373,7 +6373,7 @@ $(pv_value)</tooltip> <wuid>4b16a64d:158af4f8f37:-7b9f</wuid> <transparent>true</transparent> <auto_size>false</auto_size> - <text>TENSION MAX</text> + <text>Tension MRAD MAX</text> <scripts /> <height>20</height> <border_width>2</border_width> @@ -6392,7 +6392,7 @@ $(pv_value)</tooltip> <background_color> <color name="IO Background" red="255" green="255" blue="205" /> </background_color> - <width>115</width> + <width>168</width> <x>36</x> <name>Label Orientation_3</name> <y>857</y> @@ -6431,7 +6431,7 @@ $(pv_value)</tooltip> <keep_wh_ratio>false</keep_wh_ratio> </scale_options> <visible>true</visible> - <pv_name>${PREFIX_SCAN}:$(PROC)-VoltMax</pv_name> + <pv_name>${PREFIX_SCAN}:$(PROC)-VoltMaxP1</pv_name> <vertical_alignment>1</vertical_alignment> <border_color> <color red="0" green="128" blue="255" /> @@ -6445,7 +6445,7 @@ $(pv_value)</tooltip> <color red="70" green="70" blue="70" /> </background_color> <width>160</width> - <x>168</x> + <x>209</x> <name>Text Update</name> <y>851</y> <foreground_color> @@ -6483,7 +6483,7 @@ $(pv_value)</tooltip> <keep_wh_ratio>false</keep_wh_ratio> </scale_options> <visible>true</visible> - <pv_name>${PREFIX_SCAN}:$(PROC)-VoltMin</pv_name> + <pv_name>${PREFIX_SCAN}:$(PROC)-VoltMinP1</pv_name> <vertical_alignment>1</vertical_alignment> <border_color> <color red="0" green="128" blue="255" /> @@ -6497,7 +6497,7 @@ $(pv_value)</tooltip> <color red="70" green="70" blue="70" /> </background_color> <width>160</width> - <x>168</x> + <x>209</x> <name>Text Update_1</name> <y>893</y> <foreground_color> @@ -6517,9 +6517,9 @@ $(pv_value)</tooltip> <wuid>4b16a64d:158af4f8f37:-7ae3</wuid> <transparent>true</transparent> <auto_size>false</auto_size> - <text>TENSION MIN</text> + <text>Tension MRAD MIN</text> <scripts /> - <height>20</height> + <height>25</height> <border_width>2</border_width> <scale_options> <width_scalable>true</width_scalable> @@ -6536,7 +6536,7 @@ $(pv_value)</tooltip> <background_color> <color name="IO Background" red="255" green="255" blue="205" /> </background_color> - <width>115</width> + <width>168</width> <x>36</x> <name>Label Orientation_3</name> <y>899</y> diff --git a/startup/EMU.cmd b/startup/EMU.cmd index 631bd02..5a32246 100644 --- a/startup/EMU.cmd +++ b/startup/EMU.cmd @@ -230,6 +230,8 @@ dbpf $(SCANPREFIX):$(SCAN_EF).NPTS 200 dbpf $(SCANPREFIX):$(SCAN_EF).PDLY 0.04 dbpf $(SCANPREFIX):$(SCAN_EF).DDLY 0.02 dbpf $(SCANPREFIX):$(SCAN_EF).AAWAIT 1 +dbpf $(SCANPREFIX):$(SCAN_EF).P1PR 4 +dbpf $(SCANPREFIX):$(SCAN_EF).P4PR 4 dbpf $(DAQPREFIX):PBI-EM:CARD0:TriggerEdge 1 dbpf $(DAQPREFIX):PBI-EM:CARD0:NSAMPLES_ms 7 -- GitLab