Доработка. Возможность изменять мощность при вызове сигнала инициализации помехи.

This commit is contained in:
MaD_CaT
2025-07-17 11:23:52 +03:00
parent 5ae7ed6e4c
commit 970d1b2773
7 changed files with 18 additions and 16 deletions

View File

@@ -296,7 +296,7 @@ func _on_control_fs(mode: bool) -> void:
else:
interfer_name = 'off'
fs_arr = [[90.0, 2450.0, 1500.0, 23]]
signaller.emit_signal('interfer_init', interfer_name, fs_arr)
signaller.emit_signal('interfer_init', interfer_name, fs_arr, 100.0)
func on_stop_control() -> void:

View File

@@ -261,7 +261,7 @@ func _on_control_fs(mode: bool) -> void:
else:
interfer_name = 'off'
fs_arr = [[90.0, 2450.0, 1500.0, 23]]
signaller.emit_signal('interfer_init', interfer_name, fs_arr)
signaller.emit_signal('interfer_init', interfer_name, fs_arr, 100.0)
func on_stop_control() -> void:

View File

@@ -269,7 +269,7 @@ func _on_control_fs(mode: bool) -> void:
else:
interfer_name = 'off'
fs_arr = [[90.0, 2450.0, 1500.0, 23]]
signaller.emit_signal('interfer_init', interfer_name, fs_arr)
signaller.emit_signal('interfer_init', interfer_name, fs_arr, 100.0)
func on_stop_control() -> void:

View File

@@ -305,7 +305,7 @@ func on_button_pressed(btn_this, btn_others) -> void:
var interfer_name: String = btn_this.get_meta('rfi_name')
for key in fs_selected.keys():
fs_arr.append(prd.get_fs_param(key))
signaller.emit_signal('interfer_init', interfer_name, fs_arr)
signaller.emit_signal('interfer_init', interfer_name, fs_arr, interfer.POW_DEFAULT)
## Управляет состоянием кнопок в радиогруппе при выборе помехи.
@@ -491,7 +491,7 @@ func on_interfer_prinuditelno (prenuditelno_sectors, btns):
var sectors = []
for sector in prenuditelno_sectors[key]:
sectors.append(prd.get_fs_param(sector))
signaller.emit_signal('interfer_init', key, sectors)
signaller.emit_signal('interfer_init', key, sectors, interfer.POW_DEFAULT)
update_fs_colors()
for btn in btns:
btn.set_pressed(false)

View File

