доработка мониторинга температур контроля

This commit is contained in:
TotMaxim
2025-11-16 19:30:59 +03:00
parent de86d281ca
commit 217281ce51
8 changed files with 113 additions and 56 deletions

View File

@@ -62,6 +62,14 @@ func _exit_tree() -> void:
#prd_k_module.cmd_array.append([unit_prd_k.CmdCode.WRITE_ISA, [constants_k.ADDR_UG_LITERA_1, ug_work_1, constants_k.ADDR_UG_LITERA_2, ug_work_2, constants_k.ADDR_UG_LITERA_3, ug_work_3]])
static func temperature_fill(temperature_arr_node: Array, temperature_dic: Dictionary)->void:
for i_node_temperature in temperature_arr_node:
var temperature_meta: String = i_node_temperature.get_meta('um')
var status = STATE_VAL.GOOD if temperature_dic else STATE_VAL.NONE
if not temperature_dic.has(temperature_meta): return
i_node_temperature.value1 = temperature_dic[temperature_meta]
static func power_fill(pow_dic: Dictionary, fs_result: Dictionary, power_amplifier: Array, POWER_THRESHOLD: int) -> void:
for i_powapm in power_amplifier:
var powamp_meta: String = i_powapm.get_meta('um')
@@ -98,6 +106,7 @@ func on_press_device() -> void:
'power_dic': unit_prd_k.power_result,
'block_kasseta_y5_config': unit_prd_k.block_kasseta_y5_config,
'block_ip_config': unit_prd_k.block_ip_config,
'temperature_um' : unit_prd_k.temperature_um,
'nodes_y5': nodes_y5,
'node_ip_power_arr': node_ip_power_arr,
'fs_nodes': fs_nodes,
@@ -114,7 +123,8 @@ func on_press_device() -> void:
func on_control_result(for_result_dic: Dictionary) -> void:
## If control is end
temperature_fill(for_result_dic.power_amplifier, for_result_dic.temperature_um)
var block_kasseta_y5_prd_config_k: Dictionary = for_result_dic.block_kasseta_y5_config
var nodes_y5: Array = for_result_dic.nodes_y5
for node_y5 in nodes_y5:
@@ -132,6 +142,7 @@ func on_control_result(for_result_dic: Dictionary) -> void:
if block_ip_config_k.has(meta_ip) and block_kasseta_y5_prd_config_k.ug:
power_supply.state = STATE_VAL.GOOD if block_ip_config_k[meta_ip][1] else STATE_VAL.ERROR
## If control is end
var result_dic: Dictionary = for_result_dic.result_dic
for f in for_result_dic.fs_nodes:
var fs_meta: String = f.get_meta('fs')

View File

