Merge remote-tracking branch 'MaD_CaT/master' into master-gd4.4
This commit is contained in:
@@ -18,9 +18,10 @@ const TABLE_PARAMS = {
|
||||
'freq': [2, 'Частота, МГц', true, 400.0, 6000.0],
|
||||
'width': [3, 'Занимая полоса частот, МГц', true, 0.0, 120.0],
|
||||
'dur': [4, 'Длительность импульса, мкс', true, 0.0, 1000000.0],
|
||||
'period': [5, 'Период повтора, мкс', true, 0.0, 1000000.0] }
|
||||
'period': [5, 'Период повтора, мкс', true, 0.0, 1000000.0],
|
||||
'um': [6, 'Угол места, гр.', true, -5.0, 55.0] }
|
||||
|
||||
const MOD_ROW_INDEX = 6 ## Индекс строки с модуляцией
|
||||
const MOD_ROW_INDEX = 7 ## Индекс строки с модуляцией
|
||||
|
||||
func init_table():
|
||||
for i in TABLE_PARAMS.size(): $table.add_row(TABLE_ROW)
|
||||
@@ -37,15 +38,15 @@ func init_table():
|
||||
$table.set_node_text(0, MOD_ROW_INDEX, 'Подавление')
|
||||
$table.set_node_alligment(0, MOD_ROW_INDEX, HORIZONTAL_ALIGNMENT_LEFT)
|
||||
$table.set_node_editable(0, MOD_ROW_INDEX, false)
|
||||
var taggle_node = $table.get_node2(1, MOD_ROW_INDEX)
|
||||
var taggle_btn = taggle_node.get_children()[1]
|
||||
taggle_btn.connect('pressed', on_taggle_btn.bind(taggle_btn))
|
||||
taggle_btn.disabled = true
|
||||
var toggle_node = $table.get_node2(1, MOD_ROW_INDEX)
|
||||
var toggle_btn = toggle_node.get_children()[1]
|
||||
toggle_btn.connect('pressed', on_toggle_btn.bind(toggle_btn))
|
||||
toggle_btn.disabled = true
|
||||
$table.set_columns_min_size(TABLE_COLUMN_SIZE)
|
||||
$table.set_meta('id', 0)
|
||||
signaller.connect('interfer_selected', Callable(self, 'on_interfer_selected').bind(taggle_btn))
|
||||
signaller.connect('interfer_selected', Callable(self, 'on_interfer_selected').bind(toggle_btn))
|
||||
signaller.connect('rto_threat_unsel', Callable(self, 'on_rto_threat_unsel'))
|
||||
signaller.connect('emit_changed', Callable(self, 'on_emit_changed').bind(taggle_btn))
|
||||
signaller.connect('emit_changed', Callable(self, 'on_emit_changed').bind(toggle_btn))
|
||||
|
||||
|
||||
## Called when the node enters the scene tree for the first time.
|
||||
@@ -74,18 +75,18 @@ func check_value(val, min_val, max_val, old_val):
|
||||
else: return old_val
|
||||
|
||||
|
||||
func on_interfer_selected(ecm, taggle_btn):
|
||||
func on_interfer_selected(ecm, toggle_btn):
|
||||
if ecm != null:
|
||||
$table.set_meta('ecm', ecm)
|
||||
taggle_btn.disabled = false
|
||||
toggle_btn.disabled = false
|
||||
else:
|
||||
$table.set_meta('ecm', null)
|
||||
taggle_btn.disabled = true
|
||||
taggle_btn.button_pressed = false
|
||||
on_ecm_update(taggle_btn)
|
||||
toggle_btn.disabled = true
|
||||
toggle_btn.button_pressed = false
|
||||
on_ecm_update(toggle_btn)
|
||||
|
||||
|
||||
func on_ecm_update(taggle_btn):
|
||||
func on_ecm_update(toggle_btn):
|
||||
for item in len(TABLE_PARAMS):
|
||||
$table.set_node_text(1, item, '')
|
||||
$table.set_node_editable(1, item, false)
|
||||
@@ -100,7 +101,7 @@ func on_ecm_update(taggle_btn):
|
||||
var val = ecm.get_value(member_name)
|
||||
$table.set_node_text(1, p[0], '%s' % val)
|
||||
$table.set_node_editable(1, p[0], p[2])
|
||||
taggle_btn.button_pressed = ecm.modulation
|
||||
toggle_btn.button_pressed = ecm.modulation
|
||||
|
||||
|
||||
|
||||
@@ -110,12 +111,12 @@ func on_rto_threat_unsel(_th_id):
|
||||
$table.set_node_editable(1, item, false)
|
||||
|
||||
|
||||
func on_taggle_btn(taggle_btn):
|
||||
func on_toggle_btn(toggle_btn):
|
||||
if not $table.has_meta('ecm'): return
|
||||
var ecm: interfer.Interfer = $table.get_meta('ecm')
|
||||
ecm.modulation = taggle_btn.button_pressed
|
||||
ecm.modulation = toggle_btn.button_pressed
|
||||
|
||||
|
||||
func on_emit_changed(state, taggle_btn):
|
||||
if not taggle_btn.disabled:
|
||||
taggle_btn.button_pressed = state
|
||||
func on_emit_changed(state, toggle_btn):
|
||||
if not toggle_btn.disabled:
|
||||
toggle_btn.button_pressed = state
|
||||
|
||||
@@ -10,7 +10,7 @@ const ITERFER_MODE = {
|
||||
'srnm2': ['СРН-М2', ['freq', 'width'], 2],
|
||||
'srngps': ['СРН-GPS', ['freq', 'width'], 3],
|
||||
'lchm1': ['ЛЧМ-1', ['freq', 'width'], 10],
|
||||
'lchm2': ['ЛЧМ-2', ['freq', 'width'], 4],
|
||||
'lchm2': ['ЛЧМ-2', ['freq', 'width'], 16],
|
||||
'mchm1': ['МЧМ-1', ['freq', 'width'], 11],
|
||||
'pdm2': ['ПД-М2', ['freq', 'width'], 12],
|
||||
'pdm4': ['ПД-М4', ['freq', 'width'], 13],
|
||||
@@ -214,9 +214,13 @@ func on_interfer_rcv(interfer_params: Array, unit, ecms):
|
||||
var mode = interfer_params[0]
|
||||
var id = interfer_params[1]
|
||||
var aoa = interfer_params[2]
|
||||
var um = interfer_params[3]
|
||||
if (aoa < 0) and (aoa > 360):
|
||||
err = true
|
||||
var param: Dictionary = {}
|
||||
if (um < -5) and (um > 55):
|
||||
err = true
|
||||
param['um'] = um
|
||||
param['freq'] = interfer_params[4]
|
||||
if (param['freq'] < FREQ_MIN) and (param['freq'] > FREQ_MAX):
|
||||
err = true
|
||||
@@ -267,7 +271,10 @@ func interfer_create(interfer_name, ecms, param, kni, id, dict, source_interfer)
|
||||
ecm.powp = 100.0
|
||||
ecm.source_interfer = source_interfer
|
||||
ecm.modulation = emit_enable
|
||||
ecm.um = 15.0 # Значение по умолчанию
|
||||
if param.has('um'):
|
||||
ecm.um = param['um']
|
||||
else:
|
||||
ecm.um = 15.0 # Значение по умолчанию
|
||||
signaller.emit_signal('interfer_new', ecm)
|
||||
if interfer_name == 'off':
|
||||
signaller.emit_signal('interfer_off', ecm, ecms, thrs)
|
||||
|
||||
@@ -45,6 +45,11 @@ class TCP5P28 extends unit.Unit:
|
||||
signal get_interfers(unit: TCP5P28) ## Запрос состояния выполнения целеуказания.
|
||||
|
||||
var tx_stack: Array ## Массив пакетов для отправки.
|
||||
var ext_cu = false
|
||||
func _init(nm) -> void:
|
||||
super._init(nm)
|
||||
ext_cu = ProjectSettings.get_setting('application/config/external_cu', false)
|
||||
ProjectSettings.connect('settings_changed', on_setting_changed)
|
||||
|
||||
func _to_string() -> String: return String('5П-28: "%s" %s ' % [self.name, ['отключен', 'на связи'][int(online)]])
|
||||
|
||||
@@ -60,8 +65,7 @@ class TCP5P28 extends unit.Unit:
|
||||
emit_signal('get_threats')
|
||||
if cmd_type == CMD_TYPE_STATE:
|
||||
emit_signal('get_interfers')
|
||||
var external_cu = ProjectSettings.get_setting('application/config/external_cu', false)
|
||||
if cmd_type == CMD_TYPE_IN and external_cu:
|
||||
if cmd_type == CMD_TYPE_IN and ext_cu:
|
||||
set_interfer(data)
|
||||
|
||||
func process(tick: int):
|
||||
@@ -181,3 +185,6 @@ class TCP5P28 extends unit.Unit:
|
||||
var data_to_send: PackedByteArray = create_header(data_len)
|
||||
data_to_send.append_array(data_tx)
|
||||
tx_stack.append(data_to_send)
|
||||
|
||||
func on_setting_changed():
|
||||
ext_cu = ProjectSettings.get_setting('application/config/external_cu', false)
|
||||
|
||||
Reference in New Issue
Block a user