From 6eb17604c7309c142a00cf8865b044689dae2dc0 Mon Sep 17 00:00:00 2001 From: Thomas Juerges <4-jurges@users.noreply.git.astron.nl> Date: Fri, 15 Jan 2021 16:13:36 +0100 Subject: [PATCH] Finished refactoring for pypcc2 with a lot of help from Jan David and Thijs --- RCUSCC/RCUSCC/RCUSCC.py | 92 ++++++++++++++++++++++------------------- 1 file changed, 49 insertions(+), 43 deletions(-) diff --git a/RCUSCC/RCUSCC/RCUSCC.py b/RCUSCC/RCUSCC/RCUSCC.py index 484ee5cf7..e4bca8087 100644 --- a/RCUSCC/RCUSCC/RCUSCC.py +++ b/RCUSCC/RCUSCC/RCUSCC.py @@ -78,29 +78,29 @@ class RCUSCC(Device): Ant_mask_RW = attribute( dtype=(('DevBoolean',),), - max_dim_x=32, max_dim_y=3, + max_dim_x=3, max_dim_y=32, access=AttrWriteType.READ_WRITE, ) RCU_attenuator_R = attribute( dtype=(('DevLong64',),), - max_dim_x=32, max_dim_y=3, + max_dim_x=3, max_dim_y=32, ) RCU_attenuator_RW = attribute( dtype=(('DevLong64',),), - max_dim_x=32, max_dim_y=3, + max_dim_x=3, max_dim_y=32, access=AttrWriteType.READ_WRITE, ) RCU_band_R = attribute( dtype=(('DevLong64',),), - max_dim_x=32, max_dim_y=3, + max_dim_x=3, max_dim_y=32, ) RCU_band_RW = attribute( dtype=(('DevLong64',),), - max_dim_x=32, max_dim_y=3, + max_dim_x=3, max_dim_y=32, access=AttrWriteType.READ_WRITE, ) @@ -127,32 +127,32 @@ class RCUSCC(Device): RCU_ADC_lock_R = attribute( dtype=(('DevLong64',),), - max_dim_x=32, max_dim_y=3, + max_dim_x=3, max_dim_y=32, ) RCU_ADC_SYNC_R = attribute( dtype=(('DevLong64',),), - max_dim_x=32, max_dim_y=3, + max_dim_x=3, max_dim_y=32, ) RCU_ADC_JESD_R = attribute( dtype=(('DevLong64',),), - max_dim_x=32, max_dim_y=3, + max_dim_x=3, max_dim_y=32, ) RCU_ADC_CML_R = attribute( dtype=(('DevLong64',),), - max_dim_x=32, max_dim_y=3, + max_dim_x=3, max_dim_y=32, ) RCU_OUT1_R = attribute( dtype=(('DevLong64',),), - max_dim_x=32, max_dim_y=3, + max_dim_x=3, max_dim_y=32, ) RCU_OUT2_R = attribute( dtype=(('DevLong64',),), - max_dim_x=32, max_dim_y=3, + max_dim_x=3, max_dim_y=32, ) RCU_ID_R = attribute( @@ -161,8 +161,8 @@ class RCUSCC(Device): ) RCU_version_R = attribute( - dtype=(('DevUChar',),), - max_dim_x=32, max_dim_y=10, + dtype=('DevString',), + max_dim_x=32, ) RCU_monitor_rate_RW = attribute( @@ -257,61 +257,61 @@ class RCUSCC(Device): # Set default values in the RW/R attributes and add them to # the mapping. - self._RCU_mask_RW = ((0,),) + self._RCU_mask_RW = numpy.full(32, False) self.attribute_mapping["RCU_mask_RW"] = {} - self._Ant_mask_RW = ((0,),) + self._Ant_mask_RW = numpy.full((32, 3), False) self.attribute_mapping["Ant_mask_RW"] = {} - self._RCU_attenuator_R = ((0,),) + self._RCU_attenuator_R = numpy.full((32, 3), 0) self.attribute_mapping["RCU_attenuator_R"] = {} - self._RCU_attenuator_RW = ((0,),) + self._RCU_attenuator_RW = numpy.full((32, 3), 0) self.attribute_mapping["RCU_attenuator_RW"] = {} - self._RCU_band_R = ((0,),) + self._RCU_band_R = numpy.full((32, 3), 0) self.attribute_mapping["RCU_band_R"] = {} - self._RCU_band_RW = ((0,),) + self._RCU_band_RW = numpy.full((32, 3), 0) self.attribute_mapping["RCU_band_RW"] = {} - self._RCU_temperature_R = (0.0,) + self._RCU_temperature_R = numpy.full((32, 3), 0.0) self.attribute_mapping["RCU_temperature_R"] = {} - self._RCU_Pwr_dig_R = (0,) + self._RCU_Pwr_dig_R = numpy.full(32, 0) self.attribute_mapping["RCU_Pwr_dig_R"] = {} - self._RCU_LED0_R = ((0,),) + self._RCU_LED0_R = numpy.full(32, 0) self.attribute_mapping["RCU_LED0_R"] = {} - self._RCU_LED0_RW = ((0,),) + self._RCU_LED0_RW = numpy.full(32, 0) self.attribute_mapping["RCU_LED0_RW"] = {} - self._RCU_ADC_lock_R = ((0,),) + self._RCU_ADC_lock_R = numpy.full((32, 3), 0) self.attribute_mapping["RCU_ADC_lock_R"] = {} - self._RCU_ADC_SYNC_R = ((0,),) + self._RCU_ADC_SYNC_R = numpy.full((32, 3), 0) self.attribute_mapping["RCU_ADC_SYNC_R"] = {} - self._RCU_ADC_JESD_R = ((0,),) + self._RCU_ADC_JESD_R = numpy.full((32, 3), 0) self.attribute_mapping["RCU_ADC_JESD_R"] = {} - self._RCU_ADC_CML_R = ((0,),) + self._RCU_ADC_CML_R = numpy.full((32, 3), 0) self.attribute_mapping["RCU_ADC_CML_R"] = {} - self._RCU_OUT1_R = ((0,),) + self._RCU_OUT1_R = numpy.full((32, 3), 0) self.attribute_mapping["RCU_OUT1_R"] = {} - self._RCU_OUT2_R = ((0,),) + self._RCU_OUT2_R = numpy.full((32, 3), 0) self.attribute_mapping["RCU_OUT2_R"] = {} - self._RCU_ID_R = ((0,),) + self._RCU_ID_R = numpy.full(32, 0) self.attribute_mapping["RCU_ID_R"] = {} - self._RCU_version_R = ((0,),) + self._RCU_version_R = numpy.full(32, "1234567890") self.attribute_mapping["RCU_version_R"] = {} - self._RCU_monitor_rate_RW = 0.0 + self._RCU_monitor_rate_RW = 60.0 self.attribute_mapping["RCU_monitor_rate_RW"] = {} # Init the dict that contains function to OPC-UA function mappings. @@ -345,6 +345,12 @@ class RCUSCC(Device): # Everything went ok -- go online self.On() + # Set the masks + # TODO + # Read default masks from config DB + self.write_RCU_mask_RW(self._RCU_mask_RW) + self.write_Ant_mask_RW(self._Ant_mask_RW) + @DebugIt() def On(self): """ @@ -399,7 +405,7 @@ class RCUSCC(Device): def read_Ant_mask_R(self): """Return the Ant_mask_R attribute.""" value = numpy.array(self.attribute_mapping["Ant_mask_R"].get_value()) - self._Ant_mask_R = numpy.split(value, indices_or_sections = 32) + self._Ant_mask_R = numpy.array(numpy.split(value, indices_or_sections = 32)) return self._Ant_mask_R @only_when_on @@ -421,7 +427,7 @@ class RCUSCC(Device): def read_RCU_attenuator_R(self): """Return the RCU_attenuator_R attribute.""" value = numpy.array(self.attribute_mapping["RCU_attenuator_R"].get_value()) - self._RCU_attenuator_R = numpy.split(value, indices_or_sections = 32) + self._RCU_attenuator_R = numpy.array(numpy.split(value, indices_or_sections = 32)) return self._RCU_attenuator_R @only_when_on @@ -443,7 +449,7 @@ class RCUSCC(Device): def read_RCU_band_R(self): """Return the RCU_band_R attribute.""" value = numpy.array(self.attribute_mapping["RCU_band_R"].get_value()) - self._RCU_band_R = numpy.split(value, indices_or_sections = 32) + self._RCU_band_R = numpy.array(numpy.split(value, indices_or_sections = 32)) return self._RCU_band_R @only_when_on @@ -499,7 +505,7 @@ class RCUSCC(Device): def read_RCU_ADC_lock_R(self): """Return the RCU_ADC_lock_R attribute.""" value = numpy.array(self.attribute_mapping["RCU_ADC_lock_R"].get_value()) - self._RCU_ADC_lock_R = numpy.split(value, indices_or_sections = 32) + self._RCU_ADC_lock_R = numpy.array(numpy.split(value, indices_or_sections = 32)) return self._RCU_ADC_lock_R @only_when_on @@ -507,7 +513,7 @@ class RCUSCC(Device): def read_RCU_ADC_SYNC_R(self): """Return the RCU_ADC_SYNC_R attribute.""" value = numpy.array(self.attribute_mapping["RCU_ADC_SYNC_R"].get_value()) - self._RCU_ADC_SYNC_R = numpy.split(value, indices_or_sections = 32) + self._RCU_ADC_SYNC_R = numpy.array(numpy.split(value, indices_or_sections = 32)) return self._RCU_ADC_SYNC_R @only_when_on @@ -515,7 +521,7 @@ class RCUSCC(Device): def read_RCU_ADC_JESD_R(self): """Return the RCU_ADC_JESD_R attribute.""" value = numpy.array(self.attribute_mapping["RCU_ADC_JESD_R"].get_value()) - self._RCU_ADC_JESD_R = numpy.split(value, indices_or_sections = 32) + self._RCU_ADC_JESD_R = numpy.array(numpy.split(value, indices_or_sections = 32)) return self._RCU_ADC_JESD_R @only_when_on @@ -523,7 +529,7 @@ class RCUSCC(Device): def read_RCU_ADC_CML_R(self): """Return the RCU_ADC_CML_R attribute.""" value = numpy.array(self.attribute_mapping["RCU_ADC_CML_R"].get_value()) - self._RCU_ADC_CML_R = numpy.split(value, indices_or_sections = 32) + self._RCU_ADC_CML_R = numpy.array(numpy.split(value, indices_or_sections = 32)) return self._RCU_ADC_CML_R @only_when_on @@ -531,7 +537,7 @@ class RCUSCC(Device): def read_RCU_OUT1_R(self): """Return the RCU_OUT1_R attribute.""" value = numpy.array(self.attribute_mapping["RCU_OUT1_R"].get_value()) - self._RCU_OUT1_R = numpy.split(value, indices_or_sections = 32) + self._RCU_OUT1_R = numpy.array(numpy.split(value, indices_or_sections = 32)) return self._RCU_OUT1_R @only_when_on @@ -539,7 +545,7 @@ class RCUSCC(Device): def read_RCU_OUT2_R(self): """Return the RCU_OUT2_R attribute.""" value = numpy.array(self.attribute_mapping["RCU_OUT2_R"].get_value()) - self._RCU_OUT2_R = numpy.split(value, indices_or_sections = 32) + self._RCU_OUT2_R = numpy.array(numpy.split(value, indices_or_sections = 32)) return self._RCU_OUT2_R @only_when_on @@ -553,8 +559,8 @@ class RCUSCC(Device): @fault_on_error def read_RCU_version_R(self): """Return the RCU_version_R attribute.""" - value = self._RCU_version_R = numpy.array(self.attribute_mapping["RCU_version_R"].get_value()) - self._RCU_version_R = numpy.split(value, indices_or_sections = 32) + value = self.attribute_mapping["RCU_version_R"].get_value() + self._RCU_version_R = numpy.array(value) return self._RCU_version_R @only_when_on -- GitLab