From b521a1fed5b0b7639621c74acff565759ba38bb1 Mon Sep 17 00:00:00 2001 From: sasha80 Date: Mon, 4 Aug 2025 14:51:03 +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/frame-ecm-params/scroll-ecm-params.gd | 1 - scenes/frame-params/scroll-params.gd | 2 +- scenes/frame-threats/scroll-threats.gd | 8 +- scenes/pribor-prd-k/pribor-prd-k.gd | 134 +++++++++---------- scenes/pribor-prd-n/pribor-prd-n.gd | 70 +++++----- scenes/pribor-prd-v/pribor-prd-v.gd | 98 +++++++------- scenes/tilemap/tilemap.gd | 9 +- scenes/журнал/журнал.gd | 6 +- scenes/эмс/кнопка-эмс.gd | 2 +- scripts/file-table.gd | 4 +- scripts/network.gd | 14 +- scripts/settings.gd | 5 - 12 files changed, 173 insertions(+), 180 deletions(-) diff --git a/scenes/frame-ecm-params/scroll-ecm-params.gd b/scenes/frame-ecm-params/scroll-ecm-params.gd index 3fc2c3a0..6ce798d2 100644 --- a/scenes/frame-ecm-params/scroll-ecm-params.gd +++ b/scenes/frame-ecm-params/scroll-ecm-params.gd @@ -103,7 +103,6 @@ func on_ecm_update(toggle_btn): toggle_btn.button_pressed = ecm.modulation - func on_rto_threat_unsel(_th_id): for item in range(len(TABLE_PARAMS)): $table.set_node_text(1, item, '') diff --git a/scenes/frame-params/scroll-params.gd b/scenes/frame-params/scroll-params.gd index 78bb5ba7..4fae1ff7 100644 --- a/scenes/frame-params/scroll-params.gd +++ b/scenes/frame-params/scroll-params.gd @@ -61,5 +61,5 @@ func on_threat_update(th): func on_rto_threat_unsel(_th_id): - for item in range(len(TABLE_PARAMS)): + for item in len(TABLE_PARAMS): $table.set_node_text(1, item, '') diff --git a/scenes/frame-threats/scroll-threats.gd b/scenes/frame-threats/scroll-threats.gd index f054b02f..a0f2056c 100644 --- a/scenes/frame-threats/scroll-threats.gd +++ b/scenes/frame-threats/scroll-threats.gd @@ -14,6 +14,10 @@ const TABLE_HEADERS_TEXT = ['Номер', 'Пеленг', 'Часто const TABLE_COLUMN_SIZE = [ 65, 145, 145, 90 ] ## Ширины колонок. +## Снимает выделение цели. +func on_rto_threat_unsel(_th_id): $table.clear_rows_selected() + + ## Вызывается при нажатии указателем мыши на выбранный ряд. func on_row_pressed(i_row: int): row_pressed(i_row) @@ -97,7 +101,3 @@ func on_rto_threat_sel(th_id, tbl): if node.text.to_int() == th_id: row_pressed(i) break - - -## Снимает выделение цели. -func on_rto_threat_unsel(_th_id): $table.clear_rows_selected() diff --git a/scenes/pribor-prd-k/pribor-prd-k.gd b/scenes/pribor-prd-k/pribor-prd-k.gd index 62d10a88..04c087da 100644 --- a/scenes/pribor-prd-k/pribor-prd-k.gd +++ b/scenes/pribor-prd-k/pribor-prd-k.gd @@ -1,36 +1,36 @@ @tool -extends "res://scenes/контроль/прибор.gd" +extends 'res://scenes/контроль/прибор.gd' const Constants = { - "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": 70, - "POWER_THRESHOLD": 40, - "TIMER_DELAY": 1.5, - "dou_ray_nuber": 0x3, - "attenutor_um_1": 0x7, - "attenutor_um_2": 0x7, - "attenutor_um_3": 0x7, + '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': 70, + 'POWER_THRESHOLD': 40, + 'TIMER_DELAY': 1.5, + 'dou_ray_nuber': 0x3, + 'attenutor_um_1': 0x7, + 'attenutor_um_2': 0x7, + 'attenutor_um_3': 0x7, } enum STATE_VAL { NONE = 0, GOOD = 1, ERROR = 2 } # Основные переменные @@ -47,14 +47,14 @@ var control_timer: Timer = Timer.new() var flag_timer_started: bool = false # Результаты контроля var _control_results: Dictionary = { - "block_ip": false, # Проверка касет П1 и ИП МА2000 - "temperature": true, # Проверка температур УМ - "dkm_1": false, # Проверка ДКМ - "dkm_2": false, # Проверка ДКМ - "power_ukp": false, # Мощность от УКП - "fs_1": false, # Проверка ФС - "fs_2": false, - "fs_3": false, + 'block_ip': false, # Проверка касет П1 и ИП МА2000 + 'temperature': true, # Проверка температур УМ + 'dkm_1': false, # Проверка ДКМ + 'dkm_2': false, # Проверка ДКМ + 'power_ukp': false, # Мощность от УКП + 'fs_1': false, # Проверка ФС + 'fs_2': false, + 'fs_3': false, } @@ -178,7 +178,7 @@ func check_block_ip(status_prd: PackedByteArray) -> void : $kasseta_p_2/ref_A26.state = STATE_VAL.NONE $kasseta_p_2/ref_A23.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_A26.state == STATE_VAL.GOOD and @@ -222,14 +222,14 @@ func check_dkm(status_prd: PackedByteArray, bit_dkm: int) -> void: if bit_dkm == 5: $dou6_A7.state = STATE_VAL.GOOD if status_dkm else STATE_VAL.ERROR $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 elif bit_dkm == 6: $dou7_A8.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_2"] = status_dkm + _control_results['dkm_2'] = status_dkm elif bit_dkm == 0: $kasseta_fs_kd/ref_A7.state = STATE_VAL.GOOD if status_dkm else STATE_VAL.ERROR - _control_results["dkm_3"] = status_dkm + _control_results['dkm_3'] = status_dkm func _process_ukp_power(status: PackedByteArray) -> void: @@ -278,27 +278,25 @@ func _process_ukp_power(status: PackedByteArray) -> void: count_packet_2 += 1 - _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 func _on_control_fs(mode: bool) -> void: var interfer_name: String - var fs_arr: Array + var fs_arr: = [[90.0, 2450.0, 1500.0, 23]] if mode: interfer_name = 'k1' - fs_arr = [[90.0, 2450.0, 1500.0, 23]] else: interfer_name = 'off' - fs_arr = [[90.0, 2450.0, 1500.0, 23]] signaller.emit_signal('interfer_init', interfer_name, fs_arr, 50.0) func on_stop_control() -> void: - print_debug('Отсановка контроля ПРД') + print_debug('Контроль ПРД остановлен') _on_control_fs(false) on_control_result() @@ -309,31 +307,31 @@ func on_fs_update_state(packet_type_7: Dictionary) -> void: # Словарь для маппинга: ключ - номер FS, значение - целевая нода и условие прибора var fs_mapping = { - 0: { "node": $kasseta_fs_kd/ref_A3, "condition": last_part == '1к' }, - 1: { "node": $kasseta_fs_kd/ref_A3, "condition": last_part == '4к' }, - 2: { "node": $kasseta_fs_kd/ref_A3, "condition": last_part == '3к' }, - 3: { "node": $kasseta_fs_kd/ref_A3, "condition": last_part == '2к' }, - 20: { "node": $kasseta_fs_kd/ref_A6, "condition": last_part == '1к' }, - 21: { "node": $kasseta_fs_kd/ref_A6, "condition": last_part == '4к' }, - 22: { "node": $kasseta_fs_kd/ref_A6, "condition": last_part == '3к' }, - 23: { "node": $kasseta_fs_kd/ref_A6, "condition": last_part == '2к' }, - 24: { "node": $kasseta_fs_kd/ref_A5, "condition": last_part == '1к' }, - 25: { "node": $kasseta_fs_kd/ref_A5, "condition": last_part == '4к' }, - 26: { "node": $kasseta_fs_kd/ref_A5, "condition": last_part == '3к' }, - 27: { "node": $kasseta_fs_kd/ref_A5, "condition": last_part == '2к' }, + 0: { 'node': $kasseta_fs_kd/ref_A3, 'condition': last_part == '1к' }, + 1: { 'node': $kasseta_fs_kd/ref_A3, 'condition': last_part == '4к' }, + 2: { 'node': $kasseta_fs_kd/ref_A3, 'condition': last_part == '3к' }, + 3: { 'node': $kasseta_fs_kd/ref_A3, 'condition': last_part == '2к' }, + 20: { 'node': $kasseta_fs_kd/ref_A6, 'condition': last_part == '1к' }, + 21: { 'node': $kasseta_fs_kd/ref_A6, 'condition': last_part == '4к' }, + 22: { 'node': $kasseta_fs_kd/ref_A6, 'condition': last_part == '3к' }, + 23: { 'node': $kasseta_fs_kd/ref_A6, 'condition': last_part == '2к' }, + 24: { 'node': $kasseta_fs_kd/ref_A5, 'condition': last_part == '1к' }, + 25: { 'node': $kasseta_fs_kd/ref_A5, 'condition': last_part == '4к' }, + 26: { 'node': $kasseta_fs_kd/ref_A5, 'condition': last_part == '3к' }, + 27: { 'node': $kasseta_fs_kd/ref_A5, 'condition': last_part == '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] var state = 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_mapping[fs]['node'].state = state if fs < 4: - _control_results["fs_1"] = (data.isg == 1) + _control_results['fs_1'] = (data.isg == 1) elif fs <24: - _control_results["fs_2"] = (data.isg == 1) + _control_results['fs_2'] = (data.isg == 1) else: - _control_results["fs_3"] = (data.isg == 1) - if _control_results['fs_1'] and _control_results["fs_2"] and _control_results["fs_3"] and not flag_timer_started: + _control_results['fs_3'] = (data.isg == 1) + if _control_results['fs_1'] and _control_results['fs_2'] and _control_results['fs_3'] and not flag_timer_started: on_ug_setting() control_timer.wait_time = Constants.TIMER_DELAY control_timer.start() @@ -384,9 +382,9 @@ func on_control_result() -> void: var last_part = parts[-1] # Прибор if result: $control_result.text = 'Прибор ПРД-%s исправен' % last_part - $control_result.add_theme_color_override("font_color", Color.AQUAMARINE) + $control_result.add_theme_color_override('font_color', Color.AQUAMARINE) else: $control_result.text = 'Прибор ПРД-%s неисправен' % last_part - $control_result.add_theme_color_override("font_color", Color.CRIMSON) + $control_result.add_theme_color_override('font_color', Color.CRIMSON) await get_tree().create_timer(Constants.TIMER_DELAY).timeout flag_timer_started = false diff --git a/scenes/pribor-prd-n/pribor-prd-n.gd b/scenes/pribor-prd-n/pribor-prd-n.gd index eb6637f6..f049c9a2 100644 --- a/scenes/pribor-prd-n/pribor-prd-n.gd +++ b/scenes/pribor-prd-n/pribor-prd-n.gd @@ -1,22 +1,22 @@ @tool -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, - "ADDR_UG_LITERA_1": 0x106, - "ADDR_UG_LITERA_2": 0x108, - "TEMP_THRESHOLD": 70, - "POWER_THRESHOLD": 40, - "TIMER_DELAY": 1.0 + '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, + 'ADDR_UG_LITERA_1': 0x106, + 'ADDR_UG_LITERA_2': 0x108, + 'TEMP_THRESHOLD': 70, + 'POWER_THRESHOLD': 40, + 'TIMER_DELAY': 1.0 } enum STATE_VAL { NONE = 0, GOOD = 1, ERROR = 2 } # Основные переменные @@ -32,13 +32,13 @@ var control_timer: Timer = Timer.new() var flag_timer_started: bool = false # Результаты контроля var _control_results: Dictionary = { - "block_ip": false, # Проверка касет П1 и ИП МА2000 - "temperature": true, # Проверка температур УМ - "dkm_1": false, # Проверка ДКМ - "dkm_2": false, # Проверка ДКМ - "power_ukp": false, # Мощность от УКП - "fs_1": false, # Проверка ФС - "fs_2": false, + 'block_ip': false, # Проверка касет П1 и ИП МА2000 + 'temperature': true, # Проверка температур УМ + 'dkm_1': false, # Проверка ДКМ + 'dkm_2': false, # Проверка ДКМ + 'power_ukp': false, # Мощность от УКП + 'fs_1': false, # Проверка ФС + 'fs_2': false, } @@ -194,11 +194,11 @@ func check_dkm(status_prd: PackedByteArray, bit_dkm: int) -> void: if bit_dkm == 1: $dou2_A5.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_1"] = status_dkm + _control_results['dkm_1'] = status_dkm elif bit_dkm == 2: $dou3_A6.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 func _process_ukp_power(status: PackedByteArray) -> void: @@ -244,10 +244,10 @@ func _process_ukp_power(status: PackedByteArray) -> void: count_packet_2 += 1 - _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 @@ -274,14 +274,14 @@ func on_fs_update_state(packet_type_7: Dictionary) -> void: # Словарь для маппинга: ключ - номер FS, значение - целевая нода и условие прибора var fs_mapping = { - 4: { "node": $kasseta_FS_ND/ref_A1, "condition": last_part == '1н' }, - 5: { "node": $kasseta_FS_ND/ref_A1, "condition": last_part == '4н' }, - 6: { "node": $kasseta_FS_ND/ref_A1, "condition": last_part == '3н' }, - 7: { "node": $kasseta_FS_ND/ref_A1, "condition": last_part == '2н' }, - 8: { "node": $kasseta_FS_ND/ref_A2, "condition": last_part == '1н' }, - 9: { "node": $kasseta_FS_ND/ref_A2, "condition": last_part == '4н' }, - 10: { "node": $kasseta_FS_ND/ref_A2, "condition": last_part == '3н' }, - 11: { "node": $kasseta_FS_ND/ref_A2, "condition": last_part == '2н' } + 4: { 'node': $kasseta_FS_ND/ref_A1, 'condition': last_part == '1н' }, + 5: { 'node': $kasseta_FS_ND/ref_A1, 'condition': last_part == '4н' }, + 6: { 'node': $kasseta_FS_ND/ref_A1, 'condition': last_part == '3н' }, + 7: { 'node': $kasseta_FS_ND/ref_A1, 'condition': last_part == '2н' }, + 8: { 'node': $kasseta_FS_ND/ref_A2, 'condition': last_part == '1н' }, + 9: { 'node': $kasseta_FS_ND/ref_A2, 'condition': last_part == '4н' }, + 10: { 'node': $kasseta_FS_ND/ref_A2, 'condition': last_part == '3н' }, + 11: { 'node': $kasseta_FS_ND/ref_A2, 'condition': last_part == '2н' } } for fs in packet_type_7: if fs in fs_mapping and fs_mapping[fs]["condition"]: diff --git a/scenes/pribor-prd-v/pribor-prd-v.gd b/scenes/pribor-prd-v/pribor-prd-v.gd index 5a3f598a..d65fbad3 100644 --- a/scenes/pribor-prd-v/pribor-prd-v.gd +++ b/scenes/pribor-prd-v/pribor-prd-v.gd @@ -2,22 +2,22 @@ extends "res://scenes/контроль/прибор.gd" const Constants = { - "IN_BLANK_PRD": 1, - "OUT_BLANK_PRD": 13, - "CI_4_OT_FS": 11, - "CI_5_OT_FS": 12, - "CI_4_B_UF": 4, - "CI_5_B_UF": 5, - "POWER_UKP_1": 31, - "POWER_UKP_2": 63, - "DKM_BIT_3": 3, - "DKM_BIT_4": 4, - "ADDR_UG_LITERA_1": 0x106, - "ADDR_UG_LITERA_2": 0x108, - "TEMP_THRESHOLD": 70, - "POWER_THRESHOLD": 40, - "TIMER_DELAY": 1.4, - "POWER_UM": 70, + 'IN_BLANK_PRD': 1, + 'OUT_BLANK_PRD': 13, + 'CI_4_OT_FS': 11, + 'CI_5_OT_FS': 12, + 'CI_4_B_UF': 4, + 'CI_5_B_UF': 5, + 'POWER_UKP_1': 31, + 'POWER_UKP_2': 63, + 'DKM_BIT_3': 3, + 'DKM_BIT_4': 4, + 'ADDR_UG_LITERA_1': 0x106, + 'ADDR_UG_LITERA_2': 0x108, + 'TEMP_THRESHOLD': 70, + 'POWER_THRESHOLD': 40, + 'TIMER_DELAY': 1.4, + 'POWER_UM': 70, } enum STATE_VAL { NONE = 0, GOOD = 1, ERROR = 2 } # Основные переменные @@ -33,13 +33,13 @@ var control_timer: Timer = Timer.new() var flag_timer_started: bool = false # Результаты контроля var _control_results: Dictionary = { - "block_ip": false, # Проверка касет П1 и ИП МА2000 - "temperature": true, # Проверка температур УМ - "dkm_1": false, # Проверка ДКМ - "dkm_2": false, # Проверка ДКМ - "power_ukp": false, # Мощность от УКП - "fs_1": false, # Проверка ФС - "fs_2": false, + 'block_ip': false, # Проверка касет П1 и ИП МА2000 + 'temperature': true, # Проверка температур УМ + 'dkm_1': false, # Проверка ДКМ + 'dkm_2': false, # Проверка ДКМ + 'power_ukp': false, # Мощность от УКП + 'fs_1': false, # Проверка ФС + 'fs_2': false, } @@ -139,7 +139,7 @@ func check_block_ip(status_prd: PackedByteArray) -> void: $kasseta_P_1/ref_A20.state = STATE_VAL.ERROR if ip9_50_2 else STATE_VAL.GOOD $kasseta_P_1/ref_A21.state = STATE_VAL.ERROR if ip12_50_1 else STATE_VAL.GOOD - _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 @@ -151,18 +151,18 @@ func check_block_ip(status_prd: PackedByteArray) -> void: ## Проверка температур УМ от УКП func check_temperature_um(status_prd: PackedByteArray) -> void: const TEMP_CONSTANTS = { - "min_temp": -25, - "max_code": 3796, - "min_code": 2660, - "temp_factor": 115.0 / (3796 - 2660), - "offset": 3 # Корректировка температуры + 'min_temp': -25, + 'max_code': 3796, + 'min_code': 2660, + 'temp_factor': 115.0 / (3796 - 2660), + 'offset': 3 # Корректировка температуры } const TEMPERATURE_UKP_1: int = 47 const TEMPERATURE_UKP_2: int = 79 var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier') # Сбрас флагов перед проверкой - _control_results["temperature"] = true + _control_results['temperature'] = true var ukp1_online: int = (status_prd[0] >> 2) & 1 if ukp1_online: @@ -171,7 +171,7 @@ func check_temperature_um(status_prd: PackedByteArray) -> void: var tmp_1: int = round(TEMP_CONSTANTS['min_temp'] + (TEMP_CONSTANTS['max_code'] - temperature_ukp_1) * TEMP_CONSTANTS['temp_factor'] + TEMP_CONSTANTS['offset']) 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: @@ -180,7 +180,7 @@ func check_temperature_um(status_prd: PackedByteArray) -> void: var tmp_2: int = round(TEMP_CONSTANTS['min_temp'] + (TEMP_CONSTANTS['max_code'] - temperature_ukp_2) * TEMP_CONSTANTS['temp_factor'] + TEMP_CONSTANTS['offset']) power_amplifier[i_temp+6].value0 = tmp_2 if tmp_2 > Constants.TEMP_THRESHOLD: - _control_results["temperature"] = false + _control_results['temperature'] = false ## Проверка ДКМ @@ -190,11 +190,11 @@ func check_dkm(status_prd: PackedByteArray, bit_dkm: int) -> void: if bit_dkm == Constants.DKM_BIT_3: $dou5_A6.state = STATE_VAL.GOOD if status_dkm else STATE_VAL.ERROR $kasseta_FS_VD/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 elif bit_dkm == Constants.DKM_BIT_4: $dou4_A5.state = STATE_VAL.GOOD if status_dkm else STATE_VAL.ERROR $kasseta_FS_VD/ref_A6.state = STATE_VAL.GOOD if status_dkm else STATE_VAL.ERROR - _control_results["dkm_2"] = status_dkm + _control_results['dkm_2'] = status_dkm # Обрабатывает данные ЭМС и обновляет UI панели @@ -255,10 +255,10 @@ func _process_ukp_power(status: PackedByteArray) -> void: count_packet_2 += 1 - _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 @@ -303,25 +303,25 @@ func on_fs_update_state(packet_type_7: Dictionary) -> void: # Словарь для маппинга: ключ - номер FS, значение - целевая нода и условие прибора var fs_mapping = { - 12: { "node": $kasseta_FS_VD/ref_A3, "condition": last_part == '1в' }, - 13: { "node": $kasseta_FS_VD/ref_A3, "condition": last_part == '4в' }, - 14: { "node": $kasseta_FS_VD/ref_A3, "condition": last_part == '3в' }, - 15: { "node": $kasseta_FS_VD/ref_A3, "condition": last_part == '2в' }, - 16: { "node": $kasseta_FS_VD/ref_A4, "condition": last_part == '1в' }, - 17: { "node": $kasseta_FS_VD/ref_A4, "condition": last_part == '4в' }, - 18: { "node": $kasseta_FS_VD/ref_A4, "condition": last_part == '3в' }, - 19: { "node": $kasseta_FS_VD/ref_A4, "condition": last_part == '2в' } + 12: { 'node': $kasseta_FS_VD/ref_A3, 'condition': last_part == '1в' }, + 13: { 'node': $kasseta_FS_VD/ref_A3, 'condition': last_part == '4в' }, + 14: { 'node': $kasseta_FS_VD/ref_A3, 'condition': last_part == '3в' }, + 15: { 'node': $kasseta_FS_VD/ref_A3, 'condition': last_part == '2в' }, + 16: { 'node': $kasseta_FS_VD/ref_A4, 'condition': last_part == '1в' }, + 17: { 'node': $kasseta_FS_VD/ref_A4, 'condition': last_part == '4в' }, + 18: { 'node': $kasseta_FS_VD/ref_A4, 'condition': last_part == '3в' }, + 19: { 'node': $kasseta_FS_VD/ref_A4, 'condition': last_part == '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] var state = 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_mapping[fs]['node'].state = state if fs < 16: - _control_results["fs_1"] = (data.isg == 1) + _control_results['fs_1'] = (data.isg == 1) else: - _control_results["fs_2"] = (data.isg == 1) - if _control_results['fs_1'] and _control_results["fs_2"] and not flag_timer_started: + _control_results['fs_2'] = (data.isg == 1) + if _control_results['fs_1'] and _control_results['fs_2'] and not flag_timer_started: on_ug_setting() control_timer.wait_time = Constants.TIMER_DELAY control_timer.start() diff --git a/scenes/tilemap/tilemap.gd b/scenes/tilemap/tilemap.gd index 200a35b2..ffada5e1 100644 --- a/scenes/tilemap/tilemap.gd +++ b/scenes/tilemap/tilemap.gd @@ -12,6 +12,7 @@ class_name MercatorTileMap base_url = v _clean_all() queue_redraw() +const TILE_REQUEST_NAME: = 'tile_request_%d' @export var zoom_step: float = 0.1 @export var tile_width: float = 256.0 @@ -160,7 +161,7 @@ func _on_resize() -> void: $canvas/spr_mask.scale = $canvas.size / default_size -## Создаёт новую отметку из координат экранаa +## Создаёт новую отметку из координат экрана func add_mark_from_screen_pos(id: int, scr_xy: Vector2, mark: Node) -> bool: if _marks.has(id): return false @@ -348,7 +349,7 @@ func _process(delta) -> void: _req_count += 1 req.set_meta('tile', tile) add_child(req) - req.name = NodePath(str(tile.i)) + req.name = NodePath(TILE_REQUEST_NAME % tile.i) _queue.erase(tile.i) req.request_completed.connect(_response.bind(req, tile)) @@ -699,12 +700,12 @@ func blend_mask(val: bool) -> void: func update_coordinates_label(lon: float, lat: float) -> void: - coordinates_label = "Координаты:\nNS:%f\nEW: %f" % [lat, lon] + coordinates_label = 'Координаты:\nNS:%f\nEW: %f' % [lat, lon] signaller.emit_signal('update_coordinates_map', coordinates_label) func update_scale_label() -> void: - scale_label = "Масштаб: " + str(round(_xyz.z)) + scale_label = 'Масштаб: ' + str(round(_xyz.z)) signaller.emit_signal('update_scale_map', scale_label) diff --git a/scenes/журнал/журнал.gd b/scenes/журнал/журнал.gd index 2c304e24..46b206c1 100644 --- a/scenes/журнал/журнал.gd +++ b/scenes/журнал/журнал.gd @@ -1,10 +1,10 @@ extends Panel -func on_line_changed(unit, addr): log.message(Logger.INFO, '\"%s\" %s изменение состояния: %s' % [unit.name, addr, 'на связи' if unit.online else 'отключен']) -func on_command_fail(unit, addr): log.message(Logger.ERROR, '\"%s\" %s команда не выполнена' % [unit.name, addr]) +func on_line_changed(unit_inst): log.message(Logger.INFO, '\"%s\" изменение состояния: %s' % [unit_inst.name, 'на связи' if unit_inst.online else 'отключен']) +func on_command_fail(unit_inst): log.message(Logger.ERROR, '\"%s\" %s команда не выполнена' % unit_inst.name) func on_threats_changed(th: Object, msg: String): log.message(Logger.INFO, '%s: %s' % [msg, th.to_string()]) -func on_parse_error(unit, msg: String): log.message(Logger.ERROR, '%s: %s' % [unit.name, msg]) +func on_parse_error(unit_inst, msg: String): log.message(Logger.ERROR, '%s: %s' % [unit.name, msg]) func on_interfer_off(ecm, _ecms, _thrs,msg: String): log.message(Logger.INFO, '%s: %s' % [msg, ecm.to_string()]) func on_set_program_mode(msg: String): log.message(Logger.INFO, msg) diff --git a/scenes/эмс/кнопка-эмс.gd b/scenes/эмс/кнопка-эмс.gd index 37bcaf7d..4937b7de 100644 --- a/scenes/эмс/кнопка-эмс.gd +++ b/scenes/эмс/кнопка-эмс.gd @@ -52,4 +52,4 @@ func button_connect(button_signal: String, proc: Callable): func _on_button_mouse_entered(): - emit_signal("mouse_entered") + emit_signal('mouse_entered') diff --git a/scripts/file-table.gd b/scripts/file-table.gd index d2012c5d..f8a78081 100644 --- a/scripts/file-table.gd +++ b/scripts/file-table.gd @@ -14,7 +14,7 @@ func fill_files_table(tbl: table, folder: String, rows_types: Array): return var files: = [] var exclude_names: = ['.', '..'] - dir.list_dir_begin() # TODOGODOT4 fill missing arguments https://github.com/godotengine/godot/pull/40547 + dir.list_dir_begin() # TODO: GODOT4 fill missing arguments https://github.com/godotengine/godot/pull/40547 while true: var file: = dir.get_next() if file == '': @@ -32,7 +32,7 @@ func fill_files_table(tbl: table, folder: String, rows_types: Array): var mt = Time.get_datetime_dict_from_unix_time(ut) var file_row = [file, '%d' % sz, '%d-%02d-%02d %02d:%02d' % [mt.year, mt.month, mt.day, mt.hour, mt.minute]] tbl.add_row(rows_types) - var i_row = tbl.get_rows_count() - 1 + var i_row: int = tbl.get_rows_count() - 1 tbl.set_row_text(i_row, file_row) tbl.set_node_meta(0, i_row, 'file_path', glob_path) dir.list_dir_end() diff --git a/scripts/network.gd b/scripts/network.gd index d4e75e77..2a7d4c6b 100644 --- a/scripts/network.gd +++ b/scripts/network.gd @@ -61,22 +61,22 @@ class SocketTCP extends TCPServer: var poll_sockets: Array[Socket] -var tcp_sockets: Array +var tcp_sockets: Array[Array] var units: Dictionary[StringName, unit.Unit] var units_udp: Dictionary[StringName, unit.Unit] var units_udprx: Dictionary[StringName, unit.Unit] var units_tcp: Dictionary[StringName, unit.Unit] var units_serial: Dictionary[StringName, unit.Unit] var units_modbus: Dictionary[StringName, unit.Unit] -var serials: Dictionary # Последовательные порты -var mbcs: Dictionary # Клиенты modbus. +var serials: Dictionary[StringName, Serial] # Последовательные порты +var mbcs: Dictionary[StringName, unit.Unit] # Клиенты modbus var dst_ports: Dictionary[StringName, int] var dst_addrs: Dictionary[StringName, StringName] -var unit_keys: Dictionary +var unit_keys: Dictionary[int, StringName] var sock_unicast: Socket var sock_capsrpb: Socket var logger_page: Node -var send_sockets: Dictionary # Таблица <имяустройста>: <сокет> для отправки сообщений +var send_sockets: Dictionary[StringName, Socket] # Таблица <имяустройста>: <сокет> для отправки сообщений var addr_port_to_unit_name: Dictionary[StringName, StringName] @@ -197,8 +197,8 @@ func _ready() -> void: if logger_page: for key in units: var u = units[key] - u.connect('line_changed', Callable(logger_page, 'on_line_changed').bind(key)) - u.connect('command_fail', Callable(logger_page, 'on_command_fail').bind(key)) + u.connect('line_changed', Callable(logger_page, 'on_line_changed')) + u.connect('command_fail', Callable(logger_page, 'on_command_fail')) for key in settings.UnitProfiles: var item = settings.UnitProfiles[key] diff --git a/scripts/settings.gd b/scripts/settings.gd index 829952c4..f1dc5161 100644 --- a/scripts/settings.gd +++ b/scripts/settings.gd @@ -107,8 +107,3 @@ func get_settings_file_path(): return ProjectSettings.get_setting( 'application/config/settings_path', 'user://settings.json') - - -## Возвращает ключ устройства. -func get_unit_key(unit_name: String) -> StringName: - return StringName(unit_name)