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

@@ -8,7 +8,7 @@ var node_select1: Node
var node_select2: Node
var flag_yau_control: bool
var CONTROL_TABLE: Array
var isa: Array = []
func _ready() -> void:
# Таблица УКП_1
@@ -49,9 +49,9 @@ func _ready() -> void:
$TabContainer/PRD/Zapret.connect('toggled', Callable(self, '_on_zapret').bind($TabContainer/PRD/Zapret))
$TabContainer/PRD/Zapret2.connect('toggled', Callable(self, '_on_zapret').bind($TabContainer/PRD/Zapret2))
Network.connect('_yau_status_line', Callable(self, '_on_yau_status'))
Network.connect('_yau_receive', Callable(self, '_on_data_received'))
Network.connect('_yau_read_isa', Callable(self, '_on_read_isa'))
Network.connect('yau_status_line', Callable(self, '_on_yau_status'))
Network.connect('yau_receive', Callable(self, '_on_data_received'))
Network.connect('yau_read_isa', Callable(self, '_on_read_isa'))
## From Network status about yau-07
@@ -70,10 +70,23 @@ 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: %s' % [i, unit_isa_ports[i]])
$ISA.text = 'ISA: ' + str(isa)
var isa_data: Dictionary = {}
for key in unit_isa_ports.keys():
isa_data[key] = unit_isa_ports[key]
if isa_data.has(290):
var tmp = isa_data[290]
isa_data.erase(290)
var found = false
for i in range(Constants.EMS_G_PORT_DATA_HOLDER.size()):
if Constants.EMS_G_PORT_DATA_HOLDER[i][0] == tmp:
Constants.EMS_G_PORT_DATA_HOLDER[i][1] = isa_data
found = true
break
if not found:
Constants.EMS_G_PORT_DATA_HOLDER.append([tmp, isa_data])
#$ISA.text = 'ISA: ' + str(isa)
## Рисует таблицу
@@ -174,7 +187,7 @@ func _on_data_received(data_from_yau_07):
frame = Constants.Frame.VARIABLE if i == 4 else Constants.Frame.WORK
set_frame(CONTROL_FRAME[i], frame)
node_ems_g.text = Constants.EMS_G[i][j]
node_ems_g.text = Constants.EMS_G_CONTROL_PANEL[i][j]
node_ems_g.modulate = [Color.RED, Color.GREEN][j]
#set_frame(CONTROL_FRAME[i], frame)
@@ -254,5 +267,4 @@ func _on_zapret(toggled_on: bool, meta) -> void:
func _on_read_isa_pressed() -> void:
Network.read_array.append(0x122)
Network.read_array.append(0x128)
Network.send_array.append(['rd', [0x122, 0x124, 0x128]])

View File

@@ -7,6 +7,7 @@ const DEFAULT_PORT: String = '50011'
const CONST_MIN_TEMP: int = -25
const MAXIMUM_CODE_ADC: int = 3796
const MINIMUM_CODE_AD: int = 2660
const EMS_G_BASE_ADDR: int = 0x120
const TEMP: float = 115.0 / (MAXIMUM_CODE_ADC - MINIMUM_CODE_AD)
const TableNode = preload("res://table/node.tscn")
const TableList = preload("res://table/node_list.tscn")
@@ -61,7 +62,7 @@ var CONTROL_POWER_SUPPLY: Array = [
['ИП9-50 №3', 'ОШИБКА. КОНТРОЛЬ ИП9-50 №3'],
['ИП12-50 №2', 'ОШИБКА. КОНТРОЛЬ ИП12-50 №2'],
['ИП5-25', 'ОШИБКА. КОНТРОЛЬ ИП5-25']]
const EMS_G: Array = [
const EMS_G_CONTROL_PANEL: Array = [
['Нет Х3:2(СЗИ2 от УФ)', 'Есть Х3:2(СЗИ2 от УФ)'],
['Нет Х3:19(СИ2 от ФС)', 'Есть Х3:19(СИ2 от ФС)'],
['Нет Х3:11(СИ2 в УФ)', 'Есть Х3:11(СИ2 в УФ)'],
@@ -101,7 +102,7 @@ const OUT_EMS_G: Array = [
[60, '31 :47'],
[61, '32 :48'],
[62, '33 :49']]
const OUT_x128 = [
const OUT_x128: Array = [
'Р',
'К',
'0',
@@ -138,3 +139,5 @@ enum STATE {
WRITE_ISA,
DONE,
}
var EMS_G_PORT_DATA_HOLDER: Array = []

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