diff --git a/tangostationcontrol/tangostationcontrol/clients/statistics/client.py b/tangostationcontrol/tangostationcontrol/clients/statistics/client.py index a774e2a56fc74a0e0310ba7ce5e42484e6ad6219..8a99992ac699f2fd3a38db7dfa19662f808d44c3 100644 --- a/tangostationcontrol/tangostationcontrol/clients/statistics/client.py +++ b/tangostationcontrol/tangostationcontrol/clients/statistics/client.py @@ -15,7 +15,6 @@ from tangostationcontrol.clients.comms_client import AsyncCommClient from tangostationcontrol.clients.tcp_replicator import TCPReplicator from tangostationcontrol.clients.udp_receiver import UDPReceiver from tangostationcontrol.clients.statistics.consumer import StatisticsConsumer -from tangostationcontrol.common.constants import constants logger = logging.getLogger() diff --git a/tangostationcontrol/tangostationcontrol/common/constants.py b/tangostationcontrol/tangostationcontrol/common/constants.py index 001bb089d9f9d7a7a11f2cfbea82b83e521001fd..2fcd3c3143cee76773e770a2ea8af6044be9632b 100644 --- a/tangostationcontrol/tangostationcontrol/common/constants.py +++ b/tangostationcontrol/tangostationcontrol/common/constants.py @@ -1,3 +1,4 @@ +from tangostationcontrol.common.baselines import nr_baselines class constants: @@ -53,7 +54,6 @@ class constants: CLK_200_MHZ = 200_000_000 CLK_160_MHZ = 160_000_000 - # Maximum number of subbands for which we collect XSTs simultaneously MAX_PARALLEL_SUBBANDS = 8 # Expected block for XST's @@ -62,7 +62,8 @@ class constants: VALUES_PER_COMPLEX = 2 # Max blocks for the BST statistics BST_MAX_BLOCKS = 2 - + # Expected number of blocks: enough to cover all baselines without the conjugates (that is, the top-left triangle of the matrix). + MAX_BLOCKS = nr_baselines(MAX_INPUTS // BLOCK_LENGTH) # UNB2 constants # number of uniboards in a subrack diff --git a/tangostationcontrol/tangostationcontrol/devices/boot.py b/tangostationcontrol/tangostationcontrol/devices/boot.py index 2f44875c6538015e9e92b3bc6d0220b36d5ecb60..6e40c0446ecb2aacde464bae7650c511c6409c0b 100644 --- a/tangostationcontrol/tangostationcontrol/devices/boot.py +++ b/tangostationcontrol/tangostationcontrol/devices/boot.py @@ -27,7 +27,6 @@ from tangostationcontrol.devices.device_decorators import only_in_states from tangostationcontrol.common.entrypoint import entry from tangostationcontrol.common.lofar_logging import device_logging_to_python, log_exceptions from tangostationcontrol.common.states import OPERATIONAL_STATES -from tangostationcontrol.common.constants import constants from tangostationcontrol.devices.lofar_device import lofar_device import logging diff --git a/tangostationcontrol/tangostationcontrol/devices/sdp/xst.py b/tangostationcontrol/tangostationcontrol/devices/sdp/xst.py index 42ead3ecf56a7965256c70eeeed92660b4c3f606..89d1722281111e6a83386e8f2e37a1d9ab539b79 100644 --- a/tangostationcontrol/tangostationcontrol/devices/sdp/xst.py +++ b/tangostationcontrol/tangostationcontrol/devices/sdp/xst.py @@ -153,7 +153,7 @@ class XST(Statistics): # number of packets with invalid payloads nof_payload_errors_R = attribute_wrapper(comms_id=StatisticsClient, comms_annotation={"type": "statistics", "parameter": "nof_payload_errors"}, dims=(constants.N_pn,), datatype=numpy.uint64) # latest XSTs - xst_blocks_R = attribute_wrapper(comms_id=StatisticsClient, comms_annotation={"type": "statistics", "parameter": "xst_blocks", "reshape": True}, dims=(constants.MAX_PARALLEL_SUBBANDS, XSTCollector.MAX_BLOCKS, constants.BLOCK_LENGTH, constants.BLOCK_LENGTH, constants.VALUES_PER_COMPLEX), datatype=numpy.int64) + xst_blocks_R = attribute_wrapper(comms_id=StatisticsClient, comms_annotation={"type": "statistics", "parameter": "xst_blocks", "reshape": True}, dims=(constants.MAX_PARALLEL_SUBBANDS, constants.MAX_BLOCKS, constants.BLOCK_LENGTH, constants.BLOCK_LENGTH, constants.VALUES_PER_COMPLEX), datatype=numpy.int64) # whether the values in the block are conjugated and transposed xst_conjugated_R = attribute_wrapper(comms_id=StatisticsClient, comms_annotation={"type": "statistics", "parameter": "xst_conjugated", "reshape": True}, dims=(constants.MAX_PARALLEL_SUBBANDS, XSTCollector.MAX_BLOCKS), datatype=bool) # reported timestamp for each subband in the latest XSTs