diff --git a/tangostationcontrol/tangostationcontrol/devices/antennafield.py b/tangostationcontrol/tangostationcontrol/devices/antennafield.py index 76144882779f616a56b7420916414c9ddf423785..6eac0d1420522174fbe5dad558a304b51331e8a6 100644 --- a/tangostationcontrol/tangostationcontrol/devices/antennafield.py +++ b/tangostationcontrol/tangostationcontrol/devices/antennafield.py @@ -1747,19 +1747,25 @@ class AntennaToRecvMapper(object): mapped_values = numpy.array(default_values) + # If mapping is based on only one map, then insert the value + # provided by the map if len(value_mapping) == 1: for idx, mapping in enumerate(value_mapping[0]): recv = mapping[0] rcu = mapping[1] if recv > 0: mapped_values[idx] = recv_results[recv - 1][rcu] + # If mapping is based on both power and control maps if len(value_mapping) == 2: # Assuming mapper lists are always in the following order: # [Control_Mapping, Power_Mapping] [control_mapping, power_mapping] = value_mapping for idx, mapping in enumerate(control_mapping): + # Store index and values of both mappings [recv_control, rcu_control] = mapping [recv_power, rcu_power] = power_mapping[idx] + # Insert the two values in the mapped array + # as (rcu_control_val, rcu_power_val) if recv_control > 0: mapped_values[idx][0] = recv_results[recv_control - 1][rcu_control] if recv_power > 0: