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 index 9e4d178cdd5354e13f5316e191c25ff61f711324..4c7f8b4b56ac4e462edf1a8f3af3288a7d323302 100644 Binary files a/builddir/3.14.12.5/lib/centos7-x86_64/libemu.so 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/libemu.so b/builddir/3.14.12.5/lib/eldk56-e500v2/libemu.so index a3dee129989aeb00e9e12b416081c5f5f5bf7958..7c06e2073b41a09174f8b99d7cfa00e7790c2b05 100644 Binary files a/builddir/3.14.12.5/lib/eldk56-e500v2/libemu.so and b/builddir/3.14.12.5/lib/eldk56-e500v2/libemu.so differ diff --git a/builddir/3.15.2/lib/centos7-x86_64/libemu.so b/builddir/3.15.2/lib/centos7-x86_64/libemu.so index 1ab359bac40cdee69a7f6b5e0220887f7f4277c7..e8f154209f16185170948fc53b1423554ff9433f 100644 Binary files a/builddir/3.15.2/lib/centos7-x86_64/libemu.so and b/builddir/3.15.2/lib/centos7-x86_64/libemu.so differ diff --git a/builddir/3.15.2/lib/eldk56-e500v2/libemu.so b/builddir/3.15.2/lib/eldk56-e500v2/libemu.so index 50a83f1fc870075ba3b60f7fa8e31393f29a187a..b43ff4476df8d6b72a4be84a6a310994bc8cedfb 100644 Binary files a/builddir/3.15.2/lib/eldk56-e500v2/libemu.so and b/builddir/3.15.2/lib/eldk56-e500v2/libemu.so differ 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 index 0b2209c45d8947a00a779eab87b42a2d1ff650b3..c42c7f35acbcec50781ec64dec821503d7f9d630 100644 --- 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 @@ -10,28 +10,30 @@ /* Variable declarations */ # line 13 "../.././src/EMU_MTR-HOME_AUTO.st" +static short ARCHIVING = 0; +# line 18 "../.././src/EMU_MTR-HOME_AUTO.st" static short HOMCPTFLAG = 0; -# line 17 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 22 "../.././src/EMU_MTR-HOME_AUTO.st" static short statusMTRMov = 0; -# line 21 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 26 "../.././src/EMU_MTR-HOME_AUTO.st" static short mtrPlaced = 0; -# line 27 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 32 "../.././src/EMU_MTR-HOME_AUTO.st" static short mtrStop = 0; -# line 31 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 36 "../.././src/EMU_MTR-HOME_AUTO.st" static short homeCMD = 0; -# line 35 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 40 "../.././src/EMU_MTR-HOME_AUTO.st" static short mtrPosCons = 0; -# line 39 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 44 "../.././src/EMU_MTR-HOME_AUTO.st" static short brakeMtrCMD = 0; -# line 43 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 48 "../.././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 scanPS_Sts = 0; +# line 60 "../.././src/EMU_MTR-HOME_AUTO.st" static short scanMTR_Sts = 0; -# line 61 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 66 "../.././src/EMU_MTR-HOME_AUTO.st" static short homeSTART = 0; -# line 68 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 73 "../.././src/EMU_MTR-HOME_AUTO.st" static short plimSTATUS = 0; /* C code definitions */ @@ -52,14 +54,14 @@ static void G_prog_init(struct UserVar *pVar) /* 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" +# line 82 "../.././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" +# line 82 "../.././src/EMU_MTR-HOME_AUTO.st" if (seq_delay(ssId, 0) && (seq_pvConnectCount(ssId) == seq_pvChannelCount(ssId))) { *pNextState = 1; @@ -76,11 +78,11 @@ static void A_ss1_0_init(SS_ID ssId, struct UserVar *pVar, int transNum, int *pN { case 0: { -# line 79 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 84 "../.././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" +# line 85 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 11/*homeSTART*/, 0); +# line 86 "../.././src/EMU_MTR-HOME_AUTO.st" printf("\nWAIT\n"); } return; @@ -97,7 +99,7 @@ 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" +# line 92 "../.././src/EMU_MTR-HOME_AUTO.st" if (seq_efTestAndClear(ssId, 3/*homeSTARTEvent*/) && (homeSTART == 1) && (plimSTATUS == 0)) { *pNextState = 2; @@ -114,7 +116,7 @@ static void A_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar, int transNum, int { case 0: { -# line 89 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 94 "../.././src/EMU_MTR-HOME_AUTO.st" printf("\nSTART HOME PROCEDURE\n"); } return; @@ -126,14 +128,14 @@ static void A_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar, int transNum, int /* 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" +# line 101 "../.././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" +# line 101 "../.././src/EMU_MTR-HOME_AUTO.st" if ((scanPS_Sts == 0) && (scanMTR_Sts == 0) && (statusMTRMov == 0) && (seq_delay(ssId, 0))) { *pNextState = 3; @@ -150,24 +152,24 @@ static void A_ss1_0_startHOME(SS_ID ssId, struct UserVar *pVar, int transNum, in { case 0: { -# line 97 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 102 "../.././src/EMU_MTR-HOME_AUTO.st" printf("\n GO HOME\n"); -# line 98 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 103 "../.././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" +# line 104 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 7/*brakeMtrCMD*/, 0); +# line 105 "../.././src/EMU_MTR-HOME_AUTO.st" seq_delay(ssId, 0); -# line 101 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 106 "../.././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" +# line 107 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 1/*HOMCPTFLAG*/, 0); +# line 108 "../.././src/EMU_MTR-HOME_AUTO.st" seq_delay(ssId, 0); -# line 104 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 109 "../.././src/EMU_MTR-HOME_AUTO.st" homeCMD = 1; -# line 105 "../.././src/EMU_MTR-HOME_AUTO.st" - seq_pvPut(ssId, 4/*homeCMD*/, 0); +# line 110 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 5/*homeCMD*/, 0); } return; } @@ -183,7 +185,7 @@ 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" +# line 116 "../.././src/EMU_MTR-HOME_AUTO.st" if (seq_efTestAndClear(ssId, 4/*plimSTATUSEvent*/) && (plimSTATUS == 1)) { *pNextState = 4; @@ -200,12 +202,12 @@ static void A_ss1_0_limitON(SS_ID ssId, struct UserVar *pVar, int transNum, int { case 0: { -# line 113 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 118 "../.././src/EMU_MTR-HOME_AUTO.st" printf("\nLIMIT HIGH\n"); -# line 114 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 119 "../.././src/EMU_MTR-HOME_AUTO.st" HOMCPTFLAG = 0; -# line 115 "../.././src/EMU_MTR-HOME_AUTO.st" - seq_pvPut(ssId, 0/*HOMCPTFLAG*/, 0); +# line 120 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 1/*HOMCPTFLAG*/, 0); } return; } @@ -216,17 +218,17 @@ static void A_ss1_0_limitON(SS_ID ssId, struct UserVar *pVar, int transNum, int /* 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" +# line 126 "../.././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" +# line 126 "../.././src/EMU_MTR-HOME_AUTO.st" if (seq_delay(ssId, 0)) { - *pNextState = 0; + *pNextState = 5; *pTransNum = 0; return TRUE; } @@ -240,28 +242,68 @@ static void A_ss1_0_breakON(SS_ID ssId, struct UserVar *pVar, int transNum, int { case 0: { -# line 123 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 128 "../.././src/EMU_MTR-HOME_AUTO.st" printf("\nINIT POSITION\n"); -# line 124 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 129 "../.././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" +# line 130 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 1/*HOMCPTFLAG*/, 0); +# line 131 "../.././src/EMU_MTR-HOME_AUTO.st" seq_delay(ssId, 0); -# line 127 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 132 "../.././src/EMU_MTR-HOME_AUTO.st" printf("\nBRAKE ON\n"); -# line 128 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 133 "../.././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" +# line 134 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 5/*homeCMD*/, 0); +# line 135 "../.././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" +# line 136 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 11/*homeSTART*/, 0); +# line 137 "../.././src/EMU_MTR-HOME_AUTO.st" brakeMtrCMD = 0; -# line 133 "../.././src/EMU_MTR-HOME_AUTO.st" - seq_pvPut(ssId, 6/*brakeMtrCMD*/, 0); +# line 138 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 7/*brakeMtrCMD*/, 0); + } + return; + } +} + +/****** Code for state "stopArchiving" in state set "ss1" ******/ + +/* Delay function for state "stopArchiving" in state set "ss1" */ +static void D_ss1_0_stopArchiving(SS_ID ssId, struct UserVar *pVar) +{ +# line 144 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_delayInit(ssId, 0, (1.0)); +} + +/* Event function for state "stopArchiving" in state set "ss1" */ +static seqBool E_ss1_0_stopArchiving(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 144 "../.././src/EMU_MTR-HOME_AUTO.st" + if (seq_delay(ssId, 0)) + { + *pNextState = 0; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "stopArchiving" in state set "ss1" */ +static void A_ss1_0_stopArchiving(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 146 "../.././src/EMU_MTR-HOME_AUTO.st" + printf("\nStop Archiving\n"); +# line 147 "../.././src/EMU_MTR-HOME_AUTO.st" + ARCHIVING = 0; +# line 148 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 0/*ARCHIVING*/, 0); } return; } @@ -272,18 +314,19 @@ static void A_ss1_0_breakON(SS_ID ssId, struct UserVar *pVar, int transNum, int /* 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} + {"LNS-ISRC-010:PBI-EM:Archive", (size_t)&ARCHIVING, "ARCHIVING", "short", 1, 5, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}-HOMCPTFLAG", (size_t)&HOMCPTFLAG, "HOMCPTFLAG", "short", 1, 6, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}.MOVN", (size_t)&statusMTRMov, "statusMTRMov", "short", 1, 7, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}-AXISSTS", (size_t)&mtrPlaced, "mtrPlaced", "short", 1, 8, 1, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}.SPMG", (size_t)&mtrStop, "mtrStop", "short", 1, 9, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}-HOMCMD", (size_t)&homeCMD, "homeCMD", "short", 1, 10, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}", (size_t)&mtrPosCons, "mtrPosCons", "short", 1, 11, 0, 1, 0, 0}, + {"{PREFIX}:PBI-EM:VER-BRAKE_SET", (size_t)&brakeMtrCMD, "brakeMtrCMD", "short", 1, 12, 0, 1, 0, 0}, + {"{PREFIX}:PBI-EM:VER-BRAKE_GET", (size_t)&brakeMtrGET, "brakeMtrGET", "short", 1, 13, 2, 1, 0, 0}, + {"{DEVICE}:PS.BUSY", (size_t)&scanPS_Sts, "scanPS_Sts", "short", 1, 14, 0, 1, 0, 0}, + {"{DEVICE}:MTR.BUSY", (size_t)&scanMTR_Sts, "scanMTR_Sts", "short", 1, 15, 0, 1, 0, 0}, + {"{DEVICE}:PROC-AUTO-HOME", (size_t)&homeSTART, "homeSTART", "short", 1, 16, 3, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}-PENDLSTS", (size_t)&plimSTATUS, "plimSTATUS", "short", 1, 17, 4, 1, 0, 0} }; /* Event masks for state set "ss1" */ @@ -291,17 +334,20 @@ static const seqMask EM_ss1_0_init[] = { 0x00000000, }; static const seqMask EM_ss1_0_waiting[] = { - 0x00018008, + 0x00030008, }; static const seqMask EM_ss1_0_startHOME[] = { - 0x00006040, + 0x0000c080, }; static const seqMask EM_ss1_0_limitON[] = { - 0x00010010, + 0x00020010, }; static const seqMask EM_ss1_0_breakON[] = { 0x00000000, }; +static const seqMask EM_ss1_0_stopArchiving[] = { + 0x00000000, +}; /* State table for state set "ss1" */ static seqState G_ss1_states[] = { @@ -355,6 +401,16 @@ static seqState G_ss1_states[] = { /* event mask array */ EM_ss1_0_breakON, /* state options */ (0) }, + { + /* state name */ "stopArchiving", + /* action function */ A_ss1_0_stopArchiving, + /* event function */ E_ss1_0_stopArchiving, + /* delay function */ D_ss1_0_stopArchiving, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_stopArchiving, + /* state options */ (0) + }, }; /* State set table */ @@ -362,7 +418,7 @@ static seqSS G_state_sets[] = { { /* state set name */ "ss1", /* states */ G_ss1_states, - /* number of states */ 5, + /* number of states */ 6, /* number of delays */ 1 }, }; @@ -372,7 +428,7 @@ seqProgram homeMtrAuto = { /* magic number */ 2001010, /* program name */ "homeMtrAuto", /* channels */ G_channels, - /* num. channels */ 12, + /* num. channels */ 13, /* state sets */ G_state_sets, /* num. state sets */ 1, /* user var size */ 0, 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 index 1d5294f4b4b2a8f19547e0e4fb0f3038c59c1a89..23a00d18d569955d0ab8a25563120d69188ba185 100644 --- 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 @@ -16,6 +16,11 @@ program homeMtrAuto %%#include <stdlib.h> +short ARCHIVING; +assign ARCHIVING to "LNS-ISRC-010:PBI-EM:Archive"; +monitor ARCHIVING; + + short HOMCPTFLAG; assign HOMCPTFLAG to "{PMACPREFIX}:{MOTOR_NAME1}-HOMCPTFLAG"; monitor HOMCPTFLAG; @@ -137,7 +142,16 @@ ss ss1 pvPut(homeSTART); brakeMtrCMD=0; pvPut(brakeMtrCMD); - }state init + }state stopArchiving } + state stopArchiving + { + when(delay(1.0)) + { + printf("\nStop Archiving\n"); + ARCHIVING=0; + pvPut(ARCHIVING); + }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 index 4b79bcfec5061e9339329f1e72dc40c40455923f..473f7b1160324146e7e2e3663683a00ef145a089 100644 Binary files a/builddir/O.3.14.12.5_centos7-x86_64/EMU_MTR-HOME_AUTO.o 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/libemu.so b/builddir/O.3.14.12.5_centos7-x86_64/libemu.so index 9e4d178cdd5354e13f5316e191c25ff61f711324..4c7f8b4b56ac4e462edf1a8f3af3288a7d323302 100755 Binary files a/builddir/O.3.14.12.5_centos7-x86_64/libemu.so 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/EMU_MTR-HOME_AUTO.c b/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-HOME_AUTO.c index 0b2209c45d8947a00a779eab87b42a2d1ff650b3..c42c7f35acbcec50781ec64dec821503d7f9d630 100644 --- 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 @@ -10,28 +10,30 @@ /* Variable declarations */ # line 13 "../.././src/EMU_MTR-HOME_AUTO.st" +static short ARCHIVING = 0; +# line 18 "../.././src/EMU_MTR-HOME_AUTO.st" static short HOMCPTFLAG = 0; -# line 17 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 22 "../.././src/EMU_MTR-HOME_AUTO.st" static short statusMTRMov = 0; -# line 21 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 26 "../.././src/EMU_MTR-HOME_AUTO.st" static short mtrPlaced = 0; -# line 27 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 32 "../.././src/EMU_MTR-HOME_AUTO.st" static short mtrStop = 0; -# line 31 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 36 "../.././src/EMU_MTR-HOME_AUTO.st" static short homeCMD = 0; -# line 35 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 40 "../.././src/EMU_MTR-HOME_AUTO.st" static short mtrPosCons = 0; -# line 39 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 44 "../.././src/EMU_MTR-HOME_AUTO.st" static short brakeMtrCMD = 0; -# line 43 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 48 "../.././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 scanPS_Sts = 0; +# line 60 "../.././src/EMU_MTR-HOME_AUTO.st" static short scanMTR_Sts = 0; -# line 61 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 66 "../.././src/EMU_MTR-HOME_AUTO.st" static short homeSTART = 0; -# line 68 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 73 "../.././src/EMU_MTR-HOME_AUTO.st" static short plimSTATUS = 0; /* C code definitions */ @@ -52,14 +54,14 @@ static void G_prog_init(struct UserVar *pVar) /* 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" +# line 82 "../.././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" +# line 82 "../.././src/EMU_MTR-HOME_AUTO.st" if (seq_delay(ssId, 0) && (seq_pvConnectCount(ssId) == seq_pvChannelCount(ssId))) { *pNextState = 1; @@ -76,11 +78,11 @@ static void A_ss1_0_init(SS_ID ssId, struct UserVar *pVar, int transNum, int *pN { case 0: { -# line 79 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 84 "../.././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" +# line 85 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 11/*homeSTART*/, 0); +# line 86 "../.././src/EMU_MTR-HOME_AUTO.st" printf("\nWAIT\n"); } return; @@ -97,7 +99,7 @@ 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" +# line 92 "../.././src/EMU_MTR-HOME_AUTO.st" if (seq_efTestAndClear(ssId, 3/*homeSTARTEvent*/) && (homeSTART == 1) && (plimSTATUS == 0)) { *pNextState = 2; @@ -114,7 +116,7 @@ static void A_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar, int transNum, int { case 0: { -# line 89 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 94 "../.././src/EMU_MTR-HOME_AUTO.st" printf("\nSTART HOME PROCEDURE\n"); } return; @@ -126,14 +128,14 @@ static void A_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar, int transNum, int /* 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" +# line 101 "../.././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" +# line 101 "../.././src/EMU_MTR-HOME_AUTO.st" if ((scanPS_Sts == 0) && (scanMTR_Sts == 0) && (statusMTRMov == 0) && (seq_delay(ssId, 0))) { *pNextState = 3; @@ -150,24 +152,24 @@ static void A_ss1_0_startHOME(SS_ID ssId, struct UserVar *pVar, int transNum, in { case 0: { -# line 97 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 102 "../.././src/EMU_MTR-HOME_AUTO.st" printf("\n GO HOME\n"); -# line 98 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 103 "../.././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" +# line 104 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 7/*brakeMtrCMD*/, 0); +# line 105 "../.././src/EMU_MTR-HOME_AUTO.st" seq_delay(ssId, 0); -# line 101 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 106 "../.././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" +# line 107 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 1/*HOMCPTFLAG*/, 0); +# line 108 "../.././src/EMU_MTR-HOME_AUTO.st" seq_delay(ssId, 0); -# line 104 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 109 "../.././src/EMU_MTR-HOME_AUTO.st" homeCMD = 1; -# line 105 "../.././src/EMU_MTR-HOME_AUTO.st" - seq_pvPut(ssId, 4/*homeCMD*/, 0); +# line 110 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 5/*homeCMD*/, 0); } return; } @@ -183,7 +185,7 @@ 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" +# line 116 "../.././src/EMU_MTR-HOME_AUTO.st" if (seq_efTestAndClear(ssId, 4/*plimSTATUSEvent*/) && (plimSTATUS == 1)) { *pNextState = 4; @@ -200,12 +202,12 @@ static void A_ss1_0_limitON(SS_ID ssId, struct UserVar *pVar, int transNum, int { case 0: { -# line 113 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 118 "../.././src/EMU_MTR-HOME_AUTO.st" printf("\nLIMIT HIGH\n"); -# line 114 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 119 "../.././src/EMU_MTR-HOME_AUTO.st" HOMCPTFLAG = 0; -# line 115 "../.././src/EMU_MTR-HOME_AUTO.st" - seq_pvPut(ssId, 0/*HOMCPTFLAG*/, 0); +# line 120 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 1/*HOMCPTFLAG*/, 0); } return; } @@ -216,17 +218,17 @@ static void A_ss1_0_limitON(SS_ID ssId, struct UserVar *pVar, int transNum, int /* 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" +# line 126 "../.././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" +# line 126 "../.././src/EMU_MTR-HOME_AUTO.st" if (seq_delay(ssId, 0)) { - *pNextState = 0; + *pNextState = 5; *pTransNum = 0; return TRUE; } @@ -240,28 +242,68 @@ static void A_ss1_0_breakON(SS_ID ssId, struct UserVar *pVar, int transNum, int { case 0: { -# line 123 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 128 "../.././src/EMU_MTR-HOME_AUTO.st" printf("\nINIT POSITION\n"); -# line 124 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 129 "../.././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" +# line 130 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 1/*HOMCPTFLAG*/, 0); +# line 131 "../.././src/EMU_MTR-HOME_AUTO.st" seq_delay(ssId, 0); -# line 127 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 132 "../.././src/EMU_MTR-HOME_AUTO.st" printf("\nBRAKE ON\n"); -# line 128 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 133 "../.././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" +# line 134 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 5/*homeCMD*/, 0); +# line 135 "../.././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" +# line 136 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 11/*homeSTART*/, 0); +# line 137 "../.././src/EMU_MTR-HOME_AUTO.st" brakeMtrCMD = 0; -# line 133 "../.././src/EMU_MTR-HOME_AUTO.st" - seq_pvPut(ssId, 6/*brakeMtrCMD*/, 0); +# line 138 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 7/*brakeMtrCMD*/, 0); + } + return; + } +} + +/****** Code for state "stopArchiving" in state set "ss1" ******/ + +/* Delay function for state "stopArchiving" in state set "ss1" */ +static void D_ss1_0_stopArchiving(SS_ID ssId, struct UserVar *pVar) +{ +# line 144 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_delayInit(ssId, 0, (1.0)); +} + +/* Event function for state "stopArchiving" in state set "ss1" */ +static seqBool E_ss1_0_stopArchiving(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 144 "../.././src/EMU_MTR-HOME_AUTO.st" + if (seq_delay(ssId, 0)) + { + *pNextState = 0; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "stopArchiving" in state set "ss1" */ +static void A_ss1_0_stopArchiving(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 146 "../.././src/EMU_MTR-HOME_AUTO.st" + printf("\nStop Archiving\n"); +# line 147 "../.././src/EMU_MTR-HOME_AUTO.st" + ARCHIVING = 0; +# line 148 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 0/*ARCHIVING*/, 0); } return; } @@ -272,18 +314,19 @@ static void A_ss1_0_breakON(SS_ID ssId, struct UserVar *pVar, int transNum, int /* 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} + {"LNS-ISRC-010:PBI-EM:Archive", (size_t)&ARCHIVING, "ARCHIVING", "short", 1, 5, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}-HOMCPTFLAG", (size_t)&HOMCPTFLAG, "HOMCPTFLAG", "short", 1, 6, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}.MOVN", (size_t)&statusMTRMov, "statusMTRMov", "short", 1, 7, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}-AXISSTS", (size_t)&mtrPlaced, "mtrPlaced", "short", 1, 8, 1, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}.SPMG", (size_t)&mtrStop, "mtrStop", "short", 1, 9, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}-HOMCMD", (size_t)&homeCMD, "homeCMD", "short", 1, 10, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}", (size_t)&mtrPosCons, "mtrPosCons", "short", 1, 11, 0, 1, 0, 0}, + {"{PREFIX}:PBI-EM:VER-BRAKE_SET", (size_t)&brakeMtrCMD, "brakeMtrCMD", "short", 1, 12, 0, 1, 0, 0}, + {"{PREFIX}:PBI-EM:VER-BRAKE_GET", (size_t)&brakeMtrGET, "brakeMtrGET", "short", 1, 13, 2, 1, 0, 0}, + {"{DEVICE}:PS.BUSY", (size_t)&scanPS_Sts, "scanPS_Sts", "short", 1, 14, 0, 1, 0, 0}, + {"{DEVICE}:MTR.BUSY", (size_t)&scanMTR_Sts, "scanMTR_Sts", "short", 1, 15, 0, 1, 0, 0}, + {"{DEVICE}:PROC-AUTO-HOME", (size_t)&homeSTART, "homeSTART", "short", 1, 16, 3, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}-PENDLSTS", (size_t)&plimSTATUS, "plimSTATUS", "short", 1, 17, 4, 1, 0, 0} }; /* Event masks for state set "ss1" */ @@ -291,17 +334,20 @@ static const seqMask EM_ss1_0_init[] = { 0x00000000, }; static const seqMask EM_ss1_0_waiting[] = { - 0x00018008, + 0x00030008, }; static const seqMask EM_ss1_0_startHOME[] = { - 0x00006040, + 0x0000c080, }; static const seqMask EM_ss1_0_limitON[] = { - 0x00010010, + 0x00020010, }; static const seqMask EM_ss1_0_breakON[] = { 0x00000000, }; +static const seqMask EM_ss1_0_stopArchiving[] = { + 0x00000000, +}; /* State table for state set "ss1" */ static seqState G_ss1_states[] = { @@ -355,6 +401,16 @@ static seqState G_ss1_states[] = { /* event mask array */ EM_ss1_0_breakON, /* state options */ (0) }, + { + /* state name */ "stopArchiving", + /* action function */ A_ss1_0_stopArchiving, + /* event function */ E_ss1_0_stopArchiving, + /* delay function */ D_ss1_0_stopArchiving, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_stopArchiving, + /* state options */ (0) + }, }; /* State set table */ @@ -362,7 +418,7 @@ static seqSS G_state_sets[] = { { /* state set name */ "ss1", /* states */ G_ss1_states, - /* number of states */ 5, + /* number of states */ 6, /* number of delays */ 1 }, }; @@ -372,7 +428,7 @@ seqProgram homeMtrAuto = { /* magic number */ 2001010, /* program name */ "homeMtrAuto", /* channels */ G_channels, - /* num. channels */ 12, + /* num. channels */ 13, /* state sets */ G_state_sets, /* num. state sets */ 1, /* user var size */ 0, 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 index 79348dfc2d5e5ba437f23816ba928cd4d1b681f8..36c7676b86d2ae17080f929f2d9bb96f303cd5ea 100644 --- 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 @@ -15,6 +15,11 @@ program homeMtrAuto %%#include <stdlib.h> +short ARCHIVING; +assign ARCHIVING to "LNS-ISRC-010:PBI-EM:Archive"; +monitor ARCHIVING; + + short HOMCPTFLAG; assign HOMCPTFLAG to "{PMACPREFIX}:{MOTOR_NAME1}-HOMCPTFLAG"; monitor HOMCPTFLAG; @@ -136,7 +141,16 @@ ss ss1 pvPut(homeSTART); brakeMtrCMD=0; pvPut(brakeMtrCMD); - }state init + }state stopArchiving } + state stopArchiving + { + when(delay(1.0)) + { + printf("\nStop Archiving\n"); + ARCHIVING=0; + pvPut(ARCHIVING); + }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 index 758fd68e93de489bf2f3b4fe122545edc96af3c8..e4aa560ec2c6b0320130650f7b9752040ed4bf45 100644 Binary files a/builddir/O.3.14.12.5_eldk56-e500v2/EMU_MTR-HOME_AUTO.o 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/libemu.so b/builddir/O.3.14.12.5_eldk56-e500v2/libemu.so index a3dee129989aeb00e9e12b416081c5f5f5bf7958..7c06e2073b41a09174f8b99d7cfa00e7790c2b05 100755 Binary files a/builddir/O.3.14.12.5_eldk56-e500v2/libemu.so and b/builddir/O.3.14.12.5_eldk56-e500v2/libemu.so differ 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 index 0b2209c45d8947a00a779eab87b42a2d1ff650b3..c42c7f35acbcec50781ec64dec821503d7f9d630 100644 --- 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 @@ -10,28 +10,30 @@ /* Variable declarations */ # line 13 "../.././src/EMU_MTR-HOME_AUTO.st" +static short ARCHIVING = 0; +# line 18 "../.././src/EMU_MTR-HOME_AUTO.st" static short HOMCPTFLAG = 0; -# line 17 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 22 "../.././src/EMU_MTR-HOME_AUTO.st" static short statusMTRMov = 0; -# line 21 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 26 "../.././src/EMU_MTR-HOME_AUTO.st" static short mtrPlaced = 0; -# line 27 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 32 "../.././src/EMU_MTR-HOME_AUTO.st" static short mtrStop = 0; -# line 31 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 36 "../.././src/EMU_MTR-HOME_AUTO.st" static short homeCMD = 0; -# line 35 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 40 "../.././src/EMU_MTR-HOME_AUTO.st" static short mtrPosCons = 0; -# line 39 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 44 "../.././src/EMU_MTR-HOME_AUTO.st" static short brakeMtrCMD = 0; -# line 43 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 48 "../.././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 scanPS_Sts = 0; +# line 60 "../.././src/EMU_MTR-HOME_AUTO.st" static short scanMTR_Sts = 0; -# line 61 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 66 "../.././src/EMU_MTR-HOME_AUTO.st" static short homeSTART = 0; -# line 68 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 73 "../.././src/EMU_MTR-HOME_AUTO.st" static short plimSTATUS = 0; /* C code definitions */ @@ -52,14 +54,14 @@ static void G_prog_init(struct UserVar *pVar) /* 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" +# line 82 "../.././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" +# line 82 "../.././src/EMU_MTR-HOME_AUTO.st" if (seq_delay(ssId, 0) && (seq_pvConnectCount(ssId) == seq_pvChannelCount(ssId))) { *pNextState = 1; @@ -76,11 +78,11 @@ static void A_ss1_0_init(SS_ID ssId, struct UserVar *pVar, int transNum, int *pN { case 0: { -# line 79 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 84 "../.././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" +# line 85 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 11/*homeSTART*/, 0); +# line 86 "../.././src/EMU_MTR-HOME_AUTO.st" printf("\nWAIT\n"); } return; @@ -97,7 +99,7 @@ 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" +# line 92 "../.././src/EMU_MTR-HOME_AUTO.st" if (seq_efTestAndClear(ssId, 3/*homeSTARTEvent*/) && (homeSTART == 1) && (plimSTATUS == 0)) { *pNextState = 2; @@ -114,7 +116,7 @@ static void A_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar, int transNum, int { case 0: { -# line 89 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 94 "../.././src/EMU_MTR-HOME_AUTO.st" printf("\nSTART HOME PROCEDURE\n"); } return; @@ -126,14 +128,14 @@ static void A_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar, int transNum, int /* 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" +# line 101 "../.././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" +# line 101 "../.././src/EMU_MTR-HOME_AUTO.st" if ((scanPS_Sts == 0) && (scanMTR_Sts == 0) && (statusMTRMov == 0) && (seq_delay(ssId, 0))) { *pNextState = 3; @@ -150,24 +152,24 @@ static void A_ss1_0_startHOME(SS_ID ssId, struct UserVar *pVar, int transNum, in { case 0: { -# line 97 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 102 "../.././src/EMU_MTR-HOME_AUTO.st" printf("\n GO HOME\n"); -# line 98 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 103 "../.././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" +# line 104 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 7/*brakeMtrCMD*/, 0); +# line 105 "../.././src/EMU_MTR-HOME_AUTO.st" seq_delay(ssId, 0); -# line 101 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 106 "../.././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" +# line 107 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 1/*HOMCPTFLAG*/, 0); +# line 108 "../.././src/EMU_MTR-HOME_AUTO.st" seq_delay(ssId, 0); -# line 104 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 109 "../.././src/EMU_MTR-HOME_AUTO.st" homeCMD = 1; -# line 105 "../.././src/EMU_MTR-HOME_AUTO.st" - seq_pvPut(ssId, 4/*homeCMD*/, 0); +# line 110 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 5/*homeCMD*/, 0); } return; } @@ -183,7 +185,7 @@ 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" +# line 116 "../.././src/EMU_MTR-HOME_AUTO.st" if (seq_efTestAndClear(ssId, 4/*plimSTATUSEvent*/) && (plimSTATUS == 1)) { *pNextState = 4; @@ -200,12 +202,12 @@ static void A_ss1_0_limitON(SS_ID ssId, struct UserVar *pVar, int transNum, int { case 0: { -# line 113 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 118 "../.././src/EMU_MTR-HOME_AUTO.st" printf("\nLIMIT HIGH\n"); -# line 114 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 119 "../.././src/EMU_MTR-HOME_AUTO.st" HOMCPTFLAG = 0; -# line 115 "../.././src/EMU_MTR-HOME_AUTO.st" - seq_pvPut(ssId, 0/*HOMCPTFLAG*/, 0); +# line 120 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 1/*HOMCPTFLAG*/, 0); } return; } @@ -216,17 +218,17 @@ static void A_ss1_0_limitON(SS_ID ssId, struct UserVar *pVar, int transNum, int /* 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" +# line 126 "../.././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" +# line 126 "../.././src/EMU_MTR-HOME_AUTO.st" if (seq_delay(ssId, 0)) { - *pNextState = 0; + *pNextState = 5; *pTransNum = 0; return TRUE; } @@ -240,28 +242,68 @@ static void A_ss1_0_breakON(SS_ID ssId, struct UserVar *pVar, int transNum, int { case 0: { -# line 123 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 128 "../.././src/EMU_MTR-HOME_AUTO.st" printf("\nINIT POSITION\n"); -# line 124 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 129 "../.././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" +# line 130 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 1/*HOMCPTFLAG*/, 0); +# line 131 "../.././src/EMU_MTR-HOME_AUTO.st" seq_delay(ssId, 0); -# line 127 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 132 "../.././src/EMU_MTR-HOME_AUTO.st" printf("\nBRAKE ON\n"); -# line 128 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 133 "../.././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" +# line 134 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 5/*homeCMD*/, 0); +# line 135 "../.././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" +# line 136 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 11/*homeSTART*/, 0); +# line 137 "../.././src/EMU_MTR-HOME_AUTO.st" brakeMtrCMD = 0; -# line 133 "../.././src/EMU_MTR-HOME_AUTO.st" - seq_pvPut(ssId, 6/*brakeMtrCMD*/, 0); +# line 138 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 7/*brakeMtrCMD*/, 0); + } + return; + } +} + +/****** Code for state "stopArchiving" in state set "ss1" ******/ + +/* Delay function for state "stopArchiving" in state set "ss1" */ +static void D_ss1_0_stopArchiving(SS_ID ssId, struct UserVar *pVar) +{ +# line 144 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_delayInit(ssId, 0, (1.0)); +} + +/* Event function for state "stopArchiving" in state set "ss1" */ +static seqBool E_ss1_0_stopArchiving(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 144 "../.././src/EMU_MTR-HOME_AUTO.st" + if (seq_delay(ssId, 0)) + { + *pNextState = 0; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "stopArchiving" in state set "ss1" */ +static void A_ss1_0_stopArchiving(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 146 "../.././src/EMU_MTR-HOME_AUTO.st" + printf("\nStop Archiving\n"); +# line 147 "../.././src/EMU_MTR-HOME_AUTO.st" + ARCHIVING = 0; +# line 148 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 0/*ARCHIVING*/, 0); } return; } @@ -272,18 +314,19 @@ static void A_ss1_0_breakON(SS_ID ssId, struct UserVar *pVar, int transNum, int /* 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} + {"LNS-ISRC-010:PBI-EM:Archive", (size_t)&ARCHIVING, "ARCHIVING", "short", 1, 5, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}-HOMCPTFLAG", (size_t)&HOMCPTFLAG, "HOMCPTFLAG", "short", 1, 6, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}.MOVN", (size_t)&statusMTRMov, "statusMTRMov", "short", 1, 7, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}-AXISSTS", (size_t)&mtrPlaced, "mtrPlaced", "short", 1, 8, 1, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}.SPMG", (size_t)&mtrStop, "mtrStop", "short", 1, 9, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}-HOMCMD", (size_t)&homeCMD, "homeCMD", "short", 1, 10, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}", (size_t)&mtrPosCons, "mtrPosCons", "short", 1, 11, 0, 1, 0, 0}, + {"{PREFIX}:PBI-EM:VER-BRAKE_SET", (size_t)&brakeMtrCMD, "brakeMtrCMD", "short", 1, 12, 0, 1, 0, 0}, + {"{PREFIX}:PBI-EM:VER-BRAKE_GET", (size_t)&brakeMtrGET, "brakeMtrGET", "short", 1, 13, 2, 1, 0, 0}, + {"{DEVICE}:PS.BUSY", (size_t)&scanPS_Sts, "scanPS_Sts", "short", 1, 14, 0, 1, 0, 0}, + {"{DEVICE}:MTR.BUSY", (size_t)&scanMTR_Sts, "scanMTR_Sts", "short", 1, 15, 0, 1, 0, 0}, + {"{DEVICE}:PROC-AUTO-HOME", (size_t)&homeSTART, "homeSTART", "short", 1, 16, 3, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}-PENDLSTS", (size_t)&plimSTATUS, "plimSTATUS", "short", 1, 17, 4, 1, 0, 0} }; /* Event masks for state set "ss1" */ @@ -291,17 +334,20 @@ static const seqMask EM_ss1_0_init[] = { 0x00000000, }; static const seqMask EM_ss1_0_waiting[] = { - 0x00018008, + 0x00030008, }; static const seqMask EM_ss1_0_startHOME[] = { - 0x00006040, + 0x0000c080, }; static const seqMask EM_ss1_0_limitON[] = { - 0x00010010, + 0x00020010, }; static const seqMask EM_ss1_0_breakON[] = { 0x00000000, }; +static const seqMask EM_ss1_0_stopArchiving[] = { + 0x00000000, +}; /* State table for state set "ss1" */ static seqState G_ss1_states[] = { @@ -355,6 +401,16 @@ static seqState G_ss1_states[] = { /* event mask array */ EM_ss1_0_breakON, /* state options */ (0) }, + { + /* state name */ "stopArchiving", + /* action function */ A_ss1_0_stopArchiving, + /* event function */ E_ss1_0_stopArchiving, + /* delay function */ D_ss1_0_stopArchiving, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_stopArchiving, + /* state options */ (0) + }, }; /* State set table */ @@ -362,7 +418,7 @@ static seqSS G_state_sets[] = { { /* state set name */ "ss1", /* states */ G_ss1_states, - /* number of states */ 5, + /* number of states */ 6, /* number of delays */ 1 }, }; @@ -372,7 +428,7 @@ seqProgram homeMtrAuto = { /* magic number */ 2001010, /* program name */ "homeMtrAuto", /* channels */ G_channels, - /* num. channels */ 12, + /* num. channels */ 13, /* state sets */ G_state_sets, /* num. state sets */ 1, /* user var size */ 0, 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 index 1d5294f4b4b2a8f19547e0e4fb0f3038c59c1a89..23a00d18d569955d0ab8a25563120d69188ba185 100644 --- 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 @@ -16,6 +16,11 @@ program homeMtrAuto %%#include <stdlib.h> +short ARCHIVING; +assign ARCHIVING to "LNS-ISRC-010:PBI-EM:Archive"; +monitor ARCHIVING; + + short HOMCPTFLAG; assign HOMCPTFLAG to "{PMACPREFIX}:{MOTOR_NAME1}-HOMCPTFLAG"; monitor HOMCPTFLAG; @@ -137,7 +142,16 @@ ss ss1 pvPut(homeSTART); brakeMtrCMD=0; pvPut(brakeMtrCMD); - }state init + }state stopArchiving } + state stopArchiving + { + when(delay(1.0)) + { + printf("\nStop Archiving\n"); + ARCHIVING=0; + pvPut(ARCHIVING); + }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 index 9d8bf842e433255e88636f87f0fce78665a3a349..d18fbf81e1892d01e032d0ee6a5cf88d8fed396f 100644 Binary files a/builddir/O.3.15.2_centos7-x86_64/EMU_MTR-HOME_AUTO.o 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/libemu.so b/builddir/O.3.15.2_centos7-x86_64/libemu.so index 1ab359bac40cdee69a7f6b5e0220887f7f4277c7..e8f154209f16185170948fc53b1423554ff9433f 100755 Binary files a/builddir/O.3.15.2_centos7-x86_64/libemu.so and b/builddir/O.3.15.2_centos7-x86_64/libemu.so differ 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 index 0b2209c45d8947a00a779eab87b42a2d1ff650b3..c42c7f35acbcec50781ec64dec821503d7f9d630 100644 --- 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 @@ -10,28 +10,30 @@ /* Variable declarations */ # line 13 "../.././src/EMU_MTR-HOME_AUTO.st" +static short ARCHIVING = 0; +# line 18 "../.././src/EMU_MTR-HOME_AUTO.st" static short HOMCPTFLAG = 0; -# line 17 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 22 "../.././src/EMU_MTR-HOME_AUTO.st" static short statusMTRMov = 0; -# line 21 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 26 "../.././src/EMU_MTR-HOME_AUTO.st" static short mtrPlaced = 0; -# line 27 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 32 "../.././src/EMU_MTR-HOME_AUTO.st" static short mtrStop = 0; -# line 31 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 36 "../.././src/EMU_MTR-HOME_AUTO.st" static short homeCMD = 0; -# line 35 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 40 "../.././src/EMU_MTR-HOME_AUTO.st" static short mtrPosCons = 0; -# line 39 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 44 "../.././src/EMU_MTR-HOME_AUTO.st" static short brakeMtrCMD = 0; -# line 43 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 48 "../.././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 scanPS_Sts = 0; +# line 60 "../.././src/EMU_MTR-HOME_AUTO.st" static short scanMTR_Sts = 0; -# line 61 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 66 "../.././src/EMU_MTR-HOME_AUTO.st" static short homeSTART = 0; -# line 68 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 73 "../.././src/EMU_MTR-HOME_AUTO.st" static short plimSTATUS = 0; /* C code definitions */ @@ -52,14 +54,14 @@ static void G_prog_init(struct UserVar *pVar) /* 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" +# line 82 "../.././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" +# line 82 "../.././src/EMU_MTR-HOME_AUTO.st" if (seq_delay(ssId, 0) && (seq_pvConnectCount(ssId) == seq_pvChannelCount(ssId))) { *pNextState = 1; @@ -76,11 +78,11 @@ static void A_ss1_0_init(SS_ID ssId, struct UserVar *pVar, int transNum, int *pN { case 0: { -# line 79 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 84 "../.././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" +# line 85 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 11/*homeSTART*/, 0); +# line 86 "../.././src/EMU_MTR-HOME_AUTO.st" printf("\nWAIT\n"); } return; @@ -97,7 +99,7 @@ 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" +# line 92 "../.././src/EMU_MTR-HOME_AUTO.st" if (seq_efTestAndClear(ssId, 3/*homeSTARTEvent*/) && (homeSTART == 1) && (plimSTATUS == 0)) { *pNextState = 2; @@ -114,7 +116,7 @@ static void A_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar, int transNum, int { case 0: { -# line 89 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 94 "../.././src/EMU_MTR-HOME_AUTO.st" printf("\nSTART HOME PROCEDURE\n"); } return; @@ -126,14 +128,14 @@ static void A_ss1_0_waiting(SS_ID ssId, struct UserVar *pVar, int transNum, int /* 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" +# line 101 "../.././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" +# line 101 "../.././src/EMU_MTR-HOME_AUTO.st" if ((scanPS_Sts == 0) && (scanMTR_Sts == 0) && (statusMTRMov == 0) && (seq_delay(ssId, 0))) { *pNextState = 3; @@ -150,24 +152,24 @@ static void A_ss1_0_startHOME(SS_ID ssId, struct UserVar *pVar, int transNum, in { case 0: { -# line 97 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 102 "../.././src/EMU_MTR-HOME_AUTO.st" printf("\n GO HOME\n"); -# line 98 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 103 "../.././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" +# line 104 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 7/*brakeMtrCMD*/, 0); +# line 105 "../.././src/EMU_MTR-HOME_AUTO.st" seq_delay(ssId, 0); -# line 101 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 106 "../.././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" +# line 107 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 1/*HOMCPTFLAG*/, 0); +# line 108 "../.././src/EMU_MTR-HOME_AUTO.st" seq_delay(ssId, 0); -# line 104 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 109 "../.././src/EMU_MTR-HOME_AUTO.st" homeCMD = 1; -# line 105 "../.././src/EMU_MTR-HOME_AUTO.st" - seq_pvPut(ssId, 4/*homeCMD*/, 0); +# line 110 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 5/*homeCMD*/, 0); } return; } @@ -183,7 +185,7 @@ 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" +# line 116 "../.././src/EMU_MTR-HOME_AUTO.st" if (seq_efTestAndClear(ssId, 4/*plimSTATUSEvent*/) && (plimSTATUS == 1)) { *pNextState = 4; @@ -200,12 +202,12 @@ static void A_ss1_0_limitON(SS_ID ssId, struct UserVar *pVar, int transNum, int { case 0: { -# line 113 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 118 "../.././src/EMU_MTR-HOME_AUTO.st" printf("\nLIMIT HIGH\n"); -# line 114 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 119 "../.././src/EMU_MTR-HOME_AUTO.st" HOMCPTFLAG = 0; -# line 115 "../.././src/EMU_MTR-HOME_AUTO.st" - seq_pvPut(ssId, 0/*HOMCPTFLAG*/, 0); +# line 120 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 1/*HOMCPTFLAG*/, 0); } return; } @@ -216,17 +218,17 @@ static void A_ss1_0_limitON(SS_ID ssId, struct UserVar *pVar, int transNum, int /* 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" +# line 126 "../.././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" +# line 126 "../.././src/EMU_MTR-HOME_AUTO.st" if (seq_delay(ssId, 0)) { - *pNextState = 0; + *pNextState = 5; *pTransNum = 0; return TRUE; } @@ -240,28 +242,68 @@ static void A_ss1_0_breakON(SS_ID ssId, struct UserVar *pVar, int transNum, int { case 0: { -# line 123 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 128 "../.././src/EMU_MTR-HOME_AUTO.st" printf("\nINIT POSITION\n"); -# line 124 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 129 "../.././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" +# line 130 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 1/*HOMCPTFLAG*/, 0); +# line 131 "../.././src/EMU_MTR-HOME_AUTO.st" seq_delay(ssId, 0); -# line 127 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 132 "../.././src/EMU_MTR-HOME_AUTO.st" printf("\nBRAKE ON\n"); -# line 128 "../.././src/EMU_MTR-HOME_AUTO.st" +# line 133 "../.././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" +# line 134 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 5/*homeCMD*/, 0); +# line 135 "../.././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" +# line 136 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 11/*homeSTART*/, 0); +# line 137 "../.././src/EMU_MTR-HOME_AUTO.st" brakeMtrCMD = 0; -# line 133 "../.././src/EMU_MTR-HOME_AUTO.st" - seq_pvPut(ssId, 6/*brakeMtrCMD*/, 0); +# line 138 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 7/*brakeMtrCMD*/, 0); + } + return; + } +} + +/****** Code for state "stopArchiving" in state set "ss1" ******/ + +/* Delay function for state "stopArchiving" in state set "ss1" */ +static void D_ss1_0_stopArchiving(SS_ID ssId, struct UserVar *pVar) +{ +# line 144 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_delayInit(ssId, 0, (1.0)); +} + +/* Event function for state "stopArchiving" in state set "ss1" */ +static seqBool E_ss1_0_stopArchiving(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState) +{ +# line 144 "../.././src/EMU_MTR-HOME_AUTO.st" + if (seq_delay(ssId, 0)) + { + *pNextState = 0; + *pTransNum = 0; + return TRUE; + } + return FALSE; +} + +/* Action function for state "stopArchiving" in state set "ss1" */ +static void A_ss1_0_stopArchiving(SS_ID ssId, struct UserVar *pVar, int transNum, int *pNextState) +{ + switch(transNum) + { + case 0: + { +# line 146 "../.././src/EMU_MTR-HOME_AUTO.st" + printf("\nStop Archiving\n"); +# line 147 "../.././src/EMU_MTR-HOME_AUTO.st" + ARCHIVING = 0; +# line 148 "../.././src/EMU_MTR-HOME_AUTO.st" + seq_pvPut(ssId, 0/*ARCHIVING*/, 0); } return; } @@ -272,18 +314,19 @@ static void A_ss1_0_breakON(SS_ID ssId, struct UserVar *pVar, int transNum, int /* 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} + {"LNS-ISRC-010:PBI-EM:Archive", (size_t)&ARCHIVING, "ARCHIVING", "short", 1, 5, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}-HOMCPTFLAG", (size_t)&HOMCPTFLAG, "HOMCPTFLAG", "short", 1, 6, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}.MOVN", (size_t)&statusMTRMov, "statusMTRMov", "short", 1, 7, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}-AXISSTS", (size_t)&mtrPlaced, "mtrPlaced", "short", 1, 8, 1, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}.SPMG", (size_t)&mtrStop, "mtrStop", "short", 1, 9, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}-HOMCMD", (size_t)&homeCMD, "homeCMD", "short", 1, 10, 0, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}", (size_t)&mtrPosCons, "mtrPosCons", "short", 1, 11, 0, 1, 0, 0}, + {"{PREFIX}:PBI-EM:VER-BRAKE_SET", (size_t)&brakeMtrCMD, "brakeMtrCMD", "short", 1, 12, 0, 1, 0, 0}, + {"{PREFIX}:PBI-EM:VER-BRAKE_GET", (size_t)&brakeMtrGET, "brakeMtrGET", "short", 1, 13, 2, 1, 0, 0}, + {"{DEVICE}:PS.BUSY", (size_t)&scanPS_Sts, "scanPS_Sts", "short", 1, 14, 0, 1, 0, 0}, + {"{DEVICE}:MTR.BUSY", (size_t)&scanMTR_Sts, "scanMTR_Sts", "short", 1, 15, 0, 1, 0, 0}, + {"{DEVICE}:PROC-AUTO-HOME", (size_t)&homeSTART, "homeSTART", "short", 1, 16, 3, 1, 0, 0}, + {"{PMACPREFIX}:{MOTOR_NAME1}-PENDLSTS", (size_t)&plimSTATUS, "plimSTATUS", "short", 1, 17, 4, 1, 0, 0} }; /* Event masks for state set "ss1" */ @@ -291,17 +334,20 @@ static const seqMask EM_ss1_0_init[] = { 0x00000000, }; static const seqMask EM_ss1_0_waiting[] = { - 0x00018008, + 0x00030008, }; static const seqMask EM_ss1_0_startHOME[] = { - 0x00006040, + 0x0000c080, }; static const seqMask EM_ss1_0_limitON[] = { - 0x00010010, + 0x00020010, }; static const seqMask EM_ss1_0_breakON[] = { 0x00000000, }; +static const seqMask EM_ss1_0_stopArchiving[] = { + 0x00000000, +}; /* State table for state set "ss1" */ static seqState G_ss1_states[] = { @@ -355,6 +401,16 @@ static seqState G_ss1_states[] = { /* event mask array */ EM_ss1_0_breakON, /* state options */ (0) }, + { + /* state name */ "stopArchiving", + /* action function */ A_ss1_0_stopArchiving, + /* event function */ E_ss1_0_stopArchiving, + /* delay function */ D_ss1_0_stopArchiving, + /* entry function */ 0, + /* exit function */ 0, + /* event mask array */ EM_ss1_0_stopArchiving, + /* state options */ (0) + }, }; /* State set table */ @@ -362,7 +418,7 @@ static seqSS G_state_sets[] = { { /* state set name */ "ss1", /* states */ G_ss1_states, - /* number of states */ 5, + /* number of states */ 6, /* number of delays */ 1 }, }; @@ -372,7 +428,7 @@ seqProgram homeMtrAuto = { /* magic number */ 2001010, /* program name */ "homeMtrAuto", /* channels */ G_channels, - /* num. channels */ 12, + /* num. channels */ 13, /* state sets */ G_state_sets, /* num. state sets */ 1, /* user var size */ 0, 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 index 79348dfc2d5e5ba437f23816ba928cd4d1b681f8..36c7676b86d2ae17080f929f2d9bb96f303cd5ea 100644 --- 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 @@ -15,6 +15,11 @@ program homeMtrAuto %%#include <stdlib.h> +short ARCHIVING; +assign ARCHIVING to "LNS-ISRC-010:PBI-EM:Archive"; +monitor ARCHIVING; + + short HOMCPTFLAG; assign HOMCPTFLAG to "{PMACPREFIX}:{MOTOR_NAME1}-HOMCPTFLAG"; monitor HOMCPTFLAG; @@ -136,7 +141,16 @@ ss ss1 pvPut(homeSTART); brakeMtrCMD=0; pvPut(brakeMtrCMD); - }state init + }state stopArchiving } + state stopArchiving + { + when(delay(1.0)) + { + printf("\nStop Archiving\n"); + ARCHIVING=0; + pvPut(ARCHIVING); + }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 index 758fd68e93de489bf2f3b4fe122545edc96af3c8..e4aa560ec2c6b0320130650f7b9752040ed4bf45 100644 Binary files a/builddir/O.3.15.2_eldk56-e500v2/EMU_MTR-HOME_AUTO.o 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/libemu.so b/builddir/O.3.15.2_eldk56-e500v2/libemu.so index 50a83f1fc870075ba3b60f7fa8e31393f29a187a..b43ff4476df8d6b72a4be84a6a310994bc8cedfb 100755 Binary files a/builddir/O.3.15.2_eldk56-e500v2/libemu.so and b/builddir/O.3.15.2_eldk56-e500v2/libemu.so differ diff --git a/builddir/opi/EMU.opi b/builddir/opi/EMU.opi index 9422d067a1b7fca9aaf9c574a8620aac947496e1..3eeabaaf608c8e79e2304a5d24d27afd871e088e 100644 --- a/builddir/opi/EMU.opi +++ b/builddir/opi/EMU.opi @@ -3554,7 +3554,15 @@ $(pv_value)</tooltip> <wuid>1e771979:1565068c2e3:-2a01</wuid> <pv_value /> <text>START</text> - <scripts /> + <scripts> + <path pathString="EmbeddedJs" checkConnect="true" sfe="false" seoe="false"> + <scriptName>StartArchiving</scriptName> + <scriptText><![CDATA[importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +if(PVUtil.getDouble(pvs[0])==1){pvs[1].setValue(1);}]]></scriptText> + <pv trig="true">${PREFIX_SCAN}:$(NAME_MTR).EXSC</pv> + <pv trig="false">LNS-ISRC-010:PBI-EM:Archive</pv> + </path> + </scripts> <border_alarm_sensitive>false</border_alarm_sensitive> <height>55</height> <border_width>2</border_width> diff --git a/builddir/startup/EMU.cmd b/builddir/startup/EMU.cmd index 5a32246ebc339c072f644e16b5c04dab7ba1300b..2ee21045d3eed4480dfadb11aea94c5bd8c43934 100644 --- a/builddir/startup/EMU.cmd +++ b/builddir/startup/EMU.cmd @@ -9,6 +9,7 @@ require dataacquisition,1.0.1 require emu,catane require emu-motor-test,catane require tpmac,3.11.2 +require pvarchiving, catane ### MACROS ### @@ -18,6 +19,9 @@ epicsEnvSet("PMACPORT", "GEOBRICK_ASYN") epicsEnvSet("MOTOR_PORT", "pmac1" ) epicsEnvSet("NB_AXES", "1" ) +# ARCHIVE macros # +epicsEnvSet("ARCHIVE-MACRO","LNS-ISRC-010:PBI-EM") + # Motor Macros epicsEnvSet("EGU", "mm" ) epicsEnvSet("DIR", "Pos" ) @@ -132,8 +136,17 @@ dbLoadRecords("EMU.db", "DEVICE=$(SCANPREFIX), SCAN_SLIT=$(SCAN_SLIT), SCAN_EF=$ # # Init ETHERCAT module +# + ecat2configure(0,500,1,1) +# +# Archive module +# + +ArchiveConfigure("$(REQUIRE_pvarchiving_PATH)","10.10.0.11:17665") +dbLoadRecords("PVArchiving.template",PREFIX=$(ARCHIVE-MACRO)) + ############################################################################# ######################### iocInit ########################################### @@ -245,4 +258,9 @@ 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 +############################################################ +################### START ARCHIVE ########################## +############################################################ +dbpf $(ARCHIVE-MACRO):PVS "LNS-ISRC-010:PBI-EM-HV1:VoltR,LNS-ISRC-010:PBI-EM-HV2:VoltR,LNS-ISRC-010:PBI-EMV-FC:CurrR") +dbpf $(ARCHIVE-MACRO):Archive 0 diff --git a/opi/EMU.opi b/opi/EMU.opi index 9422d067a1b7fca9aaf9c574a8620aac947496e1..3eeabaaf608c8e79e2304a5d24d27afd871e088e 100644 --- a/opi/EMU.opi +++ b/opi/EMU.opi @@ -3554,7 +3554,15 @@ $(pv_value)</tooltip> <wuid>1e771979:1565068c2e3:-2a01</wuid> <pv_value /> <text>START</text> - <scripts /> + <scripts> + <path pathString="EmbeddedJs" checkConnect="true" sfe="false" seoe="false"> + <scriptName>StartArchiving</scriptName> + <scriptText><![CDATA[importPackage(Packages.org.csstudio.opibuilder.scriptUtil); +if(PVUtil.getDouble(pvs[0])==1){pvs[1].setValue(1);}]]></scriptText> + <pv trig="true">${PREFIX_SCAN}:$(NAME_MTR).EXSC</pv> + <pv trig="false">LNS-ISRC-010:PBI-EM:Archive</pv> + </path> + </scripts> <border_alarm_sensitive>false</border_alarm_sensitive> <height>55</height> <border_width>2</border_width> diff --git a/src/EMU_MTR-HOME_AUTO.st b/src/EMU_MTR-HOME_AUTO.st index aa1dc426ba218418dc1d9ae6e07a5f2478e9c7fc..2b345f2cd65d8a4743324a51343782057bf1d390 100644 --- a/src/EMU_MTR-HOME_AUTO.st +++ b/src/EMU_MTR-HOME_AUTO.st @@ -9,6 +9,11 @@ program homeMtrAuto %%#include <string.h> %%#include <stdlib.h> +/***** ARCHIVE ****/ +short ARCHIVING; +assign ARCHIVING to "LNS-ISRC-010:PBI-EM:Archive"; +monitor ARCHIVING; + /**** MTR PV ******/ short HOMCPTFLAG; assign HOMCPTFLAG to "{PMACPREFIX}:{MOTOR_NAME1}-HOMCPTFLAG"; @@ -131,8 +136,17 @@ ss ss1 pvPut(homeSTART); brakeMtrCMD=0; pvPut(brakeMtrCMD); + }state stopArchiving + } + + state stopArchiving + { + when(delay(1.0)) + { + printf("\nStop Archiving\n"); + ARCHIVING=0; + pvPut(ARCHIVING); }state init } - } diff --git a/startup/EMU.cmd b/startup/EMU.cmd index 5a32246ebc339c072f644e16b5c04dab7ba1300b..2ee21045d3eed4480dfadb11aea94c5bd8c43934 100644 --- a/startup/EMU.cmd +++ b/startup/EMU.cmd @@ -9,6 +9,7 @@ require dataacquisition,1.0.1 require emu,catane require emu-motor-test,catane require tpmac,3.11.2 +require pvarchiving, catane ### MACROS ### @@ -18,6 +19,9 @@ epicsEnvSet("PMACPORT", "GEOBRICK_ASYN") epicsEnvSet("MOTOR_PORT", "pmac1" ) epicsEnvSet("NB_AXES", "1" ) +# ARCHIVE macros # +epicsEnvSet("ARCHIVE-MACRO","LNS-ISRC-010:PBI-EM") + # Motor Macros epicsEnvSet("EGU", "mm" ) epicsEnvSet("DIR", "Pos" ) @@ -132,8 +136,17 @@ dbLoadRecords("EMU.db", "DEVICE=$(SCANPREFIX), SCAN_SLIT=$(SCAN_SLIT), SCAN_EF=$ # # Init ETHERCAT module +# + ecat2configure(0,500,1,1) +# +# Archive module +# + +ArchiveConfigure("$(REQUIRE_pvarchiving_PATH)","10.10.0.11:17665") +dbLoadRecords("PVArchiving.template",PREFIX=$(ARCHIVE-MACRO)) + ############################################################################# ######################### iocInit ########################################### @@ -245,4 +258,9 @@ 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 +############################################################ +################### START ARCHIVE ########################## +############################################################ +dbpf $(ARCHIVE-MACRO):PVS "LNS-ISRC-010:PBI-EM-HV1:VoltR,LNS-ISRC-010:PBI-EM-HV2:VoltR,LNS-ISRC-010:PBI-EMV-FC:CurrR") +dbpf $(ARCHIVE-MACRO):Archive 0