@@ -24,6 +24,7 @@ const ITERFER_MODE = {
const SOURCE_INTERFER = ['th','fs','cu']
const ID_INTERFERS_LEN = 63 ## Размер пула номеров целей.
const INTERFER_OFF = 'off'
const POW_DEFAULT: float = 100.0
var msg_num: int = 0 ## Счётчик сообщений.
var id_array: Array ## Массив id воздействий.
var thrs: Dictionary ## Словарь воздействия для целей, ключ - id воздействия.
@@ -62,6 +63,7 @@ class Interfer:
data_to_json['params'] = params
data_to_json['get'] = get_params
var pac = JSON.stringify(data_to_json).to_utf8_buffer()
print_debug(powp)
return pac
func set_from_dic(dic: Dictionary):
@@ -155,7 +157,7 @@ func on_th_aoa_update(threats: Dictionary, ecms: Dictionary, unit) -> void:
if auto_enabled:
for thr in threats.values():
thr.auto_selected = true
signaller.emit_signal('interfer_init', 'lchm1', [])
signaller.emit_signal('interfer_init', 'lchm1', [], interfer.POW_DEFAULT)
thr.auto_selected = false
@@ -186,7 +188,7 @@ func on_data_capsrpb_received(unit0: capsrpb.CapsRpb, ecms: Dictionary) -> void:
## Вызыватся, когда пользователь выбрал помеху и выбраны цели.
func on_interfer_create(interfer_name, sel_threats, fs_arr, u, ecms) -> void:
func on_interfer_create(interfer_name, sel_threats, fs_arr, power, u, ecms) -> void:
for item in sel_threats:
var param: Dictionary = {}
var kni: float = item.aoa
@@ -197,7 +199,7 @@ func on_interfer_create(interfer_name, sel_threats, fs_arr, u, ecms) -> void:
param['width'] = settings.WIDTH_MIN
elif (param['width'] > settings.WIDTH_MAX):
param['width'] = settings.WIDTH_MAX
interfer_create(u, interfer_name, ecms, param, kni, id, thrs, SOURCE_INTERFER[0])
interfer_create(u, interfer_name, ecms, param, kni, id, thrs, SOURCE_INTERFER[0], POW_DEFAULT)
for item in fs_arr:
var param: Dictionary = {}
@@ -209,7 +211,7 @@ func on_interfer_create(interfer_name, sel_threats, fs_arr, u, ecms) -> void:
param['width'] = settings.WIDTH_MIN
elif (param['width'] > settings.WIDTH_MAX):
param['width'] = settings.WIDTH_MAX
interfer_create(u, interfer_name, ecms, param, kni, id, fs, SOURCE_INTERFER[1])
interfer_create(u, interfer_name, ecms, param, kni, id, fs, SOURCE_INTERFER[1], POW_DEFAULT)
func on_interfer_rcv(interfer_params: Array, unit0, ecms) -> void:
@@ -238,11 +240,11 @@ func on_interfer_rcv(interfer_params: Array, unit0, ecms) -> void:
if interfer_name == '':
err = true
if not err:
interfer_create(unit0, interfer_name, ecms, param, aoa, id, cu, SOURCE_INTERFER[2])
interfer_create(unit0, interfer_name, ecms, param, aoa, id, cu, SOURCE_INTERFER[2], POW_DEFAULT)
unit0.on_interfer_accept(err)
func interfer_create(u, interfer_name, ecms, param, kni, id, dict, source_interfer) -> void:
func interfer_create(u, interfer_name, ecms, param, kni, id, dict, source_interfer, power) -> void:
var ispp: int = 0
if interfer_name == 'k1':
param['dur'] = 1.0 # Необходимо добавить параметры управления
@@ -270,7 +272,7 @@ func interfer_create(u, interfer_name, ecms, param, kni, id, dict, source_interf
ecm.kni = kni
ecm.krp = interfer_name
ecm.params = param
ecm.powp = 100.0
ecm.powp = power
ecm.source_interfer = source_interfer
ecm.modulation = emit_enable
if param.has('um'):

View File

@@ -89,13 +89,13 @@ signal rto_threat_unsel_all()
## Вызывается, когда пользователь выбирает помеху.[br]
## [param btn] - Нажатая кнопка помехи.
signal interfer_init(interfer_name: String, fs_arr: Array)
signal interfer_init(interfer_name: String, fs_arr: Array, power: float)
## Вызывается, когда выбраны цели для постановки помех.[br]
## [param btn] - Нажатая кнопка помехи.[br]
## [param sel_threats] - Cписок целей.
signal interfer_create(interfer_name: String, sel_threats: Array, fs_arr: Array)
signal interfer_create(interfer_name: String, sel_threats: Array, fs_arr: Array, power: float)
## Вызывается, когда создалась новая помеха.[br]

View File

@@ -110,7 +110,7 @@ func on_threat_selected(th, threats):
## Формирует список выбранных целей для включения помехи.
func on_interfer_init(interfer_name, fs_arr, threats):
func on_interfer_init(interfer_name, fs_arr, power, threats):
var sel_threats: Array = []
for threat in threats.values():
if threat.selected:
@@ -118,7 +118,7 @@ func on_interfer_init(interfer_name, fs_arr, threats):
if threat.auto_selected:
sel_threats.append(threat)
if len(sel_threats) or (len(fs_arr)):
signaller.emit_signal('interfer_create', interfer_name, sel_threats, fs_arr)
signaller.emit_signal('interfer_create', interfer_name, sel_threats, fs_arr, power)
## Производит приём целей.