From d67a2a6cd7ec67b76b85853d6af7d25394daa13c Mon Sep 17 00:00:00 2001 From: Maxim Date: Fri, 15 Aug 2025 09:48:50 +0300 Subject: [PATCH] =?UTF-8?q?=D1=81=D0=BD=D1=8F=D1=82=D0=B8=D0=B5=20=D0=BC?= =?UTF-8?q?=D0=BE=D1=89=D0=BD=D0=BE=D1=81=D1=82=D0=B8=20=D1=81=D0=BE=20?= =?UTF-8?q?=D0=B2=D1=81=D0=B5=D1=85=20=D0=BB=D1=83=D1=87=D0=B5=D0=B9=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BF=D1=80=D0=B8=D0=B1=D0=BE=D1=80=D0=B5=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B4-=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scenes/pribor-prd-k/pribor-prd-k.gd | 7 +- scenes/pribor-prd-n/pribor-prd-n.gd | 27 ++-- scenes/pribor-prd-v/pribor-prd-v.gd | 5 +- scenes/pribor-prd-v/pribor-prd-v.tscn | 5 +- scripts/pribor-prd.gd | 180 +++++++++++++++----------- 5 files changed, 130 insertions(+), 94 deletions(-) diff --git a/scenes/pribor-prd-k/pribor-prd-k.gd b/scenes/pribor-prd-k/pribor-prd-k.gd index e39517f..0e6a5b6 100644 --- a/scenes/pribor-prd-k/pribor-prd-k.gd +++ b/scenes/pribor-prd-k/pribor-prd-k.gd @@ -96,14 +96,17 @@ func _ready() -> void: func on_state_mashine() -> void: control_prd_k.state_control_machine() - + block_kasseta_y5_prd_config_k = control_prd_k.block_kasseta_y5_config var nodes_y5: Array = get_tree().get_nodes_in_group('y-5') for node_y5 in nodes_y5: var meta_y5 = node_y5.get_meta('y5') if block_kasseta_y5_prd_config_k.has(meta_y5): + if block_kasseta_y5_prd_config_k['yau07'] == false: + node_y5.state = STATE_VAL.ERROR if meta_y5 == 'yau07' else STATE_VAL.NONE + return node_y5.state = STATE_VAL.GOOD if block_kasseta_y5_prd_config_k[meta_y5] else STATE_VAL.ERROR - + block_ip_config_k = control_prd_k.block_ip_config var node_ip_power_arr: Array = get_tree().get_nodes_in_group('power_supply') for power_supply in node_ip_power_arr: diff --git a/scenes/pribor-prd-n/pribor-prd-n.gd b/scenes/pribor-prd-n/pribor-prd-n.gd index 0770a21..74c5283 100644 --- a/scenes/pribor-prd-n/pribor-prd-n.gd +++ b/scenes/pribor-prd-n/pribor-prd-n.gd @@ -81,14 +81,17 @@ var test = preload('res://scripts/pribor-prd.gd') ################################ func on_state_mashine() -> void: control_prd_n.state_control_machine() - + block_kasseta_y5_prd_config_n = control_prd_n.block_kasseta_y5_config var nodes_y5: Array = get_tree().get_nodes_in_group('y-5') for node_y5 in nodes_y5: var meta_y5 = node_y5.get_meta('y5') if block_kasseta_y5_prd_config_n.has(meta_y5): + if block_kasseta_y5_prd_config_n['yau07'] == false: + node_y5.state = STATE_VAL.ERROR if meta_y5 == 'yau07' else STATE_VAL.NONE + return node_y5.state = STATE_VAL.GOOD if block_kasseta_y5_prd_config_n[meta_y5] else STATE_VAL.ERROR - + block_ip_config_n = control_prd_n.block_ip_config var node_ip_power_arr: Array = get_tree().get_nodes_in_group('power_supply') for power_supply in node_ip_power_arr: @@ -96,14 +99,23 @@ func on_state_mashine() -> void: if block_ip_config_n.has(meta_ip) and block_kasseta_y5_prd_config_n.ug: power_supply.state = STATE_VAL.GOOD if block_ip_config_n[meta_ip][1] else STATE_VAL.ERROR + var fs_results: Dictionary = control_prd_n.block_fs_config + var fs_nodes: Array = get_tree().get_nodes_in_group('fs_group') + for f in fs_nodes: + var fs_meta: String = f.get_meta('fs') + if fs_results.has(fs_meta): + var new_state = fs_results[fs_meta] + f.state = new_state + fs_results[fs_meta] = new_state + var dkm: Dictionary = control_prd_n.block_dkm_config - var fs: Dictionary = control_prd_n.block_fs_config - if control_prd_n.current_fs == 2 and fs.fs_2: + if control_prd_n.current_fs == 2 and fs_results.fs_2: $kasseta_FS_ND/ref_A4.state = STATE_VAL.GOOD if dkm.dkm_2 else STATE_VAL.ERROR - elif control_prd_n.current_fs == 3 and fs.fs_3: + elif control_prd_n.current_fs == 3 and fs_results.fs_3: $kasseta_FS_ND/ref_A3.state = STATE_VAL.GOOD if dkm.dkm_3 else STATE_VAL.ERROR - if not control_prd_n.power_result['ray_25_2'] or not control_prd_n.power_result['ray_25_3']: + #if not control_prd_n.power_result['ray_25_2'] or not control_prd_n.power_result['ray_25_3']: + if 1 == 1: return var node_arr_power: Array = get_tree().get_nodes_in_group('power_amplifier') @@ -132,11 +144,10 @@ func initialize_connections() -> void: unit_prd_n.connect('line_changed', Callable(self, 'on_line_changed')) var power_amplifiers: Array = get_tree().get_nodes_in_group('power_amplifier') - var fs_nodes: Array = get_tree().get_nodes_in_group('fs_group') var init_data: Dictionary = { 'control_label': $control_result, 'power_amplifiers': power_amplifiers, - 'fs_nodes': fs_nodes, + #'fs_nodes': fs_nodes, 'unit_prd': unit_prd_n, 'module_prd' : prd_n_module, 'constants': constants_n, diff --git a/scenes/pribor-prd-v/pribor-prd-v.gd b/scenes/pribor-prd-v/pribor-prd-v.gd index 1497d40..0e7a8d6 100644 --- a/scenes/pribor-prd-v/pribor-prd-v.gd +++ b/scenes/pribor-prd-v/pribor-prd-v.gd @@ -79,12 +79,15 @@ var test = preload('res://scripts/pribor-prd.gd') func on_state_mashine() -> void: control_prd_v.state_control_machine() - + block_kasseta_y5_prd_config_v = control_prd_v.block_kasseta_y5_config var nodes_y5: Array = get_tree().get_nodes_in_group('y-5') for node_y5 in nodes_y5: var meta_y5 = node_y5.get_meta('y5') if block_kasseta_y5_prd_config_v.has(meta_y5): + if block_kasseta_y5_prd_config_v['yau07'] == false: + node_y5.state = STATE_VAL.ERROR if meta_y5 == 'yau07' else STATE_VAL.NONE + return node_y5.state = STATE_VAL.GOOD if block_kasseta_y5_prd_config_v[meta_y5] else STATE_VAL.ERROR block_ip_config_v = control_prd_v.block_ip_config diff --git a/scenes/pribor-prd-v/pribor-prd-v.tscn b/scenes/pribor-prd-v/pribor-prd-v.tscn index 1e56797..38702ac 100644 --- a/scenes/pribor-prd-v/pribor-prd-v.tscn +++ b/scenes/pribor-prd-v/pribor-prd-v.tscn @@ -1,10 +1,9 @@ -[gd_scene load_steps=15 format=3 uid="uid://cvskpe1ti3p45"] +[gd_scene load_steps=14 format=3 uid="uid://cvskpe1ti3p45"] [ext_resource type="Script" uid="uid://cvuosuvjaci1h" path="res://scenes/pribor-prd-v/pribor-prd-v.gd" id="1_c20s6"] [ext_resource type="PackedScene" uid="uid://d3iqb5e4g81m5" path="res://scenes/контроль/элемент-г.tscn" id="2_xpo4b"] [ext_resource type="Texture2D" uid="uid://c4mdrmk7h638f" path="res://data/nine-patch-round.png" id="3_wyy1b"] [ext_resource type="PackedScene" uid="uid://bk1655p4e8y4u" path="res://scenes/контроль/кассета-у-5-нв.tscn" id="4_gl2bl"] -[ext_resource type="Script" uid="uid://dow4nqi6hbak8" path="res://scenes/контроль/кассета-у-5.gd" id="5_6p5qb"] [ext_resource type="PackedScene" uid="uid://cd5sue1e8iyrv" path="res://scenes/pribor-prd-n/kasseta-fs-nd.tscn" id="5_nhd2k"] [ext_resource type="Script" uid="uid://crpedygm3gohi" path="res://scenes/контроль/кассета.gd" id="6_os4mt"] [ext_resource type="PackedScene" uid="uid://p2suppildvq0" path="res://scenes/контроль/элемент-в.tscn" id="7_38u2b"] @@ -112,8 +111,6 @@ offset_left = 175.0 offset_top = 242.0 offset_right = 485.0 offset_bottom = 432.0 -script = ExtResource("5_6p5qb") -fname = "Кассета У5" [node name="kasseta_FS_VD" parent="." instance=ExtResource("5_nhd2k")] layout_mode = 0 diff --git a/scripts/pribor-prd.gd b/scripts/pribor-prd.gd index 46a7d24..b2b6d40 100644 --- a/scripts/pribor-prd.gd +++ b/scripts/pribor-prd.gd @@ -1,24 +1,25 @@ class TestPRD extends Node: - const RAY_25_1:= 'ray_25_1' - const RAY_25_2:= 'ray_25_2' - const RAY_25_3:= 'ray_25_3' - const RAY_25_4:= 'ray_25_4' - const RAY_25_5:= 'ray_25_5' - const RAY_25_6:= 'ray_25_6' - const RAY_25_7:= 'ray_25_7' + const RAY_m5:= 'RAY_m5' + const RAY_5:= 'RAY_5' + const RAY_15:= 'RAY_15' + const RAY_25:= 'RAY_25' + const RAY_35:= 'RAY_35' + const RAY_45:= 'RAY_45' enum STATE_VAL { NONE = 0, GOOD = 1, ERROR = 2 } enum STATE_MASHINE { INIT, FS_TURN_ON, FS_WORK, + WRITE_ISA, + READ_ISA, CHEK_KASSETA_Y5, + UG_SET_RAY, UG_SET_RAY_0, UG_SET_RAY_1, UG_SET_RAY_2, UG_SET_RAY_3, UG_SET_RAY_4, UG_SET_RAY_5, - UG_SET_RAY_6, UM_RUN, FS_TURN_OFF, STOP_CONTROL, @@ -42,13 +43,13 @@ class TestPRD extends Node: } var power_result: Dictionary = { - RAY_25_1: [], - RAY_25_2: [], - RAY_25_3: [], - RAY_25_4: [], - RAY_25_5: [], - RAY_25_6: [], - RAY_25_7: [], + 1: {RAY_m5: [], RAY_5: [], RAY_15: [], RAY_25: [], RAY_35: [], RAY_45: [],}, + 2: {RAY_m5: [], RAY_5: [], RAY_15: [], RAY_25: [], RAY_35: [], RAY_45: [],}, + 3: {RAY_m5: [], RAY_5: [], RAY_15: [], RAY_25: [], RAY_35: [], RAY_45: [],}, + 4: {RAY_m5: [], RAY_5: [], RAY_15: [], RAY_25: [], RAY_35: [], RAY_45: [],}, + 5: {RAY_m5: [], RAY_5: [], RAY_15: [], RAY_25: [], RAY_35: [], RAY_45: [],}, + 6: {RAY_m5: [], RAY_5: [], RAY_15: [], RAY_25: [], RAY_35: [], RAY_45: [],}, + 7: {RAY_m5: [], RAY_5: [], RAY_15: [], RAY_25: [], RAY_35: [], RAY_45: [],}, } var constants: Dictionary var pribor_config: Dictionary @@ -61,13 +62,11 @@ class TestPRD extends Node: var self_name: String var state: int = STATE_MASHINE.INIT var current_fs: int - var flag_check_dkm: bool - var flag_timer_started: bool + var flag_timer_started: bool = false #var ug_online: bool var unit_prd: Object var module_prd: Object var power_amplify: Array - var fs_array_node: Array var control_label: Label var control_timer: Timer = Timer.new() @@ -76,7 +75,6 @@ class TestPRD extends Node: func _init(init_data: Dictionary) -> void: control_label = init_data['control_label'] power_amplify = init_data['power_amplifiers'] - fs_array_node = init_data['fs_nodes'] unit_prd = init_data['unit_prd'] module_prd = init_data['module_prd'] constants = init_data['constants'] @@ -109,17 +107,26 @@ class TestPRD extends Node: block_ip_config = check_block_ip(status, block_ip_config) check_temperature_um(status, power_amplify) _process_dkm_status(status) + if current_fs != 0: + var tek_litera: Dictionary = power_result[current_fs] + var interes = _get_ray_key(state) + print('interes: ', interes) + if interes != '': + var arr_pow = tek_litera[interes] + tek_litera[_get_ray_key(state)] = power_um_ukp(status, current_fs, tek_litera[_get_ray_key(state)]) + power_result[current_fs] = tek_litera ## Пакеты от MP550Service - func on_fs_update_state(packet_type_7: Dictionary, fs_mapping: Dictionary, fs_array: Array) -> void: + func on_fs_update_state(packet_type_7: Dictionary, fs_mapping: Dictionary) -> void: var fs_key: String = FS_KEYS.get(current_fs, '') if fs_key.is_empty(): return var fs_result := {fs_key: STATE_VAL.NONE} fs_result = on_fs_state(packet_type_7, fs_mapping, fs_result) - _update_fs_states(fs_result, fs_array) + block_fs_config[fs_key] = fs_result[fs_key] + ## func state_control_machine() -> void: @@ -128,11 +135,41 @@ class TestPRD extends Node: _handle_init_state() STATE_MASHINE.FS_TURN_ON: _handle_fs_turn_on_state() - STATE_MASHINE.CHEK_KASSETA_Y5: - pass - + state = STATE_MASHINE.FS_WORK STATE_MASHINE.FS_WORK: - _handle_fs_work_state() + if not flag_timer_started: + _handle_fs_work_state() + STATE_MASHINE.CHEK_KASSETA_Y5: + if block_kasseta_y5_config['yau07']: + state = STATE_MASHINE.WRITE_ISA + else: + print_debug('Яу-07Б: нет связи ', block_kasseta_y5_config) + STATE_MASHINE.WRITE_ISA: + _handle_ug_set_state(0x6) + STATE_MASHINE.READ_ISA: + _handle_read_isa(module_prd, unit_prd, [constants.ADDR_UG_LITERA_1, constants.ADDR_UG_LITERA_2, constants.ADDR_UG_LITERA_3]) + state = STATE_MASHINE.UG_SET_RAY + STATE_MASHINE.UG_SET_RAY: + var addr: int = constants.ADDR_UG_LITERA_1 + if current_fs == 3 or current_fs == 5 or current_fs == 7: + addr = constants.ADDR_UG_LITERA_2 + if unit_prd.isa_ports.has(addr) and (unit_prd.cmd_state == unit_prd.CmdState.DONE): + control_timer.stop() + if unit_prd.isa_ports[addr] & 0x07 == 0: + state = STATE_MASHINE.UG_SET_RAY_1 + elif unit_prd.isa_ports[addr] & 0x07 == 1: + state = STATE_MASHINE.UG_SET_RAY_2 + elif unit_prd.isa_ports[addr] & 0x07 == 2: + state = STATE_MASHINE.UG_SET_RAY_3 + elif unit_prd.isa_ports[addr] & 0x07 == 3: + state = STATE_MASHINE.UG_SET_RAY_4 + elif unit_prd.isa_ports[addr] & 0x07 == 4: + state = STATE_MASHINE.UG_SET_RAY_5 + elif unit_prd.isa_ports[addr] & 0x07 == 5: + state = STATE_MASHINE.FS_TURN_OFF + elif unit_prd.isa_ports[addr] & 0x07 == 6: + state = STATE_MASHINE.UG_SET_RAY_0 + STATE_MASHINE.UG_SET_RAY_0: _handle_ug_set_state(0x0) STATE_MASHINE.UG_SET_RAY_1: @@ -145,8 +182,6 @@ class TestPRD extends Node: _handle_ug_set_state(0x4) STATE_MASHINE.UG_SET_RAY_5: _handle_ug_set_state(0x5) - STATE_MASHINE.UG_SET_RAY_6: - _handle_ug_set_state(0x6) STATE_MASHINE.UM_RUN: flag_timer_started = _handle_um_run_state() STATE_MASHINE.FS_TURN_OFF: @@ -162,28 +197,28 @@ class TestPRD extends Node: else: control_results = on_control_result(block_ip_config, block_dkm_config, block_fs_config, control_results) state = STATE_MASHINE.AWAIT + print_debug(power_result) func _handle_fs_turn_on_state() -> void: control_label.text = 'Выполняется включение ФС-%s' % current_fs manage_fs(true, self_name, pribor_config, fs_parameters, current_fs, constants.POWER_UM) - #control_timer.wait_time = constants.TIMER_DELAY - #control_timer.start() - state = STATE_MASHINE.FS_WORK + control_timer.wait_time = constants.TIMER_DELAY + control_timer.start() func _handle_fs_work_state() -> void: control_label.text = 'Выполняется проверка ФС-%s' % current_fs if not module_prd.unit_yau07.online: return - if (current_fs == 2 and block_fs_config.fs_2 and not flag_timer_started) or \ - (current_fs == 3 and block_fs_config.fs_3 and not flag_timer_started) or \ - (current_fs == 4 and block_fs_config.fs_4 and not flag_timer_started) or \ - (current_fs == 5 and block_fs_config.fs_5 and not flag_timer_started) or \ - (current_fs == 6 and block_fs_config.fs_6 and not flag_timer_started) or \ - (current_fs == 7 and block_fs_config.fs_7 and not flag_timer_started) or \ - (current_fs == 1 and block_fs_config.fs_1 and not flag_timer_started): - state = STATE_MASHINE.UG_SET_RAY_6 + if (current_fs == 2 and block_fs_config.fs_2) or \ + (current_fs == 3 and block_fs_config.fs_3) or \ + (current_fs == 4 and block_fs_config.fs_4) or \ + (current_fs == 5 and block_fs_config.fs_5) or \ + (current_fs == 6 and block_fs_config.fs_6) or \ + (current_fs == 7 and block_fs_config.fs_7) or \ + (current_fs == 1 and block_fs_config.fs_1): + state = STATE_MASHINE.CHEK_KASSETA_Y5 func _handle_ug_set_state(RAY_DOU_NUM: int) -> void: @@ -217,7 +252,7 @@ class TestPRD extends Node: func _handle_um_run_state() -> bool: control_label.text = 'Выполняется настройка ЭМС' module_prd.cmd_array.append([unit_prd.CmdCode.WRITE_ISA, [constants.BASE_ADDR_EMS_G, 6666]]) - state = STATE_MASHINE.FS_WORK + state = STATE_MASHINE.READ_ISA return true @@ -231,7 +266,6 @@ class TestPRD extends Node: control_label.text = 'Выполняется завершение проверки ФС-%s' % current_fs control_results = power_um_control_result(control_results, constants, power_result) flag_timer_started = false - flag_check_dkm = false _advance_to_next_fs() state = STATE_MASHINE.INIT @@ -251,7 +285,7 @@ class TestPRD extends Node: func initialize_connections() -> void: _determine_self_name() var fs_mapping = _create_fs_mapping(self_name) - signaller.conn(signaller.fs_update_state, Callable(self, 'on_fs_update_state').bind(fs_mapping, fs_array_node)) + signaller.conn(signaller.fs_update_state, Callable(self, 'on_fs_update_state').bind(fs_mapping)) unit_prd.connect('data_received', Callable(self, 'on_data_received')) @@ -275,10 +309,6 @@ class TestPRD extends Node: var dkm_bit = _get_dkm_bit_for_current_fs() block_dkm_config = check_dkm(status, dkm_bit, block_dkm_config) - flag_check_dkm = block_dkm_config[_get_dkm_key_for_current_fs()] - if flag_check_dkm: - power_result[_get_ray_key_for_current_fs()] = power_um_ukp(status, current_fs, power_result[_get_ray_key_for_current_fs()]) - func _get_current_fs_key() -> String: return FS_KEYS.get(current_fs, '') @@ -308,27 +338,17 @@ class TestPRD extends Node: _: return '' - func _get_ray_key_for_current_fs() -> String: - match current_fs: - 1: return RAY_25_1 - 2: return RAY_25_2 - 3: return RAY_25_3 - 4: return RAY_25_4 - 5: return RAY_25_5 - 6: return RAY_25_6 - 7: return RAY_25_7 + static func _get_ray_key(machine_state: int) -> String: + match machine_state: + STATE_MASHINE.UG_SET_RAY_0: return RAY_m5 + STATE_MASHINE.UG_SET_RAY_1: return RAY_5 + STATE_MASHINE.UG_SET_RAY_2: return RAY_15 + STATE_MASHINE.UG_SET_RAY_3: return RAY_25 + STATE_MASHINE.UG_SET_RAY_4: return RAY_35 + STATE_MASHINE.UG_SET_RAY_5: return RAY_45 _: return '' - func _update_fs_states(fs_result: Dictionary, fs_array: Array) -> void: - for fs in fs_array: - var fs_meta: String = fs.get_meta('fs') - if fs_result.has(fs_meta): - var new_state = fs_result[fs_meta] - fs.state = new_state - block_fs_config[fs_meta] = new_state - - func on_stop_control() -> void: state = STATE_MASHINE.FS_TURN_OFF @@ -337,22 +357,22 @@ class TestPRD extends Node: var all_blocks_ip_ok = true var all_blocks_dkm_ok = true var all_blocks_fs_ok = true - + for block in ip_config: if not ip_config[block][1]: all_blocks_ip_ok = false ctrl_results['block_ip'] = all_blocks_ip_ok - + for block in dkm_config: if not dkm_config[block]: all_blocks_dkm_ok = false ctrl_results['dkm'] = all_blocks_dkm_ok - + for block in fs_config: if not fs_config[block]: all_blocks_fs_ok = false ctrl_results['fs'] = all_blocks_fs_ok - + return ctrl_results @@ -365,22 +385,24 @@ class TestPRD extends Node: settings_ug.ADDR_UG_LITERA_2, result_2, settings_ug.ADDR_UG_LITERA_3, settings_ug.ATT_UM_3]]) - prd_module.cmd_array.append([prd_unit.CmdCode.READ_ISA, [settings_ug.ADDR_UG_LITERA_1, settings_ug.ADDR_UG_LITERA_2, settings_ug.ADDR_UG_LITERA_3]]) + + static func _handle_read_isa(prd_module: Object, prd_unit: Object, read_isa_ports: Array) -> void: + prd_module.cmd_array.append([prd_unit.CmdCode.READ_ISA, read_isa_ports]) static func power_um_control_result(ctrl_results: Dictionary, constan: Dictionary, pwr_result: Dictionary) -> Dictionary: ctrl_results['power_um'] = true - + for amp_array in pwr_result.values(): if amp_array.size() == 0: ctrl_results['power_um'] = false return ctrl_results - - for amp_array in pwr_result.values(): - for value in amp_array: - if value < constan.TEMP_THRESHOLD: - ctrl_results['power_um'] = false - break + + #for amp_array in pwr_result.values(): + #for value in amp_array: + #if value < constan.TEMP_THRESHOLD: + #ctrl_results['power_um'] = false + #break return ctrl_results @@ -417,8 +439,8 @@ class TestPRD extends Node: var status = status_prd[byte_dry] >> bit & 1 ip_config[block][1] = false if status else true return ip_config - - + + ## Проверка кассеты у-5 (ЯУ-07Б, ЭМС-Г, УГ, УКП-1, УКП-2) static func check_block_kasseta_y5(status_prd: PackedByteArray, y5_config: Dictionary) -> Dictionary: y5_config.yau07 = true @@ -441,7 +463,7 @@ class TestPRD extends Node: const TEMP: float = 115.0 / (Constants.MAXIMUM_CODE_ADC - Constants.MINIMUM_CODE_AD) var ukp1_online: int = (status_prd[0] >> 2) & 1 var ukp2_online = (status_prd[0] >> 3) & 1 - + if ukp1_online: var tmp_1: int var temperature_ukp_1: int @@ -449,7 +471,7 @@ class TestPRD extends Node: temperature_ukp_1 = status_prd.decode_u16(Constants.TEMPERATURE_UKP_1 + 2 * i_temp) tmp_1 = round(Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_1) * TEMP + 3) power_amplifier[i_temp].value0 = tmp_1 - + if power_amplifier.size() > 12: # Темпуратура от УМ литеры 1 temperature_ukp_1 = status_prd.decode_u16(Constants.TEMPERATURE_UKP_1 + 2 * 7) tmp_1 = round(Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_1) * TEMP + 3)