From 22620ddc95dbf6f326fec635b9f668a93bb2c6dc Mon Sep 17 00:00:00 2001 From: sasha80 Date: Sun, 5 Oct 2025 18:33:07 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B0.=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BF=D0=BE=D0=BC=D0=B5=D1=85=D0=B0=20=D0=95?= =?UTF-8?q?=D0=9F=D0=A0=D0=9B=D0=A1.=20=D0=92=D1=8B=D0=BF=D0=BE=D0=BB?= =?UTF-8?q?=D0=BD=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=80=D0=B5=D0=BA=D0=BE=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D0=B4=D1=83=D0=B5=D0=BC=D0=BE=D0=B3=D0=BE=20=D1=80?= =?UTF-8?q?=D0=B5=D0=B6=D0=B8=D0=BC=D0=B0=20=D0=BF=D0=BE=D0=BC=D0=B5=D1=85?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scenes/button-flat/button-flat.tscn | 1 + scenes/button-flat/nine-patch-button.gd | 5 ++++ scenes/frame-ecm-list/scroll-ecm-list.gd | 13 ++------- scenes/grid-buttons-ecm/grid-buttons-ecm.tscn | 12 +++++++- scenes/журнал/журнал.gd | 2 +- scenes/работа/работа.gd | 7 ----- scripts/interfer.gd | 28 +++++++++++++++---- 7 files changed, 43 insertions(+), 25 deletions(-) diff --git a/scenes/button-flat/button-flat.tscn b/scenes/button-flat/button-flat.tscn index 6fe161c8..a35c4c31 100644 --- a/scenes/button-flat/button-flat.tscn +++ b/scenes/button-flat/button-flat.tscn @@ -79,6 +79,7 @@ axis_stretch_vertical = 2 layout_mode = 2 theme_override_colors/font_outline_color = Color(0, 0, 0, 1) theme_override_constants/outline_size = 4 +theme_override_font_sizes/font_size = 15 theme_override_styles/focus = SubResource("4") theme_override_styles/disabled = SubResource("5") theme_override_styles/hover = SubResource("2") diff --git a/scenes/button-flat/nine-patch-button.gd b/scenes/button-flat/nine-patch-button.gd index 7e2e61d0..10a93a27 100644 --- a/scenes/button-flat/nine-patch-button.gd +++ b/scenes/button-flat/nine-patch-button.gd @@ -59,6 +59,11 @@ var _pressed: = false $button.set_toggle_mode(val) +@export var font_size: int = 15: + set(val): + $button.add_theme_font_size_override('theme_override_font_sizes/font_size', val) + + func set_pressed(val: bool): pressed = val diff --git a/scenes/frame-ecm-list/scroll-ecm-list.gd b/scenes/frame-ecm-list/scroll-ecm-list.gd index 95fe1072..cfd7603b 100644 --- a/scenes/frame-ecm-list/scroll-ecm-list.gd +++ b/scenes/frame-ecm-list/scroll-ecm-list.gd @@ -36,7 +36,8 @@ const INTERFER_NAMES = { 'svi1': 'СВ-И1', 'k1': 'K1', 'svm2': 'СВ-М2', - 'ozp1': 'ОЗП-1'} + 'ozp1': 'ОЗП-1', + 'eprls': 'ЕПРЛС',} ## Индексы колонок @@ -121,21 +122,13 @@ func on_interfer_new(ecm, table_index): signaller.emit_signal('interfer_selected', ecm) -func on_interfer_off(ecm, ecms, thrs, table_index): - var sz = ecms.size() +func on_interfer_off(ecm, table_index): $table.remove_row(table_index[ecm.ispp]) rehash(table_index) - ecms.erase(ecm.ispp) - thrs.erase(ecm.ispp) - interfer.cu.erase(ecm.ispp) - interfer.fs.erase(ecm.ispp) - interfer.push_id(ecm.ispp) var sel_rows: Array $table.get_selected_rows(sel_rows) if not len(sel_rows): signaller.emit_signal('interfer_selected', null) - if sz != ecms.size(): - interfer.call_deferred('emit_signal', 'interfer_resized', ecms) ## Перестраивает индекс таблицы. Вызывать при удалении строки diff --git a/scenes/grid-buttons-ecm/grid-buttons-ecm.tscn b/scenes/grid-buttons-ecm/grid-buttons-ecm.tscn index 3c28e215..b9efbe39 100644 --- a/scenes/grid-buttons-ecm/grid-buttons-ecm.tscn +++ b/scenes/grid-buttons-ecm/grid-buttons-ecm.tscn @@ -5,7 +5,7 @@ [node name="grd_btns" type="GridContainer"] offset_right = 1096.0 offset_bottom = 54.0 -columns = 15 +columns = 16 [node name="btn_off" parent="." groups=["группа-режим-помехи"] instance=ExtResource("1_oy80h")] layout_mode = 2 @@ -141,3 +141,13 @@ strips_rotation = 30.0 text = "ОЗП-1" disabled = true metadata/rfi_name = "ozp1" + +[node name="btn_p19" parent="." groups=["группа-режим-помехи"] instance=ExtResource("1_oy80h")] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +strips_rotation = 30.0 +text = "ЕПРЛС" +disabled = true +font_size = 1 +metadata/rfi_name = "eprls" diff --git a/scenes/журнал/журнал.gd b/scenes/журнал/журнал.gd index dc5ab850..401ad0d8 100644 --- a/scenes/журнал/журнал.gd +++ b/scenes/журнал/журнал.gd @@ -5,7 +5,7 @@ func on_line_changed(unit_inst): log.message(Logger.INFO, '\"%s\" изменен func on_command_fail(unit_inst): log.message(Logger.ERROR, '\"%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_inst, msg: String): log.message(Logger.ERROR, '%s: %s' % [unit_inst.name, msg]) -func on_interfer_off(ecm, _ecms, _thrs,msg: String): log.message(Logger.INFO, '%s: %s' % [msg, ecm.to_string()]) +func on_interfer_off(ecm, msg: String): log.message(Logger.INFO, '%s: %s' % [msg, ecm.to_string()]) func on_set_program_mode(msg: String): log.message(Logger.INFO, msg) func on_interfer_new(ecm, msg: String): diff --git a/scenes/работа/работа.gd b/scenes/работа/работа.gd index 1f150bc9..130a1f91 100644 --- a/scenes/работа/работа.gd +++ b/scenes/работа/работа.gd @@ -237,13 +237,6 @@ func on_interfer_off_all(): update_fs_colors() -func on_interfer_off(ecm_id): - fs_active.erase(ecm_id) - fs_selected.erase(ecm_id) - fs_active.clear() - update_fs_colors() - - ## Обработчик сигнала обнаружения цели. func on_threat_new(th) -> void: var bip = Bip.instantiate() diff --git a/scripts/interfer.gd b/scripts/interfer.gd index 7a1d7c49..514b9d7b 100644 --- a/scripts/interfer.gd +++ b/scripts/interfer.gd @@ -18,7 +18,8 @@ const ITERFER_MODE = { 'svi1': [INTERFER_IQFILE, SVI1_PARAMS, 20], 'svm2': [INTERFER_IQFILE, SVM2_PARAMS, 21], 'k1': [INTERFER_IQFILE, K1_PARAMS, 50], - 'ozp1': [INTERFER_IQFILE, OZP1_PARAMS, 51] } + 'ozp1': [INTERFER_IQFILE, OZP1_PARAMS, 51], + 'eprls': [INTERFER_IQFILE, EPRLS_PARAMS, 52] } const RECOMMEND_INTERFER = { 'ПСП + ФМ-2': 'srni1', @@ -62,7 +63,9 @@ const SVM2_PARAMS = {'files': {1: ['SVM2_LIT2.pcm', 1017], 2: ['SVM2_LIT3.pcm', 1156]}, 'call_proc': 'call_diap', 'par_names' : ['freq', 'filename']} - +const EPRLS_PARAMS = {'files' : 'ERLS.pcm', + 'call_proc' : 'call_all_diap', + 'par_names' : ['freq', 'filename']} # Файл : Ключ (ширина): ['имя файла'] const PDCHM_PARAMS = {'files': { 5 : 'pdchm_5.pcm', @@ -181,7 +184,7 @@ func _ready() -> void: signaller.connect('interfer_new', Callable(self, 'send_ecm').bind(unit_caps)) signaller.connect('interfer_off_all', Callable(self, 'on_interfer_off_all').bind(unit_caps, ecms)) signaller.connect('th_aoa_update', Callable(self, 'on_th_aoa_update').bind(ecms, unit_caps)) - signaller.connect('interfer_off', Callable(self, 'on_interfer_off')) + signaller.connect('interfer_off', Callable(self, 'on_interfer_off').bind(ecms)) signaller.connect('manual_control', Callable(self, 'on_manual_control')) signaller.connect('full_auto', Callable(self, 'on_full_auto')) signaller.connect('interfer_prinuditelno', Callable(self, 'on_interfer_prinuditelno')) @@ -410,7 +413,7 @@ func interfer_create(u, interfer_name, ecms, param, kni, id, dict, source_interf log.error('Ошибка выбора модуля ФС для помехи: %s' %[ecm.ispp]) signaller.emit_signal('interfer_new', ecm) if interfer_name == 'off': - signaller.emit_signal('interfer_off', ecm, ecms, thrs) + signaller.emit_signal('interfer_off', ecm) thrs.erase(ispp) ecm.tick_tx = Time.get_ticks_msec() send_ecm(ecm, u) @@ -421,6 +424,8 @@ func interfer_create(u, interfer_name, ecms, param, kni, id, dict, source_interf func send_ecm(ecm, unit0) -> void: if ecm.krp != INTERFER_OFF: if not emit_enable: + ecm.svk = 0 + call_deferred('emit_signal', 'interfer_update', ecm) return msg6_num += 1 var json_data = ecm.get_msg6_data(msg6_num) @@ -431,7 +436,7 @@ func on_interfer_off_all(unit0, ecms: Dictionary) -> void: for ecm in ecms.values(): ecm.krp = INTERFER_OFF send_ecm(ecm, unit0) - signaller.emit_signal('interfer_off', ecm, ecms, thrs) + signaller.emit_signal('interfer_off', ecm) func on_threats_lost(th, ecms, unit0) -> void: @@ -441,7 +446,7 @@ func on_threats_lost(th, ecms, unit0) -> void: var ecm = ecms[ecm_id] ecm.krp = INTERFER_OFF send_ecm(ecm, unit0) - signaller.emit_signal('interfer_off', ecm, ecms, thrs) + signaller.emit_signal('interfer_off', ecm) func pop_id() -> int: @@ -613,3 +618,14 @@ func get_krp(threat: threats.Threat): krp = key return krp return krp + + +func on_interfer_off(ecm: Interfer, ecms): + var sz = ecms.size() + ecms.erase(ecm.ispp) + thrs.erase(ecm.ispp) + interfer.cu.erase(ecm.ispp) + interfer.fs.erase(ecm.ispp) + interfer.push_id(ecm.ispp) + if sz != ecms.size(): + interfer.call_deferred('emit_signal', 'interfer_resized', ecms)