add read status ems g
This commit is contained in:
@@ -10,12 +10,11 @@ var last_update_time: float = 0.0
|
||||
var broadcast_packet: PackedByteArray
|
||||
var state = Constants.STATE.WAIT
|
||||
var send_array: Array = []
|
||||
var read_array: Array = []
|
||||
|
||||
|
||||
signal _yau_status_line(_status) ## Вызывается когда меняется состояние связи с ячейкой
|
||||
signal _yau_receive(_data_from_yau) ##
|
||||
signal _yau_read_isa(_unit_isa_ports)
|
||||
signal yau_status_line(_status) ## Вызывается когда меняется состояние связи с ячейкой
|
||||
signal yau_receive(_data_from_yau) ##
|
||||
signal yau_read_isa(_unit_isa_ports)
|
||||
|
||||
## Класс для отправки данных в сокет
|
||||
class Socket extends PacketPeerUDP:
|
||||
@@ -35,7 +34,7 @@ func poll_receive(sock: Socket) -> bool: ## Приёмник
|
||||
last_update_time = 0.0
|
||||
unit.parse(broadcast_packet)
|
||||
var data_from_yau_07 = unit.status
|
||||
emit_signal('_yau_receive', data_from_yau_07)
|
||||
emit_signal('yau_receive', data_from_yau_07)
|
||||
else:
|
||||
if sock.get_available_packet_count():
|
||||
last_update_time = 0.0
|
||||
@@ -73,29 +72,27 @@ func state_machine():
|
||||
## Режим ожидания
|
||||
if state == Constants.STATE.WAIT and fl_done:
|
||||
|
||||
if read_array.size():
|
||||
state = Constants.STATE.READ_ISA
|
||||
elif send_array.size():
|
||||
state = Constants.STATE.WRITE_ISA
|
||||
if send_array.size():
|
||||
state = Constants.STATE.READ_ISA if send_array[0][0] == 'rd' else Constants.STATE.WRITE_ISA
|
||||
|
||||
## Режим чтения из ИСА
|
||||
elif state == Constants.STATE.READ_ISA and fl_done:
|
||||
var ports_read = read_array.pop_front()
|
||||
unit.send_isa(unit.CmdCode.READ_ISA, [ports_read])
|
||||
var ports_read = send_array.pop_front()
|
||||
unit.send_isa(unit.CmdCode.READ_ISA, ports_read[1])
|
||||
state = Constants.STATE.DONE
|
||||
## Режим записи в ИСА
|
||||
elif state == Constants.STATE.WRITE_ISA and fl_done:
|
||||
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]]])
|
||||
var key = ports_write[1].keys()
|
||||
unit.send_isa(unit.CmdCode.WRITE_ISA, [key[0], ports_write[1][key[0]]])
|
||||
state = Constants.STATE.WAIT
|
||||
elif state == Constants.STATE.DONE and fl_done:
|
||||
emit_signal('_yau_read_isa', unit.isa_ports)
|
||||
emit_signal('yau_read_isa', unit.isa_ports)
|
||||
state = Constants.STATE.WAIT
|
||||
|
||||
|
||||
|
||||
func on_line_changed(_unit) -> void:
|
||||
emit_signal('_yau_status_line', unit.online)
|
||||
emit_signal('yau_status_line', unit.online)
|
||||
|
||||
|
||||
## Ессли отсутствует подключение к ячейке ЯУ-07
|
||||
|
||||
Reference in New Issue
Block a user