Доработка. Добавлена помеха ЕПРЛС. Выполнение рекомендуемого режима помехи

This commit is contained in:
sasha80
2025-10-05 18:33:07 +03:00
parent b634a607ac
commit 22620ddc95
7 changed files with 43 additions and 25 deletions

View File

@@ -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")

View File

@@ -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

View File

@@ -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)
## Перестраивает индекс таблицы. Вызывать при удалении строки

View File

@@ -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"

View File

@@ -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):

View File

@@ -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()

View File

@@ -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)