Исправления. Переделка дельты на тик.

This commit is contained in:
MaD_CaT
2024-10-29 11:53:34 +03:00
parent 4a17300799
commit e3f2b4fff6
7 changed files with 17 additions and 20 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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