Отладил отображение контроля фс и зависимости от резальтата

This commit is contained in:
TotMaxim
2025-11-12 21:40:57 +03:00
parent 87e360e1a9
commit 9856e300e9
4 changed files with 39 additions and 50 deletions

View File

@@ -22,7 +22,9 @@ func _ready() -> void:
on_press_device() on_press_device()
func _process(delta: float) -> void: func _process(_delta: float) -> void:
if Engine.is_editor_hint():
return
set_frame($input_0, unit_prd_k.ems_input_1) set_frame($input_0, unit_prd_k.ems_input_1)
set_frame($input_1, unit_prd_k.ems_input_2) set_frame($input_1, unit_prd_k.ems_input_2)
set_frame($input_2, unit_prd_k.ems_input_lit_1) set_frame($input_2, unit_prd_k.ems_input_lit_1)
@@ -31,7 +33,6 @@ func _process(delta: float) -> void:
set_frame($output_2, unit_prd_k.ems_output_lit_1) set_frame($output_2, unit_prd_k.ems_output_lit_1)
func set_frame(node_frame: Node, val: int): node_frame.set_frame(val) func set_frame(node_frame: Node, val: int): node_frame.set_frame(val)
@@ -119,7 +120,7 @@ func on_control_result(for_result_dic: Dictionary) -> void:
for node_y5 in nodes_y5: for node_y5 in nodes_y5:
var meta_y5 = node_y5.get_meta('y5') var meta_y5 = node_y5.get_meta('y5')
if block_kasseta_y5_prd_config_k.has(meta_y5): if block_kasseta_y5_prd_config_k.has(meta_y5):
if block_kasseta_y5_prd_config_k['yau07'] == false: if not block_kasseta_y5_prd_config_k['yau07']:
node_y5.state = STATE_VAL.ERROR if meta_y5 == 'yau07' else STATE_VAL.NONE node_y5.state = STATE_VAL.ERROR if meta_y5 == 'yau07' else STATE_VAL.NONE
break break
node_y5.state = STATE_VAL.GOOD if block_kasseta_y5_prd_config_k[meta_y5] else STATE_VAL.ERROR node_y5.state = STATE_VAL.GOOD if block_kasseta_y5_prd_config_k[meta_y5] else STATE_VAL.ERROR
@@ -135,26 +136,21 @@ func on_control_result(for_result_dic: Dictionary) -> void:
for f in for_result_dic.fs_nodes: for f in for_result_dic.fs_nodes:
var fs_meta: String = f.get_meta('fs') var fs_meta: String = f.get_meta('fs')
if result_dic.has(fs_meta): if result_dic.has(fs_meta):
var new_state = result_dic[fs_meta] f.state = result_dic[fs_meta]
f.state = new_state
result_dic[fs_meta] = new_state
if result_dic.fs_1 == 1: if result_dic.fs_1 == 1 and block_kasseta_y5_prd_config_k['yau07']:
for_result_dic.module_fs_1.state = STATE_VAL.GOOD if result_dic.dkm_1 else STATE_VAL.ERROR for_result_dic.module_fs_1.state = STATE_VAL.GOOD if result_dic.dkm_1 else STATE_VAL.ERROR
else:
result_dic.fs_1 = 0 if result_dic.fs_6 == 1 and block_kasseta_y5_prd_config_k['yau07']:
if result_dic.fs_6 == 1:
for_result_dic.module_fs_6.state = STATE_VAL.GOOD if result_dic.dkm_6 else STATE_VAL.ERROR for_result_dic.module_fs_6.state = STATE_VAL.GOOD if result_dic.dkm_6 else STATE_VAL.ERROR
for_result_dic.dou_6.state = STATE_VAL.GOOD if result_dic.dou_6 else STATE_VAL.ERROR for_result_dic.dou_6.state = STATE_VAL.GOOD if result_dic.dou_6 else STATE_VAL.ERROR
else:
result_dic.fs_6 = 0 if result_dic.fs_7 == 1 and block_kasseta_y5_prd_config_k['yau07']:
if result_dic.fs_7 == 1:
for_result_dic.module_fs_7.state = STATE_VAL.GOOD if result_dic.dkm_7 else STATE_VAL.ERROR for_result_dic.module_fs_7.state = STATE_VAL.GOOD if result_dic.dkm_7 else STATE_VAL.ERROR
for_result_dic.dou_7.state = STATE_VAL.GOOD if result_dic.dou_7 else STATE_VAL.ERROR for_result_dic.dou_7.state = STATE_VAL.GOOD if result_dic.dou_7 else STATE_VAL.ERROR
else:
result_dic.fs_7 = 0 if block_kasseta_y5_prd_config_k['yau07']:
power_fill(for_result_dic.power_dic, for_result_dic.result_dic, for_result_dic.power_amplifier, for_result_dic.POWER_THRESHOLD)
power_fill(for_result_dic.power_dic, for_result_dic.result_dic, for_result_dic.power_amplifier, for_result_dic.POWER_THRESHOLD)
var result: bool = true var result: bool = true
for device in result_dic.values(): for device in result_dic.values():

