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

L2SS-470: Do not initialise hardware when booting simulators.

parent 9f49efa8
No related branches found
No related tags found
1 merge request!176L2SS-470: Fix boot
{ {
"servers": { "servers": {
"boot": {
"STAT": {
"Boot": {
"STAT/Boot/1": {
"properties": {
"Initialise_Hardware": [
"True"
]
}
}
}
}
},
"APSCT": { "APSCT": {
"STAT": { "STAT": {
"APSCT": { "APSCT": {
......
{ {
"servers": { "servers": {
"boot": {
"STAT": {
"Boot": {
"STAT/Boot/1": {
"properties": {
"Initialise_Hardware": [
"True"
]
}
}
}
}
},
"RECV": { "RECV": {
"STAT": { "STAT": {
"RECV": { "RECV": {
......
{ {
"servers": { "servers": {
"boot": {
"STAT": {
"Boot": {
"STAT/Boot/1": {
"properties": {
"Initialise_Hardware": [
"False"
]
}
}
}
}
},
"APSCT": { "APSCT": {
"STAT": { "STAT": {
"APSCT": { "APSCT": {
......
...@@ -49,8 +49,9 @@ class DevicesInitialiser(object): ...@@ -49,8 +49,9 @@ class DevicesInitialiser(object):
the start() method, and progress can be followed by inspecting the the start() method, and progress can be followed by inspecting the
members progress (0-100), status (string), and is_running() (bool). members progress (0-100), status (string), and is_running() (bool).
""" """
def __init__(self, device_names, ignore_unavailable_devices=True, proxy_timeout=10.0): def __init__(self, device_names, ignore_unavailable_devices=True, initialise_hardware=True, proxy_timeout=10.0):
self.ignore_unavailable_devices = ignore_unavailable_devices self.ignore_unavailable_devices = ignore_unavailable_devices
self.initialise_hardware = initialise_hardware
self.device_names = device_names self.device_names = device_names
self.proxy_timeout = proxy_timeout self.proxy_timeout = proxy_timeout
...@@ -207,6 +208,7 @@ class DevicesInitialiser(object): ...@@ -207,6 +208,7 @@ class DevicesInitialiser(object):
self.set_status(f"[restarting {device_name}] Setting defaults.") self.set_status(f"[restarting {device_name}] Setting defaults.")
proxy.set_defaults() proxy.set_defaults()
if self.initialise_hardware:
self.set_status(f"[restarting {device_name}] Initialising hardware.") self.set_status(f"[restarting {device_name}] Initialising hardware.")
proxy.initialise_hardware() proxy.initialise_hardware()
...@@ -230,6 +232,13 @@ class Boot(lofar_device): ...@@ -230,6 +232,13 @@ class Boot(lofar_device):
default_value=10.0, default_value=10.0,
) )
# Initialise the hardware when initialising a station. Can end badly when using simulators.
Initialise_Hardware = device_property(
dtype='DevBoolean',
mandatory=False,
default_value=True,
)
# Which devices to initialise, and in which order # Which devices to initialise, and in which order
Device_Names = device_property( Device_Names = device_property(
dtype='DevVarStringArray', dtype='DevVarStringArray',
...@@ -291,7 +300,7 @@ class Boot(lofar_device): ...@@ -291,7 +300,7 @@ class Boot(lofar_device):
@log_exceptions() @log_exceptions()
def configure_for_initialise(self): def configure_for_initialise(self):
# create an initialiser object so we can query it even before starting the (first) initialisation # create an initialiser object so we can query it even before starting the (first) initialisation
self.initialiser = DevicesInitialiser(self.Device_Names, self.Ignore_Unavailable_Devices, self.DeviceProxy_Time_Out) self.initialiser = DevicesInitialiser(self.Device_Names, self.Ignore_Unavailable_Devices, self.Initialise_Hardware, self.DeviceProxy_Time_Out)
@command() @command()
@DebugIt() @DebugIt()
...@@ -322,7 +331,7 @@ class Boot(lofar_device): ...@@ -322,7 +331,7 @@ class Boot(lofar_device):
pass pass
# start new initialisation attempt # start new initialisation attempt
self.initialiser = DevicesInitialiser(self.Device_Names, self.Ignore_Unavailable_Devices, self.DeviceProxy_Time_Out) self.initialiser = DevicesInitialiser(self.Device_Names, self.Ignore_Unavailable_Devices, self.Initialise_Hardware, self.DeviceProxy_Time_Out)
self.initialiser.start() self.initialiser.start()
@command() @command()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment