add read status ems g
This commit is contained in:
@@ -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]])
|
||||
|
||||
@@ -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 = []
|
||||
|
||||
@@ -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