Рефактор
This commit is contained in:
@@ -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):
|
||||
|
||||
@@ -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():
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user