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

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

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