Hi all,
This is a bit of a complex question so if there is anything that doesn’t make sense, please let me know and I will do my best to clarify.
Basically, we have an IOC, which uses StreamDevice, to talk to an instrument. Within the database file, I have two record chains to perform two operations on the instrument. One is feeding a pattern file to the instrument and another is
for getting some system parameters such as voltage settings, laser status, etc. at a constant scan rate of 1 Hz via a record called slow_scan that has its SCAN field set at 1 Hz.
So roughly these are what the two chains are.
Chain 1:
|slow_scan (1 Hz)| --- FLNK ---> |get_voltage (passive)| --- FLNK ---> |get_laser (passive)| --- FLNK ---> |get_error_flags (passive)|
Chain 2:
|set_pattern (passive)| --- FLNK --> |check_pattern_good (passive)|
Suppose the user wants to feed a pattern file to the instrument and they force-process Chain 2 by calling set_pattern.PROC field via caput, CSS GUI, etc. Ideally I would like Chain 1 to finish before letting Chain 2 start. For example,
suppose the user force-processes Chain 2 while Chain 1 is still processing get_laser. I would like get_error_flags to complete processing first and then allow Chain 2 to process. Then, after Chain 2 processes, I resume slow_scan in Chain 1.
Let me know what your thoughts are on this.
Thanks,
Andy
Purple ribbon awareness