add read status ems g

This commit is contained in:
2024-12-18 11:09:40 +03:00
parent 82459cdac7
commit 504b8869e5
5 changed files with 76 additions and 59 deletions

View File

@@ -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