diff --git a/tangostationcontrol/tangostationcontrol/devices/beam.py b/tangostationcontrol/tangostationcontrol/devices/beam.py index ba86ec94a23b9f74526830c91465b5fcee474297..2662f596aa9f6228e5309df95c0d303a2b7426a8 100644 --- a/tangostationcontrol/tangostationcontrol/devices/beam.py +++ b/tangostationcontrol/tangostationcontrol/devices/beam.py @@ -36,11 +36,6 @@ class Beam(lofar_device): # ----------------- # Device Properties # ----------------- - HBAT_signal_input_delays = device_property( - dtype='DevVarFloatArray', - mandatory=False, - default_value = numpy.zeros((96,32), dtype=numpy.float64) - ) # ---------- # Attributes @@ -72,8 +67,10 @@ class Beam(lofar_device): self.recv_proxy = DeviceProxy("STAT/RECV/1") # Retrieve positions from RECV device - self.hbat_reference_itrf = self.recv_proxy.get_hbat_reference_itrf().reshape(96,3) - self.hbat_antenna_itrf = self.recv_proxy.get_hbat_antenna_itrf().reshape(96,16,3) + self.HBAT_reference_itrf = self.recv_proxy.get_hbat_reference_itrf().reshape(96,3) + self.HBAT_antenna_itrf = self.recv_proxy.get_hbat_antenna_itrf().reshape(96,16,3) + # Retrieve signal delays from RECV device + self.HBAT_signal_input_delays = self.recv_proxy.get_hbat_signal_input_delays().reshape(96,32) # -------- # internal functions @@ -89,11 +86,11 @@ class Beam(lofar_device): for tile in range(96): # initialise delay calculator - d = delay_calculator(self.hbat_reference_itrf[tile]) + d = delay_calculator(self.HBAT_reference_itrf[tile]) d.set_measure_time(timestamp) # calculate the delays based on the set reference position, the set time and now the set direction and antenna positions - delays[tile] = d.convert(pointing_direction[tile], self.hbat_antenna_itrf[tile]) + delays[tile] = d.convert(pointing_direction[tile], self.HBAT_antenna_itrf[tile]) return delays diff --git a/tangostationcontrol/tangostationcontrol/devices/recv.py b/tangostationcontrol/tangostationcontrol/devices/recv.py index e8dc823f17fb439ae5c673fe2df868dcb2198578..0084b7807ccf88f675092528e87c2c14767a0ac1 100644 --- a/tangostationcontrol/tangostationcontrol/devices/recv.py +++ b/tangostationcontrol/tangostationcontrol/devices/recv.py @@ -74,18 +74,24 @@ class RECV(opcua_device): # ],dtype=numpy.float64) # ) - hbat_reference_itrf = device_property( + HBAT_reference_itrf = device_property( dtype='DevVarFloatArray', mandatory=False, default_value = numpy.tile(numpy.array([3826577.066, 461022.948, 5064892.786]),(96,1)) # CS002LBA, in ITRF2005 timestamp 2012.5 ) - hbat_antenna_itrf = device_property( + HBAT_antenna_itrf = device_property( dtype='DevVarFloatArray', mandatory=False, default_value = numpy.tile(numpy.array([3826923.546, 460915.441, 5064643.489]),(96,16,1)) # CS001LBA, in ITRF2005 timestamp 2012.5 ) + HBAT_signal_input_delays = device_property( + dtype='DevVarFloatArray', + mandatory=False, + default_value = numpy.zeros((96,32), dtype=numpy.float64) + ) + first_default_settings = [ # set the masks first, as those filter any subsequent settings 'ANT_mask_RW', @@ -158,15 +164,22 @@ class RECV(opcua_device): @DebugIt() @only_in_states([DevState.ON]) def get_hbat_reference_itrf(self): - """ Return the property hbat_reference_itrf (96x3) into a flatten array """ - return self.hbat_reference_itrf.flatten() + """ Return the property HBAT_reference_itrf (96x3) into a flatten array """ + return self.HBAT_reference_itrf.flatten() @command(dtype_out=DevVarFloatArray) @DebugIt() @only_in_states([DevState.ON]) def get_hbat_antenna_itrf(self): - """ Return the property hbat_antenna_itrf (96x16x3) into a flatten array """ - return self.hbat_antenna_itrf.flatten() + """ Return the property HBAT_antenna_itrf (96x16x3) into a flatten array """ + return self.HBAT_antenna_itrf.flatten() + + @command(dtype_out=DevVarFloatArray) + @DebugIt() + @only_in_states([DevState.ON]) + def get_hbat_signal_input_delays(self): + """ Return the property HBAT_signal_input_delays (96x32) into a flatten array """ + return self.HBAT_signal_input_delays.flatten() @command() @DebugIt()