Could the Python subprocess module help, vs. using the Manager.launch()
method to start the session? I think you could use the Popen Objects and the Popen.communicate()
method, which should be more interactive and not need the process to exit before reading from stdout
like the subprocess.run()
method.
Note: If doing this, review how to launch the Logic 2 application with automation server started, and then use Manager.connect()
vs. Manager.launch()
to connect to the existing process started by the subprocess
module above.
However, this only gives you access to the stdout
stream as requested, but may not solve your higher-level problem and cause more complicated issues dealing with nuances of Python subprocess communications. Otherwise, there might be better ways to implement a Logic 2 supervisor feature vs. trying to parse the log file and/or monitor stdout
. For example, you could do a Manager.launch()
+ Manager.close()
after each capture, or after every so many captures to just preemptively reboot the Logic 2 program?
Just curious, were you having problems with the Logic 2 program breaking down that actually needed a supervisor to restart it? Or, is it just that the target system is sometimes failing to trigger a capture, and stuck in a Capture.wait()
that didn’t return? In this case, see another post about detecting when the Saleae failed to trigger.