record(ai, “$(P):fsControl")
{
field(DTYP, "asynInt32")
field(PREC, "5")
field(SCAN, "Passive")
field(FLNK, "$(P):fsCalc PP")
}
record(calcout, "$(P):fsCalc")
{
field(DESC, "Convert 1,0 shutter to 3,1")
field(INPA, "$(P):fsControl")
field(CALC, "A * 2 + 1")
field(OUT, "$(P):fsSet PP")
field(OOPT, "Every Time")
field(SCAN, "Passive")
}
record(ao, "$(P):fsSet")
{
field(DTYP, "asynInt32")
field(OUT, "@asyn($(PORT,recursive),0,1)PMAC_WI_M8192")
field(SCAN, "Passive")
}
If I put to fsControl, it sets but nothing happens. If I put to fsCalc.PROC, everything works correctly - it reads fsControl, calculates the VAL and triggers fsSet with the calculated value. If I make fsCalc SCAN periodic it also works. I thought calc records were supposed to be processed whenever their inputs were processed. I’ve tried with and without the FLNK in fsControl. So I’m missing something about how calc record processing is triggered.