diff --git a/CDB/stations/DTS_Outside_ConfigDb.json b/CDB/stations/DTS_Outside_ConfigDb.json index 6f051755943d69ee16de650a16d86cdad6e2ebbc..96b58936feb2ca06b0f84a6c099603a968f84496 100644 --- a/CDB/stations/DTS_Outside_ConfigDb.json +++ b/CDB/stations/DTS_Outside_ConfigDb.json @@ -18,24 +18,24 @@ "Initialise_Hardware": [ "True" ], - "Device_Names" : [ + "Device_Names": [ "STAT/Docker/1", - "STAT/PSOC/1", - "STAT/PCON/1", - "STAT/APSPU/1", - "STAT/APSCT/1", - "STAT/RECV/1", - "STAT/UNB2/1", - "STAT/SDP/1", - "STAT/BST/1", - "STAT/SST/1", - "STAT/XST/1", - "STAT/Beamlet/1", - "STAT/AntennaField/1", - "STAT/TileBeam/2", - "STAT/DigitalBeam/1", - "STAT/TemperatureManager/1" - ] + "STAT/PSOC/1", + "STAT/PCON/1", + "STAT/APSPU/1", + "STAT/APSCT/1", + "STAT/RECV/1", + "STAT/UNB2/1", + "STAT/SDP/1", + "STAT/BST/1", + "STAT/SST/1", + "STAT/XST/1", + "STAT/Beamlet/1", + "STAT/AntennaField/1", + "STAT/TileBeam/2", + "STAT/DigitalBeam/1", + "STAT/TemperatureManager/1" + ] } } } @@ -92,19 +92,6 @@ } } }, - "DigitalBeam": { - "STAT": { - "DigitalBeam": { - "STAT/DigitalBeam/1": { - "properties": { - "Tracking_enabled_RW_default": [ - "False" - ] - } - } - } - } - }, "Beamlet": { "STAT": { "Beamlet": { @@ -165,32 +152,39 @@ "AntennaField": { "STAT/AntennaField/2": { "properties": { - "RECV_devices": [ - "STAT/RECV/1" - ], + "RECV_devices": [ + "STAT/RECV/1" + ], + "Antenna_Names": [ + "C0", + "C1", + "C2", + "C3", + "C4" + ], "HBAT_Control_to_RECV_mapping": [ - "1", "27", - "0", "-1", - "0", "-1", - "1", "28", - "1", "29" - ], + "1","27", + "0","-1", + "0","-1", + "1","28", + "1","29" + ], "HBAT_Power_to_RECV_mapping": [ - "1", "24", - "0", "-1", - "0", "-1", - "1", "25", - "1", "26" - ], + "1","24", + "0","-1", + "0","-1", + "1","25", + "1","26" + ], "Antenna_Field_Reference_ETRS": [ - "3839371.416", "430339.901", "5057958.886" + "3839371.416","430339.901","5057958.886" ], "HBAT_reference_ETRS": [ - "3839371.416", "430339.901", "5057958.886", - "3839368.919", "430335.979", "5057961.1", - "3839365.645", "430339.299", "5057963.288", - "3839368.142", "430343.221", "5057961.074", - "3839374.094", "430299.513", "5057960.017" + "3839371.416","430339.901","5057958.886", + "3839368.919","430335.979","5057961.1", + "3839365.645","430339.299","5057963.288", + "3839368.142","430343.221","5057961.074", + "3839374.094","430299.513","5057960.017" ], "HBAT_PQR_rotation_angles_deg": [ "45.73", @@ -200,52 +194,65 @@ "54.40" ], "HBAT_PQR_to_ETRS_rotation_matrix": [ - "-0.11660087", "-0.79095632", "0.60065992", - " 0.99317077", "-0.09529842", "0.06730545", - " 0.00400627", " 0.60440575", "0.79666658" + "-0.11660087","-0.79095632","0.60065992", + " 0.99317077","-0.09529842","0.06730545", + " 0.00400627"," 0.60440575","0.79666658" ] } }, "STAT/AntennaField/1": { "properties": { - "RECV_devices": [ - "STAT/RECV/1" - ], + "RECV_devices": [ + "STAT/RECV/1" + ], + "Antenna_Names": [ + "LBA1", + "LBA2", + "LBA3", + "LBA4", + "LBA5", + "LBA6", + "LBA7", + "LBA8", + "LBA9" + ], "HBAT_Control_to_RECV_mapping": [ - "1", "1", - "1", "3", - "1", "5", - "1", "7", - "1", "9", - "1", "11", - "1", "13", - "1", "15", - "1", "17" - ], + "1","1", + "1","3", + "1","5", + "1","7", + "1","9", + "1","11", + "1","13", + "1","15", + "1","17" + ], "HBAT_Power_to_RECV_mapping": [ - "1", "1", - "1", "3", - "1", "5", - "1", "7", - "1", "9", - "1", "11", - "1", "13", - "1", "15", - "1", "17" - ], + "1","1", + "1","3", + "1","5", + "1","7", + "1","9", + "1","11", + "1","13", + "1","15", + "1","17" + ], "Antenna_Field_Reference_ETRS": [ - "3839358.189", "430354.482", "5057967.804" + "3839358.189", + "430354.482", + "5057967.804" ], "HBAT_reference_ETRS": [ - "3839358.189", "430354.482", "5057967.804", - "3839359.127", "430348.074", "5057967.607", - "3839360.084", "430341.872", "5057967.379", - "3839361.024", "430335.466", "5057967.180", - "3839361.721", "430329.482", "5057967.130", - "3839362.786", "430323.311", "5057966.818", - "3839363.705", "430317.204", "5057966.611", - "3839364.563", "430311.056", "5057966.454", - "3839365.497", "430304.996", "5057966.232" + "3839358.189","430354.482","5057967.804", + "3839359.127","430348.074","5057967.607", + "3839360.084","430341.872","5057967.379", + "3839361.024","430335.466","5057967.180", + "3839361.721","430329.482","5057967.130", + "3839362.786","430323.311","5057966.818", + "3839363.705","430317.204","5057966.611", + "3839364.563","430311.056","5057966.454", + "3839365.497","430304.996","5057966.232" ] } } @@ -263,7 +270,7 @@ "Input_to_Antenna_Mapping": [ "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", - "0", "3", "4", "-1", "-1", "-1", + "0", "3", "4", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", @@ -286,8 +293,8 @@ "STAT/AntennaField/1" ], "Input_to_Antenna_Mapping": [ - "0", "1", "2", "3", "4", "5", - "6", "7", "8", "-1", "-1", "-1", + "0", "1", "2", "3", "4", "5", + "6", "7", "8", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", @@ -302,6 +309,9 @@ "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1" + ], + "Tracking_enabled_RW_default": [ + "False" ] } } @@ -332,9 +342,9 @@ "SDP": { "STAT/SDP/1": { "properties": { - "AntennaType" : [ - "LBA" - ], + "AntennaType": [ + "LBA" + ], "OPC_Server_Name": [ "10.99.0.250" ], @@ -555,7 +565,9 @@ "PSOC": { "STAT/PSOC/1": { "properties": { - "SNMP_host": ["10.87.2.145"], + "SNMP_host": [ + "10.87.2.145" + ], "PSOC_sockets": [ "ccd_socket", "sdptr0_socket", @@ -576,7 +588,9 @@ "PCON": { "STAT/PCON/1": { "properties": { - "SNMP_host": ["10.151.225.5"] + "SNMP_host": [ + "10.151.225.5" + ] } } } diff --git a/tangostationcontrol/tangostationcontrol/devices/antennafield.py b/tangostationcontrol/tangostationcontrol/devices/antennafield.py index 4c39a6bdea1db44f52c87f2fd3a4e6add71e3d99..c7d43b9226de469e877cf6bfdc4c728a8afcfd0e 100644 --- a/tangostationcontrol/tangostationcontrol/devices/antennafield.py +++ b/tangostationcontrol/tangostationcontrol/devices/antennafield.py @@ -85,6 +85,14 @@ class AntennaField(lofar_device): calculated, as well as the geohash. """ + # ----- Antenna names + + Antenna_Names = device_property( + doc="Name of each antenna", + dtype='DevVarStringArray', + mandatory=False + ) + # ----- Antenna states Antenna_Quality = device_property( @@ -195,6 +203,8 @@ class AntennaField(lofar_device): default_value = [] ) + Antenna_Names_R = attribute(access=AttrWriteType.READ, + dtype=(str,), max_dim_x=MAX_NUMBER_OF_HBAT) Antenna_Quality_R = attribute(access=AttrWriteType.READ, dtype=(numpy.uint16,), max_dim_x=MAX_NUMBER_OF_HBAT) Antenna_Use_R = attribute(access=AttrWriteType.READ, @@ -247,6 +257,9 @@ class AntennaField(lofar_device): doc='Number of HBAT in this field', dtype=numpy.int32) + def read_Antenna_Names_R(self): + return self.Antenna_Names + def read_Antenna_Use_R(self): return self.Antenna_Use diff --git a/tangostationcontrol/tangostationcontrol/test/devices/test_antennafield_device.py b/tangostationcontrol/tangostationcontrol/test/devices/test_antennafield_device.py index 96eb83300bec3352b1c0572653f38bf96a2e77d9..c567f476b21f05aa1806b454092c5a1660849ade 100644 --- a/tangostationcontrol/tangostationcontrol/test/devices/test_antennafield_device.py +++ b/tangostationcontrol/tangostationcontrol/test/devices/test_antennafield_device.py @@ -389,3 +389,11 @@ class TestAntennafieldDevice(device_base.DeviceTestCase): antenna_properties = {'Antenna_Quality': antenna_qualities, 'Antenna_Use': antenna_use} with DeviceTestContext(antennafield.AntennaField, properties={**self.AT_PROPERTIES, **antenna_properties}, process=True) as proxy: numpy.testing.assert_equal(numpy.array([True] + [False] * 95), proxy.Antenna_Usage_Mask_R) + + def test_read_Antenna_Names(self): + """ Verify if Antenna_Names_R is correctly retrieved """ + antenna_names = ["C0","C1","C2","C3","C4"] + antenna_properties = {'Antenna_Names' : antenna_names} + with DeviceTestContext(antennafield.AntennaField, properties={**self.AT_PROPERTIES, **antenna_properties}, process=True) as proxy: + for i in range(len(antenna_names)): + self.assertTrue(proxy.Antenna_Names_R[i]==f"C{i}")