View File

@@ -22,7 +22,9 @@ func _ready() -> void:
on_press_device() on_press_device()
func _process(delta: float) -> void: func _process(_delta: float) -> void:
if Engine.is_editor_hint():
return
set_frame($input_0, unit_prd_n.ems_input_1) set_frame($input_0, unit_prd_n.ems_input_1)
set_frame($input_1, unit_prd_n.ems_input_2) set_frame($input_1, unit_prd_n.ems_input_2)
set_frame($output_0, unit_prd_n.ems_output_1) set_frame($output_0, unit_prd_n.ems_output_1)
@@ -110,7 +112,7 @@ func on_control_result(for_result_dic: Dictionary) -> void:
for node_y5 in nodes_y5: for node_y5 in nodes_y5:
var meta_y5 = node_y5.get_meta('y5') var meta_y5 = node_y5.get_meta('y5')
if block_kasseta_y5_prd_config_n.has(meta_y5): if block_kasseta_y5_prd_config_n.has(meta_y5):
if block_kasseta_y5_prd_config_n['yau07'] == false: if not block_kasseta_y5_prd_config_n['yau07']:
node_y5.state = STATE_VAL.ERROR if meta_y5 == 'yau07' else STATE_VAL.NONE node_y5.state = STATE_VAL.ERROR if meta_y5 == 'yau07' else STATE_VAL.NONE
break break
node_y5.state = STATE_VAL.GOOD if block_kasseta_y5_prd_config_n[meta_y5] else STATE_VAL.ERROR node_y5.state = STATE_VAL.GOOD if block_kasseta_y5_prd_config_n[meta_y5] else STATE_VAL.ERROR
@@ -126,22 +128,18 @@ func on_control_result(for_result_dic: Dictionary) -> void:
for f in for_result_dic.fs_nodes: for f in for_result_dic.fs_nodes:
var fs_meta: String = f.get_meta('fs') var fs_meta: String = f.get_meta('fs')
if result_dic.has(fs_meta): if result_dic.has(fs_meta):
var new_state = result_dic[fs_meta] f.state = result_dic[fs_meta]
f.state = new_state
result_dic[fs_meta] = new_state
if result_dic.fs_2 == 1: if result_dic.fs_2 == 1 and block_kasseta_y5_prd_config_n['yau07']:
for_result_dic.module_fs_2.state = STATE_VAL.GOOD if result_dic.dkm_2 else STATE_VAL.ERROR for_result_dic.module_fs_2.state = STATE_VAL.GOOD if result_dic.dkm_2 else STATE_VAL.ERROR
for_result_dic.dou_2.state = STATE_VAL.GOOD if result_dic.dou_2 else STATE_VAL.ERROR for_result_dic.dou_2.state = STATE_VAL.GOOD if result_dic.dou_2 else STATE_VAL.ERROR
else:
result_dic.fs_2 = 0 if result_dic.fs_3 == 1 and block_kasseta_y5_prd_config_n['yau07']:
if result_dic.fs_3 == 1:
for_result_dic.module_fs_3.state = STATE_VAL.GOOD if result_dic.dkm_3 else STATE_VAL.ERROR for_result_dic.module_fs_3.state = STATE_VAL.GOOD if result_dic.dkm_3 else STATE_VAL.ERROR
for_result_dic.dou_3.state = STATE_VAL.GOOD if result_dic.dou_3 else STATE_VAL.ERROR for_result_dic.dou_3.state = STATE_VAL.GOOD if result_dic.dou_3 else STATE_VAL.ERROR
else:
result_dic.fs_3 = 0 if block_kasseta_y5_prd_config_n['yau07']:
power_fill(for_result_dic.power_dic, for_result_dic.result_dic, for_result_dic.power_amplifier, for_result_dic.POWER_THRESHOLD)
power_fill(for_result_dic.power_dic, for_result_dic.result_dic, for_result_dic.power_amplifier, for_result_dic.POWER_THRESHOLD)
var result: bool = true var result: bool = true
for device in result_dic.values(): for device in result_dic.values():

View File

