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