Merge remote-tracking branch 'sasha/master'
This commit is contained in:
@@ -45,12 +45,12 @@ class Interfer:
|
||||
names.any(func(vn): if dic.has(vn): set(vn, dic[vn]); return false)
|
||||
|
||||
|
||||
signal interfer_preparing(ecm: Interfer) ## Вызывается при запуске помехи
|
||||
signal interfer_run(ecm: Interfer) ## Вызывается в момент начала работы помехи
|
||||
signal interfer_error(ecm: Interfer, msg: String) ## Вызывается при ошибке
|
||||
signal interfer_update(ecm: Interfer) ## Вызывается при обновлении помехи
|
||||
signal interfer_new(ecm: Interfer) ## Вызывается при новой помехе
|
||||
signal interfer_resized(ecms: Dictionary) ## Вызывается при изменении количества сеансов помех
|
||||
signal interfer_preparing(ecm: Interfer) ## Вызывается в момент запуска помехи.
|
||||
signal interfer_run(ecm: Interfer) ## Вызывается в момент начала работы помехи.
|
||||
signal interfer_error(ecm: Interfer, msg: String) ## Вызывается при ошибке.
|
||||
signal interfer_update(ecm: Interfer) ## Вызывается при обновлении помехи.
|
||||
signal interfer_new(ecm: Interfer) ## Вызывается при создании новой помехи.
|
||||
signal interfer_resized(ecms: Dictionary) ## Вызывается при изменении количества сеансов помех.
|
||||
|
||||
|
||||
## Производит приём состояния помех. [param unit] -> [param ecms]
|
||||
|
||||
@@ -18,10 +18,10 @@ var logger_page: Node
|
||||
|
||||
|
||||
func create_socket(nm) -> Socket:
|
||||
var addr = REPSettings.UnitProfiles[nm][1]
|
||||
var port = REPSettings.UnitProfiles[nm][2]
|
||||
var broad = REPSettings.UnitProfiles[nm][3]
|
||||
var bind = REPSettings.UnitProfiles[nm][4]
|
||||
var addr = repsettings.UnitProfiles[nm][1]
|
||||
var port = repsettings.UnitProfiles[nm][2]
|
||||
var broad = repsettings.UnitProfiles[nm][3]
|
||||
var bind = repsettings.UnitProfiles[nm][4]
|
||||
var sock: = Socket.new()
|
||||
sock.set_broadcast_enabled(broad)
|
||||
var rc = Error.OK if not bind else sock.bind(port, addr)
|
||||
@@ -39,12 +39,12 @@ func _ready() -> void:
|
||||
sock_unicast = poll_sockets[0]
|
||||
sock_capsrpb = poll_sockets[2]
|
||||
|
||||
for unit_name in REPSettings.UnitProfiles:
|
||||
var setting = REPSettings.UnitProfiles[unit_name]
|
||||
for unit_name in repsettings.UnitProfiles:
|
||||
var setting = repsettings.UnitProfiles[unit_name]
|
||||
var proto = setting[0]
|
||||
if proto in PROTOCOL_TYPES:
|
||||
var unit = PROTOCOL_TYPES[proto].new(unit_name)
|
||||
var unit_key = REPSettings.get_unit_key(unit_name)
|
||||
var unit_key = repsettings.get_unit_key(unit_name)
|
||||
units[unit_key] = unit
|
||||
unit.connect('line_changed', Callable(logger_page, 'on_line_changed').bind(unit_key))
|
||||
unit.connect('command_fail', Callable(logger_page, 'on_command_fail').bind(unit_key))
|
||||
|
||||
@@ -33,12 +33,7 @@ extends Node
|
||||
|
||||
## Параметры цели
|
||||
@export var ThreatParams = {
|
||||
'radius_center': Vector2(560, 560), ## Координаты центра диаграммы в пикселях для отображения частота-пеленг.
|
||||
'time_lost': 5000, ## Время после последнего обновления в мс, через которое цель считается потерянной.
|
||||
'freq_low': 200.0, ## Нижняя рабочая частота, МГЦ.
|
||||
'freq_high': 6000.0, ## Верхняя рабочая частота, МГЦ.
|
||||
'radius_inner': 200, ## Внутренний радиус диаграммы в пикселях для отображения частота-пеленг.
|
||||
'radius_outter': 550 ## Наружний радиус диаграммы в пикселях для отображения частота-пеленг.
|
||||
'time_lost': 5000 ## Время после последнего обновления в мс, через которое цель считается потерянной.
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -45,13 +45,13 @@ signal threats_resized(th: Dictionary)
|
||||
func _ready() -> void:
|
||||
Log.info('Модуль обработки целей готов')
|
||||
var threats = {} ## Список целей. Индекс - <номер цели>
|
||||
var unit_key = REPSettings.get_unit_key('уарэп-капсрпб-отп')
|
||||
var unit_key = repsettings.get_unit_key('уарэп-капсрпб-отп')
|
||||
var unit = REPNetwork.units[unit_key]
|
||||
var timer_check_lost: = Timer.new()
|
||||
add_child(timer_check_lost)
|
||||
unit.connect('data_received', Callable(self, 'on_data_capsrpb_received').bind(threats))
|
||||
timer_check_lost.connect('timeout', Callable(self, 'on_timer_check_lost').bind(REPSettings.ThreatParams.time_lost, threats))
|
||||
timer_check_lost.start(REPSettings.ThreatParams.time_lost / 1000.0)
|
||||
timer_check_lost.connect('timeout', Callable(self, 'on_timer_check_lost').bind(repsettings.ThreatParams.time_lost, threats))
|
||||
timer_check_lost.start(repsettings.ThreatParams.time_lost / 1000.0)
|
||||
|
||||
|
||||
## Периодически удаляет устаревшие цели
|
||||
@@ -75,19 +75,20 @@ func on_data_capsrpb_received(unit: capsrpb.CapsRpb, threats: Dictionary):
|
||||
var mis = unit.json_dic['mis']
|
||||
var sz: = threats.size()
|
||||
for dic_th in mis:
|
||||
if dic_th.has('id'):
|
||||
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_rx = unit.tick
|
||||
call_deferred('emit_signal', 'threat_update', th)
|
||||
else:
|
||||
var th = Threat.new()
|
||||
th.set_from_dic(dic_th)
|
||||
threats[id] = th
|
||||
th.tick_rx = unit.tick
|
||||
call_deferred('emit_signal', 'threat_new', th)
|
||||
if dic_th is Dictionary:
|
||||
if dic_th.has('id'):
|
||||
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_rx = unit.tick
|
||||
call_deferred('emit_signal', 'threat_update', th)
|
||||
else:
|
||||
var th = Threat.new()
|
||||
th.set_from_dic(dic_th)
|
||||
threats[id] = th
|
||||
th.tick_rx = unit.tick
|
||||
call_deferred('emit_signal', 'threat_new', th)
|
||||
if sz != threats.size():
|
||||
call_deferred('emit_signal', 'threats_resized', threats)
|
||||
|
||||
@@ -93,6 +93,7 @@ class YaU07:
|
||||
|
||||
var ports_count = ports_data.size()
|
||||
tx_len = ports_count * 2 + 8
|
||||
tx_data.encode_u16(0, cmd_retry) # Исправление для сетевого стека "nm-callback" процессоров STM
|
||||
tx_data.encode_u16(2, cmd_num_tx)
|
||||
|
||||
if cmd_code == CmdCode.WRITE_ISA:
|
||||
|
||||
Reference in New Issue
Block a user