add read array for state machine
This commit is contained in:
@@ -10,7 +10,7 @@ var last_update_time: float = 0.0
|
||||
var broadcast_packet: PackedByteArray
|
||||
var state = Constants.STATE.WAIT
|
||||
var send_array: Array = []
|
||||
var flag_read_isa: bool = false
|
||||
var read_array: Array = []
|
||||
|
||||
|
||||
signal _yau_status_line(_status) ## Вызывается когда меняется состояние связи с ячейкой
|
||||
@@ -73,23 +73,24 @@ func state_machine():
|
||||
## Режим ожидания
|
||||
if state == Constants.STATE.WAIT and fl_done:
|
||||
|
||||
if flag_read_isa:
|
||||
flag_read_isa = false
|
||||
if read_array.size():
|
||||
state = Constants.STATE.READ_ISA
|
||||
elif send_array.size():
|
||||
state = Constants.STATE.WRITE_ISA
|
||||
|
||||
|
||||
## Режим чтения из ИСА
|
||||
elif state == Constants.STATE.READ_ISA and fl_done:
|
||||
unit.send_isa(unit.CmdCode.READ_ISA, [0x122, 0x128])
|
||||
state = Constants.STATE.WAIT
|
||||
var unit_isa_ports = unit.isa_ports
|
||||
emit_signal('_yau_read_isa', unit_isa_ports)
|
||||
var ports_read = read_array.pop_front()
|
||||
unit.send_isa(unit.CmdCode.READ_ISA, [ports_read])
|
||||
state = Constants.STATE.DONE
|
||||
## Режим записи в ИСА
|
||||
elif state == Constants.STATE.WRITE_ISA and fl_done:
|
||||
var ports_dict = send_array.pop_front()
|
||||
var key = ports_dict.keys()
|
||||
unit.send_isa(unit.CmdCode.WRITE_ISA, [key[0], ports_dict[key[0]]])
|
||||
var ports_write = send_array.pop_front()
|
||||
var key = ports_write.keys()
|
||||
unit.send_isa(unit.CmdCode.WRITE_ISA, [key[0], ports_write[key[0]]])
|
||||
state = Constants.STATE.WAIT
|
||||
elif state == Constants.STATE.DONE and fl_done:
|
||||
emit_signal('_yau_read_isa', unit.isa_ports)
|
||||
state = Constants.STATE.WAIT
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user