Доработка инизиализация вкладок
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
"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],
|
||||
"power_ukp": [1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011],
|
||||
"sockets": [false, false, false, false, false],
|
||||
"dkm": [false, false, false, false, false, false, false],
|
||||
"dou2": [false, false, false, false, false, false, false],
|
||||
@@ -13,18 +13,18 @@
|
||||
},
|
||||
"ПРД-В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],
|
||||
"power_ukp": [1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011],
|
||||
"sockets": [false, false, false, false, false],
|
||||
"dkm": [false, false, false, true, 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, true]
|
||||
"ip": [false, false, false, false, false, false, false, false]
|
||||
},
|
||||
"ПРД-К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],
|
||||
"power_ukp": [1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012],
|
||||
"sockets": [false, false, false, false, false],
|
||||
"dkm": [false, false, false, false, false, false, false],
|
||||
"dou2": [false, false, false, false, false, false, false],
|
||||
@@ -35,7 +35,7 @@
|
||||
},
|
||||
"ПРД-Н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],
|
||||
"power_ukp": [1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011],
|
||||
"sockets": [false, false, false, false, false],
|
||||
"dkm": [false, false, false, false, false, false, false],
|
||||
"dou2": [false, false, false, false, false, false, false],
|
||||
@@ -46,7 +46,7 @@
|
||||
},
|
||||
"ПРД-В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],
|
||||
"power_ukp": [1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011],
|
||||
"sockets": [false, false, false, false, false],
|
||||
"dkm": [false, false, false, false, false, false, false],
|
||||
"dou2": [false, false, false, false, false, false, false],
|
||||
@@ -57,7 +57,7 @@
|
||||
},
|
||||
"ПРД-К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],
|
||||
"power_ukp": [1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012],
|
||||
"sockets": [false, false, false, false, false],
|
||||
"dkm": [false, false, false, false, false, false, false],
|
||||
"dou2": [false, false, false, false, false, false, false],
|
||||
@@ -68,7 +68,7 @@
|
||||
},
|
||||
"ПРД-Н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],
|
||||
"power_ukp": [1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011],
|
||||
"sockets": [false, false, false, false, false],
|
||||
"dkm": [false, false, false, false, false, false, false],
|
||||
"dou2": [false, false, false, false, false, false, false],
|
||||
@@ -79,7 +79,7 @@
|
||||
},
|
||||
"ПРД-В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],
|
||||
"power_ukp": [1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011],
|
||||
"sockets": [false, false, false, false, false],
|
||||
"dkm": [false, false, false, false, false, false, false],
|
||||
"dou2": [false, false, false, false, false, false, false],
|
||||
@@ -90,7 +90,7 @@
|
||||
},
|
||||
"ПРД-К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],
|
||||
"power_ukp": [1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012],
|
||||
"sockets": [false, false, false, false, false],
|
||||
"dkm": [false, false, false, false, false, false, false],
|
||||
"dou2": [false, false, false, false, false, false, false],
|
||||
@@ -101,7 +101,7 @@
|
||||
},
|
||||
"ПРД-Н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],
|
||||
"power_ukp": [1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011],
|
||||
"sockets": [false, false, false, false, false],
|
||||
"dkm": [false, false, false, false, false, false, false],
|
||||
"dou2": [false, false, false, false, false, false, false],
|
||||
@@ -112,7 +112,7 @@
|
||||
},
|
||||
"ПРД-В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],
|
||||
"power_ukp": [1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011],
|
||||
"sockets": [false, false, false, false, false],
|
||||
"dkm": [false, false, false, false, false, false, false],
|
||||
"dou2": [false, false, false, false, false, false, false],
|
||||
@@ -123,7 +123,7 @@
|
||||
},
|
||||
"ПРД-К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],
|
||||
"power_ukp": [1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012],
|
||||
"sockets": [false, false, false, false, false],
|
||||
"dkm": [false, false, false, false, false, false, false],
|
||||
"dou2": [false, false, false, false, false, false, false],
|
||||
|
||||
17
main.gd
17
main.gd
@@ -160,7 +160,7 @@ func _exit_tree():
|
||||
func on_modify_device(toggled: bool, name_device: String) -> void:
|
||||
if toggled:
|
||||
udp_broadcast = UDPBroadcast.new(name_device)
|
||||
udp_broadcast.add_timers_to_scene(self) # Исправлено имя метода
|
||||
udp_broadcast.add_timers_to_scene(self)
|
||||
udp_broadcast.start_broadcast()
|
||||
dictionary_yau07[name_device] = udp_broadcast
|
||||
print("Устройство %s активировано" % name_device)
|
||||
@@ -170,34 +170,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()
|
||||
|
||||
# Обновляем вкладки и переключаемся при активации
|
||||
_update_tab_container(toggled, name_device)
|
||||
|
||||
|
||||
func _update_tab_container():
|
||||
func _update_tab_container(just_activated: bool = false, activated_device: String = ""):
|
||||
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
|
||||
if just_activated and device_name == activated_device:
|
||||
tab_container.current_tab = i
|
||||
|
||||
# Если все вкладки заблокированы, скрываем TabContainer
|
||||
tab_container.visible = has_visible_tabs
|
||||
|
||||
|
||||
@@ -236,6 +237,8 @@ func _update_specific_device_buttons(group_name: String, status: int, target_dev
|
||||
|
||||
if button.button_pressed != should_be_pressed:
|
||||
button.set_pressed_no_signal(should_be_pressed)
|
||||
if should_be_pressed:
|
||||
button.grab_focus()
|
||||
|
||||
|
||||
func _get_nodes_for_device(device: String, group_name: String) -> Array:
|
||||
|
||||
@@ -442,7 +442,6 @@ func _handle_write_isa_command(data: PackedByteArray, address: String, port: int
|
||||
"""Обработка команды записи ISA портов"""
|
||||
var ports = _parse_command_ports(data)
|
||||
var data_to_write = _parse_command_ports_data(data)
|
||||
print_debug('data_to_write: ', data_to_write)
|
||||
if ports.size() != data_to_write.size():
|
||||
push_warning("Несоответствие размеров портов и данных от %s:%d" % [address, port])
|
||||
return
|
||||
@@ -519,7 +518,7 @@ func _parse_command_ports_data(data: PackedByteArray) -> Array:
|
||||
if data_offset + i * 2 < data.size():
|
||||
var port_data = data.decode_u16(data_offset + i * 2)
|
||||
ports_data.append(port_data)
|
||||
print("Данные порта %d: 0x%03X" % [i, port_data])
|
||||
print("Данные порта %d: 0x%02X" % [i, port_data])
|
||||
return ports_data
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user