diff --git a/scenes/эмс/эмс.gd b/scenes/эмс/эмс.gd index c0b71e7e..c78d884e 100644 --- a/scenes/эмс/эмс.gd +++ b/scenes/эмс/эмс.gd @@ -376,7 +376,10 @@ func on_data_ems_received(unit): for board in g_boards.values(): board.set_status(unit.status) for i_row in range($scrollin/tbl_in.get_rows_count()): - var state_pic = ($tbl_input.get_node2(4, i_row)).get_sprite() - var dev = $tbl_input.get_node_user_data(4, i_row)[0] - print_debug(dev) - + var state_pic = ($scrollin/tbl_in.get_node2(4, i_row)) + var dev = $scrollin/tbl_in.get_node_user_data(4, i_row)[0] + state_pic.set_frame(dev.state) + for i_row in range($scrollout/tbl_out.get_rows_count()): + var state_pic = ($scrollout/tbl_out.get_node2(4, i_row)) + var dev = $scrollout/tbl_out.get_node_user_data(4, i_row)[0] + state_pic.set_frame(dev.state) diff --git a/scenes/эмс/эмс.tscn b/scenes/эмс/эмс.tscn index 5be27bce..1c570bfa 100644 --- a/scenes/эмс/эмс.tscn +++ b/scenes/эмс/эмс.tscn @@ -2,7 +2,7 @@ [ext_resource type="Script" path="res://scenes/эмс/эмс.gd" id="1_mk57x"] [ext_resource type="PackedScene" uid="uid://da7w3vkhadfwe" path="res://scenes/button-flat/button-flat.tscn" id="2_eju8r"] -[ext_resource type="Texture2D" uid="uid://dd60btbqnpiqw" path="res://data/document-new-0.png" id="3_w7rqa"] +[ext_resource type="Texture2D" uid="uid://nm7cpjw6rs51" path="res://data/document-new-0.png" id="3_w7rqa"] [ext_resource type="Texture2D" uid="uid://coqg6wsftvtxr" path="res://data/document-save-0.png" id="4_gyaoq"] [ext_resource type="Texture2D" uid="uid://cywuevvpkxl7v" path="res://data/edit-copy-0.png" id="5_dxpqo"] [ext_resource type="Texture2D" uid="uid://7h55yvh84cve" path="res://data/connect.png" id="6_axj2m"] diff --git a/scripts/network.gd b/scripts/network.gd index 7a485909..5e501148 100644 --- a/scripts/network.gd +++ b/scripts/network.gd @@ -1,4 +1,3 @@ -@tool class_name rep_network extends Node @@ -152,10 +151,10 @@ func poll_receive(sock: Socket, tick: int) -> bool: var port: = sock.get_packet_port() var addr_port: = [addr, port] if addr_port in units: - units[addr_port].parse(data) + units[addr_port].parse(data, tick) return false if port in unit_keys: - units[unit_keys[port]].parse(data) + units[unit_keys[port]].parse(data, tick) return false diff --git a/scripts/spt25.gd b/scripts/spt25.gd index f9c492b3..1e2366d3 100644 --- a/scripts/spt25.gd +++ b/scripts/spt25.gd @@ -25,8 +25,7 @@ class SPT25 extends unit.Unit: emit_signal('line_changed', self) emit_signal('data_received', rx_data) - func process(delta: float): - tick += delta + func process(tick: int): if (tick - tx_tick) > req_period: tx_tick = tick return Error.OK diff --git a/scripts/tcp5p28.gd b/scripts/tcp5p28.gd index a7b8fb63..c505f886 100644 --- a/scripts/tcp5p28.gd +++ b/scripts/tcp5p28.gd @@ -49,7 +49,7 @@ class TCP5P28 extends unit.Unit: func _to_string() -> String: return String('капсрпб: "%s" %s ' % [self.name, ['отключен', 'на связи'][int(online)]]) - func parse(data: PackedByteArray): + func parse(data: PackedByteArray, tick: int): rx_tick = tick if not online: online = true @@ -65,8 +65,7 @@ class TCP5P28 extends unit.Unit: if cmd_type == CMD_TYPE_IN and external_cu: set_interfer(data) - func process(delta: int): - tick += delta + func process(tick: int): if online and ((tick - rx_tick) > ONLINE_TIMEOUT): online = false emit_signal('line_changed', self) diff --git a/scripts/unit.gd b/scripts/unit.gd index 099722c0..714df005 100644 --- a/scripts/unit.gd +++ b/scripts/unit.gd @@ -8,7 +8,6 @@ class Unit: signal parse_failed(unit) ## Вызывается при обнаружении ошибки во входных данных signal data_received(unit) ## Вызывается по приёму данных - var tick = 0.0 ## Текущее тик-время в мс. var tx_data: = PackedByteArray() ## Буфер отправленный. var tx_len = 0 ## Длина последнего отправленного пакета. var online: bool diff --git a/scripts/yau07.gd b/scripts/yau07.gd index 99cc1f99..6a97fedd 100644 --- a/scripts/yau07.gd +++ b/scripts/yau07.gd @@ -2,8 +2,8 @@ class_name yau_07 extends Node ## Протокол ячейки ЯУ-07. -const ONLINE_TIMEOUT = 5.0 ## Время ожидания пакета от ячейки, секунды -const RESEND_TIMEOUT = 0.3 ## Задержка для повторной отправки команды, секунды +const ONLINE_TIMEOUT = 5000 ## Время ожидания пакета от ячейки, милисекунды +const RESEND_TIMEOUT = 300 ## Задержка для повторной отправки команды, секунды const RETRY_COUNT = 5 ## Количество повторных отправок const BUFFER_SIZE = 2048 ## Размер буфера для приёма датаграмм @@ -48,11 +48,9 @@ class YaU07 extends unit.Unit: self.name = nm tx_data.resize(BUFFER_SIZE) tx_data.fill(0) - tick = 0.0 - func process(delta: float): - tick += delta + func process(tick: float): if online and ((tick - cmd_tick_rx) > ONLINE_TIMEOUT): online = false emit_signal('line_changed', self) @@ -181,7 +179,7 @@ class YaU07 extends unit.Unit: ## [param rx_data] - Принятые данные.[br] ## Возвращает [b]true[/b] - Данные обработаны успешно.[br] ## Возвращает [b]false[/b] - Данные не обработаны из за ошибки.[br] - func parse(rx_data: PackedByteArray) -> bool: + func parse(rx_data: PackedByteArray, tick: int) -> bool: cmd_tick_rx = tick