diff --git a/docker-compose/jupyter-lab/requirements.txt b/docker-compose/jupyter-lab/requirements.txt index dc643dea07a3134cd12d25a38f50335f9cf26c85..c3e82e317c170d8c79d5e14efc8aff8894a87aef 100644 --- a/docker-compose/jupyter-lab/requirements.txt +++ b/docker-compose/jupyter-lab/requirements.txt @@ -1,3 +1,4 @@ +# Jupyter & enhancements ipython >=7.27.0,!=7.28.0 # BSD jupyter jupyterlab >=3,<4 # until https://github.com/jupyterlab/jupyterlab-git/issues/1245 @@ -5,28 +6,32 @@ jupyterlab_h5web[full] # MIT jupyterlab-git jupyterlab-skip-traceback ipykernel -jupyter_bokeh -matplotlib -jupyterplot nbconvert notebook-as-pdf PyPDF2==2.12.1 # until https://github.com/betatim/notebook-as-pdf/issues/40 hits a notebook-as-pdf release -python-logstash-async -PyMySQL[rsa] -psycopg2-binary >= 2.9.2 #LGPL + +# low-level access to station components +opcua +asyncua >= 0.9.90 # LGPLv3 pyvisa pyvisa-py -opcua + +# antenna locations lofarantpos >= 0.5.0 # Apache 2 python-geohash >= 0.8.5 # Apache 2 / MIT -asyncua >= 0.9.90 # LGPLv3 - -numpy -scipy +etrs-itrs@git+https://github.com/brentjens/etrs-itrs # Apache 2 -astropy +# plotting +matplotlib +jupyter_bokeh +jupyterplot +# useful LOFAR software pabeam@git+https://git.astron.nl/mevius/pabeam # Apache2 lofar-station-client@git+https://git.astron.nl/lofar2.0/lofar-station-client # Apache2 attributewrapper@git+https://git.astron.nl/lofar2.0/attributewrapper # Apache2 -etrs-itrs@git+https://github.com/brentjens/etrs-itrs # Apache 2 + +# user packages +numpy +scipy +astropy diff --git a/tangostationcontrol/tangostationcontrol/devices/base_device_classes/power_hierarchy.py b/tangostationcontrol/tangostationcontrol/devices/base_device_classes/power_hierarchy.py index bc1810c30cae64824962ecb41485d36ac5ae57aa..2fb996242bde7eb0c97dd50ff2d0e3cf41733a40 100644 --- a/tangostationcontrol/tangostationcontrol/devices/base_device_classes/power_hierarchy.py +++ b/tangostationcontrol/tangostationcontrol/devices/base_device_classes/power_hierarchy.py @@ -41,9 +41,6 @@ class PowerHierarchyDevice(AbstractHierarchyDevice): def _boot_device(self, device: DeviceProxy): """Default sequence of device booting operations""" - if device.state() == DevState.ON: - logger.info(f"Booting {device}: Succesful: It's already ON?") - return logger.info(f"Booting {device}: off()") device.off() diff --git a/tangostationcontrol/tangostationcontrol/devices/station_manager.py b/tangostationcontrol/tangostationcontrol/devices/station_manager.py index 987d7ea247255f05f6c5ef73153b88478bb3590e..dc5d6c3f2cb3aa2432903e04bcdf7c80cd787da7 100644 --- a/tangostationcontrol/tangostationcontrol/devices/station_manager.py +++ b/tangostationcontrol/tangostationcontrol/devices/station_manager.py @@ -195,6 +195,9 @@ class StationManager(LOFARDevice): Switch the station into OFF state. It can only be executed from state HIBERNATE. """ + if self.station_state == StationState.OFF: + return + if not self._is_transition_allowed(StationState.OFF): raise Exception(f"Station did not transition to {StationState.OFF.name}") @@ -214,6 +217,9 @@ class StationManager(LOFARDevice): Switch the station into HIBERNATE state. It can only be executed from either state OFF or STANDBY. """ + if self.station_state == StationState.HIBERNATE: + return + if not self._is_transition_allowed(StationState.HIBERNATE): raise Exception( f"Station did not transition to {StationState.HIBERNATE.name}" @@ -247,6 +253,9 @@ class StationManager(LOFARDevice): Switch the station into STANDBY state. It can only be executed from either state HIBERNATE or ON. """ + if self.station_state == StationState.STANDBY: + return + if not self._is_transition_allowed(StationState.STANDBY): raise Exception( f"Station did not transition to {StationState.STANDBY.name}" @@ -278,6 +287,9 @@ class StationManager(LOFARDevice): Switch the station into ON state. It can only be executed from state STANDBY. """ + if self.station_state == StationState.ON: + return + if not self._is_transition_allowed(StationState.ON): raise Exception(f"Station did not transition to {StationState.ON.name}")