Исправления. Переделка дельты на тик.
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user