Loading csp-lmc-common/Pipfile +7 −0 Original line number Diff line number Diff line Loading @@ -3,11 +3,18 @@ url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [[source]] url = "https://nexus.engageska-portugal.pt/repository/pypi/simple" verify_ssl = true name = "nexus-hosted" [packages] # numpy and pytango versions must match those in the ska-python-builder image, # otherwise pytango will be recompiled. numpy = "==1.17.2" pytango = "==9.3.1" lmcbaseclasses= ">=0.4.0" # itango is added to make it easier to exercise the device in a CLI session, # but it's not mandatory. If you remove itango, you should also remove the # 'RUN ipython profile create' line from Dockerfile. Loading csp-lmc-common/Pipfile.lock +227 −210 File changed.Preview size limit exceeded, changes collapsed. Show changes csp-lmc-common/csp_lmc_common/CspBeamCapabilityBaseClass.py +2 −3 Original line number Diff line number Diff line Loading @@ -13,13 +13,12 @@ Parent class of the CSP Beams Capability """ # PROTECTED REGION ID (CspBeamCapabilityBase.standardlibray_import) ENABLED START # # Python standard library from future.utils import with_metaclass # PROTECTED REGION END# //CspBeamCapabilityBase.standardlibray_import # PyTango imports import tango from tango import DebugIt from tango.server import run from tango.server import Device, DeviceMeta from tango.server import Device from tango.server import attribute, command from tango.server import device_property from tango import AttrQuality, DispLevel, DevState Loading @@ -32,7 +31,7 @@ from skabase.SKACapability import SKACapability __all__ = ["CspBeamCapabilityBaseClass", "main"] class CspBeamCapabilityBaseClass(with_metaclass(DeviceMeta, SKACapability)): class CspBeamCapabilityBaseClass(SKACapability): """ Parent class of the CSP Beams Capability Loading csp-lmc-common/csp_lmc_common/CspCapabilityMonitor.py +4 −8 Original line number Diff line number Diff line Loading @@ -18,30 +18,26 @@ VlbiBeams, Receptors/Stations. from __future__ import absolute_import import sys import os from future.utils import with_metaclass from collections import defaultdict # PROTECTED REGION END# //CspMaster.standardlibray_import # tango imports import tango from tango import DebugIt from tango.server import run from tango.server import Device, DeviceMeta from tango.server import attribute, command from tango.server import device_property from tango import AttrQuality, DispLevel, DevState from tango import AttrWriteType, PipeWriteType # Additional import # PROTECTED REGION ID(CspCapabilityMonitor.additionnal_import) ENABLED START # from skabase.SKABaseDevice import SKABaseDevice from skabase.auxiliary import utils from csp_lmc_common.utils.cspcommons import HealthState, AdminMode, ObsState from skabase.control_model import HealthState, AdminMode, ObsState, ObsMode # PROTECTED REGION END # // CspCapabilityMonitor.additionnal_import __all__ = ["CspCapabilityMonitor", "main"] class CspCapabilityMonitor(with_metaclass(DeviceMeta,SKABaseDevice)): class CspCapabilityMonitor(SKABaseDevice): """ CSP.LMC Common Class designed to monitoring the SCM attributes of the CSP Capabilities: SearchBeams, TimingBeams, Loading Loading @@ -138,7 +134,7 @@ class CspCapabilityMonitor(with_metaclass(DeviceMeta,SKABaseDevice)): self._unassigned_ids = [0]* len(self._capability_fqdn) self._capability_state = {fqdn:tango.DevState.DISABLE for fqdn in self._capability_fqdn} self._capability_health_state = {fqdn:HealthState.UNKNOWN for fqdn in self._capability_fqdn} self._capability_admin_mode = {fqdn:AdminMode.NOTFITTED for fqdn in self._capability_fqdn} self._capability_admin_mode = {fqdn:AdminMode.NOT_FITTED for fqdn in self._capability_fqdn} self._capability_obs_state = {fqdn:ObsState.IDLE for fqdn in self._capability_fqdn} self._capability_membership = {fqdn:0 for fqdn in self._capability_fqdn} self._csp_tango_db = 0 Loading Loading @@ -242,7 +238,7 @@ class CspCapabilityMonitor(with_metaclass(DeviceMeta,SKABaseDevice)): if item.reason == "API_EventTimeout": self._capability_state[dev_name] = tango.DevState.DISABLED self._capability_health_state[dev_name] = HealthState.UNKNOWN self._capability_admin_mode[dev_name] = AdminMode.NOTFITTED self._capability_admin_mode[dev_name] = AdminMode.NOT_FITTED self._capability_health_state[dev_name] = ObsState.IDLE log_msg = item.reason + ": on attribute " + str(evt.attr_name) print(log_msg) Loading csp-lmc-common/csp_lmc_common/CspMaster.py +8 −8 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ CSP.LMC Common Class for the CSPMaster TANGO Device. # Python standard library import sys import os from future.utils import with_metaclass from collections import defaultdict import threading import time Loading @@ -26,7 +25,7 @@ import time import tango from tango import DebugIt from tango.server import run from tango.server import Device, DeviceMeta from tango.server import Device from tango.server import attribute, command from tango.server import device_property from tango import AttrQuality, EventType, DevState Loading @@ -36,14 +35,15 @@ from tango import AttrWriteType, DeviceProxy # from skabase.SKAMaster import SKAMaster from skabase.auxiliary import utils from skabase.control_model import HealthState, AdminMode, ObsState from .utils.decorators import AdminModeCheck, CmdInputArgsCheck from .utils.cspcommons import HealthState, AdminMode, ObsState, CmdExecState from .utils.cspcommons import CmdExecState from . import release # PROTECTED REGION END# //CspMaster.additional_import __all__ = ["CspMaster", "main"] class CspMaster(with_metaclass(DeviceMeta, SKAMaster)): class CspMaster(SKAMaster): """ CSP.LMC Common Class for the CSPMaster TANGO Device. Loading Loading @@ -288,7 +288,7 @@ class CspMaster(with_metaclass(DeviceMeta, SKAMaster)): """ self._update_csp_health_state() self.set_state(self._se_state[self.CspCbf]) if self._admin_mode in [AdminMode.OFFLINE, AdminMode.NOTFITTED, AdminMode.RESERVED]: if self._admin_mode in [AdminMode.OFFLINE, AdminMode.NOT_FITTED, AdminMode.RESERVED]: self.set_state(tango.DevState.DISABLE) def _update_csp_health_state(self): Loading Loading @@ -600,7 +600,7 @@ class CspMaster(with_metaclass(DeviceMeta, SKAMaster)): """ # check if the device is exported in the TANGO DB (that is the server is running) if value not in [AdminMode.ONLINE, AdminMode.MAINTENANCE, AdminMode.OFFLINE, AdminMode.NOTFITTED, AdminMode.RESERVED]: AdminMode.NOT_FITTED, AdminMode.RESERVED]: msg = "Invalid {} value for adminMode attribute".format(value) tango.Except.throw_exception("Command failed", msg, Loading Loading @@ -1176,7 +1176,7 @@ class CspMaster(with_metaclass(DeviceMeta, SKAMaster)): # return the State value of the Mid Cbf sub-element. self._se_state = defaultdict(lambda: tango.DevState.DISABLE) self._se_health_state = defaultdict(lambda: HealthState.UNKNOWN) self._se_admin_mode = defaultdict(lambda: AdminMode.NOTFITTED) self._se_admin_mode = defaultdict(lambda: AdminMode.NOT_FITTED) # build a dictionary with the (attr_name, value) of the memorized attributes # use memorized atrtibute if present, otherwise the default one Loading Loading @@ -1431,7 +1431,7 @@ class CspMaster(with_metaclass(DeviceMeta, SKAMaster)): #TODO: what happens if one sub-element fails? # add check on timeout command execution self._admin_mode = value if self._admin_mode in [AdminMode.OFFLINE, AdminMode.NOTFITTED, AdminMode.RESERVED]: if self._admin_mode in [AdminMode.OFFLINE, AdminMode.NOT_FITTED, AdminMode.RESERVED]: self.set_state(tango.DevState.DISABLE) else: if self.get_state() == tango.DevState.DISABLE: Loading Loading
csp-lmc-common/Pipfile +7 −0 Original line number Diff line number Diff line Loading @@ -3,11 +3,18 @@ url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [[source]] url = "https://nexus.engageska-portugal.pt/repository/pypi/simple" verify_ssl = true name = "nexus-hosted" [packages] # numpy and pytango versions must match those in the ska-python-builder image, # otherwise pytango will be recompiled. numpy = "==1.17.2" pytango = "==9.3.1" lmcbaseclasses= ">=0.4.0" # itango is added to make it easier to exercise the device in a CLI session, # but it's not mandatory. If you remove itango, you should also remove the # 'RUN ipython profile create' line from Dockerfile. Loading
csp-lmc-common/Pipfile.lock +227 −210 File changed.Preview size limit exceeded, changes collapsed. Show changes
csp-lmc-common/csp_lmc_common/CspBeamCapabilityBaseClass.py +2 −3 Original line number Diff line number Diff line Loading @@ -13,13 +13,12 @@ Parent class of the CSP Beams Capability """ # PROTECTED REGION ID (CspBeamCapabilityBase.standardlibray_import) ENABLED START # # Python standard library from future.utils import with_metaclass # PROTECTED REGION END# //CspBeamCapabilityBase.standardlibray_import # PyTango imports import tango from tango import DebugIt from tango.server import run from tango.server import Device, DeviceMeta from tango.server import Device from tango.server import attribute, command from tango.server import device_property from tango import AttrQuality, DispLevel, DevState Loading @@ -32,7 +31,7 @@ from skabase.SKACapability import SKACapability __all__ = ["CspBeamCapabilityBaseClass", "main"] class CspBeamCapabilityBaseClass(with_metaclass(DeviceMeta, SKACapability)): class CspBeamCapabilityBaseClass(SKACapability): """ Parent class of the CSP Beams Capability Loading
csp-lmc-common/csp_lmc_common/CspCapabilityMonitor.py +4 −8 Original line number Diff line number Diff line Loading @@ -18,30 +18,26 @@ VlbiBeams, Receptors/Stations. from __future__ import absolute_import import sys import os from future.utils import with_metaclass from collections import defaultdict # PROTECTED REGION END# //CspMaster.standardlibray_import # tango imports import tango from tango import DebugIt from tango.server import run from tango.server import Device, DeviceMeta from tango.server import attribute, command from tango.server import device_property from tango import AttrQuality, DispLevel, DevState from tango import AttrWriteType, PipeWriteType # Additional import # PROTECTED REGION ID(CspCapabilityMonitor.additionnal_import) ENABLED START # from skabase.SKABaseDevice import SKABaseDevice from skabase.auxiliary import utils from csp_lmc_common.utils.cspcommons import HealthState, AdminMode, ObsState from skabase.control_model import HealthState, AdminMode, ObsState, ObsMode # PROTECTED REGION END # // CspCapabilityMonitor.additionnal_import __all__ = ["CspCapabilityMonitor", "main"] class CspCapabilityMonitor(with_metaclass(DeviceMeta,SKABaseDevice)): class CspCapabilityMonitor(SKABaseDevice): """ CSP.LMC Common Class designed to monitoring the SCM attributes of the CSP Capabilities: SearchBeams, TimingBeams, Loading Loading @@ -138,7 +134,7 @@ class CspCapabilityMonitor(with_metaclass(DeviceMeta,SKABaseDevice)): self._unassigned_ids = [0]* len(self._capability_fqdn) self._capability_state = {fqdn:tango.DevState.DISABLE for fqdn in self._capability_fqdn} self._capability_health_state = {fqdn:HealthState.UNKNOWN for fqdn in self._capability_fqdn} self._capability_admin_mode = {fqdn:AdminMode.NOTFITTED for fqdn in self._capability_fqdn} self._capability_admin_mode = {fqdn:AdminMode.NOT_FITTED for fqdn in self._capability_fqdn} self._capability_obs_state = {fqdn:ObsState.IDLE for fqdn in self._capability_fqdn} self._capability_membership = {fqdn:0 for fqdn in self._capability_fqdn} self._csp_tango_db = 0 Loading Loading @@ -242,7 +238,7 @@ class CspCapabilityMonitor(with_metaclass(DeviceMeta,SKABaseDevice)): if item.reason == "API_EventTimeout": self._capability_state[dev_name] = tango.DevState.DISABLED self._capability_health_state[dev_name] = HealthState.UNKNOWN self._capability_admin_mode[dev_name] = AdminMode.NOTFITTED self._capability_admin_mode[dev_name] = AdminMode.NOT_FITTED self._capability_health_state[dev_name] = ObsState.IDLE log_msg = item.reason + ": on attribute " + str(evt.attr_name) print(log_msg) Loading
csp-lmc-common/csp_lmc_common/CspMaster.py +8 −8 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ CSP.LMC Common Class for the CSPMaster TANGO Device. # Python standard library import sys import os from future.utils import with_metaclass from collections import defaultdict import threading import time Loading @@ -26,7 +25,7 @@ import time import tango from tango import DebugIt from tango.server import run from tango.server import Device, DeviceMeta from tango.server import Device from tango.server import attribute, command from tango.server import device_property from tango import AttrQuality, EventType, DevState Loading @@ -36,14 +35,15 @@ from tango import AttrWriteType, DeviceProxy # from skabase.SKAMaster import SKAMaster from skabase.auxiliary import utils from skabase.control_model import HealthState, AdminMode, ObsState from .utils.decorators import AdminModeCheck, CmdInputArgsCheck from .utils.cspcommons import HealthState, AdminMode, ObsState, CmdExecState from .utils.cspcommons import CmdExecState from . import release # PROTECTED REGION END# //CspMaster.additional_import __all__ = ["CspMaster", "main"] class CspMaster(with_metaclass(DeviceMeta, SKAMaster)): class CspMaster(SKAMaster): """ CSP.LMC Common Class for the CSPMaster TANGO Device. Loading Loading @@ -288,7 +288,7 @@ class CspMaster(with_metaclass(DeviceMeta, SKAMaster)): """ self._update_csp_health_state() self.set_state(self._se_state[self.CspCbf]) if self._admin_mode in [AdminMode.OFFLINE, AdminMode.NOTFITTED, AdminMode.RESERVED]: if self._admin_mode in [AdminMode.OFFLINE, AdminMode.NOT_FITTED, AdminMode.RESERVED]: self.set_state(tango.DevState.DISABLE) def _update_csp_health_state(self): Loading Loading @@ -600,7 +600,7 @@ class CspMaster(with_metaclass(DeviceMeta, SKAMaster)): """ # check if the device is exported in the TANGO DB (that is the server is running) if value not in [AdminMode.ONLINE, AdminMode.MAINTENANCE, AdminMode.OFFLINE, AdminMode.NOTFITTED, AdminMode.RESERVED]: AdminMode.NOT_FITTED, AdminMode.RESERVED]: msg = "Invalid {} value for adminMode attribute".format(value) tango.Except.throw_exception("Command failed", msg, Loading Loading @@ -1176,7 +1176,7 @@ class CspMaster(with_metaclass(DeviceMeta, SKAMaster)): # return the State value of the Mid Cbf sub-element. self._se_state = defaultdict(lambda: tango.DevState.DISABLE) self._se_health_state = defaultdict(lambda: HealthState.UNKNOWN) self._se_admin_mode = defaultdict(lambda: AdminMode.NOTFITTED) self._se_admin_mode = defaultdict(lambda: AdminMode.NOT_FITTED) # build a dictionary with the (attr_name, value) of the memorized attributes # use memorized atrtibute if present, otherwise the default one Loading Loading @@ -1431,7 +1431,7 @@ class CspMaster(with_metaclass(DeviceMeta, SKAMaster)): #TODO: what happens if one sub-element fails? # add check on timeout command execution self._admin_mode = value if self._admin_mode in [AdminMode.OFFLINE, AdminMode.NOTFITTED, AdminMode.RESERVED]: if self._admin_mode in [AdminMode.OFFLINE, AdminMode.NOT_FITTED, AdminMode.RESERVED]: self.set_state(tango.DevState.DISABLE) else: if self.get_state() == tango.DevState.DISABLE: Loading