Skip to content
Snippets Groups Projects
Commit 2a95466c authored by Jan David Mol's avatar Jan David Mol
Browse files

Merge branch 'station-boot-patches' into 'master'

Station boot patches

See merge request !722
parents fab3232f 704affb4
No related branches found
No related tags found
1 merge request!722Station boot patches
......@@ -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",
......
......@@ -476,7 +476,7 @@
"UNB2": {
"STAT": {
"UNB2": {
"STAT/UNB2/L0": {
"STAT/UNB2/L1": {
"properties": {
"Power_Children": [
"STAT/SDPFirmware/LBA"
......
......@@ -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(
......
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment