From 8bc1a1547d41a4195b5796cd3748d0ddf9ba161c Mon Sep 17 00:00:00 2001 From: Maxim Date: Fri, 8 Aug 2025 02:05:25 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scenes/pribor-prd-k/pribor-prd-k.gd | 194 ++++++++++++++-------------- scenes/pribor-prd-n/pribor-prd-n.gd | 106 +++++++-------- 2 files changed, 152 insertions(+), 148 deletions(-) diff --git a/scenes/pribor-prd-k/pribor-prd-k.gd b/scenes/pribor-prd-k/pribor-prd-k.gd index 466addc1..6cb74c41 100644 --- a/scenes/pribor-prd-k/pribor-prd-k.gd +++ b/scenes/pribor-prd-k/pribor-prd-k.gd @@ -1,36 +1,36 @@ -extends "res://scenes/контроль/прибор.gd" +extends 'res://scenes/контроль/прибор.gd' const Constants: Dictionary = { - "IN_BLANK_PRD": 1, - "OUT_BLANK_PRD": 13, - "CI_1_OT_FS": 8, - "CI_6_OT_FS": 13, - "CI_7_OT_FS": 14, - "CI_1_B_UF": 3, - "CI_6_B_UF": 4, - "CI_7_B_UF": 5, - "CONST_MIN_TEMP": -25, - "MAXIMUM_CODE_ADC": 3796, - "MINIMUM_CODE_AD": 2660, - "TEMPERATURE_UKP_1": 47, - "TEMPERATURE_UKP_2": 79, - "POWER_UKP_1": 31, - "POWER_UKP_2": 63, - "DKM_BIT_1": 0, - "DKM_BIT_6": 5, - "DKM_BIT_7": 6, - "BASE_ADDR_EMS_G": 0x120, - "ADDR_UG_LITERA_1": 0x106, - "ADDR_UG_LITERA_2": 0x108, - "ADDR_UG_LITERA_3": 0x10A, - "TEMP_THRESHOLD": 40, - "POWER_THRESHOLD": 40, - "TIMER_DELAY": 5.0, - "dou_ray_nuber": 0x6, - "attenutor_um_1": 0x7, - "attenutor_um_2": 0x7, - "attenutor_um_3": 0x0, - "POWER_UM": 75, + 'IN_BLANK_PRD': 1, + 'OUT_BLANK_PRD': 13, + 'CI_1_OT_FS': 8, + 'CI_6_OT_FS': 13, + 'CI_7_OT_FS': 14, + 'CI_1_B_UF': 3, + 'CI_6_B_UF': 4, + 'CI_7_B_UF': 5, + 'CONST_MIN_TEMP': -25, + 'MAXIMUM_CODE_ADC': 3796, + 'MINIMUM_CODE_AD': 2660, + 'TEMPERATURE_UKP_1': 47, + 'TEMPERATURE_UKP_2': 79, + 'POWER_UKP_1': 31, + 'POWER_UKP_2': 63, + 'DKM_BIT_1': 0, + 'DKM_BIT_6': 5, + 'DKM_BIT_7': 6, + 'BASE_ADDR_EMS_G': 0x120, + 'ADDR_UG_LITERA_1': 0x106, + 'ADDR_UG_LITERA_2': 0x108, + 'ADDR_UG_LITERA_3': 0x10A, + 'TEMP_THRESHOLD': 40, + 'POWER_THRESHOLD': 40, + 'TIMER_DELAY': 5.0, + 'dou_ray_nuber': 0x6, + 'attenutor_um_1': 0x7, + 'attenutor_um_2': 0x7, + 'attenutor_um_3': 0x0, + 'POWER_UM': 75, } enum STATE_VAL { NONE = 0, GOOD = 1, ERROR = 2 } enum STATE_MASHINE { @@ -43,6 +43,30 @@ enum STATE_MASHINE { STOP_CONTROL, AWAIT } +var block_config_k := { + # Ключ: [бит, нода, имя для _control_results (опционально)] + 'maa2000_1': [0, 'maa2000_A23'], + 'maa2000_2': [1, 'maa2000_A22'], + 'ip9_50_1': [2, 'kasseta_p_1/ref_A26'], + 'ip9_50_2': [3, 'kasseta_p_1/ref_A23'], + 'ip12_50_1': [4, 'kasseta_p_1/ref_A24'], + 'ip9_50_3': [5, 'kasseta_p_2/ref_A26'], + 'ip12_50_2': [6, 'kasseta_p_2/ref_A23'] + } +var fs_mapping_k = { + 0: { 'node': 'kasseta_fs_kd/ref_A3', 'condition': pribor == '1к' }, + 1: { 'node': 'kasseta_fs_kd/ref_A3', 'condition': pribor == '4к' }, + 2: { 'node': 'kasseta_fs_kd/ref_A3', 'condition': pribor == '3к' }, + 3: { 'node': 'kasseta_fs_kd/ref_A3', 'condition': pribor == '2к' }, + 20: { 'node': 'kasseta_fs_kd/ref_A6', 'condition': pribor == '1к' }, + 21: { 'node': 'kasseta_fs_kd/ref_A6', 'condition': pribor == '4к' }, + 22: { 'node': 'kasseta_fs_kd/ref_A6', 'condition': pribor == '3к' }, + 23: { 'node': 'kasseta_fs_kd/ref_A6', 'condition': pribor == '2к' }, + 24: { 'node': 'kasseta_fs_kd/ref_A5', 'condition': pribor == '1к' }, + 25: { 'node': 'kasseta_fs_kd/ref_A5', 'condition': pribor == '4к' }, + 26: { 'node': 'kasseta_fs_kd/ref_A5', 'condition': pribor == '3к' }, + 27: { 'node': 'kasseta_fs_kd/ref_A5', 'condition': pribor == '2к' }, + } # Основные переменные var current_fs: int = 1 var state: int = STATE_MASHINE.INIT @@ -63,15 +87,15 @@ var mashine_timer: Timer = Timer.new() var pribor: String # Результаты контроля var _control_results: Dictionary = { - "block_ip": false, # Проверка касет П1 и ИП МА2000 - "temperature": true, # Проверка температур УМ - "dkm_1": false, # Проверка ДКМ 1 - "dkm_6": false, # Проверка ДКМ 6 - "dkm_7": false, # Проверка ДКМ 7 - "power_ukp": false, # Мощность от УКП - "fs_1": false, # Проверка ФС 1 - "fs_6": false, # Проверка ФС 6 - "fs_7": false, # Проверка ФС 7 + 'block_ip': false, # Проверка касет П1 и ИП МА2000 + 'temperature': true, # Проверка температур УМ + 'dkm_1': false, # Проверка ДКМ 1 + 'dkm_6': false, # Проверка ДКМ 6 + 'dkm_7': false, # Проверка ДКМ 7 + 'power_ukp': false, # Мощность от УКП + 'fs_1': false, # Проверка ФС 1 + 'fs_6': false, # Проверка ФС 6 + 'fs_7': false, # Проверка ФС 7 } @@ -109,7 +133,7 @@ func on_state_mashine() -> void: prd_module.cmd_array.append([unit_prd.CmdCode.WRITE_ISA, [Constants.BASE_ADDR_EMS_G, 6666]]) flag_timer_started = true state = STATE_MASHINE.UG_SET - + STATE_MASHINE.UG_SET: on_ug_setting() state = STATE_MASHINE.FS_WORK @@ -130,7 +154,7 @@ func on_state_mashine() -> void: func initialize_connections() -> void: - signaller.conn(signaller.fs_update_state, Callable(self, 'on_fs_update_state')) + signaller.conn(signaller.fs_update_state, Callable(self, 'on_fs_update_state').bind(fs_mapping_k)) var unit_key = settings.get_unit_key(get_meta('unit_name')[0]) var unit_prd = network.units[unit_key] var currecnt_unit = unit_prd.name @@ -184,30 +208,24 @@ func on_data_received(unit_prd: Object) -> void: return var status = unit_prd.status - check_block_ip(status) + check_block_ip(status, block_config_k) check_temperature_um(status) # Обработка данных ЭМС _process_ems_data(status) - + if current_fs == 1 and _control_results.fs_1: flag_check_dkm = check_dkm(status, Constants.DKM_BIT_1) elif current_fs == 6 and _control_results.fs_6: flag_check_dkm = check_dkm(status, Constants.DKM_BIT_6) elif current_fs == 7 and _control_results.fs_7: flag_check_dkm = check_dkm(status, Constants.DKM_BIT_7) - + flag_check_dkm = check_dkm(status, Constants.DKM_BIT_7) flag_check_dkm = check_dkm(status, Constants.DKM_BIT_6) flag_check_dkm = check_dkm(status, Constants.DKM_BIT_1) - + if flag_check_dkm: _process_ukp_power(status) - - var unit_key = settings.get_unit_key(get_meta('unit_name')[0]) - var unit_prdic = network.units[unit_key] - #if unit_prdic.isa_ports.has(Constants.ADDR_UG_LITERA_1): - #print(unit_prdic.isa_ports[Constants.ADDR_UG_LITERA_1]) - #print(unit_prdic.isa_ports[Constants.ADDR_UG_LITERA_2]) # Обрабатывает данные ЭМС и обновляет UI панели @@ -228,26 +246,19 @@ func _process_ems_data(status: PackedByteArray) -> void: ## Проверка касет П1 и ИП МА2000 -func check_block_ip(status_prd: PackedByteArray) -> void : +func check_block_ip(status_prd: PackedByteArray, block_config: Dictionary) -> void : # Конфигурация проверяемых блоков const BYTE_DRY_CONTACT: int = 27 - var block_config := { - # Ключ: [бит, нода, имя для _control_results (опционально)] - "maa2000_1": [0, $maa2000_A23], - "maa2000_2": [1, $maa2000_A22], - "ip9_50_1": [2, $kasseta_p_1/ref_A26], - "ip9_50_2": [3, $kasseta_p_1/ref_A23], - "ip12_50_1": [4, $kasseta_p_1/ref_A24], - "ip9_50_3": [5, $kasseta_p_2/ref_A26], - "ip12_50_2": [6, $kasseta_p_2/ref_A23] - } + var ug_online: bool = (status_prd[0] >> 1) & 1 var all_good := true + for block in block_config: var bit: int = block_config[block][0] - var node: Control = block_config[block][1] + var node_name = block_config[block][1] + var node: Control = get_node(node_name) if ug_online: var status = status_prd[BYTE_DRY_CONTACT] >> bit & 1 @@ -256,7 +267,7 @@ func check_block_ip(status_prd: PackedByteArray) -> void : else: node.state = STATE_VAL.NONE - _control_results["block_ip"] = all_good + _control_results['block_ip'] = all_good ## Проверка температур УМ от УКП @@ -267,7 +278,7 @@ func check_temperature_um(status_prd: PackedByteArray) -> void: if ukp1_online: var tmp_1: int var temperature_ukp_1: int - for i_temp in range(6): + for i_temp in 6: 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 @@ -278,7 +289,7 @@ func check_temperature_um(status_prd: PackedByteArray) -> void: var ukp2_online = (status_prd[0] >> 3) & 1 if ukp2_online: - for i_temp in range(6): + for i_temp in 6: var temperature_ukp_2: int = status_prd.decode_u16(Constants.TEMPERATURE_UKP_2 + 2 * i_temp) var tmp_2: int = round(Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_2) * TEMP + 3) power_amplifier[i_temp+7].value0 = tmp_2 @@ -293,14 +304,14 @@ func check_dkm(status_prd: PackedByteArray, bit_dkm: int) -> bool: if bit_dkm == 5: $dou6_A7.state = STATE_VAL.GOOD if status_dkm else STATE_VAL.ERROR $kasseta_fs_kd/ref_A4.state = STATE_VAL.GOOD if status_dkm else STATE_VAL.ERROR - _control_results["dkm_6"] = status_dkm + _control_results['dkm_6'] = status_dkm elif bit_dkm == 6: $dou7_A8.state = STATE_VAL.GOOD if status_dkm else STATE_VAL.ERROR $kasseta_fs_kd/ref_A7.state = STATE_VAL.GOOD if status_dkm else STATE_VAL.ERROR - _control_results["dkm_7"] = status_dkm + _control_results['dkm_7'] = status_dkm elif bit_dkm == 0: $kasseta_fs_kd/ref_A2.state = STATE_VAL.GOOD if status_dkm else STATE_VAL.ERROR - _control_results["dkm_1"] = status_dkm + _control_results['dkm_1'] = status_dkm return status_dkm @@ -370,10 +381,10 @@ func _process_ukp_power(status: PackedByteArray) -> void: func power_control_result() -> void: var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier') - _control_results["power_ukp"] = true + _control_results['power_ukp'] = true for amp in power_amplifier: if amp.state != STATE_VAL.GOOD: - _control_results["power_ukp"] = false + _control_results['power_ukp'] = false break @@ -417,37 +428,30 @@ func on_stop_control() -> void: state = STATE_MASHINE.FS_TURN_OFF -func on_fs_update_state(packet_type_7: Dictionary) -> void: +func on_fs_update_state(packet_type_7: Dictionary, fs_mapping: Dictionary) -> void: # Словарь для маппинга: ключ - номер FS, значение - целевая нода и условие прибора - var fs_mapping = { - 0: { "node": $kasseta_fs_kd/ref_A3, "condition": pribor == '1к' }, - 1: { "node": $kasseta_fs_kd/ref_A3, "condition": pribor == '4к' }, - 2: { "node": $kasseta_fs_kd/ref_A3, "condition": pribor == '3к' }, - 3: { "node": $kasseta_fs_kd/ref_A3, "condition": pribor == '2к' }, - 20: { "node": $kasseta_fs_kd/ref_A6, "condition": pribor == '1к' }, - 21: { "node": $kasseta_fs_kd/ref_A6, "condition": pribor == '4к' }, - 22: { "node": $kasseta_fs_kd/ref_A6, "condition": pribor == '3к' }, - 23: { "node": $kasseta_fs_kd/ref_A6, "condition": pribor == '2к' }, - 24: { "node": $kasseta_fs_kd/ref_A5, "condition": pribor == '1к' }, - 25: { "node": $kasseta_fs_kd/ref_A5, "condition": pribor == '4к' }, - 26: { "node": $kasseta_fs_kd/ref_A5, "condition": pribor == '3к' }, - 27: { "node": $kasseta_fs_kd/ref_A5, "condition": pribor == '2к' }, - } + for fs in packet_type_7: - if fs in fs_mapping and fs_mapping[fs]["condition"]: + if fs in fs_mapping and fs_mapping[fs]['condition']: var data = packet_type_7[fs] if fs < 4 and current_fs == 1: - _control_results["fs_1"] = (data.isg == 1) + _control_results['fs_1'] = (data.isg == 1) var state_fs = STATE_VAL.GOOD if data.isg == 1 else STATE_VAL.ERROR if data.isg == 0 else STATE_VAL.NONE - fs_mapping[fs]["node"].state = state_fs + var node_name = fs_mapping[fs]['node'] + var node = get_node(node_name) + node.state = state_fs elif fs < 24 and current_fs == 6: - _control_results["fs_6"] = (data.isg == 1) + _control_results['fs_6'] = (data.isg == 1) var state_fs = STATE_VAL.GOOD if data.isg == 1 else STATE_VAL.ERROR if data.isg == 0 else STATE_VAL.NONE - fs_mapping[fs]["node"].state = state_fs + var node_name = fs_mapping[fs]['node'] + var node = get_node(node_name) + node.state = state_fs elif fs > 23 and current_fs == 7: - _control_results["fs_7"] = (data.isg == 1) + _control_results['fs_7'] = (data.isg == 1) var state_fs = STATE_VAL.GOOD if data.isg == 1 else STATE_VAL.ERROR if data.isg == 0 else STATE_VAL.NONE - fs_mapping[fs]["node"].state = state_fs + var node_name = fs_mapping[fs]['node'] + var node = get_node(node_name) + node.state = state_fs func on_ug_setting() -> void: @@ -499,4 +503,4 @@ func on_control_result() -> void: status_color = Color.AQUAMARINE $control_result.text = 'Прибор ПРД-%s %s' % [pribor, status_text] - $control_result.add_theme_color_override("font_color", status_color) + $control_result.add_theme_color_override('font_color', status_color) diff --git a/scenes/pribor-prd-n/pribor-prd-n.gd b/scenes/pribor-prd-n/pribor-prd-n.gd index d6f8c12d..3373e6df 100644 --- a/scenes/pribor-prd-n/pribor-prd-n.gd +++ b/scenes/pribor-prd-n/pribor-prd-n.gd @@ -1,26 +1,26 @@ -extends "res://scenes/контроль/прибор.gd" +extends 'res://scenes/контроль/прибор.gd' const Constants = { - "IN_BLANK_PRD": 1, - "OUT_BLANK_PRD": 13, - "CI_2_OT_FS": 9, - "CI_3_OT_FS": 10, - "CI_2_B_UF": 4, - "CI_3_B_UF": 5, - "POWER_UKP_1": 31, - "POWER_UKP_2": 63, - "DKM_BIT_2": 1, - "DKM_BIT_3": 2, - "BASE_ADDR_EMS_G": 0x120, - "ADDR_UG_LITERA_1": 0x106, - "ADDR_UG_LITERA_2": 0x108, - "TEMP_THRESHOLD": 70, - "POWER_THRESHOLD": 40, - "RAY_DOU": 3, - "ATT_UM_2": 0x7, - "ATT_UM_3": 0x7, - "TIMER_DELAY": 5.0, - "POWER_UM": 70, + 'IN_BLANK_PRD': 1, + 'OUT_BLANK_PRD': 13, + 'CI_2_OT_FS': 9, + 'CI_3_OT_FS': 10, + 'CI_2_B_UF': 4, + 'CI_3_B_UF': 5, + 'POWER_UKP_1': 31, + 'POWER_UKP_2': 63, + 'DKM_BIT_2': 1, + 'DKM_BIT_3': 2, + 'BASE_ADDR_EMS_G': 0x120, + 'ADDR_UG_LITERA_1': 0x106, + 'ADDR_UG_LITERA_2': 0x108, + 'TEMP_THRESHOLD': 70, + 'POWER_THRESHOLD': 40, + 'RAY_DOU': 3, + 'ATT_UM_2': 0x7, + 'ATT_UM_3': 0x7, + 'TIMER_DELAY': 5.0, + 'POWER_UM': 70, } enum STATE_VAL { NONE = 0, GOOD = 1, ERROR = 2 } enum STATE_MASHINE { @@ -52,13 +52,13 @@ var mashine_timer: Timer = Timer.new() # Результаты контроля var _control_results: Dictionary = { - "block_ip": false, # Проверка касет П1 и ИП МА2000 - "temperature": true, # Проверка температур УМ - "dkm_2": false, # Проверка ДКМ - "dkm_3": false, # Проверка ДКМ - "power_ukp": false, # Мощность от УКП - "fs_2": false, # Проверка ФС - "fs_3": false, + 'block_ip': false, # Проверка касет П1 и ИП МА2000 + 'temperature': true, # Проверка температур УМ + 'dkm_2': false, # Проверка ДКМ + 'dkm_3': false, # Проверка ДКМ + 'power_ukp': false, # Мощность от УКП + 'fs_2': false, # Проверка ФС + 'fs_3': false, } @@ -99,7 +99,7 @@ func on_state_mashine() -> void: prd_module.cmd_array.append([unit_prd.CmdCode.WRITE_ISA, [Constants.BASE_ADDR_EMS_G, 6666]]) flag_timer_started = true state = STATE_MASHINE.UG_SET - + STATE_MASHINE.UG_SET: print('UG_SET') on_ug_setting() @@ -137,7 +137,7 @@ func setup_timer() -> void: mashine_timer.connect('timeout', Callable(self, 'on_state_mashine')) mashine_timer.wait_time = 0.5 mashine_timer.start() - + add_child(control_timer) control_timer.connect('timeout', Callable(self, 'on_stop_control')) control_timer.one_shot = true @@ -162,7 +162,7 @@ func _exit_tree() -> void: var unit_name = get_meta('unit_name')[0] var unit_prd = network.get_unit_instance(unit_name) var prd_module = prd.prd_dict[unit_prd.name] - + prd_module.cmd_array.append([unit_prd.CmdCode.WRITE_ISA, [Constants.ADDR_UG_LITERA_1, ug_work_2, Constants.ADDR_UG_LITERA_2, ug_work_3]]) @@ -185,7 +185,7 @@ func on_data_received(unit_prd: Object) -> void: flag_check_dkm = check_dkm(status, Constants.DKM_BIT_2) elif current_fs == 3 and _control_results.fs_3: flag_check_dkm = check_dkm(status, Constants.DKM_BIT_3) - + if _control_results.fs_2 or _control_results.fs_3: # Обработка мощности от УКП _process_ukp_power(status) @@ -235,7 +235,7 @@ func check_block_ip(status_prd: PackedByteArray) -> void : $kasseta_P_1/ref_A20.state = STATE_VAL.NONE $kasseta_P_1/ref_A21.state = STATE_VAL.NONE - _control_results["block_ip"] = ( + _control_results['block_ip'] = ( $maa2000_A23.state == STATE_VAL.GOOD and $maa2000_A22.state == STATE_VAL.GOOD and $kasseta_P_1/ref_A19.state == STATE_VAL.GOOD and @@ -261,7 +261,7 @@ func check_temperature_um(status_prd: PackedByteArray) -> void: var tmp_1: int = round(CONST_MIN_TEMP + (MAXIMUM_CODE_ADC - temperature_ukp_1) * TEMP + 3) power_amplifier[i_temp].value0 = tmp_1 if tmp_1 > Constants.TEMP_THRESHOLD: - _control_results["temperature"] = false + _control_results['temperature'] = false var ukp2_online = (status_prd[0] >> 3) & 1 if ukp2_online: for i_temp in range(6): @@ -269,7 +269,7 @@ func check_temperature_um(status_prd: PackedByteArray) -> void: var tmp_2: int = round(CONST_MIN_TEMP + (MAXIMUM_CODE_ADC - temperature_ukp_2) * TEMP + 3) power_amplifier[i_temp+6].value0 = tmp_2 if tmp_2 > Constants.TEMP_THRESHOLD: - _control_results["temperature"] = false + _control_results['temperature'] = false @@ -282,11 +282,11 @@ func check_dkm(status_prd: PackedByteArray, bit_dkm: int) -> bool: if bit_dkm == 1: $dou3_A5.state = STATE_VAL.GOOD if status_dkm else STATE_VAL.ERROR $kasseta_FS_ND/ref_A3.state = STATE_VAL.GOOD if status_dkm else STATE_VAL.ERROR - _control_results["dkm_2"] = status_dkm + _control_results['dkm_2'] = status_dkm elif bit_dkm == 2: $dou2_A6.state = STATE_VAL.GOOD if status_dkm else STATE_VAL.ERROR $kasseta_FS_ND/ref_A4.state = STATE_VAL.GOOD if status_dkm else STATE_VAL.ERROR - _control_results["dkm_3"] = status_dkm + _control_results['dkm_3'] = status_dkm return status_dkm @@ -372,10 +372,10 @@ func _on_control_fs(mode: bool) -> void: func power_control_result() -> void: var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier') - _control_results["power_ukp"] = true + _control_results['power_ukp'] = true for amp in power_amplifier: if amp.state != STATE_VAL.GOOD: - _control_results["power_ukp"] = false + _control_results['power_ukp'] = false break @@ -386,26 +386,26 @@ func on_stop_control() -> void: func on_fs_update_state(packet_type_7: Dictionary) -> void: # Словарь для маппинга: ключ - номер FS, значение - целевая нода и условие прибора var fs_mapping = { - 4: { "node": $kasseta_FS_ND/ref_A1, "condition": pribor == '1н' }, - 5: { "node": $kasseta_FS_ND/ref_A1, "condition": pribor == '4н' }, - 6: { "node": $kasseta_FS_ND/ref_A1, "condition": pribor == '3н' }, - 7: { "node": $kasseta_FS_ND/ref_A1, "condition": pribor == '2н' }, - 8: { "node": $kasseta_FS_ND/ref_A2, "condition": pribor == '1н' }, - 9: { "node": $kasseta_FS_ND/ref_A2, "condition": pribor == '4н' }, - 10: { "node": $kasseta_FS_ND/ref_A2, "condition": pribor == '3н' }, - 11: { "node": $kasseta_FS_ND/ref_A2, "condition": pribor == '2н' } + 4: { 'node': $kasseta_FS_ND/ref_A1, 'condition': pribor == '1н' }, + 5: { 'node': $kasseta_FS_ND/ref_A1, 'condition': pribor == '4н' }, + 6: { 'node': $kasseta_FS_ND/ref_A1, 'condition': pribor == '3н' }, + 7: { 'node': $kasseta_FS_ND/ref_A1, 'condition': pribor == '2н' }, + 8: { 'node': $kasseta_FS_ND/ref_A2, 'condition': pribor == '1н' }, + 9: { 'node': $kasseta_FS_ND/ref_A2, 'condition': pribor == '4н' }, + 10: { 'node': $kasseta_FS_ND/ref_A2, 'condition': pribor == '3н' }, + 11: { 'node': $kasseta_FS_ND/ref_A2, 'condition': pribor == '2н' } } for fs in packet_type_7: - if fs in fs_mapping and fs_mapping[fs]["condition"]: + if fs in fs_mapping and fs_mapping[fs]['condition']: var data = packet_type_7[fs] if fs < 8 and current_fs == 2: - _control_results["fs_2"] = (data.isg == 1) + _control_results['fs_2'] = (data.isg == 1) var state_fs = STATE_VAL.GOOD if data.isg == 1 else STATE_VAL.ERROR if data.isg == 0 else STATE_VAL.NONE - fs_mapping[fs]["node"].state = state_fs + fs_mapping[fs]['node'].state = state_fs elif fs > 7 and current_fs == 3: - _control_results["fs_3"] = (data.isg == 1) + _control_results['fs_3'] = (data.isg == 1) var state_fs = STATE_VAL.GOOD if data.isg == 1 else STATE_VAL.ERROR if data.isg == 0 else STATE_VAL.NONE - fs_mapping[fs]["node"].state = state_fs + fs_mapping[fs]['node'].state = state_fs func on_ug_setting() -> void: @@ -453,4 +453,4 @@ func on_control_result() -> void: status_color = Color.AQUAMARINE $control_result.text = 'Прибор ПРД-%s %s' % [pribor, status_text] - $control_result.add_theme_color_override("font_color", status_color) + $control_result.add_theme_color_override('font_color', status_color)