Доработка. Включение/Выключение помех. В процессе.

This commit is contained in:
MaD_CaT
2023-11-20 13:51:26 +03:00
parent d37b56c132
commit 5ab6ce9e34
4 changed files with 61 additions and 12 deletions

View File

@@ -19,6 +19,7 @@ const ITERFER_MODE = {
'ozp1': ['ОЗП-1', ['freq', 'width']] }
const ID_INTERFERS_LEN = 63 ## Размер пула номеров целей
const INTERFER_OFF = 'off'
var msg_ss: int = 0 ## счётчик сообщений
var id_array: Array ## Массив id воздействий
var thrs: Dictionary ## Словарь воздействия для целей, ключ - id воздействия
@@ -43,7 +44,7 @@ class Interfer:
data_to_json['ss'] = ss
data_to_json['ispp'] = ispp
data_to_json['krp'] = krp
if krp != 'off':
if krp != INTERFER_OFF:
data_to_json['kni'] = kni
data_to_json['powp'] = powp # Необходимо добавить управление мощностью
data_to_json['get'] = []
@@ -70,17 +71,17 @@ func _ready():
id_array.append(i+1)
var unit_key = repsettings.get_unit_key('уарэп-капсрпб-отп')
var unit = repnetwork.units[unit_key]
unit.connect('data_received', Callable(self, 'on_data_capsrpb_received').bind(ecms))
signaller.connect('interfer_create', Callable(self, 'on_interfer_create').bind(unit, ecms))
## Производит приём состояния помех. [param unit] -> [param ecms]
func on_data_capsrpb_received(unit: capsrpb.CapsRpb, ecms: Dictionary):
if not unit.json_dic.has('ts'): return
if not (unit.json_dic['ts'] is int): return
if unit.json_dic['ts'] != 5: return
if not unit.json_dic.has('msvk'): return
if not unit.json_dic.has('ts'): return
if not (unit.json_dic['ts'] is float): return
if unit.json_dic['ts'] != 5: return
if not unit.json_dic.has('msvk'): return
if not (unit.json_dic['msvk'] is Array): return
var msvk = unit.json_dic['msvk']
var sz: = ecms.size()
for dic_msvk in msvk:
@@ -95,7 +96,9 @@ func on_data_capsrpb_received(unit: capsrpb.CapsRpb, ecms: Dictionary):
else:
var ecm = Interfer.new()
ecm.set_from_dic(dic_msvk)
ecms[ispp] = ecm
ecm.krp = INTERFER_OFF
var json_data = ecm.get_msg6_data()
unit.tx_stack.append(json_data)
ecm.tick_rx = unit.tick
if sz != ecms.size():
call_deferred('emit_signal', 'interfer_resized', ecms)
@@ -125,7 +128,9 @@ func on_interfer_create(btn, sel_threats, unit, ecms):
ecm = ecms[ispp]
else:
ecm = Interfer.new()
ecm.svk = 5 # Подготовка к передаче сообщения
ecm.ispp = ispp
ecms[ispp] = ecm
ecm.ss = msg_ss
ecm.kni = kni
ecm.krp = interfer_name