extends Node var UNICAST_PORT: int = 50100 var UNICAST_ADDRESS: String = '10.1.1.100' const BROADCAST_PORT: int = 50000 const DEFAULT_ADDRESS: String = '10.1.1.11' const DEFAULT_PORT: String = '50011' const CONST_MIN_TEMP: int = -25 const MAXIMUM_CODE_ADC: int = 3796 const MINIMUM_CODE_AD: int = 2660 const TEMP: float = 115.0 / (MAXIMUM_CODE_ADC - MINIMUM_CODE_AD) const PORT_FS = 1201 const TableNode = preload("res://table/node.tscn") const TableList = preload("res://table/node_list.tscn") const Switch = preload("res://table/switch.tscn") const SocketStatus = preload("res://table/socket_status.tscn") const Header = preload("res://table/header.tscn") var EMS_G_PORT_DATA_HOLDER: Array = [] var CURRENT_MODE: int = ADDRESSES[0][3] const SELECT_DEVICE: Array = [[TableNode, TableList]] const ROWS_REGS_DATA: Array = [ [Header, Header], [TableNode, TableNode], [TableNode, TableNode], [TableNode, TableNode], [TableNode, TableNode], [TableNode, TableNode], [TableNode, TableNode]] const ROWS_YAU_07B_1: Array = [ [Header, Header], [TableNode, Switch], [TableNode, TableList], [TableNode, TableList], [TableNode, TableList], [TableNode, TableNode], [TableNode, SocketStatus], [TableNode, SocketStatus]] const ROWS_YAU_07B_2: Array = [ [Header, Header], [TableNode, Switch], [TableNode, TableList], [TableNode, TableList], [TableNode, TableList], [TableNode, Switch], [TableNode, SocketStatus], [TableNode, SocketStatus]] const ROWS_FS: Array = [ [Header, Header, Header], [TableNode, TableNode, TableNode], [TableNode, TableNode, TableNode], [TableNode, TableNode, TableNode], [TableNode, TableList, TableNode], [TableNode, Switch, TableNode], [TableNode, SocketStatus, TableNode], [TableNode, TableNode, TableNode], [TableNode, Switch, TableNode],] const ADDRESSES: Array = [ ['ПРД-Н1', '10.1.1.11', 50011, MODE.PRD_H, '10.1.2.12', '10.1.2.13', ''], ['ПРД-Н2', '10.1.1.21', 50021, MODE.PRD_H, '10.1.2.22', '10.1.2.23', ''], ['ПРД-Н3', '10.1.1.31', 50031, MODE.PRD_H, '10.1.2.32', '10.1.2.33', ''], ['ПРД-Н4', '10.1.1.41', 50041, MODE.PRD_H, '10.1.2.42', '10.1.2.43', ''], ['ПРД-В1', '10.1.1.12', 50012, MODE.PRD_B, '10.1.2.14', '10.1.2.15', ''], ['ПРД-В2', '10.1.1.22', 50022, MODE.PRD_B, '10.1.2.24', '10.1.2.25', ''], ['ПРД-В3', '10.1.1.32', 50032, MODE.PRD_B, '10.1.2.34', '10.1.2.35', ''], ['ПРД-В4', '10.1.1.42', 50042, MODE.PRD_B, '10.1.2.44', '10.1.2.45', ''], ['ПРД-К1', '10.1.1.13', 50013, MODE.PRD_K, '10.1.2.26', '10.1.2.17', '10.1.2.11'], ['ПРД-К2', '10.1.1.23', 50023, MODE.PRD_K, '10.1.2.36', '10.1.2.27', '10.1.2.21'], ['ПРД-К3', '10.1.1.33', 50033, MODE.PRD_K, '10.1.2.56', '10.1.2.37', '10.1.2.31'], ['ПРД-К4', '10.1.1.43', 50043, MODE.PRD_K, '10.1.2.76', '10.1.2.47', '10.1.2.41']] const INPUT_EMS_G: Array = [ '01 :34', '02 :35', '03 :36', '04 :37', '05 :38', '06 :39', '07 :40', '08 :41', '18 :34', '19 :35', '20 :36', '21 :37', '22 :38', '23 :39', '24 :40', '25 :41',] const OUT_EMS_G: Array = [ [47, '10 :43'], [48, '11 :44'], [49, '12 :45'], [50, '13 :46'], [51, '14 :47'], [52, '15 :48'], [53, '16 :49'], [54, '17 :50'], [55, '26 :43'], [56, '27 :44'], [57, '28 :45'], [58, '29 :46'], [59, '30 :47'], [60, '31 :48'], [61, '32 :49'], [62, '33 :50'], ] const OUT_x128: Array = [ 'Р', 'К', 'Откл', '1' ] const RAY_DICT: Array = [ ' -5°', ' 5°', ' 15°', ' 25°', ' 35°', ' 45°', ' Контроль', ] const ATT_DICT: Array = [ ' 0 dB', ' 0.5 dB', ' 2 dB', ' 2.5 dB', ' 8 dB', ' 8.5 dB', ' 10 dB', ' 10.5 dB', ] const ATT_DICT_correct: Array = [ ' 0 dB', ' 1 dB', ' 4 dB', ' 5 dB', ' 16 dB', ' 17 dB', ' 20 dB', ' 21.5 dB', ] const SIGNS: Dictionary = { MODE.PRD_H: [ # ЯУ-07б-1 'ПРД-Н', 'Литера 2', 'Запрет СИ 2', 'Модуляция УМ', 'Положение луча', 'Аттенюатор УМ', '', 'СИ 2 в УФ', 'СЗИ 2 от УФ', # ЯУ-07б-2 'ПРД-Н', 'Литера 3', 'Запрет СИ 3', 'Модуляция УМ', 'Положение луча', 'Аттенюатор УМ', 'ФГОЗ 3', 'СИ 3 в УФ', 'СЗИ 3 от УФ', # ФС-1 'Модуль ФС', 'Литера 2', 'Состояние', 'Частота', 'Аттенюатор', 'Модуляция', 'Генератор ФС', 'СИ 2 от ФС', 'Фильтр CAN', 'Статус CAN', # ФС-2 'Модуль ФС', 'Литера 3', 'Состояние', 'Частота', 'Аттенюатор', 'Модуляция', 'Генератор ФС', 'СИ 3 от ФС', 'Фильтр CAN', 'Статус CAN', ], MODE.PRD_B: [ # ЯУ-07б-1 'ПРД-В', 'Литера 4', 'Запрет СИ 4', 'Модуляция УМ', 'Положение луча', 'Аттенюатор УМ', 'ФГОЗ 4', 'СИ 4 в УФ', 'СЗИ 4 от УФ', # ЯУ-07б-2 'ПРД-В', 'Литера 5', 'Запрет СИ 5', 'Модуляция УМ', 'Положение луча', 'Аттенюатор УМ', 'ФГОЗ 5', 'СИ 5 в УФ', 'СЗИ 5 от УФ', # ФС-1 'Модуль ФС', 'Литера 4', 'Состояние', 'Частота', 'Аттенюатор', 'Модуляция', 'Генератор ФС', 'СИ 4 от ФС', 'Фильтр CAN', 'Статус CAN', # ФС-2 'Модуль ФС', 'Литера 5', 'Состояние', 'Частота', 'Аттенюатор', 'Модуляция', 'Генератор ФС', 'СИ 5 от ФС', 'Фильтр CAN', 'Статус CAN', ], MODE.PRD_K: [ # ЯУ-07б-1 'ПРД-К', 'Литера 6', 'Запрет СИ 6', 'Модуляция УМ', 'Положение луча', 'Аттенюатор УМ', 'ФРЛС 6', 'СИ 6 в УФ', 'СЗИ 6 от УФ', # ЯУ-07б-2 'ПРД-К', 'Литера 7', 'Запрет СИ 7', 'Модуляция УМ', 'Положение луча', 'Аттенюатор УМ', '', 'СИ 7 в УФ', 'СЗИ 7 от УФ', # ФС-1 'Модуль ФС', 'Литера 6', 'Состояние', 'Частота', 'Аттенюатор', 'Модуляция', 'Генератор ФС', 'СИ 6 от ФС', 'Фильтр CAN', 'Статус CAN', # ФС-2 'Модуль ФС', 'Литера 7', 'Состояние', 'Частота', 'Аттенюатор', 'Модуляция', 'Генератор ФС', 'СИ 7 от ФС', 'Фильтр CAN', 'Статус CAN', # ЯУ-07б-2 'ПРД-К', 'Литера 1', 'Запрет СИ 1', 'Модуляция УМ', 'Положение луча', 'Аттенюатор УМ', '', 'СИ 1 в УФ', 'СЗИ 1 от УФ', # ФС-3 'Модуль ФС', 'Литера 1', 'Состояние', 'Частота', 'Аттенюатор', 'Модуляция', 'Генератор ФС', 'СИ 1 от ФС', 'Фильтр CAN', 'Статус CAN', ], } enum BASE_PORTS { UG = 0x100, EMS_G = 0x120, UKP_1 = 0x130, UKP_2 = 0x140, } enum MODE { PRD_H, PRD_B, PRD_K, } enum Frame { WORK, ## В работе CONSTANT, ## Постоянный сигнал VARIABLE, ## Переменный сигнал NULL, } enum DataIndices { STATUS_BOARD = 0, IN_BLANK_PRD = 1, IN_IMPULS_PRD = 7, OUT_BLANK_PRD = 13, OUT_IMPULS_PRD = 19, DRY_CONTACT = 27, DKM = 28, POWER_UKP_1 = 31, TEMPERATURE_UKP_1 = 47, POWER_UKP_2 = 63, TEMPERATURE_UKP_2 = 79, } enum STATE { WAIT, READ_ISA, WRITE_ISA, DONE, IDLE, SEND, } enum STATE_VAL { NONE = 0, GOOD = 1, ERROR = 2 } enum GROUP { BASE = 0x00, GENERATOR = 0x03, RF = 0x06, } enum CMD { START_SESSION = 0x0, READ_CARRIER = 0x1F, SET_CARRIER = 0x1E, READ_ATT = 0x1A, SET_ATT = 0x1B, READ_GEN_STATUS = 0x05, SET_GEN_STATUS = 0x06, BASE_GET_CURRENT_TEMP = 0x36, BASE_CAN_MACRO_READ = 0x33, } enum META { CZI_1 = 1, CZI_2 = 2, CZI_3 = 3, CZI_4 = 4, CZI_5 = 5, CZI_6 = 6, CZI_7 = 7, CI_1_OT_FS = 9, CI_2_OT_FS = 10, CI_3_OT_FS = 11, CI_4_OT_FS = 12, CI_5_OT_FS = 13, CI_6_OT_FS = 14, CI_7_OT_FS = 15, CI_1_B_UF = 47, CI_2_B_UF = 48, CI_3_B_UF = 49, CI_4_B_UF = 48, CI_5_B_UF = 49, CI_6_B_UF = 48, CI_7_B_UF = 49, MODUL_UM_1 = 50, MODUL_UM_2 = 51, MODUL_UM_3 = 52, MODUL_UM_4 = 51, MODUL_UM_5 = 52, MODUL_UM_6 = 51, MODUL_UM_7 = 52, FGOZ_4 = 55, FGOZ_6 = 55, FGOZ_3 = 56, FGOZ_5 = 56, MODUL_UM_28 = 57, } enum FS_FREQ { f1 = 430, f2 = 932, f3 = 1137, f4 = 1300, f5 = 1725, f6 = 2750, f7 = 4750, } var FS_ATT: Dictionary = { "ПРД-Н1": [18, 18], "ПРД-Н2": [18, 18], "ПРД-Н3": [18, 18], "ПРД-Н4": [18, 18], "ПРД-В1": [19, 19], "ПРД-В2": [19, 19], "ПРД-В3": [19, 19], "ПРД-В4": [19, 19], "ПРД-К1": [17, 17, 17], "ПРД-К2": [17, 17, 17], "ПРД-К3": [17, 17, 17], "ПРД-К4": [17, 17, 17] } func _ready() -> void: # Считывание аргументов с консоли (путь сохранения) var args = OS.get_cmdline_user_args() for i in range(args.size()): if args[i] == "addr" and i + 1 < args.size(): UNICAST_PORT = 50000 + int(args[i + 1]) UNICAST_ADDRESS = '10.1.1.%s' % args[i + 1] read_file() func read_file(): var file_path = "user://saves/fs_setting" var dir_path = "user://saves" # Проверяем и создаем папку, если она не существует var dir = DirAccess.open(dir_path) if not dir: create_dir(dir_path) var file = FileAccess.open(file_path, FileAccess.READ) if file: # Файл существует, читаем его содержимое if file.get_length() > 0: FS_ATT = file.get_var() file.close() else: # Файл не существует, создаем его create_file(file_path) func create_dir(dir_path: String): DirAccess.make_dir_absolute(dir_path) func create_file(file_path: String): var file = FileAccess.open(file_path, FileAccess.WRITE) if file: file.close() print("Файл создан: ", file_path) else: print("Не удалось создать файл по пути:", file_path)