Доработка Для отправки УКП сообщений
This commit is contained in:
3
.idea/misc.xml
generated
3
.idea/misc.xml
generated
@@ -1,4 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Black">
|
||||
<option name="sdkName" value="Python 3.12" />
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.12" project-jdk-type="Python SDK" />
|
||||
</project>
|
||||
139
main.gd
139
main.gd
@@ -1,12 +1,27 @@
|
||||
extends Control
|
||||
|
||||
const BUFFER_SIZE = 32
|
||||
var dictionary_yau07: Dictionary
|
||||
var udp_broadcast: UDPBroadcast
|
||||
var dictionary_sockets_bit: Dictionary ## Байт 8 для отправки о состоянии ячеек
|
||||
|
||||
|
||||
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, мета ПРД
|
||||
|
||||
var power_ukp: Array = get_tree().get_nodes_in_group('power_ukp')
|
||||
for socket_power in power_ukp:
|
||||
socket_power.connect('text_submitted', _on_ukp_submitted.bind(socket_power.get_meta('device')))
|
||||
|
||||
var temperature_ukp: Array = get_tree().get_nodes_in_group('temperature_ukp')
|
||||
for socket_temp in temperature_ukp:
|
||||
socket_temp.connect('text_submitted', _on_ukp_submitted.bind(socket_temp.get_meta('device')))
|
||||
|
||||
|
||||
func _exit_tree():
|
||||
for device in dictionary_yau07:
|
||||
@@ -16,9 +31,129 @@ func _exit_tree():
|
||||
|
||||
func on_modify_device(toggled: bool, name_device: String) -> void:
|
||||
if toggled:
|
||||
var udp_broadcast := UDPBroadcast.new(name_device)
|
||||
udp_broadcast = UDPBroadcast.new(name_device)
|
||||
udp_broadcast.add_timer_to_scene(self)
|
||||
udp_broadcast.start_broadcast()
|
||||
dictionary_yau07[name_device] = udp_broadcast
|
||||
else:
|
||||
dictionary_yau07[name_device].close_udp_unit()
|
||||
|
||||
|
||||
func _process(_delta: float) -> void:
|
||||
for device in dictionary_yau07:
|
||||
if dictionary_yau07[device]:
|
||||
dictionary_yau07[device].poll_receive()
|
||||
|
||||
|
||||
static func _set_bit(bits: int, index: int, val: bool) -> int:
|
||||
return bits | (1 << index) if val else bits & ~(1 << index)
|
||||
|
||||
|
||||
## Функция для установки статусов ячеек на связи (УГ, ЭМС-Г, УКП)
|
||||
func _on_modify_sockets(toggled: bool, bit: int, device: String)->void:
|
||||
if dictionary_yau07.has(device):
|
||||
var udp_unit = dictionary_yau07[device]
|
||||
udp_unit.sockets_status_bit = _set_bit(udp_unit.sockets_status_bit, bit, toggled)
|
||||
|
||||
|
||||
## Функция для установки значений в ячейках УКП
|
||||
func _on_ukp_submitted(_new_text: String, device: String) -> void:
|
||||
var prep_temperature_ukp1_array: Array = _on_text_temperature_changed(device, 1)
|
||||
var prep_temperature_ukp2_array: Array = _on_text_temperature_changed(device, 2)
|
||||
|
||||
var prep_power_ukp1_array: Array = _on_text_power_changed(device, 1)
|
||||
var prep_power_ukp2_array: Array = _on_text_power_changed(device, 2)
|
||||
|
||||
var combine_data_ukp1: Array
|
||||
combine_data_ukp1 = _combine_arrays(combine_data_ukp1, prep_temperature_ukp1_array, prep_power_ukp1_array)
|
||||
var combine_data_ukp2: Array
|
||||
combine_data_ukp2 = _combine_arrays(combine_data_ukp2, prep_temperature_ukp2_array, prep_power_ukp2_array)
|
||||
_form_buffers(device,combine_data_ukp1, 1, dictionary_yau07)
|
||||
_form_buffers(device,combine_data_ukp2, 2, dictionary_yau07)
|
||||
|
||||
|
||||
func _on_text_temperature_changed(device: String, number_device: int) -> Array:
|
||||
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)
|
||||
|
||||
var current_change: Array
|
||||
for prd in get_tree().get_nodes_in_group('prd'):
|
||||
if device == prd.get_meta('yau07'):
|
||||
for temperature_node in prd.get_tree().get_nodes_in_group('temperature_ukp'):
|
||||
if prd.is_ancestor_of(temperature_node):
|
||||
current_change.append(temperature_node)
|
||||
break
|
||||
|
||||
var temp_arr: Array = [0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff]
|
||||
if number_device == 1:
|
||||
for i in 6:
|
||||
if not current_change[i].text == null:
|
||||
var value = _safe_convert_to_int(current_change[i].text)
|
||||
var normal_temp: int = MAXIMUM_CODE_ADC - (value - CONST_MIN_TEMP - 3) / TEMP
|
||||
temp_arr[i] = normal_temp
|
||||
elif number_device == 2:
|
||||
for i in 6:
|
||||
if not current_change[i+6].text == null:
|
||||
var value = _safe_convert_to_int(current_change[i+6].text)
|
||||
var normal_temp: int = MAXIMUM_CODE_ADC - (value - CONST_MIN_TEMP - 3) / TEMP
|
||||
temp_arr[i] = normal_temp
|
||||
return temp_arr
|
||||
|
||||
|
||||
func _on_text_power_changed(device: String, number_device: int) -> Array:
|
||||
var current_change: Array
|
||||
for prd in get_tree().get_nodes_in_group('prd'):
|
||||
if device == prd.get_meta('yau07'):
|
||||
for power_node in prd.get_tree().get_nodes_in_group('power_ukp'):
|
||||
if prd.is_ancestor_of(power_node):
|
||||
current_change.append(power_node)
|
||||
break
|
||||
|
||||
var power_arr: Array = [0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff]
|
||||
|
||||
if number_device == 1:
|
||||
for i in 6:
|
||||
if not current_change[i].text == null:
|
||||
var value = _safe_convert_to_int(current_change[i].text)
|
||||
power_arr[i] = value
|
||||
elif number_device == 2:
|
||||
for i in 6:
|
||||
if not current_change[i+6].text == null:
|
||||
var value = _safe_convert_to_int(current_change[i+6].text)
|
||||
power_arr[i] = value
|
||||
|
||||
return power_arr
|
||||
#_update_buffers(power_arr_1, device)
|
||||
|
||||
|
||||
static func _safe_convert_to_int(text: String) -> int:
|
||||
text = text.strip_edges()
|
||||
if text.is_valid_int():
|
||||
return int(text)
|
||||
elif text.begins_with("0x") and text.substr(2).is_valid_hex_number():
|
||||
return text.hex_to_int()
|
||||
else:
|
||||
return 0
|
||||
|
||||
|
||||
static func _combine_arrays(ukp_data: Array, power_arr: Array, temp_arr: Array)-> Array:
|
||||
for i in temp_arr.size():
|
||||
ukp_data.append(temp_arr[i])
|
||||
for i in power_arr.size():
|
||||
ukp_data.append(power_arr[i])
|
||||
return ukp_data
|
||||
|
||||
|
||||
static func _form_buffers(device: String, ukp_data: Array, number_device: int, dic_yau07: Dictionary):
|
||||
var buffer: PackedByteArray = PackedByteArray()
|
||||
buffer.resize(BUFFER_SIZE)
|
||||
for i in ukp_data.size():
|
||||
buffer.encode_u16(2 * i, ukp_data[i])
|
||||
if dic_yau07.has(device):
|
||||
var udp_unit = dic_yau07[device]
|
||||
if number_device == 1:
|
||||
udp_unit.ukp0_data = buffer
|
||||
elif number_device == 2:
|
||||
udp_unit.ukp1_data = buffer
|
||||
|
||||
869
main.tscn
869
main.tscn
@@ -1,7 +1,15 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://bxorauom63ib6"]
|
||||
[gd_scene load_steps=5 format=3 uid="uid://bxorauom63ib6"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://d1qwoxkckvdbc" path="res://main.gd" id="1_ig7tw"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_0xm2m"]
|
||||
bg_color = Color(0.1167, 0.351514, 0.35159, 1)
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ig7tw"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_h2yge"]
|
||||
bg_color = Color(0.69546, 0.406261, 0.37248, 1)
|
||||
|
||||
[node name="Control" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
@@ -13,7 +21,7 @@ script = ExtResource("1_ig7tw")
|
||||
|
||||
[node name="Panel" type="Panel" parent="."]
|
||||
layout_mode = 0
|
||||
offset_right = 907.0
|
||||
offset_right = 1208.0
|
||||
offset_bottom = 607.0
|
||||
|
||||
[node name="Yau-07-addr" type="GridContainer" parent="."]
|
||||
@@ -82,3 +90,860 @@ metadata/device = "ПРД-В4"
|
||||
layout_mode = 2
|
||||
text = "ПРД-К4"
|
||||
metadata/device = "ПРД-К4"
|
||||
|
||||
[node name="TabContainer" type="TabContainer" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = 187.0
|
||||
offset_top = 19.0
|
||||
offset_right = 1147.0
|
||||
offset_bottom = 338.0
|
||||
current_tab = 0
|
||||
use_hidden_tabs_for_min_size = true
|
||||
tab_focus_mode = 0
|
||||
|
||||
[node name="ПРД-Н1" type="Panel" parent="TabContainer" groups=["prd"]]
|
||||
layout_mode = 2
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_0xm2m")
|
||||
metadata/_tab_index = 0
|
||||
metadata/yau07 = "ПРД-Н1"
|
||||
|
||||
[node name="sockets" type="GridContainer" parent="TabContainer/ПРД-Н1"]
|
||||
layout_mode = 2
|
||||
offset_right = 140.0
|
||||
offset_bottom = 171.0
|
||||
|
||||
[node name="EMS_G" type="CheckBox" parent="TabContainer/ПРД-Н1/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "ЭМС-Г"
|
||||
metadata/bit = 0
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="UG" type="CheckBox" parent="TabContainer/ПРД-Н1/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УГ"
|
||||
metadata/bit = 1
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="UKP_1" type="CheckBox" parent="TabContainer/ПРД-Н1/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УКП 1"
|
||||
metadata/bit = 2
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="UKP_2" type="CheckBox" parent="TabContainer/ПРД-Н1/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УКП 2"
|
||||
metadata/bit = 3
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="Load_EMS" type="CheckBox" parent="TabContainer/ПРД-Н1/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
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"]
|
||||
layout_mode = 0
|
||||
offset_left = 205.0
|
||||
offset_top = 103.0
|
||||
offset_right = 939.0
|
||||
offset_bottom = 191.0
|
||||
columns = 7
|
||||
|
||||
[node name="Label" type="Label" parent="TabContainer/ПРД-Н1/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/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/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/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/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/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/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/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/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/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/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/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/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/ukp_2" groups=["power_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
placeholder_text = "0"
|
||||
metadata/device = "ПРД-Н1"
|
||||
|
||||
[node name="ПРД-В1" type="Panel" parent="TabContainer" groups=["prd"]]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_h2yge")
|
||||
metadata/_tab_index = 1
|
||||
metadata/yau07 = "ПРД-В1"
|
||||
|
||||
[node name="sockets" type="GridContainer" parent="TabContainer/ПРД-В1"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="EMS_G" type="CheckBox" parent="TabContainer/ПРД-В1/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "ЭМС-Г"
|
||||
metadata/bit = 0
|
||||
metadata/device = "ПРД-В1"
|
||||
|
||||
[node name="UG" type="CheckBox" parent="TabContainer/ПРД-В1/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УГ"
|
||||
metadata/bit = 1
|
||||
metadata/device = "ПРД-В1"
|
||||
|
||||
[node name="UKP_1" type="CheckBox" parent="TabContainer/ПРД-В1/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УКП 1"
|
||||
metadata/bit = 2
|
||||
metadata/device = "ПРД-В1"
|
||||
|
||||
[node name="UKP_2" type="CheckBox" parent="TabContainer/ПРД-В1/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УКП 2"
|
||||
metadata/bit = 3
|
||||
metadata/device = "ПРД-В1"
|
||||
|
||||
[node name="Load_EMS" type="CheckBox" parent="TabContainer/ПРД-В1/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "Загрузка ЭМС"
|
||||
metadata/bit = 4
|
||||
metadata/device = "ПРД-В1"
|
||||
|
||||
[node name="ukp_1" type="GridContainer" parent="TabContainer/ПРД-В1"]
|
||||
layout_mode = 0
|
||||
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
|
||||
metadata/place = 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
|
||||
metadata/place = 1
|
||||
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
|
||||
metadata/place = 2
|
||||
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
|
||||
metadata/place = 3
|
||||
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
|
||||
metadata/place = 4
|
||||
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
|
||||
metadata/place = 5
|
||||
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
|
||||
metadata/place = 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
|
||||
metadata/place = 1
|
||||
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
|
||||
metadata/place = 2
|
||||
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
|
||||
metadata/place = 3
|
||||
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
|
||||
metadata/place = 4
|
||||
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
|
||||
metadata/place = 5
|
||||
metadata/device = "ПРД-В1"
|
||||
|
||||
[node name="ukp_2" type="GridContainer" parent="TabContainer/ПРД-В1"]
|
||||
layout_mode = 0
|
||||
offset_left = 205.0
|
||||
offset_top = 103.0
|
||||
offset_right = 939.0
|
||||
offset_bottom = 191.0
|
||||
columns = 7
|
||||
|
||||
[node name="Label" type="Label" parent="TabContainer/ПРД-В1/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/ukp_2" groups=["temperature_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
metadata/place = 8
|
||||
metadata/device = "ПРД-В1"
|
||||
|
||||
[node name="TextEdit2" type="LineEdit" parent="TabContainer/ПРД-В1/ukp_2" groups=["temperature_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
metadata/place = 9
|
||||
metadata/device = "ПРД-В1"
|
||||
|
||||
[node name="TextEdit3" type="LineEdit" parent="TabContainer/ПРД-В1/ukp_2" groups=["temperature_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
metadata/place = 10
|
||||
metadata/device = "ПРД-В1"
|
||||
|
||||
[node name="TextEdit4" type="LineEdit" parent="TabContainer/ПРД-В1/ukp_2" groups=["temperature_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
metadata/place = 11
|
||||
metadata/device = "ПРД-В1"
|
||||
|
||||
[node name="TextEdit5" type="LineEdit" parent="TabContainer/ПРД-В1/ukp_2" groups=["temperature_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
metadata/place = 12
|
||||
metadata/device = "ПРД-В1"
|
||||
|
||||
[node name="TextEdit6" type="LineEdit" parent="TabContainer/ПРД-В1/ukp_2" groups=["temperature_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
metadata/place = 13
|
||||
metadata/device = "ПРД-В1"
|
||||
|
||||
[node name="Label2" type="Label" parent="TabContainer/ПРД-В1/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/ukp_2" groups=["power_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
metadata/place = 8
|
||||
metadata/device = "ПРД-В1"
|
||||
|
||||
[node name="TextEdit8" type="LineEdit" parent="TabContainer/ПРД-В1/ukp_2" groups=["power_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
metadata/place = 9
|
||||
metadata/device = "ПРД-В1"
|
||||
|
||||
[node name="TextEdit9" type="LineEdit" parent="TabContainer/ПРД-В1/ukp_2" groups=["power_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
metadata/place = 10
|
||||
metadata/device = "ПРД-В1"
|
||||
|
||||
[node name="TextEdit10" type="LineEdit" parent="TabContainer/ПРД-В1/ukp_2" groups=["power_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
metadata/place = 11
|
||||
metadata/device = "ПРД-В1"
|
||||
|
||||
[node name="TextEdit11" type="LineEdit" parent="TabContainer/ПРД-В1/ukp_2" groups=["power_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
metadata/place = 12
|
||||
metadata/device = "ПРД-В1"
|
||||
|
||||
[node name="TextEdit12" type="LineEdit" parent="TabContainer/ПРД-В1/ukp_2" groups=["power_ukp"]]
|
||||
custom_minimum_size = Vector2(100, 35)
|
||||
layout_mode = 2
|
||||
metadata/place = 13
|
||||
metadata/device = "ПРД-В1"
|
||||
|
||||
[node name="ПРД-К1" type="Panel" parent="TabContainer" groups=["prd"]]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
metadata/_tab_index = 2
|
||||
metadata/yau07 = "ПРД-К1"
|
||||
|
||||
[node name="sockets" type="GridContainer" parent="TabContainer/ПРД-К1"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="EMS_G" type="CheckBox" parent="TabContainer/ПРД-К1/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "ЭМС-Г"
|
||||
metadata/bit = 0
|
||||
metadata/device = "ПРД-К1"
|
||||
|
||||
[node name="UG" type="CheckBox" parent="TabContainer/ПРД-К1/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УГ"
|
||||
metadata/bit = 1
|
||||
metadata/device = "ПРД-К1"
|
||||
|
||||
[node name="UKP_1" type="CheckBox" parent="TabContainer/ПРД-К1/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УКП 1"
|
||||
metadata/bit = 2
|
||||
metadata/device = "ПРД-К1"
|
||||
|
||||
[node name="UKP_2" type="CheckBox" parent="TabContainer/ПРД-К1/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УКП 2"
|
||||
metadata/bit = 3
|
||||
metadata/device = "ПРД-К1"
|
||||
|
||||
[node name="Load_EMS" type="CheckBox" parent="TabContainer/ПРД-К1/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "Загрузка ЭМС"
|
||||
metadata/bit = 4
|
||||
metadata/device = "ПРД-К1"
|
||||
|
||||
[node name="ПРД-Н2" type="Panel" parent="TabContainer" groups=["prd"]]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
metadata/_tab_index = 3
|
||||
metadata/yau07 = "ПРД-Н2"
|
||||
|
||||
[node name="sockets" type="GridContainer" parent="TabContainer/ПРД-Н2"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="EMS_G" type="CheckBox" parent="TabContainer/ПРД-Н2/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "ЭМС-Г"
|
||||
metadata/bit = 0
|
||||
metadata/device = "ПРД-Н2"
|
||||
|
||||
[node name="UG" type="CheckBox" parent="TabContainer/ПРД-Н2/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УГ"
|
||||
metadata/bit = 1
|
||||
metadata/device = "ПРД-Н2"
|
||||
|
||||
[node name="UKP_1" type="CheckBox" parent="TabContainer/ПРД-Н2/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УКП 1"
|
||||
metadata/bit = 2
|
||||
metadata/device = "ПРД-Н2"
|
||||
|
||||
[node name="UKP_2" type="CheckBox" parent="TabContainer/ПРД-Н2/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УКП 2"
|
||||
metadata/bit = 3
|
||||
metadata/device = "ПРД-Н2"
|
||||
|
||||
[node name="Load_EMS" type="CheckBox" parent="TabContainer/ПРД-Н2/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "Загрузка ЭМС"
|
||||
metadata/bit = 4
|
||||
metadata/device = "ПРД-Н2"
|
||||
|
||||
[node name="ПРД-В2" type="Panel" parent="TabContainer" groups=["prd"]]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
metadata/_tab_index = 4
|
||||
metadata/yau07 = "ПРД-В2"
|
||||
|
||||
[node name="sockets" type="GridContainer" parent="TabContainer/ПРД-В2"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="EMS_G" type="CheckBox" parent="TabContainer/ПРД-В2/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "ЭМС-Г"
|
||||
metadata/bit = 0
|
||||
metadata/device = "ПРД-В2"
|
||||
|
||||
[node name="UG" type="CheckBox" parent="TabContainer/ПРД-В2/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УГ"
|
||||
metadata/bit = 1
|
||||
metadata/device = "ПРД-В2"
|
||||
|
||||
[node name="UKP_1" type="CheckBox" parent="TabContainer/ПРД-В2/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УКП 1"
|
||||
metadata/bit = 2
|
||||
metadata/device = "ПРД-В2"
|
||||
|
||||
[node name="UKP_2" type="CheckBox" parent="TabContainer/ПРД-В2/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УКП 2"
|
||||
metadata/bit = 3
|
||||
metadata/device = "ПРД-В2"
|
||||
|
||||
[node name="Load_EMS" type="CheckBox" parent="TabContainer/ПРД-В2/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "Загрузка ЭМС"
|
||||
metadata/bit = 4
|
||||
metadata/device = "ПРД-В2"
|
||||
|
||||
[node name="ПРД-К2" type="Panel" parent="TabContainer" groups=["prd"]]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
metadata/_tab_index = 5
|
||||
metadata/yau07 = "ПРД-К2"
|
||||
|
||||
[node name="sockets" type="GridContainer" parent="TabContainer/ПРД-К2"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="EMS_G" type="CheckBox" parent="TabContainer/ПРД-К2/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "ЭМС-Г"
|
||||
metadata/bit = 0
|
||||
metadata/device = "ПРД-К2"
|
||||
|
||||
[node name="UG" type="CheckBox" parent="TabContainer/ПРД-К2/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УГ"
|
||||
metadata/bit = 1
|
||||
metadata/device = "ПРД-К2"
|
||||
|
||||
[node name="UKP_1" type="CheckBox" parent="TabContainer/ПРД-К2/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УКП 1"
|
||||
metadata/bit = 2
|
||||
metadata/device = "ПРД-К2"
|
||||
|
||||
[node name="UKP_2" type="CheckBox" parent="TabContainer/ПРД-К2/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УКП 2"
|
||||
metadata/bit = 3
|
||||
metadata/device = "ПРД-К2"
|
||||
|
||||
[node name="Load_EMS" type="CheckBox" parent="TabContainer/ПРД-К2/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "Загрузка ЭМС"
|
||||
metadata/bit = 4
|
||||
metadata/device = "ПРД-К2"
|
||||
|
||||
[node name="ПРД-Н3" type="Panel" parent="TabContainer" groups=["prd"]]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
metadata/_tab_index = 6
|
||||
metadata/yau07 = "ПРД-Н3"
|
||||
|
||||
[node name="sockets" type="GridContainer" parent="TabContainer/ПРД-Н3"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="EMS_G" type="CheckBox" parent="TabContainer/ПРД-Н3/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "ЭМС-Г"
|
||||
metadata/bit = 0
|
||||
metadata/device = "ПРД-Н3"
|
||||
|
||||
[node name="UG" type="CheckBox" parent="TabContainer/ПРД-Н3/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УГ"
|
||||
metadata/bit = 1
|
||||
metadata/device = "ПРД-Н3"
|
||||
|
||||
[node name="UKP_1" type="CheckBox" parent="TabContainer/ПРД-Н3/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УКП 1"
|
||||
metadata/bit = 2
|
||||
metadata/device = "ПРД-Н3"
|
||||
|
||||
[node name="UKP_2" type="CheckBox" parent="TabContainer/ПРД-Н3/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УКП 2"
|
||||
metadata/bit = 3
|
||||
metadata/device = "ПРД-Н3"
|
||||
|
||||
[node name="Load_EMS" type="CheckBox" parent="TabContainer/ПРД-Н3/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "Загрузка ЭМС"
|
||||
metadata/bit = 4
|
||||
metadata/device = "ПРД-Н3"
|
||||
|
||||
[node name="ПРД-В3" type="Panel" parent="TabContainer" groups=["prd"]]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
metadata/_tab_index = 7
|
||||
metadata/yau07 = "ПРД-В3"
|
||||
|
||||
[node name="sockets" type="GridContainer" parent="TabContainer/ПРД-В3"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="EMS_G" type="CheckBox" parent="TabContainer/ПРД-В3/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "ЭМС-Г"
|
||||
metadata/bit = 0
|
||||
metadata/device = "ПРД-В3"
|
||||
|
||||
[node name="UG" type="CheckBox" parent="TabContainer/ПРД-В3/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УГ"
|
||||
metadata/bit = 1
|
||||
metadata/device = "ПРД-В3"
|
||||
|
||||
[node name="UKP_1" type="CheckBox" parent="TabContainer/ПРД-В3/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УКП 1"
|
||||
metadata/bit = 2
|
||||
metadata/device = "ПРД-В3"
|
||||
|
||||
[node name="UKP_2" type="CheckBox" parent="TabContainer/ПРД-В3/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УКП 2"
|
||||
metadata/bit = 3
|
||||
metadata/device = "ПРД-В3"
|
||||
|
||||
[node name="Load_EMS" type="CheckBox" parent="TabContainer/ПРД-В3/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "Загрузка ЭМС"
|
||||
metadata/bit = 4
|
||||
metadata/device = "ПРД-В3"
|
||||
|
||||
[node name="ПРД-К3" type="Panel" parent="TabContainer" groups=["prd"]]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
metadata/_tab_index = 8
|
||||
metadata/yau07 = "ПРД-К3"
|
||||
|
||||
[node name="sockets" type="GridContainer" parent="TabContainer/ПРД-К3"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="EMS_G" type="CheckBox" parent="TabContainer/ПРД-К3/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "ЭМС-Г"
|
||||
metadata/bit = 0
|
||||
metadata/device = "ПРД-К3"
|
||||
|
||||
[node name="UG" type="CheckBox" parent="TabContainer/ПРД-К3/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УГ"
|
||||
metadata/bit = 1
|
||||
metadata/device = "ПРД-К3"
|
||||
|
||||
[node name="UKP_1" type="CheckBox" parent="TabContainer/ПРД-К3/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УКП 1"
|
||||
metadata/bit = 2
|
||||
metadata/device = "ПРД-К3"
|
||||
|
||||
[node name="UKP_2" type="CheckBox" parent="TabContainer/ПРД-К3/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УКП 2"
|
||||
metadata/bit = 3
|
||||
metadata/device = "ПРД-К3"
|
||||
|
||||
[node name="Load_EMS" type="CheckBox" parent="TabContainer/ПРД-К3/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "Загрузка ЭМС"
|
||||
metadata/bit = 4
|
||||
metadata/device = "ПРД-К3"
|
||||
|
||||
[node name="ПРД-Н4" type="Panel" parent="TabContainer" groups=["prd"]]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
metadata/_tab_index = 9
|
||||
metadata/yau07 = "ПРД-Н4"
|
||||
|
||||
[node name="sockets" type="GridContainer" parent="TabContainer/ПРД-Н4"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="EMS_G" type="CheckBox" parent="TabContainer/ПРД-Н4/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "ЭМС-Г"
|
||||
metadata/bit = 0
|
||||
metadata/device = "ПРД-Н4"
|
||||
|
||||
[node name="UG" type="CheckBox" parent="TabContainer/ПРД-Н4/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УГ"
|
||||
metadata/bit = 1
|
||||
metadata/device = "ПРД-Н4"
|
||||
|
||||
[node name="UKP_1" type="CheckBox" parent="TabContainer/ПРД-Н4/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УКП 1"
|
||||
metadata/bit = 2
|
||||
metadata/device = "ПРД-Н4"
|
||||
|
||||
[node name="UKP_2" type="CheckBox" parent="TabContainer/ПРД-Н4/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УКП 2"
|
||||
metadata/bit = 3
|
||||
metadata/device = "ПРД-Н4"
|
||||
|
||||
[node name="Load_EMS" type="CheckBox" parent="TabContainer/ПРД-Н4/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "Загрузка ЭМС"
|
||||
metadata/bit = 4
|
||||
metadata/device = "ПРД-Н4"
|
||||
|
||||
[node name="ПРД-В4" type="Panel" parent="TabContainer" groups=["prd"]]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
metadata/_tab_index = 10
|
||||
metadata/yau07 = "ПРД-В4"
|
||||
|
||||
[node name="sockets" type="GridContainer" parent="TabContainer/ПРД-В4"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="EMS_G" type="CheckBox" parent="TabContainer/ПРД-В4/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "ЭМС-Г"
|
||||
metadata/bit = 0
|
||||
metadata/device = "ПРД-В4"
|
||||
|
||||
[node name="UG" type="CheckBox" parent="TabContainer/ПРД-В4/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УГ"
|
||||
metadata/bit = 1
|
||||
metadata/device = "ПРД-В4"
|
||||
|
||||
[node name="UKP_1" type="CheckBox" parent="TabContainer/ПРД-В4/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УКП 1"
|
||||
metadata/bit = 2
|
||||
metadata/device = "ПРД-В4"
|
||||
|
||||
[node name="UKP_2" type="CheckBox" parent="TabContainer/ПРД-В4/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УКП 2"
|
||||
metadata/bit = 3
|
||||
metadata/device = "ПРД-В4"
|
||||
|
||||
[node name="Load_EMS" type="CheckBox" parent="TabContainer/ПРД-В4/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "Загрузка ЭМС"
|
||||
metadata/bit = 4
|
||||
metadata/device = "ПРД-В4"
|
||||
|
||||
[node name="ПРД-К4" type="Panel" parent="TabContainer" groups=["prd"]]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
metadata/_tab_index = 11
|
||||
metadata/yau07 = "ПРД-К4"
|
||||
|
||||
[node name="sockets" type="GridContainer" parent="TabContainer/ПРД-К4"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="EMS_G" type="CheckBox" parent="TabContainer/ПРД-К4/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "ЭМС-Г"
|
||||
metadata/bit = 0
|
||||
metadata/device = "ПРД-К4"
|
||||
|
||||
[node name="UG" type="CheckBox" parent="TabContainer/ПРД-К4/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УГ"
|
||||
metadata/bit = 1
|
||||
metadata/device = "ПРД-К4"
|
||||
|
||||
[node name="UKP_1" type="CheckBox" parent="TabContainer/ПРД-К4/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УКП 1"
|
||||
metadata/bit = 2
|
||||
metadata/device = "ПРД-К4"
|
||||
|
||||
[node name="UKP_2" type="CheckBox" parent="TabContainer/ПРД-К4/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "УКП 2"
|
||||
metadata/bit = 3
|
||||
metadata/device = "ПРД-К4"
|
||||
|
||||
[node name="Load_EMS" type="CheckBox" parent="TabContainer/ПРД-К4/sockets" groups=["socket"]]
|
||||
layout_mode = 2
|
||||
text = "Загрузка ЭМС"
|
||||
metadata/bit = 4
|
||||
metadata/device = "ПРД-К4"
|
||||
|
||||
@@ -17,7 +17,7 @@ config/icon="res://icon.svg"
|
||||
|
||||
[display]
|
||||
|
||||
window/size/viewport_width=900
|
||||
window/size/viewport_width=1200
|
||||
window/size/viewport_height=600
|
||||
|
||||
[rendering]
|
||||
|
||||
@@ -19,6 +19,16 @@ const broadcast_addr: Array = [50000, "10.1.1.255"]
|
||||
var _socket: SocketUDP
|
||||
var self_name: String
|
||||
var _timer: Timer
|
||||
var sockets_status_bit: int = 0
|
||||
var ukp0_data: PackedByteArray:
|
||||
set(v):
|
||||
ukp0_data = v
|
||||
print('Произошло Обновление данных ukp0_data')
|
||||
|
||||
var ukp1_data: PackedByteArray:
|
||||
set(v):
|
||||
ukp1_data = v
|
||||
print('Произошло Обновление данных ukp1_data')
|
||||
|
||||
|
||||
func _init(name: String):
|
||||
@@ -27,6 +37,10 @@ func _init(name: String):
|
||||
_timer = Timer.new()
|
||||
_timer.wait_time = 1.0 / 3.0
|
||||
_timer.timeout.connect(_on_timer_timeout)
|
||||
ukp0_data.resize(32)
|
||||
ukp0_data.fill(0)
|
||||
ukp1_data.resize(32)
|
||||
ukp1_data.fill(0)
|
||||
|
||||
if addres_list.has(name):
|
||||
var port: int = addres_list[name][0]
|
||||
@@ -37,7 +51,6 @@ func _init(name: String):
|
||||
|
||||
|
||||
func bind_unit_addres(port_for_bind: int, addr_for_bind: String) -> void:
|
||||
print('Привязка адреса: %s' % addr_for_bind)
|
||||
var bind_result = _socket.bind(port_for_bind, addr_for_bind)
|
||||
if bind_result != OK:
|
||||
push_error("Не удалось привязаться к %s: %s" % [addr_for_bind, error_string(bind_result)])
|
||||
@@ -51,9 +64,10 @@ func stop_broadcast() -> void:
|
||||
_timer.stop()
|
||||
|
||||
|
||||
func send_broadcast(message: String) -> bool:
|
||||
func send_broadcast() -> bool:
|
||||
_socket.set_broadcast_enabled(true)
|
||||
var data: PackedByteArray = message.to_utf8_buffer()
|
||||
var data: PackedByteArray = _form_status_packet()
|
||||
# добавление 11 байтов вперед вохоже
|
||||
_socket.send_to(broadcast_addr[1], broadcast_addr[0], data)
|
||||
return true
|
||||
|
||||
@@ -67,10 +81,60 @@ func add_timer_to_scene(parent: Node) -> void:
|
||||
parent.add_child(_timer)
|
||||
|
||||
|
||||
func poll_receive() -> void:
|
||||
while _socket.get_available_packet_count() > 0:
|
||||
var broadcast_packet = _socket.get_packet()
|
||||
var addr_receive = _socket.get_packet_ip()
|
||||
#var port_receive = _socket.get_packet_port()
|
||||
#var parsed_data = _parse_packet(broadcast_packet)
|
||||
_handle_received_data(broadcast_packet, addr_receive)
|
||||
|
||||
|
||||
func _handle_received_data(data: PackedByteArray, addr: String) -> void:
|
||||
print("данные от %s: %s" % [addr, data])
|
||||
# Здесь можно эмитировать сигналы или обрабатывать данные
|
||||
|
||||
|
||||
func _on_timer_timeout() -> void:
|
||||
send_broadcast("hello")
|
||||
send_broadcast()
|
||||
|
||||
|
||||
func _form_status_packet() -> PackedByteArray:
|
||||
var buf = PackedByteArray()
|
||||
buf.resize(126) # Увеличиваем размер до 126 байт
|
||||
|
||||
# Заголовок (0-5 байты)
|
||||
buf.encode_u16(0, 0) # 00 00
|
||||
buf.encode_u16(2, 0x0cff) # ff 0c
|
||||
buf.encode_u16(4, 0) # 00 00
|
||||
|
||||
# Идентификатор пакета
|
||||
buf[6] = 103 # 67
|
||||
|
||||
# Статус устройств
|
||||
buf[7] = 0
|
||||
buf[8] = sockets_status_bit
|
||||
|
||||
# Данные EMS-G (байты 9-34)
|
||||
var ems_g_data = [0x9e00, 0xffff, 0xffff, 0x0000, 0xffff, 0xffff, 0x0000,
|
||||
0xffff, 0xffff, 0x0000, 0xffff, 0xffff, 0xffff]
|
||||
for i in range(13):
|
||||
buf.encode_u16(9 + i * 2, ems_g_data[i])
|
||||
|
||||
# Данные UG (байты 35-38)
|
||||
buf.encode_u16(35, 0x0000) # 00 00
|
||||
buf.encode_u16(37, 0x059e) # 9e 05
|
||||
|
||||
# Данные UKP0 (байты 39-70)
|
||||
for i in ukp0_data.size():
|
||||
buf[39 + i] = ukp0_data[i]
|
||||
# Данные UKP1 (байты 71-102)
|
||||
for i in ukp1_data.size():
|
||||
buf[71 + i] = ukp1_data[i]
|
||||
return buf
|
||||
|
||||
|
||||
####
|
||||
class SocketUDP extends PacketPeerUDP:
|
||||
func send_to(addr: String, port: int, data: PackedByteArray):
|
||||
set_dest_address(addr, port)
|
||||
|
||||
Reference in New Issue
Block a user