Исправление. Состояние Щ3 отображается неверно после переключения на другой прибор.
This commit is contained in:
@@ -51,10 +51,8 @@ func _on_timeout(unit_sch3, mbc: ModbusClientRtu) -> void:
|
||||
step_fsm = Sch3Fsm.READ_INPUT
|
||||
elif step_fsm == Sch3Fsm.READ_INPUT:
|
||||
unit_sch3.read_input(base_input_address, regs_input_count)
|
||||
step_fsm = Sch3Fsm.READ_HOLDING
|
||||
elif step_fsm == Sch3Fsm.READ_HOLDING:
|
||||
unit_sch3.read_holding(base_holding_address, regs_holding_count)
|
||||
step_fsm = Sch3Fsm.WRITE
|
||||
elif step_fsm == Sch3Fsm.CONNECT:
|
||||
mbc.queue_clear()
|
||||
mbc.flush()
|
||||
@@ -129,13 +127,13 @@ func on_line_changed(unit_sch3: sch_3.Sch3):
|
||||
step_fsm = Sch3Fsm.CONNECT
|
||||
else:
|
||||
timer.wait_time = request_period
|
||||
step_fsm = Sch3Fsm.WRITE
|
||||
|
||||
|
||||
## Вызывается по сигналу "приняты данные чтения регистров хранения"[br]
|
||||
## [param base_addr] - Начальный адрес регистров.[br]
|
||||
## [param data] - Массив значений прочитанных из регистров.
|
||||
func on_resp_holding(base_addr: int, data: Array):
|
||||
step_fsm = Sch3Fsm.WRITE
|
||||
if (base_addr != base_holding_address) or (data.size() < regs_holding_count):
|
||||
return
|
||||
for i in data.size():
|
||||
@@ -160,6 +158,7 @@ func on_resp_holding(base_addr: int, data: Array):
|
||||
## [param base_addr] - Начальный адрес регистров.[br]
|
||||
## [param data] - Массив значений прочитанных из регистров.[br]
|
||||
func on_resp_input(base_addr: int, data: Array):
|
||||
step_fsm = Sch3Fsm.READ_HOLDING
|
||||
if !is_inside_tree():
|
||||
return
|
||||
if (base_addr != base_input_address) or (data.size() < regs_input_count):
|
||||
|
||||
Reference in New Issue
Block a user