Рефактор

This commit is contained in:
sasha80
2025-04-30 09:12:53 +03:00
parent 008f7efc54
commit 4b5ff5023d
6 changed files with 41 additions and 43 deletions

View File

@@ -15,7 +15,7 @@ class CapsRpb extends unit.Unit:
var tick: = 0 ## Тик время последнего обновления, мс.
var tx_stack: Array ## Массив пакетов для отправки.
func _to_string() -> String: return String('капсрпб: "%s" %s ' % [self.name, ['отключен', 'на связи'][int(online)]])
func _to_string() -> String: return String('CapsRpb(\"%s\")' % self.name)
func _init(nm): self.name = nm
func parse(data: PackedByteArray, now_tick: int):

View File

@@ -29,7 +29,7 @@ var id_array: Array ## Массив id воздействий.
var thrs: Dictionary ## Словарь воздействия для целей, ключ - id воздействия.
var fs: Dictionary ## Словарь воздействий для секторов, ключ - id воздействия.
var cu: Dictionary ## Словарь воздействий для 5П-28, ключ - id воздействия.
var auto_status: int = 0 ## Статус скролла автомата
var auto_enabled: bool = false ## Режим автомата
var emit_enable: bool = true ## Разрешить излучение
## Сеанс помехи.
@@ -88,6 +88,18 @@ signal interfer_update(ecm: Interfer) ## Вызывается пр
signal interfer_resized(ecms: Dictionary) ## Вызывается при изменении количества сеансов помех.
## Отправляет словарь помех в юнит, для запаковки и отправки в 5П28.
func on_get_interfers(unit, ecms): unit.pack_interfers(cu, ecms)
## Автмат выключен
func on_manual_control(): auto_enabled = false
## Автмат отключен
func on_full_auto(): auto_enabled = true
func _ready():
var ecms: Dictionary = {} ## Словарь помех.
for i in ID_INTERFERS_LEN: # Заполняет массив ID целей
@@ -125,14 +137,6 @@ func on_timer_check_state(unit, ecms, resend_timeout):
ecm.tick_tx = tick
func on_manual_control():
auto_status = 0
func on_full_auto():
auto_status = 3
func on_th_aoa_update(threats: Dictionary, ecms: Dictionary, unit):
for thr in threats.values():
var th_id = thr.id
@@ -145,10 +149,10 @@ func on_th_aoa_update(threats: Dictionary, ecms: Dictionary, unit):
signaller.emit_signal('fs_update_color', ecms)
prd.update_fs_state(ecms)
if auto_status == 0:
if not auto_enabled:
return
if auto_status == 3:
if auto_enabled:
for thr in threats.values():
thr.auto_selected = true
signaller.emit_signal('interfer_init', 'lchm1', [])
@@ -312,14 +316,11 @@ func pop_id() -> int:
return id
func push_id(id : int):
func push_id(id: int):
id_array.append(id)
id_array.sort()
## Отправляет словарь помех в юнит, для запаковки и отправки в 5П28.
func on_get_interfers(unit, ecms): unit.pack_interfers(cu, ecms)
func on_emit_changed(state, ecms):
emit_enable = state
for ecm in ecms.values():

View File

@@ -8,7 +8,8 @@ const pow_2_30: = pow(2.0, 30.0)
## Источник данных навигации
class NaviSource extends unit.Unit:
var cmd_tick_rx: int = 0
var data: = {}
var data: = {} ## Принятые данные
var source_addr: = [] ## Адрес отправителя
const akng_mode = {0:'тестовый', 1:'основной', 2:'резервный', 3:'аварийный'}
func _to_string() -> String:
return String('NaviSource: %s %s' % [self.name, 'на связи' if online else 'отключен'])
@@ -18,6 +19,7 @@ class NaviSource extends unit.Unit:
if online and ((tick - cmd_tick_rx) > ONLINE_TIMEOUT):
online = false
emit_signal('line_changed', self)
source_addr.clear()
func parse(rx_data: PackedByteArray, tick: int) -> bool:
cmd_tick_rx = tick