@@ -17,6 +17,8 @@ func _ready() -> void:
var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier')
for temp in power_amplifier:
temp.value1 = -70
temp.max_value1 = 70
temp.min_value1 = -40
unit_prd_n.connect('control_is_over', Callable(self, 'on_press_device'))
#unit_prd_n.power_amplify = power_amplifier
on_press_device()
@@ -60,28 +62,33 @@ func _exit_tree() -> void:
#prd_n_module.cmd_array.append([unit_prd_n.CmdCode.WRITE_ISA, [constants_n.ADDR_UG_LITERA_1, ug_work_1, constants_n.ADDR_UG_LITERA_2, ug_work_2]])
static func power_fill(pow_dic: Dictionary, fs_result: Dictionary, power_amplifier: Array, POWER_THRESHOLD: int) -> void:
for i_powapm in power_amplifier:
var powamp_meta: String = i_powapm.get_meta('um')
static func temperature_fill(temperature_arr_node: Array, temperature_dic: Dictionary)->void:
for i_node_temperature in temperature_arr_node:
var temperature_meta: String = i_node_temperature.get_meta('um')
var status = STATE_VAL.GOOD if temperature_dic else STATE_VAL.NONE
if not temperature_dic.has(temperature_meta): return
i_node_temperature.value1 = temperature_dic[temperature_meta]
static func power_fill(pow_dic: Dictionary, fs_result: Dictionary, power_amplifier_arr_node: Array, POWER_THRESHOLD: int) -> void:
for i_node_powapm in power_amplifier_arr_node:
var powamp_meta: String = i_node_powapm.get_meta('um')
var status = STATE_VAL.GOOD if pow_dic else STATE_VAL.NONE
if not pow_dic.has(powamp_meta): return
if pow_dic[powamp_meta].size() < 6:
status = STATE_VAL.ERROR
else:
if powamp_meta in ['um_1', 'um_2', 'um_3', 'um_4', 'um_5', 'um_6'] and not fs_result.fs_2: return
if powamp_meta in ['um_7', 'um_8', 'um_9', 'um_10', 'um_11', 'um_12'] and not fs_result.fs_3: return
i_powapm.value0 = pow_dic[powamp_meta]
for i_p in pow_dic[powamp_meta]:
if i_p < POWER_THRESHOLD:
status = STATE_VAL.ERROR
i_powapm.state = status
if powamp_meta in ['um_1', 'um_2', 'um_3', 'um_4', 'um_5', 'um_6'] and not fs_result.fs_2: return
if powamp_meta in ['um_7', 'um_8', 'um_9', 'um_10', 'um_11', 'um_12'] and not fs_result.fs_3: return
i_node_powapm.value0 = pow_dic[powamp_meta]
for i_p in pow_dic[powamp_meta]:
if i_p < POWER_THRESHOLD:
status = STATE_VAL.ERROR
i_node_powapm.state = status
func on_press_device() -> void:
var nodes_y5: Array = get_tree().get_nodes_in_group('y-5')
var node_ip_power_arr: Array = get_tree().get_nodes_in_group('power_supply')
var fs_nodes: Array = get_tree().get_nodes_in_group('fs_group')
var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier')
var power_amplifier_arr_node: Array = get_tree().get_nodes_in_group('power_amplifier')
var module_fs_2: Node = $kasseta_FS_ND/ref_A4
var dou_2: Node = $dou2_A5
var module_fs_3: Node = $kasseta_FS_ND/ref_A3
@@ -91,10 +98,11 @@ func on_press_device() -> void:
'power_dic': unit_prd_n.power_result,
'block_kasseta_y5_config': unit_prd_n.block_kasseta_y5_config,
'block_ip_config': unit_prd_n.block_ip_config,
'temperature_um' : unit_prd_n.temperature_um,
'nodes_y5': nodes_y5,
'node_ip_power_arr': node_ip_power_arr,
'fs_nodes': fs_nodes,
'power_amplifier': power_amplifier,
'power_amplifier': power_amplifier_arr_node,
'POWER_THRESHOLD': unit_prd_n.constants.POWER_THRESHOLD,
'name_prd': unit_prd_n.self_name,
'module_fs_2': module_fs_2,
@@ -106,7 +114,8 @@ func on_press_device() -> void:
func on_control_result(for_result_dic: Dictionary) -> void:
## If control is end
temperature_fill(for_result_dic.power_amplifier, for_result_dic.temperature_um)
var block_kasseta_y5_prd_config_n: Dictionary = for_result_dic.block_kasseta_y5_config
var nodes_y5: Array = for_result_dic.nodes_y5
for node_y5 in nodes_y5:
@@ -124,6 +133,7 @@ func on_control_result(for_result_dic: Dictionary) -> void:
if block_ip_config_n.has(meta_ip) and block_kasseta_y5_prd_config_n.ug:
power_supply.state = STATE_VAL.GOOD if block_ip_config_n[meta_ip][1] else STATE_VAL.ERROR
## If control is end
var result_dic: Dictionary = for_result_dic.result_dic
for f in for_result_dic.fs_nodes:
var fs_meta: String = f.get_meta('fs')
@@ -140,7 +150,6 @@ func on_control_result(for_result_dic: Dictionary) -> void:
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)
var result: bool = true
for device in result_dic.values():
if not device:

View File