@@ -173,22 +173,18 @@ static func on_control_result(for_result_dic: Dictionary) -> void:
for f in for_result_dic.fs_nodes: for f in for_result_dic.fs_nodes:
var fs_meta: String = f.get_meta('fs') var fs_meta: String = f.get_meta('fs')
if result_dic.has(fs_meta): if result_dic.has(fs_meta):
var new_state = result_dic[fs_meta] f.state = result_dic[fs_meta]
f.state = new_state
result_dic[fs_meta] = new_state
if result_dic.fs_5 == 1: if result_dic.fs_5 == 1 and block_kasseta_y5_prd_config_v['yau07']:
for_result_dic.module_fs_5.state = STATE_VAL.GOOD if result_dic.dkm_5 else STATE_VAL.ERROR for_result_dic.module_fs_5.state = STATE_VAL.GOOD if result_dic.dkm_5 else STATE_VAL.ERROR
for_result_dic.dou_5.state = STATE_VAL.GOOD if result_dic.dou_5 else STATE_VAL.ERROR for_result_dic.dou_5.state = STATE_VAL.GOOD if result_dic.dou_5 else STATE_VAL.ERROR
else:
result_dic.fs_5 = 0 if result_dic.fs_4 == 1 and block_kasseta_y5_prd_config_v['yau07']:
if result_dic.fs_4 == 1:
for_result_dic.module_fs_4.state = STATE_VAL.GOOD if result_dic.dkm_4 else STATE_VAL.ERROR for_result_dic.module_fs_4.state = STATE_VAL.GOOD if result_dic.dkm_4 else STATE_VAL.ERROR
for_result_dic.dou_4.state = STATE_VAL.GOOD if result_dic.dou_4 else STATE_VAL.ERROR for_result_dic.dou_4.state = STATE_VAL.GOOD if result_dic.dou_4 else STATE_VAL.ERROR
else:
result_dic.fs_4 = 0 if block_kasseta_y5_prd_config_v['yau07']:
power_fill(for_result_dic.power_dic, for_result_dic.result_dic, for_result_dic.power_amplifier, for_result_dic.POWER_THRESHOLD)
power_fill(for_result_dic.power_dic, for_result_dic.result_dic, for_result_dic.power_amplifier, for_result_dic.POWER_THRESHOLD)
var result: bool = true var result: bool = true
for device in result_dic.values(): for device in result_dic.values():

View File

@@ -122,8 +122,8 @@ class TestPRD extends Node:
'dkm_3': false, 'dkm_3': false,
'dou_2': false, 'dou_2': false,
'dou_3': false, 'dou_3': false,
'fs_2': 2, 'fs_2': 0,
'fs_3': 2, 'fs_3': 0,
} }
#### ####
var block_ip_config_v := { var block_ip_config_v := {
@@ -148,8 +148,8 @@ class TestPRD extends Node:
'dkm_5': false, 'dkm_5': false,
'dou_4': false, 'dou_4': false,
'dou_5': false, 'dou_5': false,
'fs_4': 2, 'fs_4': 0,
'fs_5': 2, 'fs_5': 0,
} }
#### ####
var block_kasseta_y5_prd_config_k: = { var block_kasseta_y5_prd_config_k: = {
@@ -167,9 +167,9 @@ class TestPRD extends Node:
'dkm_7': false, 'dkm_7': false,
'dou_6': false, 'dou_6': false,
'dou_7': false, 'dou_7': false,
'fs_1': 2, 'fs_1': 0,
'fs_6': 2, 'fs_6': 0,
'fs_7': 2, 'fs_7': 0,
} }
var block_ip_config_k := { var block_ip_config_k := {
'maa2000_1': [0, false], 'maa2000_1': [0, false],
@@ -347,8 +347,6 @@ class TestPRD extends Node:
var in_blank: int = packet_form_yau_07.decode_u16(DataIndices.IN_BLANK_PRD) var in_blank: int = packet_form_yau_07.decode_u16(DataIndices.IN_BLANK_PRD)
flag_si_fs_input = (in_blank & (1 << number_socket_input)) != 0 ## Флаг СИ от ФС входа в ЭМС-Г для текущей литеры flag_si_fs_input = (in_blank & (1 << number_socket_input)) != 0 ## Флаг СИ от ФС входа в ЭМС-Г для текущей литеры
var number_socket_output: int var number_socket_output: int
number_socket_output = 4 if current_litera in [2, 4, 6] else 3 if current_litera == 1 else 5 number_socket_output = 4 if current_litera in [2, 4, 6] else 3 if current_litera == 1 else 5
@@ -371,6 +369,7 @@ class TestPRD extends Node:
func state_control_machine() -> void: func state_control_machine() -> void:
match state: match state:
STATE_MACHINE.INIT: STATE_MACHINE.INIT:
print("Start control for %s device %s litera" % [self_name, current_litera])
_handle_init_state() _handle_init_state()
STATE_MACHINE.FS_TURN_ON: STATE_MACHINE.FS_TURN_ON:
_handle_fs_turn_on_state() _handle_fs_turn_on_state()