[PATCH] Доработка. Оптимизация ширины помехи. Период вынесен в константы. Обновление параметров помехи в таблице.
This commit is contained in:
@@ -45,6 +45,7 @@ func init_table():
|
||||
$table.set_meta('id', 0)
|
||||
signaller.connect('interfer_selected', Callable(self, 'on_interfer_selected').bind(toggle_btn))
|
||||
signaller.connect('rto_threat_unsel', Callable(self, 'on_rto_threat_unsel'))
|
||||
interfer.connect('interfer_update', Callable(self, 'on_interfer_update').bind(toggle_btn))
|
||||
|
||||
|
||||
## Called when the node enters the scene tree for the first time.
|
||||
@@ -84,6 +85,13 @@ func on_interfer_selected(ecm, toggle_btn):
|
||||
on_ecm_update(toggle_btn)
|
||||
|
||||
|
||||
func on_interfer_update(ecm, toggle_btn):
|
||||
if not $table.has_meta('ecm'): return
|
||||
var tbl_ecm = $table.get_meta('ecm', null)
|
||||
if tbl_ecm == ecm:
|
||||
on_ecm_update(toggle_btn)
|
||||
|
||||
|
||||
func on_ecm_update(toggle_btn):
|
||||
for item in len(TABLE_PARAMS):
|
||||
$table.set_node_text(1, item, '')
|
||||
|
||||
@@ -93,6 +93,7 @@ const ID_INTERFERS_LEN = 63 ## Размер пула номеров целе
|
||||
const INTERFER_OFF = 'off'
|
||||
const INTERFER_IQFILE = 'IQ-файл'
|
||||
const POW_DEFAULT: float = 50.0
|
||||
const PERIOD_DEFAULT = 7.5
|
||||
var msg6_num: int = 0 ## Счётчик сообщений "тип 6"
|
||||
var msg8_num: int = 0 ## Счётчик сообщений "тип 8"
|
||||
var id_array: Array ## Массив id воздействий.
|
||||
@@ -389,10 +390,7 @@ func on_interfer_create(interfer_name, sel_threats, fs_arr, power, u, ecms) -> v
|
||||
if krp != '':
|
||||
interfer_name = krp
|
||||
set_rparams(item, param)
|
||||
if (param['width'] < settings.WIDTH_MIN):
|
||||
param['width'] = settings.WIDTH_MIN
|
||||
elif (param['width'] > settings.WIDTH_MAX):
|
||||
param['width'] = settings.WIDTH_MAX
|
||||
check_width(param)
|
||||
interfer_create(u, interfer_name, ecms, param, kni, id, thrs, SOURCE_INTERFER[0], power)
|
||||
|
||||
for item in fs_arr:
|
||||
@@ -401,10 +399,7 @@ func on_interfer_create(interfer_name, sel_threats, fs_arr, power, u, ecms) -> v
|
||||
var id = item[3]
|
||||
param['freq'] = item[1]
|
||||
param['width'] = item[2]
|
||||
if (param['width'] < settings.WIDTH_MIN):
|
||||
param['width'] = settings.WIDTH_MIN
|
||||
elif (param['width'] > settings.WIDTH_MAX):
|
||||
param['width'] = settings.WIDTH_MAX
|
||||
check_width(param)
|
||||
interfer_create(u, interfer_name, ecms, param, kni, id, fs, SOURCE_INTERFER[1], power)
|
||||
|
||||
|
||||
@@ -444,7 +439,7 @@ func interfer_create(u, interfer_name, ecms, param, kni, id, dict, source_interf
|
||||
var sz = ecms.size()
|
||||
var ispp: int = 0
|
||||
param['dur'] = 1.0 # Необходимо добавить параметры управления
|
||||
param['period'] = 1.0 # Необходимо добавить параметры управления
|
||||
param['period'] = param.get('period', PERIOD_DEFAULT)
|
||||
var key = dict.find_key(id)
|
||||
if source_interfer != SOURCE_INTERFER[2]:
|
||||
if key != null:
|
||||
@@ -580,9 +575,8 @@ func on_threats_update(threat, ecms, unit_caps):
|
||||
ecm.priority = threat.priority
|
||||
ecm.params['freq'] = threat.freq
|
||||
var width = threat.width * 1.5
|
||||
if width < settings.WIDTH_MIN:
|
||||
width = settings.WIDTH_MIN
|
||||
ecm.params['width'] = width
|
||||
check_width(ecm.params)
|
||||
if (threat.rkrp != '') and threat.fflags.rkrp and auto_enabled:
|
||||
var krp = get_krp(threat)
|
||||
if krp != '':
|
||||
@@ -619,12 +613,11 @@ func set_rparams(threat: threats.Threat, params: Dictionary):
|
||||
params['freq'] = threat.rparams['freq']
|
||||
else:
|
||||
params['freq'] = threat.freq
|
||||
if threat.rparams.has('period'):
|
||||
params['period'] = threat.rparams['period']
|
||||
if threat.rparams.has('width'):
|
||||
params['width'] = threat.rparams['width']
|
||||
params['width'] = threat.rparams['width'] * 1.5
|
||||
else:
|
||||
params['width'] = threat.width * 1.5
|
||||
check_width(params)
|
||||
if threat.rparams.has('filename'):
|
||||
params['filename'] = threat.rparams['filename']
|
||||
|
||||
@@ -695,3 +688,8 @@ func set_th_emit(th: threats.Threat, ecm: Interfer):
|
||||
return
|
||||
else:
|
||||
th.emit_state = 1
|
||||
|
||||
|
||||
func check_width(param: Dictionary):
|
||||
if (param['width'] < settings.WIDTH_MIN): param['width'] = settings.WIDTH_MIN
|
||||
elif (param['width'] > settings.WIDTH_MAX): param['width'] = settings.WIDTH_MAX
|
||||
|
||||
Reference in New Issue
Block a user