отладка отправки помех в капс рпб

This commit is contained in:
MaD_CaT
2025-12-02 12:44:50 +03:00
parent d622001db6
commit 17460b5b0d
3 changed files with 19 additions and 24 deletions

View File

@@ -205,7 +205,7 @@ func _ready() -> void:
signaller.connect('interfer_new', Callable(self, 'on_interfer_new').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').bind(ecms))
signaller.connect('interfer_off', Callable(self, 'on_interfer_off').bind(ecms, unit_caps))
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'))
@@ -335,10 +335,12 @@ func map_msvk_to_ecms(unit_instance: unit.Unit, ecms: Dictionary):
var json_dic = unit_instance.json_dic
if not json_dic.has('msvk'): return
var msvk = unit_instance.json_dic.get('msvk', [])
var ispp_arr: Array = []
for dic_msvk in msvk:
if dic_msvk is not Dictionary: continue
if not dic_msvk.has('ispp'): continue
var ispp = int(dic_msvk['ispp'])
ispp_arr.append(ispp)
var errmsg = dic_msvk.get('errmsg', '')
if errmsg:
log.error('сеанс %d: \"%s\"' % [ispp, errmsg])
@@ -346,11 +348,17 @@ func map_msvk_to_ecms(unit_instance: unit.Unit, ecms: Dictionary):
var ecm = ecms[ispp]
ecm.set_from_dic(dic_msvk)
call_deferred('emit_signal', 'interfer_update', ecm)
else:
var ecm = Interfer.new()
ecm.set_from_dic(dic_msvk)
ecm.krp = INTERFER_OFF
send_ecm(ecm, unit_instance)
for ecm in ecms.values():
if (ecm.ispp not in ispp_arr) and (ecm.krp == INTERFER_OFF):
var sz = ecms.size()
signaller.emit_signal('on_prog_ecm_off', ecm)
ecms.erase(ecm.ispp)
thrs.erase(ecm.ispp)
cu.erase(ecm.ispp)
fs.erase(ecm.ispp)
push_id(ecm.ispp)
if sz != ecms.size():
interfer.call_deferred('emit_signal', 'interfer_resized', ecms)
## Извлекает массив пространственно-частотных фильтров
@@ -639,21 +647,12 @@ func get_krp(threat: threats.Threat):
return krp
func on_interfer_off(ecm: Interfer, ecms):
var sz = ecms.size()
signaller.emit_signal('on_prog_ecm_off', ecm)
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)
func interfer_off(ecm, unit_caps):
func on_interfer_off(ecm: Interfer, _ecms, unit_caps):
ecm.krp = INTERFER_OFF
send_ecm(ecm, unit_caps)
func interfer_off(ecm, _unit_caps):
signaller.emit_signal('interfer_off', ecm)