Merge remote-tracking branch 'MaD_CaT/master'

This commit is contained in:
sasha80
2025-03-11 09:02:21 +03:00
3 changed files with 34 additions and 7 deletions

View File

@@ -129,6 +129,10 @@ func on_interfer_off(ecm, ecms, thrs, table_index):
interfer.cu.erase(ecm.ispp)
interfer.fs.erase(ecm.ispp)
interfer.push_id(ecm.ispp)
var sel_rows: Array
$table.get_selected_rows(sel_rows)
if not len(sel_rows):
signaller.emit_signal('interfer_selected', null)
## Перестраивает индекс таблицы. Вызывать при удалении строки

View File

@@ -37,6 +37,7 @@ const fs_freq: Dictionary = {
5: [2000.0, 3500.0, 450.0, 500.0, 2450.0],
6: [3500.0, 6000.0, 500.0, 550.0, 5800.0] }
## Названия приборов ПРД
const prd_names: Array = [
'уарэп-яу07-1н',
'уарэп-яу07-1в',
@@ -51,6 +52,7 @@ const prd_names: Array = [
'уарэп-яу07-4в',
'уарэп-яу07-4к', ]
## Соответствие модулей ФС их нахождуению в приборе ПРД
const fs_prd: Dictionary = {
0: ['уарэп-яу07-1к'],
1: ['уарэп-яу07-4к'],
@@ -81,25 +83,39 @@ const fs_prd: Dictionary = {
26: ['уарэп-яу07-3к'],
27: ['уарэп-яу07-2к'], }
var fs_dict: Dictionary
var prd_dict: Dictionary
var fs_dict: Dictionary ## Словарь с модулями ФС
var prd_dict: Dictionary ## Словарь с приборами ПРД
class Fs:
const um_ports: Dictionary = {
1 : 0x6,
2 : 0xA,
3 : 0x6,
4 : 0xA,
5 : 0x6,
6 : 0xA }
var index ## Индекс блока усилителей
var modulation: bool ## Состояние модуляции
var prd_name: String ## Ипя прибора ПРД в котором стоит модуль
var um_port: int = 0 ## Порт для угла места
var um: int = 0 ## Код угла места
signal update_modulation(index)
func _init(i, p_name):
prd_name = p_name
index = i
if um_ports.has(index/4):
um_port = um_ports[index/4]
func set_modulation(val):
modulation = val
class PRD:
const ug_addr: int = 0x100 ## адрес ячейки УГ
var prd_name: String ## Имя прибора
var unit_yau07 ## Юнит эмс
var fs_dic: Dictionary ## Массив блоков ФС
@@ -131,6 +147,7 @@ func _ready() -> void:
fs.connect('update_modulation', prd_dict[fs.prd_name].on_update_modulation.bind(fs.index))
## Функция возвращает массив с индексами модулей ФС для выбранной помехи
func get_fs_index(ecm, fs_index_arr):
var sector: int
var band: Array
@@ -148,21 +165,22 @@ func get_fs_index(ecm, fs_index_arr):
fs_index_arr.append(item * 4 + sector)
## Обновление состояния модулей формирователя сигналов
func update_fs_state(ecms):
for fs in fs_dict.values():
for fs in fs_dict.values(): ## Запрет модуляции для всех ФС
fs.set_modulation(false)
for ecm in ecms.values():
for ecm in ecms.values(): ## Выставление состояния помехи в ФС
var fs_ids: Array
get_fs_index(ecm, fs_ids)
for fs_index in fs_ids:
var fs = fs_dict[fs_index]
fs.set_modulation(ecm.modulation)
for prd_module in prd_dict.values():
for prd_module in prd_dict.values(): ## Отправка команды на исполнение в ПРД
if not prd_module.unit_yau07.online: continue
for fs in prd_module.fs_dic.values():
var dev_mode = prd_module.yemsg_board.get_dev_mode(fs.index)
var fs_state = 2
if fs.modulation:
fs_state = 3
if dev_mode != fs_state:
if (dev_mode != fs_state) or (fs_state == 3):
fs.emit_signal('update_modulation')

View File

@@ -70,7 +70,12 @@ func _ready() -> void:
temp_array.append([])
for i in len(json_data[key]) - 1:
if tools.type_is_num(json_data[key][i+1]) == tools.type_is_num(UnitProfiles[key][2][i]):
temp_array[1].append(json_data[key][i+1])
if typeof(UnitProfiles[key][2][i]) == TYPE_INT:
temp_array[1].append(int(json_data[key][i+1]))
elif typeof(UnitProfiles[key][2][i]) == TYPE_FLOAT:
temp_array[1].append(float(json_data[key][i+1]))
else:
set_from_file = false
elif typeof(json_data[key][i+1]) == typeof(UnitProfiles[key][2][i]):
temp_array[1].append(json_data[key][i+1])
else: