"""
The ska_oso_pdm.sb_definition.csp.lowcbf module defines
a Python representation of the LOW CBF configuration
"""
from typing import List, Optional
from ska_oso_pdm._shared import PdmObject, TimedeltaMs
__all__ = [
"LowCBFConfiguration",
"StationBeamConfiguration",
"StationBeamHost",
"StationBeamMac",
"StationBeamPort",
"StationConfiguration",
"VisConfiguration",
"VisFSPConfiguration",
"VisStationBeamConfiguration",
]
[docs]
class StationBeamHost(PdmObject):
"""
Class to hold the SDP channel & IP address for a station beam definition.
:param sdp_channel: SDP channel ID.
:param ip_addr: IP address of this channel
"""
sdp_channel: int
ip_addr: str
[docs]
class StationBeamMac(PdmObject):
"""
Class to hold SDP channel & server MAC for station beam definitions.
:param sdp_channel: SDP channel
:param server_mac: server MAC
"""
sdp_channel: int
server_mac: str
[docs]
class StationBeamPort(PdmObject):
"""
Class to hold SDP channel, UDP port and stride for station beam definitions.
:param sdp_channel: SDP channel number
:param udp_port: UDP port
:param stride: stride
"""
sdp_channel: int
udp_port: int
stride: int
[docs]
class VisStationBeamConfiguration(PdmObject):
"""
VisStationBeamConfiguration defines LOW CBF station beams from which to
calculate visibilities.
:param stn_beam_id: station beam ID
:param host: SDP channel and IP address
:param port: SDP channel, UDP port, and stride
:param mac: SDP channel and server MAC
:param integration_ms: milliseconds integration
"""
stn_beam_id: int
integration_ms: TimedeltaMs
host: List[StationBeamHost]
port: List[StationBeamPort]
mac: Optional[List[StationBeamMac]] = None
[docs]
class StationBeamConfiguration(PdmObject):
"""
StationBeamConfiguration defines the LOW.CBF station beam description.
:param stn_beam_id: Station beam ID
:param freq_ids: list of station beam frequency IDs
"""
stn_beam_id: int
freq_ids: List[int]
[docs]
class StationConfiguration(PdmObject):
"""
Class to hold LOW.CBF station configuration.
:param stns: The subarray stations of this StationConfiguration.
:param stn_beams: The station beam descriptions of this StationConfiguration.
"""
stns: List[List[int]]
stn_beams: List[StationBeamConfiguration]
[docs]
class VisFSPConfiguration(PdmObject):
"""
Class to hold the FSPs used for correlation.
:param function_mode: Function mode name
:param fsp_ids: List of integer FSP IDs
"""
function_mode: str
fsp_ids: List[int]
[docs]
class VisConfiguration(PdmObject):
"""
Class to hold the Visibility Configuration.
:param fsp: The VisFSPConfiguration of this VisConfiguration.
:param stn_beams: The StationBeamConfiguration of this VisConfiguration.
"""
fsp: VisFSPConfiguration
stn_beams: List[VisStationBeamConfiguration]
[docs]
class LowCBFConfiguration(PdmObject):
"""
Class to hold the LOW CBF configuration specification.
:param stations: Subarray Stations and station beam descriptions
:param vis: Visibility output descriptions
"""
stations: StationConfiguration
vis: VisConfiguration