extends Node ## Границы секторов блоков ФС по частоте в режиме РТО. const fs_band_rto: Dictionary = { 0: [200.0, 250.0], 1: [250.0, 300.0], 2: [300.0, 350.0], 3: [350.0, 400.0], 4: [400.0, 450.0], 5: [450.0, 500.0], 6: [500.0, 550.0] } ## Границы секторов блоков ФС по частоте в режиме РЛС. const fs_band_rls: Dictionary = { 0: [480.0, 490.0], 1: [490.0, 500.0], 2: [500.0, 510.0], 3: [510.0, 520.0], 4: [520.0, 530.0], 5: [530.0, 540.0], 6: [540.0, 550.0] } ## Границы секторов блоков ФС по пеленгу. const fs_sectors: Dictionary = { 0: [0.0, 90.0], 3: [90.0, 180.0], 2: [180.0, 270.0], 1: [270.0, 360.0] } const fs_freq: Dictionary = { 0: [390.0, 800.0, 200.0, 250.0, 433.0], 1: [800.0, 1065.0, 250.0, 300.0, 860.0], 2: [1065.0, 1210.0, 300.0, 350.0, 1137.0], 3: [1150.0, 1490.0, 350.0, 400.0, 1227.0], 4: [1490.0, 2000.0, 400.0, 450.0, 1575.0], 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в', 'уарэп-яу07-1к', 'уарэп-яу07-2н', 'уарэп-яу07-2в', 'уарэп-яу07-2к', 'уарэп-яу07-3н', 'уарэп-яу07-3в', 'уарэп-яу07-3к', 'уарэп-яу07-4н', 'уарэп-яу07-4в', 'уарэп-яу07-4к', ] const fs_ampls: Dictionary = { 0: ['уарэп-яу07-1к'], 1: ['уарэп-яу07-4к'], 2: ['уарэп-яу07-3к'], 3: ['уарэп-яу07-2к'], 4: ['уарэп-яу07-1н'], 5: ['уарэп-яу07-4н'], 6: ['уарэп-яу07-3н'], 7: ['уарэп-яу07-2н'], 8: ['уарэп-яу07-1н'], 9: ['уарэп-яу07-4н'], 10: ['уарэп-яу07-3н'], 11: ['уарэп-яу07-2н'], 12: ['уарэп-яу07-1в'], 13: ['уарэп-яу07-4в'], 14: ['уарэп-яу07-3в'], 15: ['уарэп-яу07-2в'], 16: ['уарэп-яу07-1в'], 17: ['уарэп-яу07-4в'], 18: ['уарэп-яу07-3в'], 19: ['уарэп-яу07-2в'], 20: ['уарэп-яу07-1к'], 21: ['уарэп-яу07-4к'], 22: ['уарэп-яу07-3к'], 23: ['уарэп-яу07-2к'], 24: ['уарэп-яу07-1к'], 25: ['уарэп-яу07-4к'], 26: ['уарэп-яу07-3к'], 27: ['уарэп-яу07-2к'], } var fs_dict: Dictionary var prd_dict: Dictionary class FsAmpl: var index ## Индекс блока усилителей var modulation: int ## Состояние модуляции var prd_name: String ## Ипя прибора ПРД в котором стоит модуль func _init(i, p_name): prd_name = p_name index = i func set_modulation(val): modulation = val class PRD: var prd_name: String ## Имя прибора var unit_yau07 ## Юнит эмс var fs_dic: Dictionary ## Массив блоков ФС var yemsg_board ## Плата ЭМС-Г func _init(u_name ,u, yems_board): prd_name = u_name unit_yau07 = u yemsg_board = yems_board func _ready() -> void: for prd_name in prd_names: var unit_key = settings.get_unit_key(prd_name) var unit_prd = network.units[unit_key] for yemsg_board in yemsg.ems_board.values(): if yemsg_board[1] == unit_prd: var yemsg_b = yemsg_board[0] var new_prd = PRD.new(prd_name, unit_prd, yemsg_b) prd_dict[prd_name] = new_prd for key in fs_ampls.keys(): var fs_ampl = FsAmpl.new(key, fs_ampls[key][0]) fs_dict[key] = fs_ampl if prd_dict.has(fs_ampl.prd_name): prd_dict[fs_ampl.prd_name].fs_dic[key] = fs_ampl func get_fs_index(ecm, fs_index_arr): var sector: int var band: Array var angle: float = ecm.kni + 45.0 if angle > 360.0: angle -= 360.0 for sec in fs_sectors.values(): if float(angle) >= sec[0] and float(angle) <= sec[1]: sector = fs_sectors.find_key(sec) for diap in fs_freq.values(): if ecm.params.has('freq'): if ecm.params['freq'] >= diap[0] and ecm.params['freq'] <= diap[1]: band.append(fs_freq.find_key(diap)) for item in band: fs_index_arr.append(item * 4 + sector) func update_fs_state(ecms): for ecm in ecms.values(): var fs_ids: Array get_fs_index(ecm, fs_ids) pass