Hi Martin,
On 2012-07-20 Martin Konrad wrote:
> what's the recommended way to switch from one sequencer state to another
> if a button is clicked on the OPI? What type of record do you use for
> this? What does the "when" statement look like?
> P.S.: When coupling a button with some piece of hardware I usually use
> some sort of record that is scanned if the button is clicked. This
> results in a message to my device. This obviously does not work with the
> sequencer because the value of the record does not change and thus a
> monitor would not fire...
That's where you want to use an event flag that is synchronized to the monitor
updates. As Ben mentioned you may need to set MDEL to -1 on some record types
to cause monitors to always be generated. Your SNL code then looks something
like the following (not tested):
double myVar;
assign myVar to "me:myVar";
monitor myVar;
evflag myFlag;
sync myVar myFlag;
...
when(efTestAndClear(myFlag)) {
/* actions ... */
} next_state;
I have some vague recollection that there may have been a problem with the
efTestAndClear() function in some recent sequencer versions (Ben can
confirm/deny this), so you might need this code instead:
when(efTest(myFlag)) {
efClear(myFlag);
/* actions ... */
} next_state;
You should probably read the documentation about the syncQ statement as well,
although I don't think it is actually needed in this case.
HTH,
- Andrew
PS: Ben — the stringin and stringout records now have MPST and APST fields
which allow the user to control whether they always post monitors or only on
value change.
--
Never interrupt your enemy when he is making a mistake.
-- Napoleon Bonaparte
- Replies:
- Re: sequencer & button click Benjamin Franksen
- References:
- sequencer & button click Martin Konrad
- Navigate by Date:
- Prev:
Re: sequencer & button click Benjamin Franksen
- Next:
Re: sequencer & button click Benjamin Franksen
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
<2012>
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: sequencer & button click Benjamin Franksen
- Next:
Re: sequencer & button click Benjamin Franksen
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
<2012>
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|