Исправление. Определение на связи/отключен

This commit is contained in:
sasha80
2025-03-14 11:30:17 +03:00
parent 19a9a844ed
commit 2d33484f95
4 changed files with 21 additions and 22 deletions

View File

@@ -43,13 +43,12 @@ class StackItem:
func on_data_received(_data: PackedByteArray): pass
## Обработчик таймера
func _on_timeout(unit_sch3) -> void:
func _on_timeout(unit_sch3, mbc: ModbusClientRtu) -> void:
push_warning(step_fsm)
if step_fsm == Sch3Fsm.WRITE:
if write_stack.size():
var ad = write_stack.pop_front()
if not unit_sch3.write(ad.addr, ad.data):
write_stack.push_back(ad)
mbc.write(ad.addr, ad.data)
step_fsm = Sch3Fsm.READ_INPUT
elif step_fsm == Sch3Fsm.READ_INPUT:
unit_sch3.read_input(base_input_address, regs_input_count)
@@ -58,8 +57,7 @@ func _on_timeout(unit_sch3) -> void:
unit_sch3.read_holding(base_holding_address, regs_holding_count)
step_fsm = Sch3Fsm.WRITE
elif step_fsm == Sch3Fsm.CONNECT:
var unit_key = settings.get_unit_key(unit_sch3.name)
var mbc = network.mbcs[unit_key]
mbc.queue_clear()
mbc.flush()
mbc.try_reconnect()
mbc.request_read(base_input_address, regs_input_count)
@@ -102,7 +100,8 @@ func _ready() -> void:
unit_sch3.connect('resp_input', on_resp_input)
unit_sch3.connect('resp_holding', on_resp_holding)
unit_sch3.connect('command_fail', on_command_fail)
timer.connect('timeout', _on_timeout.bind(unit_sch3))
var mbc = network.mbcs[unit_key]
timer.connect('timeout', _on_timeout.bind(unit_sch3, mbc))
add_child(timer)
timer.start(request_period)