/* Entry function for state "test" in state set "pvGetCancel" */ static void seqg_entry_pvGetCancel_0_test(SS_ID seqg_env) { # line 37 "../pvGetCancel.st" testOk1(seq_pvGetTmo(seqg_env, 0/*x*/ + (CH_ID)(0), ASYNC, DEFAULT_TIMEOUT) == pvStatOK); # line 38 "../pvGetCancel.st" testOk1(seq_pvGetTmo(seqg_env, 0/*x*/ + (CH_ID)(1), ASYNC, DEFAULT_TIMEOUT) == pvStatOK); # line 39 "../pvGetCancel.st" seq_pvArrayGetCancel(seqg_env, 0/*x*/, 2); # line 40 "../pvGetCancel.st" seqg_vars_pvGetCancel.x[0] = seqg_vars_pvGetCancel.x[1] = 0; # line 41 "../pvGetCancel.st" seqg_vars_pvGetCancel.y[0] = seqg_vars_pvGetCancel.y[1] = 1; # line 42 "../pvGetCancel.st" testOk1(seq_pvPutTmo(seqg_env, 2/*y*/ + (CH_ID)(0), SYNC, DEFAULT_TIMEOUT) == pvStatOK); # line 43 "../pvGetCancel.st" testOk1(seq_pvPutTmo(seqg_env, 2/*y*/ + (CH_ID)(1), SYNC, DEFAULT_TIMEOUT) == pvStatOK); # line 44 "../pvGetCancel.st" testOk1(seq_pvGetTmo(seqg_env, 0/*x*/ + (CH_ID)(0), ASYNC, DEFAULT_TIMEOUT) == pvStatOK); # line 45 "../pvGetCancel.st" testOk1(seq_pvGetTmo(seqg_env, 0/*x*/ + (CH_ID)(1), ASYNC, DEFAULT_TIMEOUT) == pvStatOK); }
/* Action function for state "get" in state set "read_anon_sync" */ static void seqg_action_read_anon_sync_3_get(SS_ID seqg_env, int seqg_trn, int *seqg_pnst) { switch(seqg_trn) { case 0: { # line 155 "../pvGet.st" seq_efSet(seqg_env, ef_read_anon_sync); } return; case 1: { # line 158 "../pvGet.st" epicsMutexMustLock(mutex); # line 159 "../pvGet.st" seqg_var->seqg_vars_read_anon_sync.expected = shared; # line 160 "../pvGet.st" seq_pvGetTmo(seqg_env, 0/*anon*/, SYNC, DEFAULT_TIMEOUT); # line 161 "../pvGet.st" epicsMutexUnlock(mutex); # line 163 "../pvGet.st" testOk(seqg_var->seqg_vars_read_anon_sync.expected == seqg_var->anon, "synchronous get: expected=%d==%d=anon", seqg_var->seqg_vars_read_anon_sync.expected, seqg_var->anon); # line 164 "../pvGet.st" epicsThreadSleep(0.1); # line 165 "../pvGet.st" epicsMutexMustLock(mutex); # line 166 "../pvGet.st" seqg_var->seqg_vars_read_anon_sync.expected = shared; # line 167 "../pvGet.st" seq_pvGetTmo(seqg_env, 0/*anon*/, SYNC, DEFAULT_TIMEOUT); # line 168 "../pvGet.st" epicsMutexUnlock(mutex); # line 170 "../pvGet.st" testOk(seqg_var->seqg_vars_read_anon_sync.expected == seqg_var->anon, "repeat get after delay: expected=%d==%d=anon", seqg_var->seqg_vars_read_anon_sync.expected, seqg_var->anon); } return; } }
/* Action function for state "get" in state set "read_named_sync" */ static void seqg_action_read_named_sync_2_get(SS_ID seqg_env, int seqg_trn, int *seqg_pnst) { switch(seqg_trn) { case 0: { # line 119 "../pvGet.st" seq_efSet(seqg_env, ef_read_named_sync); } return; case 1: { # line 122 "../pvGet.st" epicsMutexMustLock(mutex); # line 123 "../pvGet.st" seqg_var->seqg_vars_read_named_sync.expected = shared; # line 124 "../pvGet.st" seq_pvGetTmo(seqg_env, 2/*named*/, SYNC, DEFAULT_TIMEOUT); # line 125 "../pvGet.st" epicsMutexUnlock(mutex); # line 127 "../pvGet.st" testOk(seqg_var->seqg_vars_read_named_sync.expected == seqg_var->seqg_vars_read_named_sync.named, "synchronous get: expected=%d==%d=named", seqg_var->seqg_vars_read_named_sync.expected, seqg_var->seqg_vars_read_named_sync.named); # line 128 "../pvGet.st" epicsThreadSleep(0.1); # line 129 "../pvGet.st" epicsMutexMustLock(mutex); # line 130 "../pvGet.st" seqg_var->seqg_vars_read_named_sync.expected = shared; # line 131 "../pvGet.st" seq_pvGetTmo(seqg_env, 2/*named*/, SYNC, DEFAULT_TIMEOUT); # line 132 "../pvGet.st" epicsMutexUnlock(mutex); # line 134 "../pvGet.st" testOk(seqg_var->seqg_vars_read_named_sync.expected == seqg_var->seqg_vars_read_named_sync.named, "repeat get after delay: expected=%d==%d=named", seqg_var->seqg_vars_read_named_sync.expected, seqg_var->seqg_vars_read_named_sync.named); } return; } }
/* Action function for state "get" in state set "read_anon" */ static void seqg_action_read_anon_1_get(SS_ID seqg_env, int seqg_trn, int *seqg_pnst) { switch(seqg_trn) { case 0: { # line 77 "../pvGet.st" seq_efSet(seqg_env, ef_read_anon); } return; case 1: { # line 80 "../pvGet.st" epicsMutexMustLock(mutex); # line 81 "../pvGet.st" seqg_var->seqg_vars_read_anon.expected = shared; # line 82 "../pvGet.st" seq_pvGetTmo(seqg_env, 0/*anon*/, ASYNC, DEFAULT_TIMEOUT); # line 83 "../pvGet.st" epicsMutexUnlock(mutex); # line 84 "../pvGet.st" if (seq_pvGetComplete(seqg_env, 0/*anon*/)) { # line 86 "../pvGet.st" testOk(seqg_var->seqg_vars_read_anon.expected == seqg_var->anon, "immediate completion: expected=%d==%d=anon", seqg_var->seqg_vars_read_anon.expected, seqg_var->anon); } else { # line 88 "../pvGet.st" testPass("no immediate completion"); } # line 90 "../pvGet.st" epicsThreadSleep(0.1); # line 91 "../pvGet.st" if (seq_pvGetComplete(seqg_env, 0/*anon*/)) { # line 93 "../pvGet.st" testOk(seqg_var->seqg_vars_read_anon.expected == seqg_var->anon, "completion after delay: expected=%d==%d=anon", seqg_var->seqg_vars_read_anon.expected, seqg_var->anon); } else { # line 95 "../pvGet.st" testPass("no completion after delay"); } } return; } }
/* Action function for state "get" in state set "read_named" */ static void seqg_action_read_named_0_get(SS_ID seqg_env, int seqg_trn, int *seqg_pnst) { switch(seqg_trn) { case 0: { # line 37 "../pvGet.st" seq_efSet(seqg_env, ef_read_named); } return; case 1: { # line 40 "../pvGet.st" epicsMutexMustLock(mutex); # line 41 "../pvGet.st" seqg_var->seqg_vars_read_named.expected = shared; # line 42 "../pvGet.st" seq_pvGetTmo(seqg_env, 1/*named*/, ASYNC, DEFAULT_TIMEOUT); # line 43 "../pvGet.st" epicsMutexUnlock(mutex); # line 44 "../pvGet.st" if (seq_pvGetComplete(seqg_env, 1/*named*/)) { # line 46 "../pvGet.st" testOk(seqg_var->seqg_vars_read_named.expected == seqg_var->seqg_vars_read_named.named, "immediate completion: expected=%d==%d=named", seqg_var->seqg_vars_read_named.expected, seqg_var->seqg_vars_read_named.named); } else { # line 48 "../pvGet.st" testPass("no immediate completion"); } # line 50 "../pvGet.st" epicsThreadSleep(0.1); # line 51 "../pvGet.st" if (seq_pvGetComplete(seqg_env, 1/*named*/)) { # line 53 "../pvGet.st" testOk(seqg_var->seqg_vars_read_named.expected == seqg_var->seqg_vars_read_named.named, "completion after delay: expected=%d==%d=named", seqg_var->seqg_vars_read_named.expected, seqg_var->seqg_vars_read_named.named); } else { # line 55 "../pvGet.st" testPass("no completion after delay"); } } return; } }
/* * Get value from a channel. */ epicsShareFunc pvStat seq_pvGet(SS_ID ss, CH_ID chId, enum compType compType) { return seq_pvGetTmo(ss, chId, compType, DEFAULT_TIMEOUT); }