/* C code for program autoOff, generated by snc from ../autoOff.st */ #include #include #include #include #include "seq_snc.h" /* Variable declarations */ struct seqg_vars { # line 18 "../autoOff.st" int dmov; # line 19 "../autoOff.st" int cnen; }; /* Function declarations */ #define seqg_var (*(struct seqg_vars *const *)seqg_env) /* Program init func */ static void seqg_init(PROG_ID seqg_env) { } /****** Code for state "s_Stby" in state set "disable" ******/ /* Entry function for state "s_Stby" in state set "disable" */ static void seqg_entry_disable_0_s_Stby(SS_ID seqg_env) { # line 28 "../autoOff.st" seqg_var->cnen = 0; # line 29 "../autoOff.st" seq_pvPutTmo(seqg_env, 1/*cnen*/, DEFAULT, DEFAULT_TIMEOUT); } /* Event function for state "s_Stby" in state set "disable" */ static seqBool seqg_event_disable_0_s_Stby(SS_ID seqg_env, int *seqg_ptrn, int *seqg_pnst) { # line 31 "../autoOff.st" if (seqg_var->dmov == 0) { *seqg_pnst = 1; *seqg_ptrn = 0; return TRUE; } return FALSE; } /* Action function for state "s_Stby" in state set "disable" */ static void seqg_action_disable_0_s_Stby(SS_ID seqg_env, int seqg_trn, int *seqg_pnst) { switch(seqg_trn) { case 0: { } return; } } /****** Code for state "s_Movn" in state set "disable" ******/ /* Event function for state "s_Movn" in state set "disable" */ static seqBool seqg_event_disable_0_s_Movn(SS_ID seqg_env, int *seqg_ptrn, int *seqg_pnst) { # line 36 "../autoOff.st" if (seqg_var->dmov == 1) { *seqg_pnst = 0; *seqg_ptrn = 0; return TRUE; } return FALSE; } /* Action function for state "s_Movn" in state set "disable" */ static void seqg_action_disable_0_s_Movn(SS_ID seqg_env, int seqg_trn, int *seqg_pnst) { switch(seqg_trn) { case 0: { } return; } } #undef seqg_var /************************ Tables ************************/ /* Channel table */ static seqChan seqg_chans[] = { /* chName, offset, varName, varType, count, eventNum, efId, monitored, queueSize, queueIndex */ {"{MOTOR_DEV}:MOTOR.DMOV", offsetof(struct seqg_vars, dmov), "dmov", P_INT, 1, 1, 0, 1, 0, 0}, {"{MOTOR_DEV}:MOTOR.CNEN", offsetof(struct seqg_vars, cnen), "cnen", P_INT, 1, 2, 0, 1, 0, 0}, }; /* Event masks for state set "disable" */ static const seqMask seqg_mask_disable_0_s_Stby[] = { 0x00000002, }; static const seqMask seqg_mask_disable_0_s_Movn[] = { 0x00000002, }; /* State table for state set "disable" */ static seqState seqg_states_disable[] = { { /* state name */ "s_Stby", /* action function */ seqg_action_disable_0_s_Stby, /* event function */ seqg_event_disable_0_s_Stby, /* entry function */ seqg_entry_disable_0_s_Stby, /* exit function */ 0, /* event mask array */ seqg_mask_disable_0_s_Stby, /* state options */ (0) }, { /* state name */ "s_Movn", /* action function */ seqg_action_disable_0_s_Movn, /* event function */ seqg_event_disable_0_s_Movn, /* entry function */ 0, /* exit function */ 0, /* event mask array */ seqg_mask_disable_0_s_Movn, /* state options */ (0) }, }; /* State set table */ static seqSS seqg_statesets[] = { { /* state set name */ "disable", /* states */ seqg_states_disable, /* number of states */ 2 }, }; /* Program table (global) */ seqProgram autoOff = { /* magic number */ 2002004, /* program name */ "autoOff", /* channels */ seqg_chans, /* num. channels */ 2, /* state sets */ seqg_statesets, /* num. state sets */ 1, /* user var size */ sizeof(struct seqg_vars), /* param */ "", /* num. event flags */ 0, /* encoded options */ (0 | OPT_DEBUG | OPT_NEWEF | OPT_REENT), /* init func */ seqg_init, /* entry func */ 0, /* exit func */ 0, /* num. queues */ 0 }; /* Register sequencer commands and program */ #include "epicsExport.h" static void autoOffRegistrar (void) { seqRegisterSequencerCommands(); seqRegisterSequencerProgram (&autoOff); } epicsExportRegistrar(autoOffRegistrar);