From 3b5bf2ce2cd97d2aea7bd26c6ed17253c0b7ce85 Mon Sep 17 00:00:00 2001 From: MaD_CaT Date: Tue, 16 Dec 2025 11:24:37 +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=B2=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6=D0=BD=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D1=8C=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D1=8F=D1=82?= =?UTF-8?q?=D1=8C=20=D1=88=D0=B8=D1=80=D0=B8=D0=BD=D1=83=20=D0=BF=D0=BE?= =?UTF-8?q?=D0=BB=D0=BE=D1=81=D1=8B=20=D0=B8=D0=B7=D0=BB=D1=83=D1=87=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=B8=D0=B7=20=D0=BD=D0=B0=D1=81=D1=82?= =?UTF-8?q?=D1=80=D0=BE=D0=B5=D0=BA.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scenes/настройки/настройки.gd | 3 ++- scripts/interfer.gd | 14 ++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/scenes/настройки/настройки.gd b/scenes/настройки/настройки.gd index f01526bd..f219f486 100644 --- a/scenes/настройки/настройки.gd +++ b/scenes/настройки/настройки.gd @@ -63,7 +63,8 @@ const SETTING_TABLE = [ ['уарэп-трасса', TableEdit, TableEdit, 'IP-адрес для связи с Трассой [<адрес этого узла>, <адрес удалённого узла>, <порт этого узла>, <порт удалённого узла>]'], ['Включить работу по своим целям', TableEdit, TableToggle, 'Разрешает работу в секторе со своей целью'], ['Список своих протоколов', TableEdit, TableEdit, 'Список протоколов целей, по которым запрещено работать' ], - ['Цвет кнопки \"Подавление\"', TableEdit, TableColorPick, 'Цвет кнопки. Введено по требованию ПЗ' ] ] + ['Цвет кнопки \"Подавление\"', TableEdit, TableColorPick, 'Цвет кнопки. Введено по требованию ПЗ' ], + ['Коэффициент ширины полосы излучения', TableEdit, TableEdit, 'Изменение ширины полосы излучения помехи в зависимости от цели'], ] ## TODO: Придумать как избавиться от индексов ## Индексы строк таблицы. diff --git a/scripts/interfer.gd b/scripts/interfer.gd index 256571b8..3b255505 100644 --- a/scripts/interfer.gd +++ b/scripts/interfer.gd @@ -94,6 +94,8 @@ const INTERFER_OFF = 'off' const INTERFER_IQFILE = 'IQ-файл' const POW_DEFAULT: float = 50.0 const PERIOD_DEFAULT = 7.5 +const MIN_WIDTH_COEF = 1.0 + var msg6_num: int = 0 ## Счётчик сообщений "тип 6" var msg8_num: int = 0 ## Счётчик сообщений "тип 8" var id_array: Array ## Массив id воздействий. @@ -109,6 +111,7 @@ var gos_flag = true ## Флаг работать п var gos_protocols: PackedStringArray ## Список протоколов своих целей var gos_nmfs: Array ## Список номеров блоков ФС для которых запрещена работа var fs_closed: Dictionary ## Словарь секторов запрета +var width_coef: float = 1.5 ## Коэффициент расширения полосы ## Режимы работы АФСП и БПО (Протокол ТНИИС-СТЦ, пункт 2.5.10) @@ -405,7 +408,7 @@ func on_interfer_create(interfer_name, sel_threats, fs_arr, power, u, ecms) -> v kni += 360.0 var id = item.id param['freq'] = item.freq - param['width'] = item.width * 1.5 + param['width'] = item.width * width_coef if (item.rkrp != '') and item.fflags.rkrp and auto_enabled: var krp = get_krp(item) if krp != '': @@ -594,7 +597,7 @@ func on_threats_update(threat, ecms, unit_caps): ecm = ecms[ecm_i] ecm.priority = threat.priority ecm.params['freq'] = threat.freq - var width = threat.width * 1.5 + var width = threat.width * width_coef ecm.params['width'] = width check_width(ecm.params) if (threat.rkrp != '') and threat.fflags.rkrp and auto_enabled: @@ -634,9 +637,9 @@ func set_rparams(threat: threats.Threat, params: Dictionary): else: params['freq'] = threat.freq if threat.rparams.has('width'): - params['width'] = threat.rparams['width'] * 1.5 + params['width'] = threat.rparams['width'] * width_coef else: - params['width'] = threat.width * 1.5 + params['width'] = threat.width * width_coef check_width(params) if threat.rparams.has('filename'): params['filename'] = threat.rparams['filename'] @@ -693,6 +696,9 @@ func on_settings_changed(): gos_flag = ProjectSettings.get_setting('application/config/Включить работу по своим целям', true) var protocols: String = ProjectSettings.get_setting('application/config/Список своих протоколов', '') gos_protocols = protocols.split(",", true) + width_coef = float(ProjectSettings.get_setting('application/config/Коэффициент ширины полосы излучения', 1.5)) + if width_coef < MIN_WIDTH_COEF: + width_coef = MIN_WIDTH_COEF func call_ecm_proc(ecm):