Доработка. Гос. опознавание протоколов. Исправление выбора цвета сектора.

This commit is contained in:
MaD_CaT
2025-10-22 15:34:48 +03:00
parent 10389cf818
commit 7ab8d73f03
4 changed files with 52 additions and 30 deletions

View File

@@ -106,6 +106,7 @@ var trenazh_mode: bool = false ## Переключение ре
var course = 0.0 ## Курс корабля
var gos_flag = true ## Флаг работать по своим целям
var gos_protocols: PackedStringArray ## Список протоколов своих целей
var gos_nmfs: Array ## Список номеров блоков ФС для которых запрещена работа
## Сеанс помехи.
class Interfer:
@@ -251,7 +252,16 @@ func on_timer_check_state(unit_instance, ecms, resend_timeout) -> void:
func on_th_aoa_update(threats: Dictionary, ecms: Dictionary, unit_instance) -> void:
gos_nmfs.clear()
for thr in threats.values():
if not gos_flag: # Составляется список запретных секторов работы
if (thr.proto in gos_protocols) and thr.fflags.proto:
var fs_arr: Array = []
prd.find_fs_index(thr.aoa, thr.freq, fs_arr)
if fs_arr.size():
for item in fs_arr:
var nmfs = prd.FS_PRD[item][1]
gos_nmfs.append(nmfs)
var th_id = thr.id
for ecm_i in thrs.keys():
if thrs[ecm_i] == th_id:
@@ -261,15 +271,36 @@ func on_th_aoa_update(threats: Dictionary, ecms: Dictionary, unit_instance) -> v
if ecm.kni < 0:
ecm.kni += 360
call_ecm_proc(ecm)
send_ecm(ecm, unit_instance)
if ecm.nmfs in gos_nmfs:
ecm.krp = INTERFER_OFF
send_ecm(ecm, unit_instance)
signaller.emit_signal('interfer_off', ecm)
else:
send_ecm(ecm, unit_instance)
signaller.emit_signal('fs_update_color', ecms)
prd.update_fs_state(ecms, trenazh_mode)
if not gos_flag:
for ecm in ecms.values():
if not (ecm.nmfs in gos_nmfs): continue
ecm.krp = INTERFER_OFF
send_ecm(ecm, unit_instance)
signaller.emit_signal('interfer_off', ecm)
if not auto_enabled:
return
if auto_enabled:
for thr in threats.values():
if not gos_flag:
var fs_arr: Array = []
prd.find_fs_index(thr.aoa, thr.freq, fs_arr)
if fs_arr.size():
var need_continue = false
for item in fs_arr:
var nmfs = prd.FS_PRD[item][1]
if nmfs in gos_nmfs: need_continue = true
if need_continue: continue
thr.auto_selected = true
if (thr.rkrp != '') and thr.fflags.rkrp and auto_enabled:
var krp = get_krp(thr)

View File

@@ -111,10 +111,12 @@ func on_threat_selected(th, threats):
func on_interfer_init(interfer_name, fs_arr, power, threats):
var sel_threats: Array = []
for threat in threats.values():
if threat.selected:
sel_threats.append(threat)
if threat.auto_selected:
sel_threats.append(threat)
if interfer.auto_enabled:
if threat.auto_selected:
sel_threats.append(threat)
else:
if threat.selected:
sel_threats.append(threat)
if len(sel_threats) or len(fs_arr):
signaller.emit_signal('interfer_create', interfer_name, sel_threats, fs_arr, power)