Доработка УГ
This commit is contained in:
136
config/default_data.json
Normal file
136
config/default_data.json
Normal file
@@ -0,0 +1,136 @@
|
||||
{
|
||||
"default_data": {
|
||||
"ПРД-Н1": {
|
||||
"temperature_ukp": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31],
|
||||
"power_ukp": [100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111],
|
||||
"sockets": [false, false, false, false, false],
|
||||
"dkm": [false, false, false, false, false, false, false],
|
||||
"dou2": [false, false, false, false, false, false, false],
|
||||
"dou3": [false, false, false, false, false, false, false],
|
||||
"att2": [false, false, false, false, false, false, false, false],
|
||||
"att3": [false, false, false, false, false, false, false, false],
|
||||
"ip": [false, false, false, false, false, false, false, false]
|
||||
},
|
||||
"ПРД-В1": {
|
||||
"temperature_ukp": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31],
|
||||
"power_ukp": [100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111],
|
||||
"sockets": [false, false, false, false, false],
|
||||
"dkm": [false, false, false, true, false, false, false],
|
||||
"dou2": [false, false, false, false, false, false, false],
|
||||
"dou3": [false, false, false, false, false, false, false],
|
||||
"att2": [false, false, false, false, false, false, false, false],
|
||||
"att3": [false, false, false, false, false, false, false, false],
|
||||
"ip": [false, false, false, false, false, false, false, true]
|
||||
},
|
||||
"ПРД-К1": {
|
||||
"temperature_ukp": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32],
|
||||
"power_ukp": [100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112],
|
||||
"sockets": [false, false, false, false, false],
|
||||
"dkm": [false, false, false, false, false, false, false],
|
||||
"dou2": [false, false, false, false, false, false, false],
|
||||
"dou3": [false, false, false, false, false, false, false],
|
||||
"att2": [false, false, false, false, false, false, false, false],
|
||||
"att3": [false, false, false, false, false, false, false, false],
|
||||
"ip": [false, false, false, false, false, false, false, false]
|
||||
},
|
||||
"ПРД-Н2": {
|
||||
"temperature_ukp": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31],
|
||||
"power_ukp": [100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111],
|
||||
"sockets": [false, false, false, false, false],
|
||||
"dkm": [false, false, false, false, false, false, false],
|
||||
"dou2": [false, false, false, false, false, false, false],
|
||||
"dou3": [false, false, false, false, false, false, false],
|
||||
"att2": [false, false, false, false, false, false, false, false],
|
||||
"att3": [false, false, false, false, false, false, false, false],
|
||||
"ip": [false, false, false, false, false, false, false, false]
|
||||
},
|
||||
"ПРД-В2": {
|
||||
"temperature_ukp": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31],
|
||||
"power_ukp": [100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111],
|
||||
"sockets": [false, false, false, false, false],
|
||||
"dkm": [false, false, false, false, false, false, false],
|
||||
"dou2": [false, false, false, false, false, false, false],
|
||||
"dou3": [false, false, false, false, false, false, false],
|
||||
"att2": [false, false, false, false, false, false, false, false],
|
||||
"att3": [false, false, false, false, false, false, false, false],
|
||||
"ip": [false, false, false, false, false, false, false, false]
|
||||
},
|
||||
"ПРД-К2": {
|
||||
"temperature_ukp": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32],
|
||||
"power_ukp": [100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112],
|
||||
"sockets": [false, false, false, false, false],
|
||||
"dkm": [false, false, false, false, false, false, false],
|
||||
"dou2": [false, false, false, false, false, false, false],
|
||||
"dou3": [false, false, false, false, false, false, false],
|
||||
"att2": [false, false, false, false, false, false, false, false],
|
||||
"att3": [false, false, false, false, false, false, false, false],
|
||||
"ip": [false, false, false, false, false, false, false, false]
|
||||
},
|
||||
"ПРД-Н3": {
|
||||
"temperature_ukp": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31],
|
||||
"power_ukp": [100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111],
|
||||
"sockets": [false, false, false, false, false],
|
||||
"dkm": [false, false, false, false, false, false, false],
|
||||
"dou2": [false, false, false, false, false, false, false],
|
||||
"dou3": [false, false, false, false, false, false, false],
|
||||
"att2": [false, false, false, false, false, false, false, false],
|
||||
"att3": [false, false, false, false, false, false, false, false],
|
||||
"ip": [false, false, false, false, false, false, false, false]
|
||||
},
|
||||
"ПРД-В3": {
|
||||
"temperature_ukp": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31],
|
||||
"power_ukp": [100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111],
|
||||
"sockets": [false, false, false, false, false],
|
||||
"dkm": [false, false, false, false, false, false, false],
|
||||
"dou2": [false, false, false, false, false, false, false],
|
||||
"dou3": [false, false, false, false, false, false, false],
|
||||
"att2": [false, false, false, false, false, false, false, false],
|
||||
"att3": [false, false, false, false, false, false, false, false],
|
||||
"ip": [false, false, false, false, false, false, false, false]
|
||||
},
|
||||
"ПРД-К3": {
|
||||
"temperature_ukp": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32],
|
||||
"power_ukp": [100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112],
|
||||
"sockets": [false, false, false, false, false],
|
||||
"dkm": [false, false, false, false, false, false, false],
|
||||
"dou2": [false, false, false, false, false, false, false],
|
||||
"dou3": [false, false, false, false, false, false, false],
|
||||
"att2": [false, false, false, false, false, false, false, false],
|
||||
"att3": [false, false, false, false, false, false, false, false],
|
||||
"ip": [false, false, false, false, false, false, false, false]
|
||||
},
|
||||
"ПРД-Н4": {
|
||||
"temperature_ukp": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31],
|
||||
"power_ukp": [100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111],
|
||||
"sockets": [false, false, false, false, false],
|
||||
"dkm": [false, false, false, false, false, false, false],
|
||||
"dou2": [false, false, false, false, false, false, false],
|
||||
"dou3": [false, false, false, false, false, false, false],
|
||||
"att2": [false, false, false, false, false, false, false, false],
|
||||
"att3": [false, false, false, false, false, false, false, false],
|
||||
"ip": [false, false, false, false, false, false, false, false]
|
||||
},
|
||||
"ПРД-В4": {
|
||||
"temperature_ukp": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31],
|
||||
"power_ukp": [100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111],
|
||||
"sockets": [false, false, false, false, false],
|
||||
"dkm": [false, false, false, false, false, false, false],
|
||||
"dou2": [false, false, false, false, false, false, false],
|
||||
"dou3": [false, false, false, false, false, false, false],
|
||||
"att2": [false, false, false, false, false, false, false, false],
|
||||
"att3": [false, false, false, false, false, false, false, false],
|
||||
"ip": [false, false, false, false, false, false, false, false]
|
||||
},
|
||||
"ПРД-К4": {
|
||||
"temperature_ukp": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32],
|
||||
"power_ukp": [100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112],
|
||||
"sockets": [false, false, false, false, false],
|
||||
"dkm": [false, false, false, false, false, false, false],
|
||||
"dou2": [false, false, false, false, false, false, false],
|
||||
"dou3": [false, false, false, false, false, false, false],
|
||||
"att2": [false, false, false, false, false, false, false, false],
|
||||
"att3": [false, false, false, false, false, false, false, false],
|
||||
"ip": [false, false, false, false, false, false, false, false]
|
||||
}
|
||||
}
|
||||
}
|
||||
187
main.gd
187
main.gd
@@ -1,15 +1,101 @@
|
||||
extends Control
|
||||
|
||||
const CONFIG_PATH = "res://config/default_data.json"
|
||||
const BUFFER_SIZE = 32
|
||||
var dictionary_yau07: Dictionary
|
||||
var udp_broadcast: UDPBroadcast
|
||||
var default_data: Dictionary = {}
|
||||
var dictionary_yau07: Dictionary
|
||||
var dictionary_sockets_bit: Dictionary ## Байт 8 для отправки о состоянии ячеек
|
||||
|
||||
func _load_default_data():
|
||||
var file = FileAccess.open(CONFIG_PATH, FileAccess.READ)
|
||||
if file:
|
||||
var json = JSON.new()
|
||||
var error = json.parse(file.get_as_text())
|
||||
if error == OK:
|
||||
default_data = json.data["default_data"]
|
||||
else:
|
||||
push_error("JSON Parse Error: ", json.get_error_message())
|
||||
file.close()
|
||||
else:
|
||||
push_error("Failed to load config file: ", CONFIG_PATH)
|
||||
|
||||
|
||||
func _apply_default_data():
|
||||
var prd_nodes = get_tree().get_nodes_in_group('prd')
|
||||
|
||||
for prd in prd_nodes:
|
||||
var device_name = prd.get_meta('yau07')
|
||||
if default_data.has(device_name):
|
||||
var device_data = default_data[device_name]
|
||||
_fill_ukp_fields(prd, device_data)
|
||||
|
||||
|
||||
# Заполняем поля температур
|
||||
func _fill_ukp_fields(prd_node: Control, device_data: Dictionary):
|
||||
var device_name = prd_node.get_meta('yau07')
|
||||
|
||||
# Заполняем поля температур
|
||||
var temp_fields = _get_ukp_nodes_for_device(device_name, [prd_node], "temperature_ukp")
|
||||
if device_data.has("temperature_ukp"):
|
||||
for i in range(min(temp_fields.size(), device_data["temperature_ukp"].size())):
|
||||
temp_fields[i].text = str(device_data["temperature_ukp"][i])
|
||||
|
||||
# Заполняем поля мощности
|
||||
var power_fields = _get_ukp_nodes_for_device(device_name, [prd_node], "power_ukp")
|
||||
if device_data.has("power_ukp"):
|
||||
for i in range(min(power_fields.size(), device_data["power_ukp"].size())):
|
||||
power_fields[i].text = str(device_data["power_ukp"][i])
|
||||
|
||||
# Устанавливаем состояния сокетов
|
||||
if device_data.has("sockets"):
|
||||
var socket_fields = _get_ukp_nodes_for_device(device_name, [prd_node], "socket")
|
||||
for i in range(min(socket_fields.size(), device_data["sockets"].size())):
|
||||
socket_fields[i].set_pressed_no_signal(device_data["sockets"][i])
|
||||
|
||||
# Устанавливаем состояния ДКМ
|
||||
if device_data.has("dkm"):
|
||||
var dkm_fields = _get_ukp_nodes_for_device(device_name, [prd_node], "dkm")
|
||||
for i in range(min(dkm_fields.size(), device_data["dkm"].size())):
|
||||
dkm_fields[i].set_pressed_no_signal(device_data["dkm"][i])
|
||||
|
||||
# Устанавливаем состояния ДОУ2
|
||||
if device_data.has("dou2"):
|
||||
var dou2_fields = _get_ukp_nodes_for_device(device_name, [prd_node], "dou2")
|
||||
for i in range(min(dou2_fields.size(), device_data["dou2"].size())):
|
||||
dou2_fields[i].set_pressed_no_signal(device_data["dou2"][i])
|
||||
|
||||
# Устанавливаем состояния ДОУ3
|
||||
if device_data.has("dou3"):
|
||||
var dou3_fields = _get_ukp_nodes_for_device(device_name, [prd_node], "dou3")
|
||||
for i in range(min(dou3_fields.size(), device_data["dou3"].size())):
|
||||
dou3_fields[i].set_pressed_no_signal(device_data["dou3"][i])
|
||||
|
||||
# Устанавливаем состояния аттенюаторов 2
|
||||
if device_data.has("att2"):
|
||||
var att2_fields = _get_ukp_nodes_for_device(device_name, [prd_node], "att2")
|
||||
for i in range(min(att2_fields.size(), device_data["att2"].size())):
|
||||
att2_fields[i].set_pressed_no_signal(device_data["att2"][i])
|
||||
|
||||
# Устанавливаем состояния аттенюаторов 3
|
||||
if device_data.has("att3"):
|
||||
var att3_fields = _get_ukp_nodes_for_device(device_name, [prd_node], "att3")
|
||||
for i in range(min(att3_fields.size(), device_data["att3"].size())):
|
||||
att3_fields[i].set_pressed_no_signal(device_data["att3"][i])
|
||||
|
||||
# Устанавливаем состояния источников питания (с инверсией)
|
||||
if device_data.has("ip"):
|
||||
var ip_fields = _get_ukp_nodes_for_device(device_name, [prd_node], "ip")
|
||||
for i in range(min(ip_fields.size(), device_data["ip"].size())):
|
||||
# Для IP используется инверсия: true в JSON = нажато = бит 0
|
||||
ip_fields[i].set_pressed_no_signal(device_data["ip"][i])
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
var device_yau07: Array = get_tree().get_nodes_in_group('device-addr')
|
||||
for device in device_yau07:
|
||||
device.connect('toggled', on_modify_device.bind(device.get_meta('device')))
|
||||
|
||||
var sockets: Array = get_tree().get_nodes_in_group('socket')
|
||||
for soc in sockets:
|
||||
soc.connect('toggled', _on_modify_sockets.bind(soc.get_meta('bit'), soc.get_meta('device'))) ## Мета bit от 0 до 3, мета ПРД
|
||||
@@ -26,6 +112,21 @@ func _ready() -> void:
|
||||
for dkm in dkm_arr_node:
|
||||
dkm.connect('toggled', _on_modify_dkm.bind(dkm.get_meta('bit'), dkm.get_meta('device')))
|
||||
|
||||
var dou2_arr_node: Array = get_tree().get_nodes_in_group('dou2')
|
||||
for dou2 in dou2_arr_node:
|
||||
dou2.connect('toggled', _on_modify_dou2.bind(dou2.get_meta('bit'), dou2.get_meta('device')))
|
||||
|
||||
var dou3_arr_node: Array = get_tree().get_nodes_in_group('dou3')
|
||||
for dou3 in dou3_arr_node:
|
||||
dou3.connect('toggled', _on_modify_dou3.bind(dou3.get_meta('bit'), dou3.get_meta('device')))
|
||||
|
||||
var ip_arr_node: Array = get_tree().get_nodes_in_group('ip')
|
||||
for ip in ip_arr_node:
|
||||
ip.connect('toggled', _on_modify_ip.bind(ip.get_meta('bit'), ip.get_meta('device')))
|
||||
_update_tab_container()
|
||||
_load_default_data()
|
||||
_apply_default_data()
|
||||
|
||||
|
||||
func _exit_tree():
|
||||
for device in dictionary_yau07:
|
||||
@@ -45,6 +146,35 @@ func on_modify_device(toggled: bool, name_device: String) -> void:
|
||||
dictionary_yau07[name_device].close_udp_unit()
|
||||
dictionary_yau07.erase(name_device)
|
||||
print("Устройство %s деактивировано" % name_device)
|
||||
_update_tab_container()
|
||||
|
||||
|
||||
func _update_tab_container():
|
||||
var tab_container = $TabContainer
|
||||
var device_nodes = get_tree().get_nodes_in_group('device-addr')
|
||||
var has_visible_tabs = false
|
||||
# Проходим по всем вкладкам и обновляем их состояние
|
||||
for i in range(tab_container.get_tab_count()):
|
||||
var tab_control = tab_container.get_tab_control(i)
|
||||
var device_name = tab_control.get_meta('yau07', '')
|
||||
|
||||
# Ищем соответствующую кнопку устройства
|
||||
var device_button = null
|
||||
for device in device_nodes:
|
||||
if device.get_meta('device') == device_name:
|
||||
device_button = device
|
||||
break
|
||||
|
||||
# Если нашли кнопку, устанавливаем состояние вкладки
|
||||
if device_button:
|
||||
var is_enabled = device_button.button_pressed
|
||||
tab_container.set_tab_disabled(i, !is_enabled)
|
||||
|
||||
if is_enabled:
|
||||
has_visible_tabs = true
|
||||
|
||||
# Если все вкладки заблокированы, скрываем TabContainer
|
||||
tab_container.visible = has_visible_tabs
|
||||
|
||||
|
||||
## Функция для установки статусов ячеек на связи (УГ, ЭМС-Г, УКП)
|
||||
@@ -67,6 +197,61 @@ func _on_modify_dkm(toggled: bool, bit: int, device: String)->void:
|
||||
print("Статус DKM устройства %s обновлен: 0x%04X" % [device, new_status])
|
||||
|
||||
|
||||
## Функция для установки статусов ДОУ2 в ПРД
|
||||
func _on_modify_dou2(toggled: bool, bit: int, device: String)->void:
|
||||
if not toggled:
|
||||
var dou2_arr_node = get_tree().get_nodes_in_group('dou2')
|
||||
for dou2 in dou2_arr_node:
|
||||
if dou2.has_meta('bit') and dou2.get_meta('bit') == bit:
|
||||
dou2.set_pressed(true)
|
||||
if toggled:
|
||||
var dou2_arr_node = get_tree().get_nodes_in_group('dou2')
|
||||
for dou2 in dou2_arr_node:
|
||||
if dou2.has_meta('bit') and dou2.get_meta('bit') != bit and dou2.button_pressed:
|
||||
dou2.set_pressed_no_signal(false)
|
||||
|
||||
# Всегда устанавливаем статус, если кнопка нажата
|
||||
if toggled and dictionary_yau07.has(device):
|
||||
var udp_unit = dictionary_yau07[device]
|
||||
udp_unit.set_dou2_status(bit)
|
||||
|
||||
|
||||
## Функция для установки статусов ДОУ3 в ПРД
|
||||
func _on_modify_dou3(toggled: bool, bit: int, device: String)->void:
|
||||
if not toggled:
|
||||
var dou3_arr_node = get_tree().get_nodes_in_group('dou3')
|
||||
for dou3 in dou3_arr_node:
|
||||
if dou3.has_meta('bit') and dou3.get_meta('bit') == bit:
|
||||
dou3.set_pressed(true)
|
||||
|
||||
if toggled:
|
||||
var dou3_arr_node = get_tree().get_nodes_in_group('dou3')
|
||||
for dou3 in dou3_arr_node:
|
||||
if dou3.has_meta('bit') and dou3.get_meta('bit') != bit and dou3.button_pressed:
|
||||
dou3.set_pressed_no_signal(false)
|
||||
|
||||
# Всегда устанавливаем статус, если кнопка нажата
|
||||
if toggled and dictionary_yau07.has(device):
|
||||
var udp_unit = dictionary_yau07[device]
|
||||
udp_unit.set_dou3_status(bit)
|
||||
|
||||
|
||||
func _on_modify_ip(toggled: bool, bit: int, device: String):
|
||||
if dictionary_yau07.has(device):
|
||||
var udp_unit = dictionary_yau07[device]
|
||||
var current_status = udp_unit.get_ip_status()
|
||||
# Инверсия: нажата = 0, отжата = 1
|
||||
var bit_value = 0 if toggled else 1
|
||||
var new_status
|
||||
if bit_value == 0:
|
||||
new_status = current_status & ~(1 << bit) # Устанавливаем бит в 0
|
||||
else:
|
||||
new_status = current_status | (1 << bit) # Устанавливаем бит в 1
|
||||
|
||||
udp_unit.set_ip_status(new_status)
|
||||
print("Статус ИП устройства %s обновлен: 0x%04X" % [device, new_status])
|
||||
|
||||
|
||||
## Функция для установки значений в ячейках УКП
|
||||
func _on_ukp_submitted(_new_text: String, device: String) -> void:
|
||||
if not dictionary_yau07.has(device):
|
||||
|
||||
470
main.tscn
470
main.tscn
@@ -145,194 +145,436 @@ text = "Загрузка ЭМС"
|
||||
metadata/bit = 4
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="ukp_1" type="GridContainer" parent="TabContainer/ПРД-Н1"]
|
||||
layout_mode = 2
|
||||
offset_left = 205.0
|
||||
offset_top = 7.0
|
||||
offset_right = 939.0
|
||||
offset_bottom = 95.0
|
||||
columns = 7
|
||||
|
||||
[node name="Label" type="Label" parent="TabContainer/ПРД-Н1/ukp_1"]
|
||||
custom_minimum_size = Vector2(0, 30)
|
||||
layout_mode = 2
|
||||
theme_override_styles/normal = SubResource("StyleBoxFlat_ig7tw")
|
||||
text = "Температуры"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="TextEdit" type="LineEdit" parent="TabContainer/ПРД-Н1/ukp_1" groups=["temperature_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit2" type="LineEdit" parent="TabContainer/ПРД-Н1/ukp_1" groups=["temperature_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit3" type="LineEdit" parent="TabContainer/ПРД-Н1/ukp_1" groups=["temperature_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit4" type="LineEdit" parent="TabContainer/ПРД-Н1/ukp_1" groups=["temperature_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit5" type="LineEdit" parent="TabContainer/ПРД-Н1/ukp_1" groups=["temperature_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit6" type="LineEdit" parent="TabContainer/ПРД-Н1/ukp_1" groups=["temperature_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="Label2" type="Label" parent="TabContainer/ПРД-Н1/ukp_1"]
|
||||
custom_minimum_size = Vector2(0, 30)
|
||||
layout_mode = 2
|
||||
theme_override_styles/normal = SubResource("StyleBoxFlat_ig7tw")
|
||||
text = "Мощность"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="TextEdit7" type="LineEdit" parent="TabContainer/ПРД-Н1/ukp_1" groups=["power_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit8" type="LineEdit" parent="TabContainer/ПРД-Н1/ukp_1" groups=["power_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit9" type="LineEdit" parent="TabContainer/ПРД-Н1/ukp_1" groups=["power_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit10" type="LineEdit" parent="TabContainer/ПРД-Н1/ukp_1" groups=["power_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit11" type="LineEdit" parent="TabContainer/ПРД-Н1/ukp_1" groups=["power_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit12" type="LineEdit" parent="TabContainer/ПРД-Н1/ukp_1" groups=["power_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="ukp_2" type="GridContainer" parent="TabContainer/ПРД-Н1"]
|
||||
[node name="TabBar" type="TabContainer" parent="TabContainer/ПРД-Н1"]
|
||||
layout_mode = 0
|
||||
offset_left = 205.0
|
||||
offset_top = 103.0
|
||||
offset_right = 939.0
|
||||
offset_bottom = 191.0
|
||||
columns = 7
|
||||
offset_left = 199.0
|
||||
offset_top = 9.0
|
||||
offset_right = 957.0
|
||||
offset_bottom = 334.0
|
||||
current_tab = 2
|
||||
tabs_position = 1
|
||||
tab_focus_mode = 0
|
||||
|
||||
[node name="Label" type="Label" parent="TabContainer/ПРД-Н1/ukp_2"]
|
||||
[node name="ukp_1" type="GridContainer" parent="TabContainer/ПРД-Н1/TabBar"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
columns = 7
|
||||
metadata/_tab_index = 0
|
||||
|
||||
[node name="Label" type="Label" parent="TabContainer/ПРД-Н1/TabBar/ukp_1"]
|
||||
custom_minimum_size = Vector2(0, 30)
|
||||
layout_mode = 2
|
||||
theme_override_styles/normal = SubResource("StyleBoxFlat_ig7tw")
|
||||
text = "Температуры"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="TextEdit" type="LineEdit" parent="TabContainer/ПРД-Н1/ukp_2" groups=["temperature_ukp"]]
|
||||
[node name="TextEdit" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_1" groups=["temperature_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit2" type="LineEdit" parent="TabContainer/ПРД-Н1/ukp_2" groups=["temperature_ukp"]]
|
||||
[node name="TextEdit2" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_1" groups=["temperature_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit3" type="LineEdit" parent="TabContainer/ПРД-Н1/ukp_2" groups=["temperature_ukp"]]
|
||||
[node name="TextEdit3" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_1" groups=["temperature_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit4" type="LineEdit" parent="TabContainer/ПРД-Н1/ukp_2" groups=["temperature_ukp"]]
|
||||
[node name="TextEdit4" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_1" groups=["temperature_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit5" type="LineEdit" parent="TabContainer/ПРД-Н1/ukp_2" groups=["temperature_ukp"]]
|
||||
[node name="TextEdit5" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_1" groups=["temperature_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit6" type="LineEdit" parent="TabContainer/ПРД-Н1/ukp_2" groups=["temperature_ukp"]]
|
||||
[node name="TextEdit6" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_1" groups=["temperature_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="Label2" type="Label" parent="TabContainer/ПРД-Н1/ukp_2"]
|
||||
[node name="Label2" type="Label" parent="TabContainer/ПРД-Н1/TabBar/ukp_1"]
|
||||
custom_minimum_size = Vector2(0, 30)
|
||||
layout_mode = 2
|
||||
theme_override_styles/normal = SubResource("StyleBoxFlat_ig7tw")
|
||||
text = "Мощность"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="TextEdit7" type="LineEdit" parent="TabContainer/ПРД-Н1/ukp_2" groups=["power_ukp"]]
|
||||
[node name="TextEdit7" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_1" groups=["power_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit8" type="LineEdit" parent="TabContainer/ПРД-Н1/ukp_2" groups=["power_ukp"]]
|
||||
[node name="TextEdit8" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_1" groups=["power_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit9" type="LineEdit" parent="TabContainer/ПРД-Н1/ukp_2" groups=["power_ukp"]]
|
||||
[node name="TextEdit9" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_1" groups=["power_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit10" type="LineEdit" parent="TabContainer/ПРД-Н1/ukp_2" groups=["power_ukp"]]
|
||||
[node name="TextEdit10" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_1" groups=["power_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit11" type="LineEdit" parent="TabContainer/ПРД-Н1/ukp_2" groups=["power_ukp"]]
|
||||
[node name="TextEdit11" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_1" groups=["power_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit12" type="LineEdit" parent="TabContainer/ПРД-Н1/ukp_2" groups=["power_ukp"]]
|
||||
[node name="TextEdit12" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_1" groups=["power_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="ukp_2" type="GridContainer" parent="TabContainer/ПРД-Н1/TabBar"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
columns = 7
|
||||
metadata/_tab_index = 1
|
||||
|
||||
[node name="Label" type="Label" parent="TabContainer/ПРД-Н1/TabBar/ukp_2"]
|
||||
custom_minimum_size = Vector2(0, 30)
|
||||
layout_mode = 2
|
||||
theme_override_styles/normal = SubResource("StyleBoxFlat_ig7tw")
|
||||
text = "Температуры"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="TextEdit" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_2" groups=["temperature_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit2" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_2" groups=["temperature_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit3" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_2" groups=["temperature_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit4" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_2" groups=["temperature_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit5" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_2" groups=["temperature_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit6" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_2" groups=["temperature_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="Label2" type="Label" parent="TabContainer/ПРД-Н1/TabBar/ukp_2"]
|
||||
custom_minimum_size = Vector2(0, 30)
|
||||
layout_mode = 2
|
||||
theme_override_styles/normal = SubResource("StyleBoxFlat_ig7tw")
|
||||
text = "Мощность"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="TextEdit7" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_2" groups=["power_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit8" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_2" groups=["power_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit9" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_2" groups=["power_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit10" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_2" groups=["power_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit11" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_2" groups=["power_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="TextEdit12" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_2" groups=["power_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="ug" type="GridContainer" parent="TabContainer/ПРД-Н1/TabBar"]
|
||||
layout_mode = 2
|
||||
columns = 5
|
||||
metadata/_tab_index = 2
|
||||
|
||||
[node name="GridContainer4" type="GridContainer" parent="TabContainer/ПРД-Н1/TabBar/ug"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="CheckBox" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer4" groups=["dou2"]]
|
||||
layout_mode = 2
|
||||
text = "ЛУЧ -5°"
|
||||
metadata/bit = 0
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox2" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer4" groups=["dou2"]]
|
||||
layout_mode = 2
|
||||
text = "ЛУЧ 5°"
|
||||
metadata/bit = 1
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox3" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer4" groups=["dou2"]]
|
||||
layout_mode = 2
|
||||
text = "ЛУЧ 15°"
|
||||
metadata/bit = 2
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox4" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer4" groups=["dou2"]]
|
||||
layout_mode = 2
|
||||
text = "ЛУЧ 25°"
|
||||
metadata/bit = 3
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox5" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer4" groups=["dou2"]]
|
||||
layout_mode = 2
|
||||
text = "ЛУЧ 35°"
|
||||
metadata/bit = 4
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox6" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer4" groups=["dou2"]]
|
||||
layout_mode = 2
|
||||
text = "ЛУЧ 45°"
|
||||
metadata/bit = 5
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox7" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer4" groups=["dou2"]]
|
||||
layout_mode = 2
|
||||
text = "ЛУЧ КОНТРОЛЬ"
|
||||
metadata/bit = 6
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="GridContainer" type="GridContainer" parent="TabContainer/ПРД-Н1/TabBar/ug"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="CheckBox" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer" groups=["dou3"]]
|
||||
layout_mode = 2
|
||||
text = "ЛУЧ -5°"
|
||||
metadata/bit = 0
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox2" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer" groups=["dou3"]]
|
||||
layout_mode = 2
|
||||
text = "ЛУЧ 5°"
|
||||
metadata/bit = 1
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox3" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer" groups=["dou3"]]
|
||||
layout_mode = 2
|
||||
text = "ЛУЧ 15°"
|
||||
metadata/bit = 2
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox4" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer" groups=["dou3"]]
|
||||
layout_mode = 2
|
||||
text = "ЛУЧ 25°"
|
||||
metadata/bit = 3
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox5" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer" groups=["dou3"]]
|
||||
layout_mode = 2
|
||||
text = "ЛУЧ 35°"
|
||||
metadata/bit = 4
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox6" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer" groups=["dou3"]]
|
||||
layout_mode = 2
|
||||
text = "ЛУЧ 45°"
|
||||
metadata/bit = 5
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox7" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer" groups=["dou3"]]
|
||||
layout_mode = 2
|
||||
text = "ЛУЧ КОНТРОЛЬ"
|
||||
metadata/bit = 6
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="GridContainer2" type="GridContainer" parent="TabContainer/ПРД-Н1/TabBar/ug"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="CheckBox" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer2" groups=["att2"]]
|
||||
layout_mode = 2
|
||||
text = "АТТ 0 dB"
|
||||
metadata/att = 0
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox2" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer2" groups=["att2"]]
|
||||
layout_mode = 2
|
||||
text = "АТТ 0.5 dB"
|
||||
metadata/bit = 1
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox3" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer2" groups=["att2"]]
|
||||
layout_mode = 2
|
||||
text = "АТТ 2 dB"
|
||||
metadata/bit = 2
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox4" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer2" groups=["att2"]]
|
||||
layout_mode = 2
|
||||
text = "АТТ 2.5 dB"
|
||||
metadata/bit = 3
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox5" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer2" groups=["att2"]]
|
||||
layout_mode = 2
|
||||
text = "АТТ 8 dB"
|
||||
metadata/bit = 4
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox6" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer2" groups=["att2"]]
|
||||
layout_mode = 2
|
||||
text = "АТТ 8.5 dB"
|
||||
metadata/bit = 5
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox7" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer2" groups=["att2"]]
|
||||
layout_mode = 2
|
||||
text = "АТТ 10 dB"
|
||||
metadata/bit = 6
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox8" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer2" groups=["att2"]]
|
||||
layout_mode = 2
|
||||
text = "АТТ 10.5 dB"
|
||||
metadata/bit = 7
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="GridContainer5" type="GridContainer" parent="TabContainer/ПРД-Н1/TabBar/ug"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="CheckBox" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer5" groups=["att3"]]
|
||||
layout_mode = 2
|
||||
text = "АТТ 0 dB"
|
||||
metadata/bit = 0
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox2" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer5" groups=["att3"]]
|
||||
layout_mode = 2
|
||||
text = "АТТ 0.5 dB"
|
||||
metadata/bit = 1
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox3" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer5" groups=["att3"]]
|
||||
layout_mode = 2
|
||||
text = "АТТ 2 dB"
|
||||
metadata/bit = 2
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox4" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer5" groups=["att3"]]
|
||||
layout_mode = 2
|
||||
text = "АТТ 2.5 dB"
|
||||
metadata/bit = 3
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox5" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer5" groups=["att3"]]
|
||||
layout_mode = 2
|
||||
text = "АТТ 8 dB"
|
||||
metadata/bit = 4
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox6" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer5" groups=["att3"]]
|
||||
layout_mode = 2
|
||||
text = "АТТ 8.5 dB"
|
||||
metadata/bit = 5
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox7" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer5" groups=["att3"]]
|
||||
layout_mode = 2
|
||||
text = "АТТ 10 dB"
|
||||
metadata/bit = 6
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox8" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer5" groups=["att3"]]
|
||||
layout_mode = 2
|
||||
text = "АТТ 10.5 dB"
|
||||
metadata/bit = 7
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="GridContainer3" type="GridContainer" parent="TabContainer/ПРД-Н1/TabBar/ug"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="CheckBox" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer3" groups=["ip"]]
|
||||
layout_mode = 2
|
||||
text = "МАА №1"
|
||||
metadata/bit = 0
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox2" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer3" groups=["ip"]]
|
||||
layout_mode = 2
|
||||
text = "МАА №2"
|
||||
metadata/bit = 1
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox3" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer3" groups=["ip"]]
|
||||
layout_mode = 2
|
||||
text = "ИП9-50 №1"
|
||||
metadata/bit = 2
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox4" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer3" groups=["ip"]]
|
||||
layout_mode = 2
|
||||
text = "ИП9-50 №2"
|
||||
metadata/bit = 3
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox5" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer3" groups=["ip"]]
|
||||
layout_mode = 2
|
||||
text = "ИП12-50 №1"
|
||||
metadata/bit = 4
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="CheckBox6" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer3" groups=["ip"]]
|
||||
layout_mode = 2
|
||||
text = "ИП5-25"
|
||||
metadata/bit = 7
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="dkm" type="GridContainer" parent="TabContainer/ПРД-Н1"]
|
||||
layout_mode = 0
|
||||
offset_left = 10.0
|
||||
|
||||
@@ -43,6 +43,9 @@ var _timer: Timer
|
||||
var _poll_timer: Timer
|
||||
var _sockets_status_bit: int = 0
|
||||
var _dkm_status_bit: int = 0
|
||||
var _dry_contact_status_bit: int = 0xFF
|
||||
var _dou_and_att_2_status_bit: Dictionary = {0x106: 0}
|
||||
var _dou_and_att_3_status_bit: Dictionary = {0x108: 0}
|
||||
var _isa_ports: Dictionary = {}
|
||||
var _cmd_number_count: int = 0
|
||||
var _written_isa_ports: Array = []
|
||||
@@ -64,6 +67,8 @@ var ukp1_data: PackedByteArray:
|
||||
print('Данные UKP1 обновлены')
|
||||
|
||||
|
||||
|
||||
|
||||
func _init(name: String):
|
||||
"""Инициализация UDP broadcast клиента"""
|
||||
_self_name = name
|
||||
@@ -188,6 +193,38 @@ func get_dkm_status() -> int:
|
||||
return _dkm_status_bit
|
||||
|
||||
|
||||
func set_dou2_status(status: int) -> void:
|
||||
"""Установка статуса DOU"""
|
||||
var masked_status = status & 0b111 # Маска для первых 3 битов
|
||||
_dou_and_att_2_status_bit[0x106] = masked_status
|
||||
|
||||
|
||||
func get_dou2_status() -> int:
|
||||
"""Получение статуса DOU"""
|
||||
return _dou_and_att_2_status_bit[0x106] & 0b111
|
||||
|
||||
|
||||
func set_dou3_status(status: int) -> void:
|
||||
"""Установка статуса DOU"""
|
||||
var masked_status = status & 0b111 # Маска для первых 3 битов
|
||||
_dou_and_att_3_status_bit[0x108] = masked_status
|
||||
|
||||
|
||||
func get_dou3_status() -> int:
|
||||
"""Получение статуса DOU"""
|
||||
return _dou_and_att_3_status_bit[0x108] & 0b111
|
||||
|
||||
|
||||
func set_ip_status(status: int)->void:
|
||||
"""Установка статуса ИП"""
|
||||
_dry_contact_status_bit = status
|
||||
|
||||
|
||||
func get_ip_status()->int:
|
||||
"""Получение статуса ИП"""
|
||||
return _dry_contact_status_bit
|
||||
|
||||
|
||||
func set_isa_port(port_addr: int, value: int) -> bool:
|
||||
"""Установка значения ISA порта"""
|
||||
if port_addr < 0 or port_addr > 0xFFFF:
|
||||
@@ -276,7 +313,7 @@ func _form_status_device_packet() -> PackedByteArray:
|
||||
|
||||
_encode_packet_header(buffer)
|
||||
_encode_device_data(buffer)
|
||||
print('_written_isa_ports.size(): ', _written_isa_ports.size())
|
||||
|
||||
# Добавляем поле команды после статуса
|
||||
if _written_isa_ports.size() > 0:
|
||||
var cmd_offset = header_size + STATUS_PACKET_SIZE
|
||||
@@ -343,9 +380,11 @@ func _encode_ems_g_data(buffer: PackedByteArray) -> void:
|
||||
|
||||
func _encode_ug_data(buffer: PackedByteArray) -> void:
|
||||
"""Кодирование данных UG"""
|
||||
buffer.encode_u16(UG_DATA_OFFSET, _dkm_status_bit) # Статус DKM
|
||||
buffer.encode_u16(UG_DATA_OFFSET + 2, 0x059e) # DRY CONTACT
|
||||
|
||||
# D15...D8 = ДКМ (старший байт)
|
||||
buffer.encode_u8(UG_DATA_OFFSET + 1, _dkm_status_bit & 0xFF)
|
||||
# D7...D0 = Сухие контакты (младший байт)
|
||||
buffer.encode_u8(UG_DATA_OFFSET, _dry_contact_status_bit & 0xFF)
|
||||
|
||||
|
||||
func _encode_ukp_data(buffer: PackedByteArray) -> void:
|
||||
"""Кодирование данных UKP"""
|
||||
|
||||
Reference in New Issue
Block a user