-
Notifications
You must be signed in to change notification settings - Fork 9
Description
It seems there's a variety of ways to define ioc records and I'm looking to confirm or clarify my understanding thus far.
Two main categories are ones using the special PythonIOC device and the lower level ones in builder.records.
I defined:
ai2 = builder.records.ai('AI2', VAL="5", INP="float1 CP MS", SCAN="Passive", PINI="YES")
and updates were seen with a camonitor running in another console.
Conversely:
ai1 = builder.aIn('AI', initial_value=5, INP="float1 CP MS", SCAN="Passive", PINI="YES")
did not update (verified using both caget and camonitor from another console)
So, I set up a monitor on float1 (as per the tutorials) and wrote the value from the callback function. Updates still did not go out. I then changed the SCAN to "I/O Intr" for ai2 and updates started going out.
Do all these "higher-level" records require SCAN="I/O Intr"?
Do they also require that the value is manually set in Python (i.e. ai.set(value))......?
Or should I be updated ai1 via an ao1's on_update handler....? Is there a "best practice" for what I'm attempting?
Thanks so much for this intriguing tool/utility!!! It holds a lot of promise for us here. :)