Index: leahi_dialin/dd/modules/alarms.py =================================================================== diff -u -r6d104d3185ac3ed7c18c97ecdc13fd59bf53a8d1 -r27cd8e0e7b47617083e8c12f73306f0ba648e687 --- leahi_dialin/dd/modules/alarms.py (.../alarms.py) (revision 6d104d3185ac3ed7c18c97ecdc13fd59bf53a8d1) +++ leahi_dialin/dd/modules/alarms.py (.../alarms.py) (revision 27cd8e0e7b47617083e8c12f73306f0ba648e687) @@ -79,16 +79,7 @@ @param message: published DD alarm activation message @return: none """ - # Local variables - alarm_id:int - data_typ_1:int - data_1:int - data_typ_2:int - data_2:int - priority:int - rank:int - clr_top_only:int - + result = {} msg_list = [] msg_list.append(('alarm_id', DataTypes.U32)) msg_list.append(('data_typ_1', DataTypes.U32)) @@ -106,23 +97,22 @@ if isinstance(msg_detail[1], DataTypes): unpack_attrib = msg_detail[1].unpack_attrib() else: - data_type_val:int - exec(f'data_type_val = {msg_detail[1]}') - unpack_attrib = DataTypes(data_type_val).unpack_attrib() - value = struct.unpack(unpack_attrib,bytearray(message['message'][start_pos:end_pos]))[0] - exec(f'{msg_detail[0]} = {value}') + unpack_attrib = DataTypes(result[msg_detail[1]]).unpack_attrib() + + value = struct.unpack(unpack_attrib, bytearray(message['message'][start_pos:end_pos]))[0] + result[msg_detail[0]] = value i += 1 - self.logger.debug("Alarm ID: %d %d %d" % (alarm_id[0], data_1[0], data_2[0])) - self.alarm_states[alarm_id] = True - self.alarm_conditions[alarm_id] = True - self.alarm_priorities[alarm_id] = priority - self.alarm_ranks[alarm_id] = rank - self.alarm_clear_top_only_flags[alarm_id] = clr_top_only - self.alarm_data[alarm_id] = [data_1, data_2] - self.last_alarm_triggered = alarm_id - self.last_alarm_data_1 = data_1 - self.last_alarm_data_2 = data_2 + self.logger.debug("Alarm ID: %d %d %d" % (result['alarm_id'], result['data_1'], result['data_2'])) + self.alarm_states[result['alarm_id']] = True + self.alarm_conditions[result['alarm_id']] = True + self.alarm_priorities[result['alarm_id']] = result['priority'] + self.alarm_ranks[result['alarm_id']] = result['rank'] + self.alarm_clear_top_only_flags[result['alarm_id']] = result['clr_top_only'] + self.alarm_data[result['alarm_id']] = [result['data_1'], result['data_2']] + self.last_alarm_triggered = result['alarm_id'] + self.last_alarm_data_1 = result['data_1'] + self.last_alarm_data_2 = result['data_2'] self.dd_alarm_triggered_timestamp = timestamp