@@ -374,7 +374,7 @@ fname = "УМ1535А"
rname = "A13"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_7"
metadata/um = "um_9"
[node name="um1535_A14" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")]
layout_mode = 0
@@ -386,7 +386,7 @@ fname = "УМ1535А"
rname = "A14"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_8"
metadata/um = "um_10"
[node name="um1535_A15" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")]
layout_mode = 0
@@ -398,7 +398,7 @@ fname = "УМ1535А"
rname = "A15"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_9"
metadata/um = "um_11"
[node name="um1535_A16" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")]
layout_mode = 0
@@ -410,7 +410,7 @@ fname = "УМ1535А"
rname = "A16"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_10"
metadata/um = "um_12"
[node name="um1535_A17" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")]
layout_mode = 0
@@ -422,7 +422,7 @@ fname = "УМ1535А"
rname = "A17"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_11"
metadata/um = "um_13"
[node name="um1535_A18" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")]
layout_mode = 0
@@ -434,7 +434,7 @@ fname = "УМ1535А"
rname = "A18"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_12"
metadata/um = "um_14"
[node name="control_result" type="Label" parent="."]
layout_mode = 0

View File

@@ -59,6 +59,14 @@ func _exit_tree() -> void:
#prd_v_module.cmd_array.append([unit_prd_v.CmdCode.WRITE_ISA, [constants_v.ADDR_UG_LITERA_1, ug_work_1, constants_v.ADDR_UG_LITERA_2, ug_work_2]])
static func temperature_fill(temperature_arr_node: Array, temperature_dic: Dictionary)->void:
for i_node_temperature in temperature_arr_node:
var temperature_meta: String = i_node_temperature.get_meta('um')
var status = STATE_VAL.GOOD if temperature_dic else STATE_VAL.NONE
if not temperature_dic.has(temperature_meta): return
i_node_temperature.value1 = temperature_dic[temperature_meta]
static func power_fill(pow_dic: Dictionary, fs_result: Dictionary, power_amplifier: Array, POWER_THRESHOLD: int) -> void:
for i_powapm in power_amplifier:
var powamp_meta: String = i_powapm.get_meta('um')
@@ -137,6 +145,7 @@ func on_press_device() -> void:
'power_dic': unit_prd_v.power_result,
'block_kasseta_y5_config': unit_prd_v.block_kasseta_y5_config,
'block_ip_config': unit_prd_v.block_ip_config,
'temperature_um' : unit_prd_v.temperature_um,
'nodes_y5': nodes_y5,
'node_ip_power_arr': node_ip_power_arr,
'fs_nodes': fs_nodes,
@@ -152,7 +161,8 @@ func on_press_device() -> void:
static func on_control_result(for_result_dic: Dictionary) -> void:
## If control is end
temperature_fill(for_result_dic.power_amplifier, for_result_dic.temperature_um)
var block_kasseta_y5_prd_config_v: Dictionary = for_result_dic.block_kasseta_y5_config
var nodes_y5: Array = for_result_dic.nodes_y5
for node_y5 in nodes_y5:
@@ -169,6 +179,7 @@ static func on_control_result(for_result_dic: Dictionary) -> void:
if block_ip_config_v.has(meta_ip) and block_kasseta_y5_prd_config_v.ug:
power_supply.state = STATE_VAL.GOOD if block_ip_config_v[meta_ip][1] else STATE_VAL.ERROR
## If control is end
var result_dic: Dictionary = for_result_dic.result_dic
for f in for_result_dic.fs_nodes:
var fs_meta: String = f.get_meta('fs')

View File

@@ -4,7 +4,7 @@ const STATUS_GOOD := {"text": "Исправно", "color": Color.GREEN, "font_co
const STATUS_BAD := {"text": "Отказ", "color": Color.RED, "font_color": Color.WHITE}
var _is_uf_status_initialized: bool = false
var is_prd_operational: bool = true
var is_uf_operational: bool = false
var is_uf_operational: bool = true
func _ready() -> void:

View File

@@ -79,21 +79,6 @@ visible = false
layout_mode = 2
metadata/_tab_index = 5
[node name="lbl_ready" type="Label" parent="."]
layout_mode = 0
offset_left = 1504.0
offset_right = 1600.0
offset_bottom = 27.0
tooltip_text = "Готовность аппаратуры к работе"
mouse_filter = 0
theme_override_font_sizes/font_size = 14
theme_override_styles/normal = SubResource("StyleBoxFlat_o1r22")
text = "Нет связи"
horizontal_alignment = 1
vertical_alignment = 1
script = ExtResource("8_tidwt")
metadata/_edit_lock_ = true
[node name="remote_control" type="Label" parent="."]
layout_mode = 2
offset_left = 1242.0
@@ -125,5 +110,20 @@ toggle_mode = true
text = "Тренаж"
script = ExtResource("9_41d34")
[node name="lbl_ready" type="Label" parent="."]
layout_mode = 0
offset_left = 1504.0
offset_right = 1600.0
offset_bottom = 27.0
tooltip_text = "Готовность аппаратуры к работе"
mouse_filter = 0
theme_override_font_sizes/font_size = 14
theme_override_styles/normal = SubResource("StyleBoxFlat_o1r22")
text = "Нет связи"
horizontal_alignment = 1
vertical_alignment = 1
script = ExtResource("8_tidwt")
metadata/_edit_lock_ = true
[connection signal="tab_changed" from="tab_switch" to="tab_switch" method="_on_tab_changed"]
[connection signal="toggled" from="тренаж_режим" to="tab_switch" method="_on_button_trenaj_toggled"]

View File

@@ -35,7 +35,7 @@ signal pressed(control: PanelContainer)
if not is_inside_tree():
return
$margin/vbox/grid1/level7.value = v
$margin/vbox/grid1/level7.tint_progress = Color.RED if v > 70 else Color.WHITE
$margin/vbox/grid1/level7.tint_progress = Color.RED if v >= 70 else Color.GOLD if v >= 60 else Color.WHITE
@export var min_value0: float:
@@ -191,8 +191,8 @@ func _enter_tree_defered():
$margin/vbox/grid0/rname.text = rname
$margin/vbox/grid0/fname.text = fname
$margin/vbox/grid0/state.texture = textures[state]
else:
push_warning('обращение к %s вне дерева' % self)
#else:
#push_warning('обращение к %s вне дерева' % self) TODO: пишеться только когда заходишь в проект а дальше не используется
func get_level_nodes() -> Array:
@@ -477,7 +477,7 @@ size_flags_horizontal = 3
size_flags_vertical = 3
tooltip_text = "
Текущее: 56.00
Диапазон: -50.00…120.00"
Диапазон: -40.00…70.00"
mouse_filter = 0
min_value = -50.0
max_value = 120.0