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 0000000000000000000000000000000000000000..e92ea734d4d31558972e1e3233453e725d38530f --- /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 0000000000000000000000000000000000000000..e7bdc7ec8e61d4310740c0887984233fe0a0c011 --- /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 Binary files /dev/null and b/builddir/3.14.12.5/lib/centos7-x86_64/libemu.so differ 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 0000000000000000000000000000000000000000..e7bdc7ec8e61d4310740c0887984233fe0a0c011 --- /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 Binary files /dev/null and b/builddir/3.14.12.5/lib/eldk56-e500v2/libemu.so differ diff --git a/builddir/3.15.2/dbd/emu.dbd b/builddir/3.15.2/dbd/emu.dbd new file mode 100644 index 0000000000000000000000000000000000000000..e92ea734d4d31558972e1e3233453e725d38530f --- /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 0000000000000000000000000000000000000000..e7bdc7ec8e61d4310740c0887984233fe0a0c011 --- /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 Binary files /dev/null and b/builddir/3.15.2/lib/centos7-x86_64/libemu.so differ 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 0000000000000000000000000000000000000000..e7bdc7ec8e61d4310740c0887984233fe0a0c011 --- /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 Binary files /dev/null and b/builddir/3.15.2/lib/eldk56-e500v2/libemu.so differ 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 0000000000000000000000000000000000000000..25aa99af2d221f6eec2ad1e08dd64b2e2bcdf0d8 --- /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 0000000000000000000000000000000000000000..e0a80637100c7782d8a4e1cfdb188ebd67d24e8a --- /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 0000000000000000000000000000000000000000..7b2da4124cd9438a3957462272f59e78c942d234 --- /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 0000000000000000000000000000000000000000..137d2927c9eb283bc9d7ab7067fa88b7a5ad4398 --- /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 Binary files /dev/null and b/builddir/O.3.14.12.5_centos7-x86_64/EMU_CALCULS.o differ 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 0000000000000000000000000000000000000000..61f798542efea93f34d2a090dcb60d55d0491632 --- /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 0000000000000000000000000000000000000000..5cff76425e72f9c1cbd90c0801a2bcca0aaa85c5 --- /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 0000000000000000000000000000000000000000..d6a612e044c62ed9da6131c2ee8218b4bc278e69 --- /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 0000000000000000000000000000000000000000..1267f20b50f28b1003ee4c9efc5778f440f9e1b7 --- /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 Binary files /dev/null and b/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-CHECKBRAKE.o differ 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 0000000000000000000000000000000000000000..d71c5ef580c63b173b91b544522f3b655ee6b64f --- /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 0000000000000000000000000000000000000000..0b2209c45d8947a00a779eab87b42a2d1ff650b3 --- /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 0000000000000000000000000000000000000000..8f7967a58d9b1516c425acf32fcac22a6ef1d593 --- /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 0000000000000000000000000000000000000000..4ec46b3d9da0dcd9e2b88f931f8f263e4f7489b9 --- /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 0000000000000000000000000000000000000000..1d5294f4b4b2a8f19547e0e4fb0f3038c59c1a89 --- /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 Binary files /dev/null and b/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-HOME_AUTO.o differ 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 0000000000000000000000000000000000000000..13865304012aba162af2a02f64310a1532c6facf --- /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 0000000000000000000000000000000000000000..3655c1426c270d7c81e784088f54ece69285abaf --- /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 0000000000000000000000000000000000000000..64840883eb67d3c9bfcf1ce955421b920374ad47 --- /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 Binary files /dev/null and b/builddir/O.3.14.12.5_centos7-x86_64/EMU_REPORT_FILE.o differ 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 0000000000000000000000000000000000000000..a707bbacdd741c90c4a70061387447e7bad4a539 --- /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 0000000000000000000000000000000000000000..28b2801295fa09e3f48437922f2d936b15a6a6aa --- /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 Binary files /dev/null and b/builddir/O.3.14.12.5_centos7-x86_64/emu_Versioncatane.o differ 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 0000000000000000000000000000000000000000..b8b743c0aebe69985b574e2689e6e0c370a96ec6 --- /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 0000000000000000000000000000000000000000..52cdf69a89631dbc36e01c1895ca3c0e72bb68d1 --- /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 Binary files /dev/null and b/builddir/O.3.14.12.5_centos7-x86_64/emu_registerRecordDeviceDriver.o differ 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 Binary files /dev/null and b/builddir/O.3.14.12.5_centos7-x86_64/libemu.so differ 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 0000000000000000000000000000000000000000..8a5e18df8776a4c3c25343b4fc18c2e4766ff8b6 --- /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 0000000000000000000000000000000000000000..7b2da4124cd9438a3957462272f59e78c942d234 --- /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 0000000000000000000000000000000000000000..729f96d8b4ad22a189550dc5ee5f8064cd0eb910 --- /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 Binary files /dev/null and b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_CALCULS.o differ 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 0000000000000000000000000000000000000000..61f798542efea93f34d2a090dcb60d55d0491632 --- /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 0000000000000000000000000000000000000000..5cff76425e72f9c1cbd90c0801a2bcca0aaa85c5 --- /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 0000000000000000000000000000000000000000..2cde58d6fef4d7209d070ea6f1a9004e928f959b --- /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 0000000000000000000000000000000000000000..3ec36e0979ab2e2d9a7dc75e93689dc29f401471 --- /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 Binary files /dev/null and b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-CHECKBRAKE.o differ 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 0000000000000000000000000000000000000000..d71c5ef580c63b173b91b544522f3b655ee6b64f --- /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 0000000000000000000000000000000000000000..0b2209c45d8947a00a779eab87b42a2d1ff650b3 --- /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 0000000000000000000000000000000000000000..8f7967a58d9b1516c425acf32fcac22a6ef1d593 --- /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 0000000000000000000000000000000000000000..d75e436c5c23e8ced4a52daba52f4b9bf2eb91fb --- /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 0000000000000000000000000000000000000000..79348dfc2d5e5ba437f23816ba928cd4d1b681f8 --- /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 Binary files /dev/null and b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-HOME_AUTO.o differ 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 0000000000000000000000000000000000000000..13865304012aba162af2a02f64310a1532c6facf --- /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 0000000000000000000000000000000000000000..3655c1426c270d7c81e784088f54ece69285abaf --- /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 0000000000000000000000000000000000000000..24f2ef92de239e5b2909a7402fb15bef3e49a3c2 --- /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 Binary files /dev/null and b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_REPORT_FILE.o differ 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 0000000000000000000000000000000000000000..a707bbacdd741c90c4a70061387447e7bad4a539 --- /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 0000000000000000000000000000000000000000..28b2801295fa09e3f48437922f2d936b15a6a6aa --- /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 Binary files /dev/null and b/builddir/O.3.14.12.5_eldk56-e500v2/emu_Versioncatane.o differ 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 0000000000000000000000000000000000000000..b8b743c0aebe69985b574e2689e6e0c370a96ec6 --- /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 0000000000000000000000000000000000000000..52cdf69a89631dbc36e01c1895ca3c0e72bb68d1 --- /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 Binary files /dev/null and b/builddir/O.3.14.12.5_eldk56-e500v2/emu_registerRecordDeviceDriver.o differ 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 Binary files /dev/null and b/builddir/O.3.14.12.5_eldk56-e500v2/libemu.so differ 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 0000000000000000000000000000000000000000..25aa99af2d221f6eec2ad1e08dd64b2e2bcdf0d8 --- /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 0000000000000000000000000000000000000000..28a7f212ebc645cb36da7107b7213352cbe8de27 --- /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 0000000000000000000000000000000000000000..e3a9c42c41401ef79ea8ab42f6053e8c1ee01207 --- /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 0000000000000000000000000000000000000000..be9a4f9cf87a69c5f3a4618510a45ba485e86666 --- /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 Binary files /dev/null and b/builddir/O.3.15.2_centos7-x86_64/EMU_CALCULS.o differ 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 0000000000000000000000000000000000000000..61f798542efea93f34d2a090dcb60d55d0491632 --- /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 0000000000000000000000000000000000000000..0b214ca74cd05dd9dd12cd870dc13f525509ca50 --- /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 0000000000000000000000000000000000000000..49b22c995c4fbadd1cbeb27a1eaff91d03ab073e --- /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 0000000000000000000000000000000000000000..1267f20b50f28b1003ee4c9efc5778f440f9e1b7 --- /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 Binary files /dev/null and b/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-CHECKBRAKE.o differ 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 0000000000000000000000000000000000000000..d71c5ef580c63b173b91b544522f3b655ee6b64f --- /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 0000000000000000000000000000000000000000..0b2209c45d8947a00a779eab87b42a2d1ff650b3 --- /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 0000000000000000000000000000000000000000..5374162e6bb3104c833ef59b2cccde50828ee201 --- /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 0000000000000000000000000000000000000000..3ffb6fe2c021b488434310d1541bfe886440f900 --- /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 0000000000000000000000000000000000000000..1d5294f4b4b2a8f19547e0e4fb0f3038c59c1a89 --- /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 Binary files /dev/null and b/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-HOME_AUTO.o differ 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 0000000000000000000000000000000000000000..13865304012aba162af2a02f64310a1532c6facf --- /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 0000000000000000000000000000000000000000..0939eded20f279dfae4d59bee6255729c447c25b --- /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 0000000000000000000000000000000000000000..96272a4a909f35ce796ae286a55d832e254a8acd --- /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 Binary files /dev/null and b/builddir/O.3.15.2_centos7-x86_64/EMU_REPORT_FILE.o differ 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 0000000000000000000000000000000000000000..a707bbacdd741c90c4a70061387447e7bad4a539 --- /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 0000000000000000000000000000000000000000..28b2801295fa09e3f48437922f2d936b15a6a6aa --- /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 Binary files /dev/null and b/builddir/O.3.15.2_centos7-x86_64/emu_Versioncatane.o differ 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 0000000000000000000000000000000000000000..6efb851f5d028e0a6b14246b613b91d1ea7c159b --- /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 0000000000000000000000000000000000000000..34dc9a5ca5908e7ac9ed04cbc2b04b4578ea27dd --- /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 0000000000000000000000000000000000000000..0b6bdcaa4a1fdf6872745e40d2acfcce042e1a9a --- /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 Binary files /dev/null and b/builddir/O.3.15.2_centos7-x86_64/emu_registerRecordDeviceDriver.o differ 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 Binary files /dev/null and b/builddir/O.3.15.2_centos7-x86_64/libemu.so differ 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 0000000000000000000000000000000000000000..28a7f212ebc645cb36da7107b7213352cbe8de27 --- /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 0000000000000000000000000000000000000000..e3a9c42c41401ef79ea8ab42f6053e8c1ee01207 --- /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 0000000000000000000000000000000000000000..45a1cb20eabc5e1de277d0bfd184edff5f7efa00 --- /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 Binary files /dev/null and b/builddir/O.3.15.2_eldk56-e500v2/EMU_CALCULS.o differ 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 0000000000000000000000000000000000000000..61f798542efea93f34d2a090dcb60d55d0491632 --- /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 0000000000000000000000000000000000000000..0b214ca74cd05dd9dd12cd870dc13f525509ca50 --- /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 0000000000000000000000000000000000000000..25e5619ce0f6294c8940fb628a777161f3366014 --- /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 0000000000000000000000000000000000000000..3ec36e0979ab2e2d9a7dc75e93689dc29f401471 --- /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 Binary files /dev/null and b/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-CHECKBRAKE.o differ 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 0000000000000000000000000000000000000000..d71c5ef580c63b173b91b544522f3b655ee6b64f --- /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 0000000000000000000000000000000000000000..0b2209c45d8947a00a779eab87b42a2d1ff650b3 --- /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 0000000000000000000000000000000000000000..5374162e6bb3104c833ef59b2cccde50828ee201 --- /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 0000000000000000000000000000000000000000..75e936a64b84c6f2248a7ccd702e82cba1a39ab6 --- /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 0000000000000000000000000000000000000000..79348dfc2d5e5ba437f23816ba928cd4d1b681f8 --- /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 Binary files /dev/null and b/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-HOME_AUTO.o differ 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 0000000000000000000000000000000000000000..13865304012aba162af2a02f64310a1532c6facf --- /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 0000000000000000000000000000000000000000..0939eded20f279dfae4d59bee6255729c447c25b --- /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 0000000000000000000000000000000000000000..94ada79aa9abe7fc0794aa262bcdabf8ce1dc79e --- /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 Binary files /dev/null and b/builddir/O.3.15.2_eldk56-e500v2/EMU_REPORT_FILE.o differ 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 0000000000000000000000000000000000000000..a707bbacdd741c90c4a70061387447e7bad4a539 --- /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 0000000000000000000000000000000000000000..28b2801295fa09e3f48437922f2d936b15a6a6aa --- /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 Binary files /dev/null and b/builddir/O.3.15.2_eldk56-e500v2/emu_Versioncatane.o differ 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 0000000000000000000000000000000000000000..6efb851f5d028e0a6b14246b613b91d1ea7c159b --- /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 0000000000000000000000000000000000000000..34dc9a5ca5908e7ac9ed04cbc2b04b4578ea27dd --- /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 0000000000000000000000000000000000000000..0b6bdcaa4a1fdf6872745e40d2acfcce042e1a9a --- /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 Binary files /dev/null and b/builddir/O.3.15.2_eldk56-e500v2/emu_registerRecordDeviceDriver.o differ 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 Binary files /dev/null and b/builddir/O.3.15.2_eldk56-e500v2/libemu.so differ diff --git a/builddir/db/EMU.db b/builddir/db/EMU.db new file mode 100644 index 0000000000000000000000000000000000000000..a169ecb7ab4008e769ac6813fab6bf112af5cc1b --- /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 0000000000000000000000000000000000000000..4753e33d4d2b590702f05b9ed1df6a6ca815c9a7 --- /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 0000000000000000000000000000000000000000..4ece642a8d6a5d0914b4a824b9cfed1389560b41 --- /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 0000000000000000000000000000000000000000..caa48504b68a08d35f557389aec8cf453dff4541 --- /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 0000000000000000000000000000000000000000..3076149166523d0c6b12ce2b3d888cf9e41d660c --- /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 0000000000000000000000000000000000000000..ef587f1561ea5232e1baba79aa43a0c980bd0115 --- /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 0000000000000000000000000000000000000000..a2a11ddc690e6b957fc26fb56c18eb9d5b1a7b0b --- /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 0000000000000000000000000000000000000000..d5121498c12cf17c06f7b6f8a384ff7ae23f96f9 --- /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 0000000000000000000000000000000000000000..414c76b255f4c7dddcd553c0f750345f249ac0f6 --- /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 0000000000000000000000000000000000000000..dca559459fb4f06ec88b6dbaadc1397860d8a368 --- /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 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/builddir/misc/pmacVariables.proto b/builddir/misc/pmacVariables.proto new file mode 100644 index 0000000000000000000000000000000000000000..08acdc2603587fb9dc11f2c23d4c7ab9d5af571e --- /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 0000000000000000000000000000000000000000..9422d067a1b7fca9aaf9c574a8620aac947496e1 --- /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 0000000000000000000000000000000000000000..4a0416f5b2eefaa6d660131c7c2b1f9e7e8b3b22 --- /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 0000000000000000000000000000000000000000..0c3a04a642b7154a6f8f3f0ff82bde7287efb614 --- /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 0000000000000000000000000000000000000000..5a32246ebc339c072f644e16b5c04dab7ba1300b --- /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 1743ef9ae006b78d940f9866a842ce1a90220009..dca559459fb4f06ec88b6dbaadc1397860d8a368 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 7b0b8efad0e4443d57749bd60e198bd6da3eb06f..2e72074a83c7b6eef34d6bc1f87617c8a1b5fd05 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 d85e68fd8bb70ddedd5dd3c24686a4cac031faf4..078d26f87c848c525b84422facd705f84ef8c80d 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 5015cc42a4315ea50260241d700fb6aefc4fb414..9422d067a1b7fca9aaf9c574a8620aac947496e1 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 631bd022518756297bc07f84695e06c0555f0e09..5a32246ebc339c072f644e16b5c04dab7ba1300b 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