I'd like to add a feature that would isolate the clients. The idea is that if more than 1 client is connected to the IS, it will not allow multiple clients to use the same instruments. This should protect multiple experiments from stepping on each other accidentally.
This should include a way to track if a client has "gone away", i.e. crashed and needs to recover. I don't believe a timeout would be useful since a client could be dormant for long periods of time while an experiment possibly runs for days (or longer?).
A way to reconnect a client that had started an experiment or been disconnected, would be helpful. I imagine the need to reconnect and "catch up" with a running experiment where it is, if possible as well.
Other possible things:
- graceful cleanup of instrument states would be preferable. Meaning not having to run around restarting all the instruments in the system manually.
- robust logging (i.e. ERROR, WARN, DEBUG, TRACE)
- investigate the difficulty of tracking state of instruments should the IS itself crash and need to reconnect to a running experiment.
Just jotting down some ideas in a place that can be tracked.
I'd like to add a feature that would isolate the clients. The idea is that if more than 1 client is connected to the IS, it will not allow multiple clients to use the same instruments. This should protect multiple experiments from stepping on each other accidentally.
This should include a way to track if a client has "gone away", i.e. crashed and needs to recover. I don't believe a timeout would be useful since a client could be dormant for long periods of time while an experiment possibly runs for days (or longer?).
A way to reconnect a client that had started an experiment or been disconnected, would be helpful. I imagine the need to reconnect and "catch up" with a running experiment where it is, if possible as well.
Other possible things:
Just jotting down some ideas in a place that can be tracked.