Доработка. Обновление цели в таблице

This commit is contained in:
sasha80
2023-08-18 09:00:08 +03:00
parent 09e485acf2
commit 2889db7052

View File

@@ -23,11 +23,13 @@ class Threat:
var slat: float ## Координаты старта, широта в градусах.
var slon: float ## Координаты старта, долгота в градусах.
var tick: int ## Тик время приёма сигнала, мс.
var tick_rx: int ## Тик время обновления цели, мс.
var tmod: String ## Тип модуляции.
var width: float ## Ширина занимаемого диапазона частот, МГц.
func _init(): Tools.get_members_names(self).any(func(vn): fflags[vn] = false)
func _to_string() -> String: return 'номер:%d пеленг:%0.1f частота:%0.1f МГц' % [id, aoa, freq]
func _init(): clear_fflags()
func _to_string() -> String: return '<Threat>: номер:%d пеленг:%0.1f частота:%0.1f МГц' % [id, aoa, freq]
func clear_fflags(): Tools.get_members_names(self).any(func(vn): fflags[vn] = false)
func set_from_dic(dic_vals: Dictionary):
var items: = fflags.keys().filter(func(vn): return dic_vals.has(vn))
@@ -57,7 +59,7 @@ func _ready() -> void:
func on_timer_check_lost(time_lost: int):
var tick = Time.get_ticks_msec()
for th in threats.values():
if (tick - th.tick) >= time_lost:
if (tick - th.tick_rx) >= time_lost:
threats.erase(th.id)
emit_signal('threat_lost', threats, th)
@@ -72,13 +74,13 @@ func on_data_capsrpb_received(unit: capsrpb.CapsRpb):
var id = int(dic_th['id'])
if threats.has(id):
var th = threats[id]
th.clear_fflags()
th.set_from_dic(dic_th)
th.tick = unit.tick
call_deferred('emit_signal', 'threat_update', threats, th)
th.tick_rx = unit.tick
call_deferred('emit_signal', 'threat_update', threats, th)
else:
var th = Threat.new()
th.set_from_dic(dic_th)
th.tick = unit.tick
th.fflags['tick'] = true
threats[id] = th
th.tick_rx = unit.tick
call_deferred('emit_signal', 'threat_new', threats, th)