Исправление. Определение на связи/отключен
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user