slaclab / lcls-tools

Python tools for LCLS: post processing data, PV handling, pulling archive settings, etc.
Apache License 2.0
2 stars 20 forks source link

Only connect to device PVs on use #174

Open nneveu opened 1 month ago

nneveu commented 1 month ago

Is your feature request related to a problem? Please describe. Taking from discussion on PR#144: When the device objects are created for an area/beampath, there is an attempt to connect to the PVs on creation. This can cause tests and code under development to hang when offline. On start up of applications with many PVs, this causes a slow down.

Describe the solution you'd like It could be a potential feature to only connect on use and to periodically poll the connection status of the PV object to ensure the user is warned when a PV becomes disconnected from the controls network. Robust warning/errors should be built in to notify users when PVs are disconnected or not available.

Describe alternatives you've considered If simulacrum were fully developed, we could avoid hangs with 'fake' PVs.

Additional context Timeline for simulacrum development is unclear.

nneveu commented 1 month ago

Add class variable that flags connect on PV creation or not. i.e. in device class. Can use before and after validators to do this? Then when an area or beam line is created not all PVs are connected.