diff --git a/CDB/stations/cs001.json b/CDB/stations/cs001.json index 9aa3a7ccd0646573131fbd0b1c955829e5489758..36e7806652952e23883874399685b0b83d89d41a 100644 --- a/CDB/stations/cs001.json +++ b/CDB/stations/cs001.json @@ -7,14 +7,14 @@ "properties": { "Power_Children": [ "STAT/EC/1", - "STAT/Configuration/1", - "STAT/Calibration/1", - "STAT/ObservationControl/1", "STAT/TemperatureManager/1", "STAT/Boot/1", "STAT/AntennaField/LBA", "STAT/AntennaField/HBA0", - "STAT/AntennaField/HBA1" + "STAT/AntennaField/HBA1", + "STAT/Calibration/1", + "STAT/ObservationControl/1", + "STAT/Configuration/1" ], "Control_Children": [ "STAT/EC/1", diff --git a/CDB/stations/lba.json b/CDB/stations/lba.json index d47ad077fc0be0c14d4b29952f3b8e7c9664a881..f0b37aed72a7d535ef4587c38580b3565a23a283 100644 --- a/CDB/stations/lba.json +++ b/CDB/stations/lba.json @@ -476,7 +476,7 @@ "UNB2": { "STAT": { "UNB2": { - "STAT/UNB2/L0": { + "STAT/UNB2/L1": { "properties": { "Power_Children": [ "STAT/SDPFirmware/LBA" diff --git a/tangostationcontrol/tangostationcontrol/devices/antennafield.py b/tangostationcontrol/tangostationcontrol/devices/antennafield.py index f195d15eb4785fc35ee34bf527c7ead63c0c769c..6b4d732c6b22954988d3271db3ddf875dd2ee73d 100644 --- a/tangostationcontrol/tangostationcontrol/devices/antennafield.py +++ b/tangostationcontrol/tangostationcontrol/devices/antennafield.py @@ -179,7 +179,7 @@ class AntennaField(LOFARDevice): doc="Whether to provide power to each antenna (False for noise sources)", dtype="DevVarBooleanArray", mandatory=False, - default_value=numpy.array([False] * MAX_ANTENNA), + default_value=numpy.array([True] * MAX_ANTENNA), ) Antenna_Cables = device_property( diff --git a/tangostationcontrol/tangostationcontrol/devices/sdp/firmware.py b/tangostationcontrol/tangostationcontrol/devices/sdp/firmware.py index 80ecd178b4a03f8de2c3522eaa747c1439c8246c..85874d37d663aca9fe664d4461199ed61c909fee 100644 --- a/tangostationcontrol/tangostationcontrol/devices/sdp/firmware.py +++ b/tangostationcontrol/tangostationcontrol/devices/sdp/firmware.py @@ -262,31 +262,29 @@ class SDPFirmware(OPCUADevice): # overloaded functions # -------- - def _power_hardware_on(self): - """Boot the SDP Firmware user image""" + def _boot_to_image(self, image_nr): # FPGAs that are actually reachable and we care about wait_for = ~( self.read_attribute("TR_fpga_communication_error_R") ) & self.read_attribute("TR_fpga_mask_R") # Order the correct firmare to be loaded - self.proxy.FPGA_boot_image_RW = [1] * N_pn + self.proxy.FPGA_boot_image_RW = [image_nr] * N_pn # Wait for the firmware to be loaded (ignoring masked out elements) self.wait_attribute( "FPGA_boot_image_R", lambda attr: ((attr == 1) | ~wait_for).all(), 60 ) + def _power_hardware_on(self): + """Boot the SDP Firmware user image""" + + self._boot_to_image(0) + def _power_hardware_off(self): """Use the SDP Firmware factory image""" - # Save actual mask values - TR_fpga_mask = self.proxy.TR_fpga_mask_RW - # Set the mask to all Trues - self.proxy.TR_fpga_mask_RW = [True] * N_pn - # Boot the boot image firmware - self.proxy.FPGA_boot_image_RW = [0] * N_pn - # Restore the mask - self.proxy.TR_fpga_mask_RW = TR_fpga_mask + + self._boot_to_image(1) # -------- # Commands