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 2025 | 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 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: ai records: pool (SCAN) VS pull (FLNK) VS push (some examples) |
From: | Benoit <[email protected]> |
To: | Mark Rivers <[email protected]> |
Cc: | EPICS mailing list <[email protected]> |
Date: | Tue, 10 Dec 2013 20:22:38 +0100 |
$(user):AllInterlocksRdbk in the database, only "$(user):AllInterlocks.
Is the database you sent incomplete? You have
field(FLNK,"$(user):AllInterlocksRdbk") #or field(FLNK,"$(user):AllInterlocksRdbk.VAL PP")
but I don’t see the record $(user):AllInterlocksRdbk in the database, only "$(user):AllInterlocks.
Also, if you are going to put a field in a FLNK it should not be the .VAL field, but rather the .PROC field, i.e.
field(FLNK,"$(user):AllInterlocksRdbk.PRO PP")
From: [email protected] [mailto:[email protected]] On Behalf Of Benoit
Sent: Tuesday, December 10, 2013 11:30 AM
To: EPICS mailing list
Subject: ai records: pool (SCAN) VS pull (FLNK) VS push (some examples)
Hi everybody,
I've been looking to obtain concrete examples of the following post: http://www.aps.anl.gov/epics/tech-talk/2012/msg02557.php in order to retrieve my data
I think I get it well for
- pool: scan every 5 seconds the value of TempActRdbk
- push: getting the value of CtrlManualStat read register when CtrlManualCmd write register is updated (this is done in the asynDriver).
However, I don't manage to use the forward link so that when I write in CtrlManualCmd I want to obtain an updated value of AllInterlocks.
Can someone tell me how to perform, and what I am doing wrong in the use of FLNK:
record(bo, "$(user):CtrlManualCmd")
{
field(DTYP ,"asynInt32")
field(OUT ,"@asyn($(PORT),$(ADDR),$(TIMEOUT))Ctrl_Manual")
}
record(bi, "$(user):CtrlManualStat")
{
field(DTYP ,"asynInt32")
field(INP ,"@asyn($(PORT),$(ADDR),$(TIMEOUT))Ctrl_Manual")
field(SCAN ,"I/O Intr")
field(FLNK,"$(user):AllInterlocksRdbk") #or field(FLNK,"$(user):AllInterlocksRdbk.VAL PP")
}
record(ai, "$(user):AllInterlocks")
{
field(DTYP ,"asynInt32")
field(INP ,"@asyn($(PORT),$(ADDR),$(TIMEOUT))Ilk_All")
field(SCAN ,"I/O Intr")
}
record(ai, "$(user):TempActRdbk")
{
field(DTYP ,"asynInt32")
field(INP ,"@asyn($(PORT),$(ADDR),$(TIMEOUT))temp_act")
field(SCAN ,"5 second")
}
--
Benoit RAT