Files
PRD_TU_MP550/scripts/constants.gd

473 lines
13 KiB
GDScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

extends Node
var UNICAST_PORT: int = 50003
var UNICAST_ADDRESS: String = '10.1.1.3'
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.16', '10.1.2.17', '10.1.2.11'],
['ПРД-К2', '10.1.1.23', 50023, MODE.PRD_K, '10.1.2.26', '10.1.2.27', '10.1.2.21'],
['ПРД-К3', '10.1.1.33', 50033, MODE.PRD_K, '10.1.2.36', '10.1.2.37', '10.1.2.31'],
['ПРД-К4', '10.1.1.43', 50043, MODE.PRD_K, '10.1.2.46', '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°',
'',
' 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()
var i = 0
while i < args.size():
if args[i] == "--addr" or args[i] == "-a":
if i + 1 < args.size():
var addr_suffix: int = int(args[i + 1])
UNICAST_PORT = 50000 + addr_suffix
UNICAST_ADDRESS = '10.1.1.%s' % addr_suffix
i += 1 # Пропускаем следующий аргумент
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)