add read array for state machine
This commit is contained in:
9
ems_g.gd
9
ems_g.gd
@@ -4,6 +4,13 @@ var shift: int = 2
|
||||
var input_status: Dictionary = {}
|
||||
|
||||
|
||||
func _on_read_ems_g():
|
||||
for i in 7:
|
||||
Network.send_array.append({0x122:1+i})
|
||||
Network.read_array.append(0x124)
|
||||
Network.read_array.append(0x128)
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
node_select1 = $table1
|
||||
var EMS_G_TABLE: Array
|
||||
@@ -47,6 +54,8 @@ func _ready() -> void:
|
||||
node_select1.set_columns_min_size(columns_min_size)
|
||||
|
||||
Network.connect('_yau_receive', Callable(self, '_on_data_received'))
|
||||
var parrent = get_parent().get_parent()
|
||||
parrent.connect('read_ems_g', Callable(self, '_on_read_ems_g'))
|
||||
create_link_button(node_select1, 3, 19, 2, 18)
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
extends Node2D
|
||||
|
||||
signal read_ems_g()
|
||||
#var unit = Yau07.YaU07.new('ЯУ07')
|
||||
var flag_mode = Constants.ADDRESSES[0][3]
|
||||
var broadcast_packet: PackedByteArray
|
||||
@@ -9,7 +10,6 @@ var flag_yau_control: bool
|
||||
var CONTROL_TABLE: Array
|
||||
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
# Таблица УКП_1
|
||||
node_select1 = $TabContainer/PRD/scroll1/table1
|
||||
@@ -72,8 +72,8 @@ func _on_yau_status(yau_status):
|
||||
func _on_read_isa(unit_isa_ports):
|
||||
var isa: Array = []
|
||||
for i in unit_isa_ports:
|
||||
isa.append('%x: %x' % [i, unit_isa_ports[i]])
|
||||
$ISA.text = 'ISA: ' + str(unit_isa_ports)
|
||||
isa.append('%x: %s' % [i, unit_isa_ports[i]])
|
||||
$ISA.text = 'ISA: ' + str(isa)
|
||||
|
||||
|
||||
## Рисует таблицу
|
||||
@@ -219,6 +219,7 @@ func _on_control_button() -> void:
|
||||
|
||||
|
||||
func _on_emsg_select() -> void:
|
||||
emit_signal('read_ems_g')
|
||||
$TabContainer.current_tab = 2
|
||||
$Background/side_panel/select_ems_g.button_pressed = true
|
||||
$Background/side_panel/select_control.button_pressed = false
|
||||
@@ -244,16 +245,14 @@ func fill_item(node, i_column: int, i_row: int, arr: Dictionary, select: int = 0
|
||||
|
||||
|
||||
func _on_zapret(toggled_on: bool, meta) -> void:
|
||||
var send_array: Array = []
|
||||
var address_port_wr = 0x122
|
||||
var ports_wr: Dictionary = {address_port_wr : meta.get_meta('litera')} ## СИ2, СИ4, СИ6 = 0x30, СИ3, СИ5, СИ7 = 0x31, СИ1 = 0x2F
|
||||
var ports_wr: Dictionary = {0x122 : meta.get_meta('litera')} ## СИ2, СИ4, СИ6 = 0x30, СИ3, СИ5, СИ7 = 0x31, СИ1 = 0x2F
|
||||
Network.send_array.append(ports_wr)
|
||||
|
||||
ports_wr = {}
|
||||
address_port_wr = 0x128
|
||||
ports_wr[address_port_wr] = 0x4000 if toggled_on else 0x0
|
||||
ports_wr[0x128] = 0x4000 if toggled_on else 0x0
|
||||
Network.send_array.append(ports_wr)
|
||||
|
||||
|
||||
func _on_read_isa_pressed() -> void:
|
||||
Network.flag_read_isa = true
|
||||
Network.read_array.append(0x122)
|
||||
Network.read_array.append(0x128)
|
||||
|
||||
@@ -136,4 +136,5 @@ enum STATE {
|
||||
WAIT,
|
||||
READ_ISA,
|
||||
WRITE_ISA,
|
||||
DONE,
|
||||
}
|
||||
|
||||
@@ -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