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 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")
}
|