Folks,
I have a question about the EPICS sequencer program. There does not seem to
be a way to invoke ca_put_array_callback from within an SNL program, only
ca_array_put. This seems to be a serious limitation. For example, I have
an SNL program in which I want to write 4 strings to a stringout record.
...
strcpy(stringOut, 'string 1');
pvPut(stringOut);
strcpy(stringOut, 'string 2');
pvPut(stringOut);
strcpy(stringOut, 'string 3');
pvPut(stringOut);
strcpy(stringOut, 'string 4');
pvPut(stringOut);
What happens is that only "string 1" and "string 4" get written to the
device, because the record is busy processing when "string 2" and "string 3"
are sent, so they are never sent, channel access throws them away and only
sends the last one, "string 4". I could call taskDelay() after each
pvPut(), but this is ugly. It seems to me that the SNL needs a
pvPutCallback, so that it is possible to wait until the record is done
processing one string before sending the next.
Do others agree that this would be useful, or am I missing some other way to
accomplish what I need? Is there a version of the sequencer which already
has this feature added? A quick look at the code leads me to think that it
would not be very difficult to add, since synchronous pvGet is already
supported via a callback and semaphore.
Cheers,
Mark Rivers
- Navigate by Date:
- Prev:
RE: Kinetic Systems 2917/3922 CAMAC interface on PowerPC Mark Rivers
- Next:
RE: Sequencer question William Lupton
- 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: RFC: Graphical Database Editor Steve Lewis
- Next:
RE: Sequencer question William Lupton
- 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
|