Skip to content
Snippets Groups Projects
Commit f25338c5 authored by vagrant's avatar vagrant
Browse files

Add PREC for plate power supply control

parent eac8de43
No related branches found
No related tags found
No related merge requests found
Showing
with 0 additions and 590 deletions
registrar (checkMTRBrakeRegistrar)
registrar (homeMtrAutoRegistrar)
function (FACTOR_CONVERSION)
function (ANGLE_CALCUL)
function (CREATE_TAB)
function (INIT_TAB)
function (CREATE_PROJXY)
function (CREATE_REPORT)
# 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+
File deleted
# 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+
File deleted
registrar (checkMTRBrakeRegistrar)
registrar (homeMtrAutoRegistrar)
function (FACTOR_CONVERSION)
function (ANGLE_CALCUL)
function (CREATE_TAB)
function (INIT_TAB)
function (CREATE_PROJXY)
function (CREATE_REPORT)
# 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+
File deleted
# 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+
File deleted
function (FACTOR_CONVERSION)
function (ANGLE_CALCUL)
function (CREATE_TAB)
function (INIT_TAB)
function (CREATE_PROJXY)
function (CREATE_REPORT)
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
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
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
File deleted
/* 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);
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
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
# 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
}
}
File deleted
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment