Доработка, обновления под новый протокол сопряжения.

This commit is contained in:
MaD_CaT
2025-09-04 15:40:33 +03:00
parent 6f1080d083
commit db3e4bf574
3 changed files with 101 additions and 87 deletions

122
fs.gd
View File

@@ -33,34 +33,34 @@ const LBLS_PARAM: Array = [
const OPT_BTN_TEXT: Array = ['не исправно', 'исправно', 'не определено']
# [номер сектора, номер литеры, номер ФС, координата x, координата y]
const FS_PARAM = [
[1, 1, 17, 0, 0],
[1, 2, 19, 50, 0],
[1, 3, 18, 100, 0],
[1, 4, 20, 150, 0],
[1, 5, 21, 200, 0],
[1, 6, 22, 250, 0],
[1, 7, 23, 300, 0],
[2, 1, 33, 0, 50],
[2, 2, 34, 50, 50],
[2, 3, 35, 100, 50],
[2, 4, 36, 150, 50],
[2, 5, 37, 200, 50],
[2, 6, 38, 250, 50],
[2, 7, 39, 300, 50],
[3, 1, 49, 0, 100],
[3, 2, 51, 50, 100],
[3, 3, 50, 100, 100],
[3, 4, 52, 150, 100],
[3, 5, 53, 200, 100],
[3, 6, 54, 250, 100],
[3, 7, 55, 300, 100],
[4, 1, 65, 0, 150],
[4, 2, 66, 50, 150],
[4, 3, 67, 100, 150],
[4, 4, 68, 150, 150],
[4, 5, 69, 200, 150],
[4, 6, 70, 250, 150],
[4, 7, 71, 300, 150],
[1, 1, 11, 0, 0],
[1, 2, 12, 50, 0],
[1, 3, 13, 100, 0],
[1, 4, 14, 150, 0],
[1, 5, 15, 200, 0],
[1, 6, 16, 250, 0],
[1, 7, 17, 300, 0],
[2, 1, 21, 0, 50],
[2, 2, 22, 50, 50],
[2, 3, 23, 100, 50],
[2, 4, 24, 150, 50],
[2, 5, 25, 200, 50],
[2, 6, 26, 250, 50],
[2, 7, 27, 300, 50],
[3, 1, 31, 0, 100],
[3, 2, 32, 50, 100],
[3, 3, 33, 100, 100],
[3, 4, 34, 150, 100],
[3, 5, 35, 200, 100],
[3, 6, 36, 250, 100],
[3, 7, 37, 300, 100],
[4, 1, 41, 0, 150],
[4, 2, 42, 50, 150],
[4, 3, 43, 100, 150],
[4, 4, 44, 150, 150],
[4, 5, 45, 200, 150],
[4, 6, 46, 250, 150],
[4, 7, 47, 300, 150],
]
const MSG8_DATA = [
['roll','Крен корабля, градусы:'],
@@ -222,45 +222,42 @@ func set_fs(interfer: Interfers.Interfer):
var lit: int
var freq = interfer.get_val('freq')
var width = interfer.get_val('width')
if (freq == '') or (width == ''):
var fs_item = null
var ecm_name = interfer.options.krp
if Interfers.INTERFER_NAMES.has(ecm_name):
if ecm_name == Interfers.IQ_FL_NAME:
var iq_fl_name = interfer.get_val('filename')
if not iq_fl_name in Interfers.INTERFER_NAMES[Interfers.IQ_FL_NAME]:
fs_of_old(interfer)
return 2
for i in range(len(BANDS)):
if (float(freq) >= BANDS[i][0]) and (float(freq) <= BANDS[i][1]):
lit = i+1
if (float(interfer.options['kni']) < 0) or (float(interfer.options['kni'] > 360)):
fs_of_old(interfer)
return 2
for i in range(len(SECTORS)):
if i < 1:
if (float(interfer.options['kni']) >= SECTORS[i][0]) or (float(interfer.options['kni']) <= SECTORS[i][1]):
sec = i+1
else:
if (float(interfer.options['kni']) >= SECTORS[i][0]) and (float(interfer.options['kni']) <= SECTORS[i][1]):
sec = i+1
var fs_arr: Array
fs_arr = FS_PARAM.filter(func(item): return item[0] == sec)
fs_arr = fs_arr.filter(func(item): return item[1] == lit)
if len(fs_arr) > 0:
var fs_num = fs_arr[0][2]
if g_fs_dict[fs_num].isg == 1:
if g_fs_dict[fs_num].interfer == null:
g_fs_dict[fs_num].interfer = interfer
if (interfer.active_fs != g_fs_dict[fs_num]) and (interfer.active_fs != null):
fs_of_old(interfer)
return 2
if (freq == ''):
fs_of_old(interfer)
return 2
if g_fs_dict.has(interfer.options['nmfs']):
fs_item = g_fs_dict[interfer.options['nmfs']]
else:
fs_of_old(interfer)
return 2
if fs_item.isg == 1:
if fs_item.interfer == null:
fs_item.interfer = interfer
if (interfer.active_fs != fs_item) and (interfer.active_fs != null):
fs_off(interfer.active_fs)
interfer.active_fs = g_fs_dict[fs_num]
g_fs_dict[fs_num].pow = float(interfer.options['powp'])
g_fs_dict[fs_num].freq = float(freq)
g_fs_dict[fs_num].width = float(width)
update_fs(g_fs_dict[fs_num], float(interfer.options['powp']), float(freq), float(width))
g_fs_dict[fs_num].btn.set_texture_normal(btn_txr2)
if g_active_fs == g_fs_dict[fs_num]:
interfer.active_fs = fs_item
fs_item.pow = float(interfer.options['powp'])
fs_item.freq = float(freq)
fs_item.width = float(width)
update_fs(fs_item, float(interfer.options['powp']), float(freq), float(width))
fs_item.btn.set_texture_normal(btn_txr2)
if g_active_fs == fs_item:
on_btn_fs(g_active_fs)
return 1
elif g_fs_dict[fs_num].interfer == interfer:
update_fs(g_fs_dict[fs_num], float(interfer.options['powp']), float(freq), float(width))
if g_active_fs == g_fs_dict[fs_num]:
elif fs_item.interfer == interfer:
update_fs(fs_item, float(interfer.options['powp']), float(freq), float(width))
if g_active_fs == fs_item:
on_btn_fs(g_active_fs)
return 1
else:
@@ -269,9 +266,6 @@ func set_fs(interfer: Interfers.Interfer):
else:
fs_of_old(interfer)
return 4
else:
fs_of_old(interfer)
return 2
func fs_of_old(interfer):

View File

@@ -14,13 +14,13 @@ const TableCellType5 = preload('res://ячейка-2.tscn')
const TableCellType6 = preload('res://кнопка-5.tscn')
const TableHeader = preload('res://table/header.tscn')
# Индекс колонки: 0 1 2 3 4 5 6
const TABLE_HEADERS = [ 'Индекс', 'Состояние', 'Помеха', 'Мощность', 'Кур. уг.', 'Частота', 'Ш. диап.']
const TABLE_HEADER_TYPES = [ TableHeader, TableHeader, TableHeader, TableHeader, TableHeader, TableHeader, TableHeader]
const TABLE_HEADER_ALIGNMENTS = [ HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER]
const TABLE_ROW_TYPES = [ TableCellType1, TableCellType6, TableCellType1, TableCellType1, TableCellType1, TableCellType1, TableCellType1]
const TABLE_ROW_ALIGNMENTS = [ HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER]
const TABLE_COLUMN_SIZES = [ 82, 150, 82, 100, 82, 90, 150]
# Индекс колонки: 0 1 2 3 4 5 6 7
const TABLE_HEADERS = [ 'Индекс', 'Состояние', 'Помеха', 'Мощность', 'Кур. уг.', 'Частота', 'Ш. диап.', 'Номер ФС']
const TABLE_HEADER_TYPES = [ TableHeader, TableHeader, TableHeader, TableHeader, TableHeader, TableHeader, TableHeader, TableHeader]
const TABLE_HEADER_ALIGNMENTS = [ HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER]
const TABLE_ROW_TYPES = [ TableCellType1, TableCellType6, TableCellType1, TableCellType1, TableCellType1, TableCellType1, TableCellType1, TableCellType1]
const TABLE_ROW_ALIGNMENTS = [ HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER]
const TABLE_COLUMN_SIZES = [ 82, 130, 100, 82, 82, 82, 82, 82]
const COLUMN_ISPP = 0 # Индекс сейанса постановки помехи
const COLUMN_SVK = 1 # Состояние выполнения помехи
@@ -29,7 +29,7 @@ const COLUMN_POWP = 3 # Мощность излучения
const COLUMN_KNI = 4 # Курсовой угол
const COLUMN_FREQ = 5 # Частота
const COLUMN_WIDTH = 6 # Ширина диапазона
const COLUMN_NUM_FS = 7 # Номер модуля фс
# Индексы колонок, которым можно задавать выравнивание текста
const TABLE_ALLIGNED_COLUMNS = [
@@ -38,7 +38,8 @@ const TABLE_ALLIGNED_COLUMNS = [
COLUMN_POWP,
COLUMN_KNI,
COLUMN_FREQ,
COLUMN_WIDTH, ]
COLUMN_WIDTH,
COLUMN_NUM_FS]
# Состояние выполнения команды поставновки помехи
const SVK = ['Подготовка', 'Выполнено', 'Ошибка', 'Занято', 'Неисправно']
@@ -46,10 +47,27 @@ const SVK = ['Подготовка', 'Выполнено', 'Ошибка', 'За
# Номера колонок
const COLUMN_OPT = [[COLUMN_SVK, SVK]]
const COLUMN_OPT_BTN = [COLUMN_SVK]
const IQ_FL_NAME = 'IQ-файл'
const INTERFER_NAMES: Dictionary = {
'off' : null,
'ПСП + ФМ-2' : null,
'Линейная ЧМ' : null,
IQ_FL_NAME : ['SRNGPS.pcm',
'MCHM1.pcm',
'PDM2_20.pcm',
'PDM4_20.pcm',
'PDM4S_5.pcm',
'FM_5.pcm',
'K1.pcm',
'OZP1.pcm',
'SVI1_LIT2.pcm',
'SVI1_LIT3.pcm',
'SVM2_LIT2.pcm',
'SVM2_LIT3.pcm',] }
# Помеха
class Interfer:
# параметры цели, второе значение, разрешение отправки.
var get_data: Dictionary = {
'fpga_ver ': '',
'brd_ver': '',
@@ -63,6 +81,7 @@ class Interfer:
'krp': '',
'powp': 0.0,
'kni': 0.0,
'nmfs': 0,
'params': {},
'get': [],
}
@@ -82,6 +101,7 @@ class Interfer:
new_row.append(str(options['kni']))
new_row.append(get_val('freq'))
new_row.append(get_val('width'))
new_row.append(str(options['nmfs']))
return new_row
func get_val(val):
@@ -92,7 +112,7 @@ class Interfer:
func update_interfer(data: Dictionary):
options.merge(data, true)
options['nmfs'] = int(options['nmfs'])
func set_interfer(data):
if interfers.has(data['ispp']):

View File

@@ -25,9 +25,10 @@ self_modulate = Color(0, 0, 0, 1)
layout_mode = 0
offset_right = 1594.0
offset_bottom = 897.0
current_tab = 0
current_tab = 1
[node name="threats" type="Panel" parent="ColorRect/tabs"]
visible = false
self_modulate = Color(0, 0, 0, 1)
light_mask = 2
layout_mode = 2
@@ -136,7 +137,6 @@ offset_bottom = 50.0
text = "100 целей"
[node name="pomehi" type="Panel" parent="ColorRect/tabs"]
visible = false
layout_mode = 2
metadata/_tab_index = 1