Esempio n. 1
0
/* 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;
	}
}
Esempio n. 2
0
/* 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;
	}
}
Esempio n. 3
0
File: seq_if.c Progetto: ukaea/epics
/*
 * Array variant of seq_pvGetComplete.
 */
epicsShareFunc boolean seq_pvArrayGetComplete(
	SS_ID		ss,
	CH_ID		chId,
	unsigned	length,
	boolean		any,
	boolean		*complete)
{
	boolean		anyDone = FALSE, allDone = TRUE;
	unsigned	n;

	for (n = 0; n < length; n++)
	{
		boolean done = seq_pvGetComplete(ss, chId + n);

		anyDone = anyDone || done;
		allDone = allDone && done;

		if (complete)
		{
			complete[n] = done;
		}
		else if (any == done)
		{
			break;
		}
	}

	DEBUG("pvArrayGetComplete: chId=%u, length=%u, anyDone=%u, allDone=%u\n",
		chId, length, anyDone, allDone);

	return any?anyDone:allDone;
}
Esempio n. 4
0
/* Event function for state "wait" in state set "read_anon" */
static seqBool seqg_event_read_anon_1_wait(SS_ID seqg_env, int *seqg_ptrn, int *seqg_pnst)
{
# line 100 "../pvGet.st"
	if (seq_pvGetComplete(seqg_env, 0/*anon*/))
	{
		*seqg_pnst = 0;
		*seqg_ptrn = 0;
		return TRUE;
	}
	return FALSE;
}
Esempio n. 5
0
/* Event function for state "wait" in state set "read_named" */
static seqBool seqg_event_read_named_0_wait(SS_ID seqg_env, int *seqg_ptrn, int *seqg_pnst)
{
# line 60 "../pvGet.st"
	if (seq_pvGetComplete(seqg_env, 1/*named*/))
	{
		*seqg_pnst = 0;
		*seqg_ptrn = 0;
		return TRUE;
	}
	return FALSE;
}
Esempio n. 6
0
/* Event function for state "wait_complete" in state set "pvGetAsync" */
static seqBool E_pvGetAsync_0_wait_complete(SS_ID ssId, struct UserVar *pVar, int *pTransNum, int *pNextState)
{
# line 39 "../pvGetAsync.st"
	if (seq_delay(ssId, 0))
	{
		seq_exit(ssId);
		*pTransNum = 0;
		return TRUE;
	}
# line 42 "../pvGetAsync.st"
	if (seq_pvGetComplete(ssId, 0/*x*/))
	{
		*pNextState = 1;
		*pTransNum = 1;
		return TRUE;
	}
	return FALSE;
}