ems not work

This commit is contained in:
danil_tim
2025-02-07 11:00:57 +03:00
parent 35196b731f
commit 0f9c5abdc9
4 changed files with 295 additions and 194 deletions

View File

@@ -3,7 +3,6 @@ extends Node2D
signal read_ems_g_start()
signal read_ems_g_finish()
var flag_mode = Constants.ADDRESSES[0][3]
var broadcast_packet: PackedByteArray
var node_select1: Node
var node_select2: Node
@@ -19,19 +18,19 @@ func _ready() -> void:
node_select1.set_columns_min_size([120, 120])
node_select1.set_node_text(0, 0, 'Мощность')
node_select1.set_node_text(1, 0, 'Температура')
# Таблица УКП_2
node_select2 = $TabContainer/PRD/body_grid/litera_3_5_7/table_ukp_2
draw_tabl(node_select2, Constants.ROWS_UKP2_DATA, Constants.ROWS_UKP2_DATA.size())
node_select2.set_columns_min_size([120, 120])
node_select2.set_node_text(0, 0, 'Мощность')
node_select2.set_node_text(1, 0, 'Температура')
# Выбор прибора для подключения
var node_select_device = $TabContainer/PRD/select_dev
draw_tabl(node_select_device, Constants.SELECT_DEVICE, Constants.SELECT_DEVICE.size())
var get_select_device = node_select_device.get_node2(1, 0)
# Заполнение адресов
for i_addr in Constants.ADDRESSES.size():
get_select_device.add_item(Constants.ADDRESSES[i_addr][0])
@@ -39,34 +38,114 @@ func _ready() -> void:
get_select_device.connect('item_selected', Callable(self, 'on_btn_select'))
node_select_device.get_node2(0,0).text = 'ПРИБОР'
node_select_device.set_columns_min_size([100, 100])
## Заполненение списка направления луча
for key in Constants.RAY_DICT:
$TabContainer/PRD/body_grid/litera_2_4_6/yau_07b/Ray_set_1.add_item(key)
$TabContainer/PRD/body_grid/litera_3_5_7/yau_07b/Ray_set_2.add_item(key)
## Заполненение списка аттенюатора
for key in Constants.ATT_DICT:
$TabContainer/PRD/body_grid/litera_2_4_6/yau_07b/att_set_1.add_item(key)
$TabContainer/PRD/body_grid/litera_3_5_7/yau_07b/att_set_2.add_item(key)
draw_control_panel_prd(Constants.ADDRESSES[0][3])
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'))
func draw_control_panel_prd(mode) -> void:
for node_path in Constants.NODE_MAP:
var index = Constants.NODE_MAP[node_path]
var node = get_node(node_path)
if node:
var value = node.get("text")
if value != null:
node.text = Constants.SIGNS_PRD[mode][index]
else:
node.fname = Constants.SIGNS_PRD[mode][index]
func draw_control_panel_prd(pribor) -> void:
if pribor == Constants.MODE.PRD_H:
# Кассета У5
$TabContainer/ControlPanel/soc_y5/IP5_25.rname = 'А24'
$TabContainer/ControlPanel/soc_y5/ay07.rname = 'А30'
$TabContainer/ControlPanel/soc_y5/ems_g.rname = 'А26'
$TabContainer/ControlPanel/soc_y5/ug.rname = 'А27'
$TabContainer/ControlPanel/soc_y5/ukp_1.rname = 'А28'
$TabContainer/ControlPanel/soc_y5/ukp_2.rname = 'А29'
# Кассета ФС
$TabContainer/ControlPanel/Kasseta_FS/Kasseta.text = 'Кассета ФС-НД'
$TabContainer/ControlPanel/Kasseta_FS/Block_FS_PRD_K.visible = false
$TabContainer/ControlPanel/Kasseta_FS/FS_PRD_K.visible = false
$TabContainer/ControlPanel/Kasseta_FS/ref_A1.rname = 'А1'
$TabContainer/ControlPanel/Kasseta_FS/ref_A1.fname = 'Модуль ФС'
$TabContainer/ControlPanel/Kasseta_FS/ref_A3.rname = 'А3'
$TabContainer/ControlPanel/Kasseta_FS/ref_A3.fname = 'БЛОК ФС-2'
$TabContainer/ControlPanel/Kasseta_FS/ref_A2.rname = 'А2'
$TabContainer/ControlPanel/Kasseta_FS/ref_A2.fname = 'Модуль ФС'
$TabContainer/ControlPanel/Kasseta_FS/ref_A4.rname = 'А4'
$TabContainer/ControlPanel/Kasseta_FS/ref_A4.fname = 'БЛОК ФС-3'
# Кассета П-1
$TabContainer/ControlPanel/soc_P1/IP12_50.rname = 'А21'
$TabContainer/ControlPanel/soc_P1/IP9_50_1.rname = 'А20'
$TabContainer/ControlPanel/soc_P1/IP9_50_2.rname = 'А19'
$TabContainer/ControlPanel/soc_P1/MAA_1.rname = 'А22'
$TabContainer/ControlPanel/soc_P1/MAA_2.rname = 'А23'
# Кассета П-2
$TabContainer/ControlPanel/soc_P2.visible = false
elif pribor == Constants.MODE.PRD_B:
# Кассета У5
$TabContainer/ControlPanel/soc_y5/IP5_25.rname = 'А24'
$TabContainer/ControlPanel/soc_y5/ay07.rname = 'А30'
$TabContainer/ControlPanel/soc_y5/ems_g.rname = 'А26'
$TabContainer/ControlPanel/soc_y5/ug.rname = 'А27'
$TabContainer/ControlPanel/soc_y5/ukp_1.rname = 'А28'
$TabContainer/ControlPanel/soc_y5/ukp_2.rname = 'А29'
# Кассета ФС
$TabContainer/ControlPanel/Kasseta_FS/Kasseta.text = 'Кассета ФС-ВД'
$TabContainer/ControlPanel/Kasseta_FS/Block_FS_PRD_K.visible = false
$TabContainer/ControlPanel/Kasseta_FS/FS_PRD_K.visible = false
$TabContainer/ControlPanel/Kasseta_FS/ref_A1.rname = 'А1'
$TabContainer/ControlPanel/Kasseta_FS/ref_A1.fname = 'Модуль ФС'
$TabContainer/ControlPanel/Kasseta_FS/ref_A3.rname = 'А3'
$TabContainer/ControlPanel/Kasseta_FS/ref_A3.fname = 'БЛОК ФС-4'
$TabContainer/ControlPanel/Kasseta_FS/ref_A2.rname = 'А2'
$TabContainer/ControlPanel/Kasseta_FS/ref_A2.fname = 'Модуль ФС'
$TabContainer/ControlPanel/Kasseta_FS/ref_A4.rname = 'А4'
$TabContainer/ControlPanel/Kasseta_FS/ref_A4.fname = 'БЛОК ФС-5'
# Кассета П-1
$TabContainer/ControlPanel/soc_P1/IP12_50.rname = 'А21'
$TabContainer/ControlPanel/soc_P1/IP9_50_1.rname = 'А20'
$TabContainer/ControlPanel/soc_P1/IP9_50_2.rname = 'А19'
$TabContainer/ControlPanel/soc_P1/MAA_1.rname = 'А22'
$TabContainer/ControlPanel/soc_P1/MAA_2.rname = 'А23'
# Кассета П-2
$TabContainer/ControlPanel/soc_P2.visible = false
elif pribor == Constants.MODE.PRD_K:
# Кассета У5
$TabContainer/ControlPanel/soc_y5/IP5_25.rname = 'А31'
$TabContainer/ControlPanel/soc_y5/ay07.rname = 'А37'
$TabContainer/ControlPanel/soc_y5/ems_g.rname = 'А33'
$TabContainer/ControlPanel/soc_y5/ug.rname = 'А34'
$TabContainer/ControlPanel/soc_y5/ukp_1.rname = 'А35'
$TabContainer/ControlPanel/soc_y5/ukp_2.rname = 'А36'
# Кассета ФС
$TabContainer/ControlPanel/Kasseta_FS/Kasseta.text = 'Кассета ФС-КД'
$TabContainer/ControlPanel/Kasseta_FS/Block_FS_PRD_K.visible = true
$TabContainer/ControlPanel/Kasseta_FS/FS_PRD_K.visible = true
$TabContainer/ControlPanel/Kasseta_FS/ref_A1.rname = 'А3'
$TabContainer/ControlPanel/Kasseta_FS/ref_A1.fname = 'Модуль ФС'
$TabContainer/ControlPanel/Kasseta_FS/ref_A3.rname = 'А6'
$TabContainer/ControlPanel/Kasseta_FS/ref_A3.fname = 'БЛОК ФС-6'
$TabContainer/ControlPanel/Kasseta_FS/ref_A2.rname = 'А2'
$TabContainer/ControlPanel/Kasseta_FS/ref_A2.fname = 'Модуль ФС'
$TabContainer/ControlPanel/Kasseta_FS/ref_A4.rname = 'А5'
$TabContainer/ControlPanel/Kasseta_FS/ref_A4.fname = 'БЛОК ФС-7'
# Кассета П-1
$TabContainer/ControlPanel/soc_P1/IP12_50.rname = 'А23'
$TabContainer/ControlPanel/soc_P1/IP12_50.fname = 'ИП9-50'
$TabContainer/ControlPanel/soc_P1/IP9_50_1.rname = 'А24'
$TabContainer/ControlPanel/soc_P1/IP9_50_1.fname = 'ИП9-50'
$TabContainer/ControlPanel/soc_P1/IP9_50_2.rname = 'А26'
$TabContainer/ControlPanel/soc_P1/IP9_50_2.fname = 'ИП12-50'
$TabContainer/ControlPanel/soc_P1/MAA_1.rname = 'А27'
$TabContainer/ControlPanel/soc_P1/MAA_2.rname = 'А28'
# Кассета П-2
$TabContainer/ControlPanel/soc_P2.visible = true
## From Network status about yau-07
@@ -79,7 +158,7 @@ func _on_read_isa(unit_isa_ports: Dictionary) -> void:
var isa_data: Dictionary = {}
for key in unit_isa_ports.keys():
isa_data[key] = unit_isa_ports[key]
if isa_data.has(Constants.BASE_PORTS.EMS_G+2):
var tmp = isa_data[Constants.BASE_PORTS.EMS_G+2]
isa_data.erase(Constants.BASE_PORTS.EMS_G+2)
@@ -95,7 +174,7 @@ func _on_read_isa(unit_isa_ports: Dictionary) -> void:
if len(Constants.EMS_G_PORT_DATA_HOLDER) == 32:
emit_signal('read_ems_g_finish')
$ISA.text = 'ISA: ' + str(len(Constants.EMS_G_PORT_DATA_HOLDER))
if isa_data.has(Constants.BASE_PORTS.UG+6):
$TabContainer/PRD/body_grid/litera_2_4_6/PSK/ray_1.material.set('shader_parameter/turn', 0.735 + 0.025 * (isa_data[0x106] & 0x7))
if isa_data.has(Constants.BASE_PORTS.UG+8):
@@ -121,23 +200,23 @@ func _on_data_received(data_from_yau_07):
var _DKM: int = data_from_yau_07.decode_u16(Constants.DataIndices.DKM) # ДКМ от УГ
#node_select1.set_node_text(2, 0, '%d' % dry_contact)
#node_select1.set_node_text(3, 0, '%d' % DKM)
## УКП
for i in range(8): ## Мощность от УКП_1
var power_ukp_1 = data_from_yau_07.decode_u16(Constants.DataIndices.POWER_UKP_1 + 2 * i)
node_select1.set_node_text(0, i+1, '%d' % power_ukp_1)
for i in range(8): ## Температура от УКП_1
var temperature_ukp_1 = data_from_yau_07.decode_u16(Constants.DataIndices.TEMPERATURE_UKP_1 + 2 * i)
var TMP = Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_1) * Constants.TEMP
node_select1.set_node_text(1, i+1, '%d' % TMP)
for i_pow in range(8): ## Мощность от УКП_2
if len(data_from_yau_07) > Constants.DataIndices.POWER_UKP_2 + 2 * i_pow:
var power_ukp_2 = data_from_yau_07.decode_u16(Constants.DataIndices.POWER_UKP_2 + 2 * i_pow)
node_select2.set_node_text(0, i_pow+1, '%d' % power_ukp_2)
for row in range(8): ## Температура от УКП_2
if len(data_from_yau_07) > Constants.DataIndices.TEMPERATURE_UKP_2 + 2 * row:
var temperature_ukp_2 = data_from_yau_07.decode_u16(Constants.DataIndices.TEMPERATURE_UKP_2 + 2 * row)
@@ -167,17 +246,17 @@ func _on_mfs_select() -> void:
func _on_save_config():
print('Тебе сюда')
func _on_load_config():
print('тебе сюда')
func set_tab_and_buttons(tab_index: int, button_name: String) -> void:
$TabContainer.current_tab = tab_index
var side_panel = $Background/side_panel
for button in side_panel.get_children():
if button is Button:
button.button_pressed = (button.name == button_name)
@@ -188,8 +267,8 @@ func on_btn_select(intem_from_sector: int) -> void:
var get_select_device = node_select_device.get_node2(1, 0)
var meta = get_select_device.get_item_metadata(intem_from_sector)
Network.on_command_change_device(meta)
flag_mode = meta[2]
draw_control_panel_prd(flag_mode)
Constants.CURRENT_MODE = meta[2]
draw_control_panel_prd(Constants.CURRENT_MODE)
func fill_item(node: Node, i_column: int, i_row: int, arr: Dictionary, select: int = 0) -> void: